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有关,这里就不多写了。
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有关,这里就不多写了。
相关文章推荐
- 【Unity3D】坐标转换
- 【程序员联盟】官网上线啦!coderunity.com
- Unity渲染路径
- [Unity3D]Unity3D圣骑士当游戏开发商遭遇Mecanim动画系统
- 使用UnityEditor做工具
- 噩梦5Tilt Shift (Lens Blur) 倾斜移位(镜头模糊)
- 噩梦5 敌人血量
- 噩梦射手5 角色血量 死亡 重新加载
- 噩梦射手5 移动 转向 这个没有加速的过程 不适合rpg人物 把移动检测去掉
- Unity3D 学习入门
- Unity3d如何读写XML文件
- unity灯光Lightmapping、LightProbes
- 【Unity】基础知识结构总结
- Unity NGUI中Tween的使用事项(缺少动画过程)
- Unity 5 全局光照GI与新的烘焙系统初探
- Unity 5.0 无法通过GUIText类型在脚本中调用画布中的Text文字
- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期
- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期
- Unity3d与设计模式(三)工厂模式
- unity-UIInput自定义限制输入字符