【问题标题】:Getting transformed vertices back from the GPU in DirectX 10/11在 DirectX 10/11 中从 GPU 获取转换后的顶点
【发布时间】:2012-04-05 10:19:40
【问题描述】:

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

所以我在想,如果我可以将网格缓冲区保留在 GPU 中,我可以在那里转换顶点并将转换后的一组顶点返回主内存以进行其他处理(后续处理需要比GPU 着色器允许)。这可能会消除当前代码中的瓶颈。

关于如何做到这一点的任何提示?谢谢。

【问题讨论】:

    标签: c++ vertex directx-11 directx-10 vertex-shader


    【解决方案1】:

    查看 DX11 中的流输出阶段:

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

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

    【讨论】:

    • 你不知道如何在 DirectX9 中做同样的事情吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2016-01-03
    相关资源
    最近更新 更多