drawinstance和DrawIndexed并将它们混合在一起

DrawInstanced versus DrawIndexed and mixing them together

本文关键字:混合 在一起 DrawIndexed drawinstance      更新时间:2023-10-16

假设我有一个有许多顶点的复杂对象,我想绘制这个对象的许多实例。我想知道哪种方法会更快:一个drawinstance或多个DrawIndexed。另外,如果我有一个非常简单的对象,比如有4个顶点的精灵,我想画几百个顶点,那么哪个会更快?我是什么意思?我的意思是,drawinststance有点像Draw——有时它会在VertexShader中多次放置同一个顶点。例如,精灵有4个顶点,但在三角形列表拓扑中,其中两个顶点将被处理两次,而在drawstance中,它们只会被处理一次。对于更复杂的对象,这个问题就会增加,这就是为什么我要求解决方案和你的意见。

问题的第二部分。那么,如果多次处理相同的顶点存在问题那么也许有一种方法将drawinstance与索引或其他方法混合使用?

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