955
社区成员
目前据我所知我们没有这种 GPU应用场景的.
GPU 只处理通用数据,没有这种具体的功能,如果要实现的话需要app 自己评估.
A:参考如下:
测试案例1:小米9
点击按钮添加全屏不透明的Quad,使用Standard Shader,离相机越远,RenderQueue越小。
结果:从FPS上看,到100层,帧率也都是60帧。说明小米9上确实有类似于HSR的功能,就是不透明对象不需要手动调整渲染队列从而让靠近相机的先渲染。
测试案例2:小米5X
点击按钮添加全屏不透明的Quad,使用Standard Shader,离相机越远,RenderQueue越小。
结果:从FPS上看,1层的时候43帧,2层就掉到25帧,3层掉到17帧。说明小米5X上没有类似于HSR的功能。
测试案例3:小米5X
点击按钮添加全屏不透明的Quad,使用Standard Shader,离相机越远,不调整RenderQueue。
结果:从FPS上看,1层的时候43帧,5层的时候依旧43帧。不调整RenderQueue后,因为Unity的不透明是按照由近到远绘制的,由于Early-Z的关系,导致被遮挡的物体不会进行Fragment Shader计算了,所以帧率比较稳定。
总结:对于像地形这样的大面积且Shader复杂度通常比较高的对象,还是需要调整渲染队列到比较靠后的,因为对于低端机型,并没有HSR这样的功能。所以可以通过调整地形的渲染队列靠后,从而让Early-Z对于大地形生效,从而减少地形的渲染像素。
对于高端机型,如小米9,因为其GPU硬件支持HSR功能,所以对于不透明物体来说,渲染队列没有关系。
总体来说,还是建议调整大地形的渲染队列,对低端机型有好处。