gpt4 book ai didi

sorting - 我应该如何对对象进行排序?通过着色器还是通过网格?

转载 作者:行者123 更新时间:2023-12-04 18:13:58 24 4
gpt4 key购买 nike

为了最大限度地减少状态更改的数量,我应该对网格的绘制顺序进行排序。无论如何,如果我有使用多个着色器的多个网格,我需要选择按顶点属性绑定(bind)或着色器统一参数之一进行排序。

我应该选择什么?我认为由于 GPU 缓存命中率,我必须选择最小化顶点属性更改,但我不知道着色器更改成本。决定绘图顺序时一般要考虑什么?我可以得到一些选择的依据吗?

PS。我的目标是 iOS/PowerVR SGX 芯片。

编辑

我决定按 Material 排序,因为许多网格只使用几种 Material ,但有很多网格需要绘制。这意味着我将有更多的机会共享 Material 而不是共享网格。因此它将有更多机会减少状态更改计数。无论如何,我不确定,所以如果您有更好的意见,请告诉我。

最佳答案

您不需要在 PowerVR SGX 上对不透明对象进行深度排序,因为使用与顺序无关的、像素完美的隐藏表面去除。深度排序仅用于实现适当的透明度/半透明渲染。

新交所的最佳实践是按州排序,按以下顺序:

  • 视口(viewport)
  • 帧缓冲区
  • 着色器
  • 纹理
  • 剪切、混合等

使用纹理图集可以显着减少纹理状态变化。可以通过批处理来减少绘制调用的数量。

这只是黄金法则,请记住,您应该先进行分析,然后再优化:)

参见: http://www.imgtec.com/powervr/insider/docs/PowerVR.Performance%20Recommendations.1.0.28.External.pdf

关于sorting - 我应该如何对对象进行排序?通过着色器还是通过网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12068948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com