精华内容
下载资源
问答
  • Unity渲染层级

    2020-11-02 19:18:15
    Unity渲染层级有三种:Camera、Sorting layer、Order in layer 一般创建新场景的摄像机都是为Camera层,而且初始的depth为-1,在同一个摄像机下,也就是在Camera下,层级的优先级就需要根据Sorting layer来进行...

    Unity的渲染层级有三种:Camera、Sorting layer、Order in layer
    在这里插入图片描述
    一般创建新场景的摄像机都是为Camera层,而且初始的depth为-1,在同一个摄像机下,也就是在Camera下,层级的优先级就需要根据Sorting layer来进行渲染。
    在这里插入图片描述
    就如上图,一般初创的Object的Sorting layer都是Default数值,这里的layer是自己定义的,这也就是说在Sorting layer里面可以定义自己的层级,而且这个定义的层级默认是比Default层级高的。如果不同的物体(Object)都是在相同的Sorting layer下的话,假设就像图片里面的一样,在相同的layer下面,那么这个时候就要根据Order in Layer上面进行比较了,Order in Layer的数值越大,那么层级就越高,优先级就越高。
    除此之外,还有一种叫做Overlay,这个代表的意思是超过所有层,永远放在层级最高的地方(也就是放在最上层)
    在这里插入图片描述
    除去讲渲染层级之外,还要补充说明一下渲染层级和layer的不同,看下面的图片:
    在这里插入图片描述
    这是摄像机的Culling Mask属性,再看下图:
    在这里插入图片描述
    会发现这里的layer显示的东西和上面Camera的Culling Mask属性显示的东西大多是一样的,那么这里的layer表示的是什么,这里表示的不是渲染层级,而是Unity中摄像机可以显示的层,可以理解为一种标记,如果自身所带的标记在摄像机中没有打钩,那么你这个Object在工作的界面是可以看到的,但是在显示界面是看不到的,就像下面这张图所显示的那样:
    在这里插入图片描述
    我先是自己新建的一个layer,这里是指Culling Mask属性中的layer数值,然后在Camera中将我自行定义的layer的√划掉,然后就会产生如上图这样的结果,所以要特别注意layer和渲染层级的不同。

    展开全文
  • Unity 渲染层级

    千次阅读 2016-07-21 22:30:24
    转载自: ... 最近连续遇到了几个绘制图像之间相互遮挡关系不正确的问题,网上查找的信息比较凌乱,所以这里就把自己...简单总结一下,决定Unity渲染关系的层级顺序是: Camera sorting layer sorting order

    转载自: http://blog.csdn.net/meegomeego/article/details/42060389

    最近连续遇到了几个绘制图像之间相互遮挡关系不正确的问题,网上查找的信息比较凌乱,所以这里就把自己解决问题中总结的经验记录下来。

    Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会覆盖depth低的相机(具体的覆盖关系有don’t clear, solid color等等几种)

    比Camera层稍低一层的是sorting layer层, 随便找一个可以设置sorting layer的地方,选择sorting layer,点添加按钮,就可以看到当前所有的sorting layer,并且可以更改sorting layer的顺序,排位靠后的sorting layer会覆盖排位靠前的sorting layer。 设置好sorting layer的相互关系之后,就可以给任何一个继承于Renderer类,或者有renderer的子类作为field的对象设置sorting layer了。 注意这些sorting layer的遮挡关系是在同一个camera的层级下的。 不同camera下的renderer渲染顺序以camera的depth为准。 有的component的sorting layer可以直接在unity editor里面设置,比如Sprite Renderer。 有的则需要用代码来设置,比如设置Particle system的sorting layer, 就需要在代码中取到 ParticleSystem.Renderer.SortingLayer 来进行设置。

    比sorting layer再低一层的是sorting order, 这个数字指代的是在同一个sorting layer下的渲染顺序,用法很明显就不赘述了。

    需要注意不要混淆的是gameobject的layer,和renderer的sorting layer。 gameObject的layer个人理解是一个逻辑上的分层,用于camera的culling mask等。 而renderer的sorting layer则用于渲染。只有继承与renderer或者有renderer作为filed的component才需要设置sorting layer。

    另外需要指出的是,常用的NGUI的widget depth其本质也是一个sorting layer下的sorting order。 NGUI好像用的是一个叫做“UI”的sorting layer。 由此大家如果有需要,也可以自己取Hack NGUI的代码,把NGUI的sorting layer暴露出来供自己定制。

    简单总结一下,决定Unity渲染关系的层级顺序是:

    Camera

    sorting layer

    sorting order

    展开全文
  • Unity 渲染层级 RenderQueue SortingLayer SortingOrder 相机渲染顺序 相机的渲染顺序,由Camera的Depth参数控制 RenderQueue Queue分为五个队列: Background,天空盒,天生用来被覆盖的(1000) Geometry,不透明...

    Unity 渲染层级 RenderQueue SortingLayer SortingOrder

    相机渲染顺序

    相机的渲染顺序,由Camera的Depth参数控制

    RenderQueue

    Queue分为五个队列:

    Background,天空盒,天生用来被覆盖的(1000)

    Geometry,不透明物渲染队列(2000)

    AlphaTest,通道测试的几何体使用这个队列,这些物体的渲染有点介于Opaue与Transparent之间(2450)

    Geometrylast,特殊的点,定义了透明与不透明的分界点(2500)

    Transparent,不写深度的物体,一般是透明物或粒子效果(3000)

    Overlay,最后渲染的内容,天生覆盖别人的,如UI(4000)

    RenderQueue与SortingLayer与Order之间的关系

    1. Queue > 2500的物体绝对会在Queue <= 2500之后渲染,这时Layer、Order将完全不起作用

    2. Queue位于1中的同一侧时,Layer低的先渲染,无视Queue与Order值

    3. Queue位于1中的同一侧时,Layer相同,Order低的先渲染,无视Queue

    4. Layer与Order都一样时,Queue低的先渲染

    Opaque调整SortingLayer,SortingOrder为什么没作用?

    因为不透明物体是打开ZWrite的,即使改了SortingLayer与Order,让一个本来在后边(Z值大)的物体先渲染了,但是另一个物体渲染时

    由于Z值小,写深度以后,立马把前边的物体覆盖了,结果总是一样的;透明物渲染时,关闭了ZWrite,渲染的结果不是替换的,是

    混合的,所以先渲染后渲染,结果就可能会不同(与混合的方式有关)

    原文:https://www.cnblogs.com/hiker-online/p/12489252.html

    展开全文
  • unity 渲染层级详解

    千次阅读 2019-02-25 14:08:39
    Camera是unity中最优先的渲染顺序控制。depth越大,渲染顺序越靠后。  2、Sorting Layer 在Tags &amp; Layers设置中可见 3、Order In Layer 相对于Sorting Layer的子排序,用这个值做比较时只有都在同一...

    1  Camera 
    Camera是unity中最优先的渲染顺序控制。depth越大,渲染顺序越靠后。 

    2、Sorting Layer
    在Tags & Layers设置中可见

    3、Order In Layer
    相对于Sorting Layer的子排序,用这个值做比较时只有都在同一层时才有效。
    4、RenderQueue
    Shader中对Tags设置的“Queue”。

    当Sorting Layer和Order In Layer相同时
    RenderQueue小的先进渲染管线。

    当Sorting Layer和Order In Layer不相同时!
    当两个材质使用了不同的RenderQueue,且这两个RenderQueue都在[0~2500]或[2501~5000]时,SortingLayer和OrderInLayer的排序生效。

    当两个材质使用了不同的RenderQueue,且这两个RenderQueue分别在[0~2500]和[2501~5000]时,则一定会按照RenderQueue绘制,无视SortingLayer、OrderInLayer的排序


    5、 MeshRenderer 和SpriteRenderer 都是继承于 Renderer 的组件 
    它们的 sorting 和 orderinlayer 都是暴露出来的属性  可以在属性视图修改
    模型蒙皮  skinned mesh render 虽然也继承了 Renderer 但在属性视图没有出现该属性    一般只能更改蒙皮的shader  RenderQueue  调整默认sorting layer 和 Orderinlayer下 和其他物体的层级
    所以一般设置材质的renderQueue或直接在shader中设置。

    在ShaderLab中,有4个提前定义好的render queue,你可以设置更多的在他们之间的值:
    Background :表示渲染在任何物体之前 
    Geometry(default):渲染大多数几何物体所用的render queue 
    AlphaTest:用于alpha测试 
    Transparent:用于渲染半透明物体 
    Overlay:渲染所有物体之上


    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    如果混用 2DUI 和 模型  模型又穿插在两个 NGUI panle中间  不通过增加摄像机数量来解决的话应该怎么办:
    默认情况下 游戏中只有一个默认的 sorting layer , 和一个默认的 OrderInLayer 。 所有物体都在一个 sorting layer 和
    OrderInLayer 下面  ,
    这时候设置渲染顺序的方式就是通过更改 RenderQueue ,较小的先渲染  ,   Ngui panle 会默认根据drawcall 优化操作 设置当前panle下的ui RenderQueue (一般是3000起)。

     

    Automatic:由NGUI自动生成 
    StartAt:手动设置一个值 
    Explicit:同一个panel下的RenderQueue的值相同

    看代码可以理解一下,UIPanel.cs 

    而使用 skinned mesh render , 则是更改使用材质处shader 的 skinned mesh render ,  设置值在两个panle  RenderQueue 之间就行了。

    如果是使用龙骨和spine 动画还有粒子系统的话, 层级控制就只能在默认 sorting layer 下更改 龙骨、 spine、粒子系统的 orderinlayer ,    再打开 ngui panle 上的 oder in layer 选项,   通过设置3者之间的oder in layer值调整顺序就好了 。

    再加上 使用skinned mesh render 蒙皮的模型的话,在开启ngui panle的 oder in layer 后,  由于模型默认在最低的 order in layer 下,此时 ,再怎么调整模型的 shader RenderQueue 模型都不会渲染到最上面,解决办法是:
    通过脚本获取 模型 skinned mesh render 的  oderinlayer 参数,  并修改它的值穿插在各层之间 

    (1 性能上可能增加drawCall 还未具体测试过 , 模型是不是这样修改渲染层级我也不知道 ,没怎么用过 ,这只是我自己的解决方案。 2 还于到一个情况  ,如果Ngui的panle  打开了Oder in layer 选项而又 设值为0 的情况下  ,该panle下的对象 可能渲染到最上层,原因可能要看代码了)。

    展开全文
  • 决定Unity渲染关系的层级顺序是: Camera.depth Sorting layer Order in layer Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth...
  • Unity渲染层级关系

    千次阅读 2018-01-24 11:35:33
    一、条件:Render Mode都是Screen Space-Camera时的渲染顺序 1.遵循刷油漆规则 2.依次由Render Camera的Depth值、Sorting Layer先后顺序、Order in Layer值决定 Render Camera不同时,由Render Camera的...
  • Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会...
  • Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会...
  • Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会...
  • Unity2D 渲染层级

    千次阅读 2018-02-13 17:58:41
    Unity 渲染层级 渲染效果:谁被在下面,谁在上面。 -渲染层级 camera(摄像机) Depth(值越高物体越在上面) 在同一个camera中 sorting layer(越在下面的sorting layer 越在上面) 例如:player ...
  • Unity3D渲染层级

    2018-05-12 13:15:19
    渲染层级的优先级(从上往下降序排列)Camera sorting layer (类似不同的文件夹)sorting order(类似文件夹下的文件 数值越大越后渲染 例:2&gt;1 所以当2和1 重叠放置的时候 2覆盖1 2在1上边 你可以看见2 ...
  • unity-渲染层级关系Camera层级在同一Camera下,Sorting LayerOrder in Layer层级Layer层级小结 渲染主要是针对Game窗口下显示的内容,类似于画板,先画一层后画一层,后画的可以把之前的一层给覆盖掉。于是unity有...
  • Unity层级渲染

    2018-08-22 11:36:40
    渲染 3D 3D/2D 2D Camera 目录: Part1 3D渲染 Part2 UGUI Canvas渲染 ...Camera(多摄像机) 渲染 ... Unity中根据 Z 轴,即物体的深度来进行渲染。越靠近摄像机的物体越显示在前面 其中,Cu...
  • Unity更改渲染层级代码

    千次阅读 2015-10-14 14:15:36
    粒子特效的默认渲染层级比UI的渲染层级低。 UI默认的渲染层级为3000,把粒子特效的渲染层级改到3000以上就可以了。 public static void SetMaterialRenderQueue(Transform trans, int renderQueue) {...
  • Unity&NGUI渲染层级

    千次阅读 2017-11-08 14:00:02
    尊重原创,转载请在文首注明... 项目中经常遇到层级的显示问题,来总结下。 一,Unity 按优先级从高到低排列: 1,Camera.depth depth小的先渲染。 2,Renderer.sortingLayerID sortingLayerID为基类Rend
  • Unity中的渲染顺序自上而下大致分为三层。 最高层为Camera层,可以在Camera的depth那里设置,设置之后,图形的渲染顺序就是先绘制depth低的相机下的物体,再绘制depth高的相机下的物体,也就是说,depth高的相机会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,223
精华内容 1,289
关键字:

unity渲染层级