Unity渲染顺序(2)

Camera

在这里插入图片描述
除了Screen Space - Overlay(屏幕空间覆盖模式)下的Canvas,场景中的其他物体需要渲染到屏幕中,都需要在指定的相机的绘制下。场景中可以创建多个相机,每个相机所拍摄的内容可能并不相同,在场景中有多相机的情况,不同的相机通过Depth属性确认排序层级,Depth值越大,排序层级越高。

Sorting Group

在这里插入图片描述
当场景中的对象有子节点,且子节点数量较多的情况下,因为非UI对象,子节点的渲染顺序是与父子关系无关的,都是依赖于子节点上的SortingLayer 和 Order In Layer 排序,那么我们克隆一个对象,因为每个渲染对象上的 排序属性并不会改变,将导致两个整体的对象呈现错位的显示。

Sorting Group 将会把对象及其子节点同一批次渲染,这样保证了我们单个整体对象的一起渲染。
回观Canvas组件,UI对象并不是绘制到画布上,而是与Canvas的排序层级在一个批次中渲染,而UI对象决定了在一个批次中的渲染的优先级顺序。
而我们需要Camera渲染到屏幕中的对象,也将根据投射的相机,与Camera同一批次渲染,在批次中的顺序将由他们的排序层级中决定

  • 注意:Canvas并不会受到Sorting Group的影响, 也就是说及时Canvas对象的父级对象中存在Sorting Group组件,Canvas依然是根据自己的排序渲染,并不会被整合到父级对象的批次中。

渲染顺序总结

  1. Canvas(Screen Space - Overlay)
    排序层级最高的应该是我们不借助Camera渲染的 Canvas的屏幕空间覆盖模式,也就是说它将至于屏幕的最上层

  2. Camera -(Depth)
    场景中存在多个Camera对象时,两个物体在不同的Camera对象上,那么物体的渲染顺序将由Camera的Depth属性决定,值越大,优先级越高

  3. 透明、不透明物体
    Unity的渲染相关的组件需要借助于Material(材质),而Material是有由Shader创建的,在Shader上有一个 RenderQueue 属性。 那么这个是我们的渲染物体的渲染队列属性,Unity把2500作为透明与不透明物体的分割线,大于2500的属于我们的透明物体,小于等于2500的属于不透明物体,而不透明物体的物体在透明物体的渲染之前,Unity先渲染不透明物体,在渲染透明物体,在屏幕上显示透明物体的层级将更高。

  4. SortingLayer
    SortingLayer 属性我们前面介绍过,它是我们渲染对象的排序层级,在编辑面板中越靠后的层级越高,越往后渲染。当两个渲染对象的SortingLayer一致的时候,比较Order In Layer的数值,数值越大越靠后渲染,层级越高。

  5. RenderQueue
    当上面的条件都一致的时候,我们判断RenderQueue的值,值越大,越靠后渲染,层级越高。

  6. 深度排序
    渲染组件的深度由对象上的Z值决定。
    不透明物体由近到远排序优先
    透明物体由远到近排序优先

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静水流深&1111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值