对于 DirectX 中的粒子系统,使用动态顶点缓冲区绘制单个网格或绘制许多独立的四边形是否更快?

For a particle system in DirectX, is it faster to draw a single mesh using a dynamic vertex buffer or to draw many independent quads?

我正在学习粒子系统教程,发现它使用动态顶点缓冲区将每一帧的所有粒子组合到一个网格中。我想知道,使用独立的四边形渲染粒子会不会更好,这样我就不必使用动态缓冲区了?据我所知效率不高。

你能给教程打个link吗?您使用的是什么 DX 版本? 我认为最好的方法是称为实例化渲染的技术(DX11 设备上的 DrawInstanced(...))

这是一个示例 http://www.rastertek.com/dx11tut37.html

这个想法很简单。您在 GPU 内存中有一个几何体实例(一个四边形只有 4 个顶点)和一个纹理,然后多次渲染它,只发送动态数据(如变换矩阵、alpha 值等)。这种技术用于很多事情,而不仅仅是粒子。

此致