嘿,我想用着色器制作落沙动画(粉末游戏、pyrosand、wxsand...)以供练习。
为此,我需要一个存储在纹理中的字节数组 (256x256),每一帧,该数组都会根据一组规则进行修改(一个简单的 for 循环,其中包含一些 if)。
到目前为止,我锁定了纹理,应用了规则并在每一帧解锁它,但这似乎超出了我的CPU,所以有没有办法用着色器修改(读取,然后写入)纹理?
欢迎任何建议或教程链接。
最佳答案
您正在寻找RenderTargets ...您可以轻松地使用着色器绘制纹理,然后对该纹理执行您想要的任何操作。
需要记住的一件事是您必须更改算法。编写着色器是 functional programmin 中的一项练习g,听起来像是你写的 imperatively
关于XNA:如何使用着色器写入纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805885/