[Unity3D]Unity中影响渲染顺序的因素总结

一,Camera Depth

相机组件上设置的相机深度,深度越大越靠后渲染。

二,透明,不透明物体分隔

RenderQueue 2500是透明与不透明的分水岭。
同一个相机下
Renderqueue小于2500的物体始终在Renderqueue大于2500之前绘制。

三,Sorting Layer

在Tags&Layers设置中可见
如果Camera相同,那接下来就看Sorting Layers,越低越早绘制。
Sorting Layers是通过Renderer的SortingLayerName属性设置的。
全局的Soring Layers在Edit->ProjectSettings->Tags&Layers中设置可以通过代码设置render.sortingLayerName="Name"运行时设置物体的sortinglayer,如果在粒子系统中看,可以看到Render项的Sorting Layers下拉表单中会列出所有的Sorting Layers的名字。

四,Order In Layer

相对于Sorting Layer的子排序,用这个值做比较时只有Sorting Layer在同一层的时候才有效。
order是设置一个数字,数字越大,越显示在最上面。

五,RenderQueue

shader中对Tags设置的“Queue”。
如果上面几项都相同的情况下,就要设置RenderQueue了,renderQueue是Material的一个属性,其实就是shader中的renderQueue,这个值是一个int属性,数值越小,越靠近前面渲染。

六,深度排序。按照包围盒的深度进行排序

不透明物体由近到远排序优先
透明物体由远到进排序优先
按照包围盒的中心点的深度进行排序。

深度补间

ZBias,当两个包围盒中心点深度值相同或者很近的物体在一起时,排序有可能出错所以对于这个点的z值可以进行微调。

上图

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注