您的位置:首页 > 移动开发 > Unity3D

Unity中的摄像机camera的depth属性与Render Queue的区别

2015-07-26 12:57 357 查看
        好久不来博客,最近遇到一个问题:插件kolmich小地图与NGUI的显示顺序,由于两个插件都有自己的camera,小地图一直显示在ngui对话框的前面,却怎么也不好调到后面去。调了render queue发现一直没有效果,后来是发现误解了render quueue的意思,需要调depth。

        Render Queue:如果你使用Unity做过一些透明和不透明物体的混合的话,很可能已经遇到过不透明物体无法呈现在透明物体之后的情况。这 种情况很可能是由于Shader的渲染顺序不正确导致的。通过调整Queue值,
我们可以确保某些物体一定在另一些物体之前或者之后渲染,这个技巧有时候很有用处。但是这只是针对同一个camera渲染的物体。

     
depth:官网API的解释是:相机在渲染顺序上的位置。具有较低深度的相机将在较高深度的相机之前渲染。也就是说depth越高,界面窗口的显示越靠前。这个理解起来比较绕口,我们通过一个例子来看。

  1.在Unity中新建一个场景,场景中新建一个cube和sphere.

  2.在场景中再新建两个camera分别命名为camera_cube和camera_sphere,并建立两个layer type分别是cube和sphere(如图2-1),camera_cube的culling
mask设置为之照射cube层,camera_sphere同理。

    


        图2-1

 3.将cube和sphere的layer分别设置成对应的cube和sphere,若场景中看不到cube和layer适当拖动摄像机,让cube和sphere在摄像头的视野范围内。

 4.调整camera_sphere的depth为5,这时候场景中显示只看到sphere,切换调整camera_cube和camera_sphere的depth大小,便会发现场景中cube显示与sphere显示切换。如图4-1,2

  




 5.有时候项目中depth差很小的情况下,看不出前后,可以适当调大。

   Render queue的调整主要跟shader有关,这里就不多写了。

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: