DirectX11:将数据从ComputeShader传递给VertexShader?

时间:2010-10-29 07:19:27

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

是否可以将滤镜应用于要使用Compute Shader渲染的几何数据,然后将结果用作顶点着色器中的输入缓冲区?这样可以省去回读数据的麻烦(和时间)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

绝对是的。首先,您使用ID3D11BufferBIND_VERTEX_BUFFERBIND_SHADER_RESOURCE使用标记以及相关联的无人机和SRV创建两个相同的BIND_UNORDERED_ACCESS结构。

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

然后在绘制过程中,您只需将目标缓冲区绑定到IA阶段。如果你需要在顶点上累积计算,你可以做一些乒乓球(我假设通过过滤器你的意思是functional map,用于参考功能编程术语。)