DirectX11 : Pass data from ComputeShader to VertexShader?

标签 directx slimdx directx-11 vertex-shader compute-shader

是否可以对要使用计算着色器渲染的几何数据应用过滤器,然后将结果用作顶点着色器中的输入缓冲区?这将节省我读回数据的麻烦(和时间)。

非常感谢任何帮助。

最佳答案

是的,绝对是的。首先,使用 BIND_VERTEX_BUFFERBIND_SHADER_RESOURCEBIND_UNORDERED_ACCESS 使用标志以及关联的 UAV 和SRV。

第一步是将过滤器应用于输入源缓冲区,并在计算过程中写入目标缓冲区。

然后在绘制过程中,您只需将目标缓冲区绑定(bind)到 IA 阶段即可。如果您需要累积顶点上的计算,您可以做一些乒乓球运动(我假设过滤器指的是 functional map ,用于引用函数式编程术语)。

关于DirectX11 : Pass data from ComputeShader to VertexShader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4049787/

相关文章:

c++ - DirectX透明纹理-使植物看起来不错

c# - 阻止特定 c# winforms 的桌面共享或检测桌面共享

windows - 在 Windows 8 媒体基础转换中在 IMFMediaBuffer 上绘制文本

c# - 使用 WPF 和 SlimDx (DirectX 10/11)

c# - DirectX - 顶点缓冲区中的一半而不是 float

graphics - 实现法线贴图 HLSL

c++ - DirectX 从内存编译着色器?

c++ - DirectX:在 vector 缓冲区中存储多个顶点

c# - 在Windows XP计算机上运行SlimDX C#应用程序时遇到的麻烦

directx - ID3D11Texture2D 到 ID2D1Bitmap,可能吗?