0

假设我有一个具有许多顶点的复杂对象,并且我想绘制该对象的许多实例。我想知道哪种方法会更快:一个 DrawInstanced 或多个 DrawIndexed。如果我有非常简单的对象,比如说有 4 个顶点的精灵,我想画数百个,那哪个会更快?我的意思是说?我的意思是 DrawInstanced 有点像 Draw - 有时它会将同一个顶点多次放入 VertexShader 中。例如,精灵有 4 个顶点,但对于三角形列表拓扑,其中两个将被处理两次,而对于 DrawInstanced,它们只会被处理一次。Ofc 对于更复杂的对象,这个问题会越来越大,这就是我要求解决方案和您的意见的原因。

我的问题的第二部分。那么,如果多次处理相同的顶点出现问题,那么也许有一种方法可以将 DrawInstanced 与索引或某事混合在一起?

4

1 回答 1

3

您可以同时使用索引和实例化,无需在它们之间进行选择。索引通过重用减少了必须提供给 GPU 的顶点数量。实例化是一种性能增强,它允许您在一帧中多次快速绘制相同的几何图形。

于 2013-06-11T13:17:30.903 回答