Unity笔记--渲染顺序

1. 相机(depth)

  相机的排序一定是最高级,按照相机depth升序渲染,depth 越小越先渲染,即depth 越大的相机渲染的画面越在前;

2. RendererQueue 0~2500(不关深度写入就是按z值显示)

shader往往开启深度写入,所以sortlayer、sort order及render queue造成的渲染顺序改变对于显示顺序并无影响;

RendererQueue含义
Background 1000This render queue is rendered before any others. 这个队列通常被最先渲染(比如 天空盒)。
Geometry 2000Opaque geometry uses this queue. 这是默认的渲染队列。它被用于绝大多数对象。不透明几何体使用该队列。
AlphaTest 2450Alpha tested geometry uses this queue. 需要开启透明度测试的物体。Unity5以后从Geometry队列中拆出来,因为在所有不透明物体渲染完之后再渲染会比较高效。
GeometryLastLast render queue that is considered “opaque”. 所有Geometry和AlphaTest队列的物体渲染完后
Transparent 3000This render queue is rendered after Geometry and AlphaTest, in back-to-front order. 所有Geometry和AlphaTest队列的物体渲染完后,再按照从后往前的顺序进行渲染,任何使用了透明度混合的物体都应该使用该队列(例如玻璃和粒子效果)
Overlay 4000This 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值越大,越后渲染,层级越大,越显示在前面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值