在我的应用程序中有很多例子,我使用相同的着色器使用不同的统一值绘制绘图,并考虑执行绘图调用。然而,在我的例子中,拖拽有不同数量的三角形。
就我所理解的DrawIndexedInstanced而言,它只允许用相同数量的三角形/索引绘制多个实例,因此我想我不能使用它。
我认为DrawIndexedInstancedIndirect可能会有所帮助,但这似乎只会执行对DrawIndexedIstanced的多个调用。
在Directx11中是否有一种方法可以为每个实例绘制不同数量的三角形,还是必须保持正常的拖拽?
发布于 2018-10-30 10:44:50
如文档中所述,实例绘图为
..。在场景中重用相同的几何图形来绘制多个对象。
它通过不交换顶点数据来提高性能,但是重用它,这似乎不是数据的情况,在数据中,每个抽签调用的顶点源是不同的。
因此,你必须坚持单一的平局电话,但为了提高你的表现,你可以把它们放在一起。每个状态更改都有一定的成本被提交到gpu,如果您将着色器设置为用于所有绘制调用,则可以通过使用相同的着色器和统一值进行所有绘制调用来保存一些性能,并且只有在需要时才切换。
https://stackoverflow.com/questions/52973635
复制相似问题