在DirectX 10/11中从GPU取回变换后的顶点

Getting transformed vertices back from the GPU in DirectX 10/11

本文关键字:变换 顶点 GPU DirectX 中从      更新时间:2023-10-16

我正在开发的图形引擎开发了一个主要瓶颈,即顶点上的矩阵变换(几乎没有静态顶点)。到目前为止,我一直在用CPU转换顶点,并在每帧更新顶点缓冲区(数据复制本身有点瓶颈,但到目前为止是可以管理的)。

因此,我在想,如果我可以将网格缓冲区保留在GPU中,我就可以在那里变换顶点,并将变换后的顶点集带回主内存进行其他处理(后续处理需要比GPU着色器允许的更多的互连)。可能会消除当前代码中的瓶颈。

有什么技巧吗?谢谢

查看DX11:中的流输出阶段

http://msdn.microsoft.com/en-us/library/windows/desktop/bb205121(v=vs.85).aspx

它允许您附加一个内存缓冲区(在CPU或GPU上),其中存储顶点着色器(以及可能的几何体着色器)的结果。