kla*_*ius 4 directx 3d xna gpu direct3d
我正在编写一个基于场景图的图形引擎,用于建模目的.我正在使用XNA 4.在我阅读的许多地方,渲染过程中应该最小化纹理变化(以及其他状态变化)(因此我必须按材料来订购我的基元等).
我在XNA 4中创建了一个小型测试应用程序,它使用单个纹理渲染数百个斯坦福兔子模型,然后切换2个不同的纹理.渲染时间没有差异(但是我使用了小~100x100纹理).
所以我的问题是:
感谢您的帮助或链接!
长期以来,国家的变化并不是很昂贵.批次很贵.(并且状态变化需要新批次).批处理基本上是对Draw*Primitives函数的调用.
来自nVidia的这份PDF详细解释了它.它还提供了减少批量计数的想法.
批处理是基于CPU的限制(不是GPU).该PDF列出"<130 tris/batch"作为提交批次主导性能的点,并且GPU闲置等待更多批次(细节).它还表示,每1帧可获得批量,每1GHz CPU功率可达60 FPS.(尽管PDF有点旧,但这些数字有点过时了.)
我在gamedev网站上对类似问题的回答应提供更多细节.这个也是.