在DirectX 10/11中从GPU取回变换后的顶点
Getting transformed vertices back from the GPU in DirectX 10/11
我正在开发的图形引擎开发了一个主要瓶颈,即顶点上的矩阵变换(几乎没有静态顶点)。到目前为止,我一直在用CPU转换顶点,并在每帧更新顶点缓冲区(数据复制本身有点瓶颈,但到目前为止是可以管理的)。
因此,我在想,如果我可以将网格缓冲区保留在GPU中,我就可以在那里变换顶点,并将变换后的顶点集带回主内存进行其他处理(后续处理需要比GPU着色器允许的更多的互连)。可能会消除当前代码中的瓶颈。
有什么技巧吗?谢谢
查看DX11:中的流输出阶段
http://msdn.microsoft.com/en-us/library/windows/desktop/bb205121(v=vs.85).aspx
它允许您附加一个内存缓冲区(在CPU或GPU上),其中存储顶点着色器(以及可能的几何体着色器)的结果。
相关文章:
- 如何循环打印顶点结构
- D3D11-将混合权重和索引传递到顶点着色器
- 从返回的顶点缓冲区查询顶点结构
- Vulkan 中的动态顶点缓冲区格式设置
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 如何将一半传递给顶点着色器?
- 基于范围的变换以实现正常循环
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- QT QOpenGLWidget:如何在不使用数据块复制的情况下修改VBO中的单个顶点值?
- 使用 OpenGL 4.5 更改所选顶点的颜色
- OpenCV 傅里叶变换复杂输出问题
- Direct3D 11 - HLSL - 获取顶点索引 ID
- SFML 纹理变换(放大)
- 创建异构顶点数据数组的可移植方法
- 使用 glvertex4i 传递网格面索引时的顶点着色器错误
- 如何变换 CGAL 表面网格顶点
- 如何变换骨骼动画的顶点
- 在DirectX 10/11中从GPU取回变换后的顶点
- 如何在directx3d中变换人体骨骼顶点的子集顶点
- OpenGL顶点着色器变换,对象消失