XNA:如何使用着色器写入纹理

标签 xna shader

嘿,我想用着色器制作落沙动画(粉末游戏、pyrosand、wxsand...)以供练习。

为此,我需要一个存储在纹理中的字节数组 (256x256),每一帧,该数组都会根据一组规则进行修改(一个简单的 for 循环,其中包含一些 if)。

到目前为止,我锁定了纹理,应用了规则并在每一帧解锁它,但这似乎超出了我的CPU,所以有没有办法用着色器修改(读取,然后写入)纹理?

欢迎任何建议或教程链接。

最佳答案

您正在寻找RenderTargets ...您可以轻松地使用着色器绘制纹理,然后对该纹理执行您想要的任何操作。

需要记住的一件事是您必须更改算法。编写着色器是 functional programmin 中的一项练习g,听起来像是你写的 imperatively

关于XNA:如何使用着色器写入纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805885/

相关文章:

xna - 在 XNA 中计算重力

c++ - 在GLSL着色器中采样类型GL_UNSIGNED_SHORT的GL_DEPTH_COMPONENTs

opengl - 使用 GLSL 着色器在同一片段着色器中定义的多个子例程类型无法正常工作

unity-game-engine - Unity着色器中的子程序 ".........."是什么?

c# - 将渲染后效果应用于 XNA 中的 SpriteBatch

c# - 导入效果错误

C# Monogame - 如何在游戏窗口最小化时停止游戏循环

java - LWJGL Opengl 着色器错误

c++ - 如何在 C++ 中获取像素着色器版本和顶点着色器版本

flash - 如何在 Windows Mobile 上将 Flash 嵌入到 XNA 中