概述
1. 相机(depth)
相机的排序一定是最高级,按照相机depth升序渲染,depth 越小越先渲染,即depth 越大的相机渲染的画面越在前;
2. RendererQueue 0~2500(不关深度写入就是按z值显示)
shader往往开启深度写入,所以sortlayer、sort order及render queue造成的渲染顺序改变对于显示顺序并无影响;
RendererQueue | 含义 |
---|---|
Background 1000 | This render queue is rendered before any others. 这个队列通常被最先渲染(比如 天空盒)。 |
Geometry 2000 | Opaque geometry uses this queue. 这是默认的渲染队列。它被用于绝大多数对象。不透明几何体使用该队列。 |
AlphaTest 2450 | Alpha tested geometry uses this queue. 需要开启透明度测试的物体。Unity5以后从Geometry队列中拆出来,因为在所有不透明物体渲染完之后再渲染会比较高效。 |
GeometryLast | Last render queue that is considered “opaque”. 所有Geometry和AlphaTest队列的物体渲染完后 |
Transparent 3000 | This render queue is rendered after Geometry and AlphaTest, in back-to-front order. 所有Geometry和AlphaTest队列的物体渲染完后,再按照从后往前的顺序进行渲染,任何使用了透明度混合的物体都应该使用该队列(例如玻璃和粒子效果) |
Overlay 4000 | This render queue is meant for overlay effects. 该队列用于实现一些叠加效果,适合最后渲染的物体(如镜头光晕)。 |
在同一个相机之下,优先渲染不透明物体,并按照RendererQueue升序排序,RendererQueue越小越先渲染,越大越在前。(需在SubShader中显示声明ZWrite Off,通知Unity我们会重写物体的渲染深度排序。)
注意: 因为有深度缓冲(ZBuffer)和深度写入/深度检测存在,所以即便是后渲染的物体,如果Z值在先渲染的物体之后,图元依然会被舍弃。因此不透明物体的渲染顺序并不影响其显示顺序, Unity会自行调整其调用DrawCall的顺序。
3. SortLayer
在同一个相机之下,当渲染透明物体时,优先按照SortLayer进行排序,SortLayer靠前的会被优先渲染。
4. SortOrder(z轴?)
当相机、SortLayer都相同时,按照SortOrder进行排序,SortOrder低的优先被渲染。
5. RendererQueue 2501~5000
当相机、SortLayer、SortOrder都相同时, 按照RendererQueue进行排序, RendererQueue较低的优先渲染。
注意: 由于透明物体往往关闭了深度写入, 因此此时渲染顺序将严格按照RendererQueue进行排序。Unity在渲染透明物体时,如果RendererQueue相同,则会严格按照由远及近的顺序调用DrawCall。
6. Hierarchy顺序
在UI中,以上条件皆相同的情况下,会按照UI在Hierarchy面板中的顺序进行排序。
SortLayer、SortOrder这些属性都是canvas的,那么同一canvas下的控件如何不通过Hierarchy面板中的顺序进行渲染呢:
改变控件之间的层级关系
原文链接:https://blog.csdn.net/kingsea168/article/details/50252733
同一canvas下:
改变控件transform的SiblingIndex,
transform.GetSiblingIndex();
transform.SetSiblingIndex(int index); //index值越大,越后渲染,层级越大,越显示在前面
最后
以上就是仁爱招牌为你收集整理的Unity笔记--渲染顺序1. 相机(depth)2. RendererQueue 0~2500(不关深度写入就是按z值显示)3. SortLayer4. SortOrder(z轴?)5. RendererQueue 2501~50006. Hierarchy顺序的全部内容,希望文章能够帮你解决Unity笔记--渲染顺序1. 相机(depth)2. RendererQueue 0~2500(不关深度写入就是按z值显示)3. SortLayer4. SortOrder(z轴?)5. RendererQueue 2501~50006. Hierarchy顺序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复