Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解
1.简述两个属性
1.1 Clear Flags 清除标记
每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用多个相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个选项之一来完成:
1.Skybox 天空盒
这是默认设置。在屏幕上空的部分将显示当前相机的天空盒。如果当前相机没有设置天空盒,它会默认使用渲染设置(在Edit->Render Settings里)中选择的天空盒。然后它将退回使用背景颜色。另外天空盒组件可以添加到相机上。如果你想创建一个新的天空盒,您可以使用本指南。
2.Solid Color 纯色
屏幕上的任何空的部分将显示当前相机的背景颜色。
3.Depth Only 仅深度
如果你想绘制一个玩家的枪而不让它在环境内部得到裁剪,你要设置一个深度为0的相机来绘制环境,还要另一个深度为1的相机单独绘制武器。该武器相机的清除标记应设置为仅深度。这将保持环境的图形显示在屏幕上,但会丢弃所有关于每个对象在三维空间中的位置的信息。当枪被绘制出来,不透明的部分将完全覆盖任何已绘制的事物,而不管枪到墙之间如何接近。(这部分看起来很费劲)
4.Don't Clear 不清除
该模式不清除任何颜色或深度缓存。其结果是,每帧绘制在下一帧之上,造成涂片效果。这不是用于游戏的典型方式,最好是与自定义着色器一起使用。
1.2 Culling Mask 剔除遮罩
剔除遮罩使用层有选择地渲染一组对象。有关使用层的信息可以在这里找到。
通常好的做法,是把用户界面放到不同的层,然后用一个独立相机单独渲染UI层。
为了使UI显示在其他相机视角的顶部,你还需要设置清除标记为Depth only,并确保UI相机的深度比其他相机高。
2.下面将通过几步演示来展示摄像机该两个属性
一:
首先在Unity场景中创建两个摄像机,分别命名为camera1和camera2;
再在场景中创建一个cube和Sphere作为摄像机的拍摄物体;并让两摄像机都能够拍摄到两个物体。
接着设置camera1的Depth为0,camera2的Depth为1;
你会发现Game窗口将只显示camera2拍摄到的画面;
可见摄像机Depth属性设置相机绘图顺序,具有较大值的相机将被绘制在具有较小值的相机的上面,换言之,一个深度为1的相机将绘制在一个深度为0的相机之上。
二:
Clear Falgs默认Skybox;
将camera2的Clear Falgs设置为Depth Only;
此时你可以看到Game窗口将显示camera1和camera2同时拍摄到的画面;
由此可见,要想将多个相机拍摄的画面渲染到同一个画面是很简单的事情,只需要将它们的Clear Falgs设置为Depth Only;但是有一个条件是,它们的Depth都需要比Clear Falgs为Skybox或Solid Color的摄像机的Depth高,这样才可以将多个相机单独拍摄的画面叠加于同一个画面上。
三:
现在的问题是,两个摄像机拍摄的物体是一样的,我该如何让camera1只拍摄场景背景,而camera2只拍摄制定的物体;
在场景中创建一个plane,并设置材质,充满camera1画面,当做场景背景。
接下来,我们要为物体设置层关系。Unity的Layer的概念可以类比PS里面的图层。
首先,添加一个层(Layer),如下图所示,并命名为object;
其次,给物体设置层;如图将sphere物体的层设为object层;同样cube的层也设置为object层。
最后你将设置两个摄像机的culling mask 属性,以使摄像机渲染指定层物体。
摄像机的cullingmask默认为Everything,表明渲染所有层的物体。
Camera1:将culling mask里面的object层勾去掉,culling mask将显示为Mixed… ;你将发现Camera1的窗口将只显示背景图片,物体没有被渲染。
Camera2:在culling mask选项里面先勾选Nothing,再勾选object层,表明该摄像机只渲染属于object的东西,将不会拍摄到别的图层。
最后,在Game窗口看到两个摄像机叠加的画面;
四:
至此,我们明白了摄像机的Depth、Clear Falgs和Culling Mask的强大作用。
同样的,如果是制作游戏,你可以创建一个界面摄像机,单独渲染界面,而别的摄像机将渲染场景。你只需要添加UI图层,将所有的界面物体的Layer设置为UI,UI摄像机的Culling Mask也只勾选UI层。
上面的Game窗口视图,为三个摄像机拍摄的画面叠加而成。
由于本博文上传的图片丢失,故将文档上传,下载地址:http://download.csdn.net/detail/tanmengwen/5255294
转载:http://blog.csdn.net/tanmengwen/article/details/8798231
Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解相关推荐
- unity和C#的多线程 Thread的IsBackground属性,详解
Thread的IsBackground = true;//主程序结束后,线程随之结束 [日常要用到的] Thread的IsBackground = false;//主程序结束后,线程不会随之结束 案例 ...
- Unity零基础到进阶 ☀️| 音频源Audio Source组件 详解
[Unity3D组件使用指南]AudioSource组件 详解 一.组件介绍 二.组件属性面板 三.代码操作组件 四.组件常用方法示例 五.组件相关扩展 1.在Unity中听不到声音的问题 总结
- Mask RCNN算法详解(总结)
Mask RCNN:目标检测+实例分割 作用:可以完成目标分类,目标检测,语义分割,实例分割,人体姿态识别等多种任务. 1.实例分割与语义分割的区别和关系? 通常的目标分割是指语义分割,实例分割是从目 ...
- Unity 3D 摄像机的类型
摄像机的类型 摄像机有两种类型:"Perspective"(放射观察角度)和"Orthographic"(垂直观察角度). 视图修改摄像机类型 在摄像机的Ins ...
- Unity之ASE 属性面板详解
前言 我们详细的讲解下ASE编辑器的属性面板. 我们先来看下大致的面板信息,如果对某一条属性有疑问,可以往后查找 1.General 通用面板 Shader Name: Editable text b ...
- linux 权限 mask,Linux mask有效权限详解
前面,我们已经学习如何使用 setfacl 和 getfacl 为用户或群组添加针对某目录或文件的 ACL 权限.例如: [root@localhost /]# getfacl project #fi ...
- 静止的单摄像机无法得到像点的三维坐标详解
我们知道在机器视觉中通常要使用的搭建的视觉测量系统对一个物体的尺寸.形变.以及三维形貌进行测量.一般按照摄像机的个数以及组成部分分为三类测量方法.分别为单目测量.双目(大于2为多目)测量.以及结构光测 ...
- Mask Scoring R-CNN[详解]
Mask Scoring R-CNN:Path Aggregation Network for Instance Segmentation(CVPR2019 oral) (消息来源: 性能超越何恺明M ...
- 3D游戏建模入门基础:3dmax常用功能详解
你收藏了那么多教程,却不知道3dmax怎么入门?掌握3dmax常用功能是3dmax入门的基础之一,所以呢小编今天就为您盘点了一些3dmax最常用到的功能和使用方法,快来和小编一起学习3dmax入门基础 ...
最新文章
- excel vlookup多个条件匹配多列_Excel中的Vlookup函数,轻松实现多条件查询!
- Data Mining with Big Data--阅读笔记
- Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色
- Bzoj4817:[SDOI2017]树点涂色
- 机器学习中的数学(2)-线性回归,偏差、方差权衡
- ping 计算机名 ipv4,09. 查看本地链路地址(fe80);ping主机名称时IP
- ECstore报表不显示解决
- java数学系统总结与展望_总结与展望
- 为何大富连续三天彻夜未眠!
- python判断汉字偏胖_写了2年python,知道 if __name__ == '__main__' 什么意思吗?
- 高斯正算matlab,MATLAB实现高斯-克吕格投影正算
- mac版本 sadptool_EZParkTools下载-智慧停车维护工具 v1.0 官方版 - 安下载
- java实现图片base64写入本地
- 大学生html电影网页设计作业成品 我喜欢的电影榜单题材网页制作代码 简单静态网页模板下载
- 互联网大佬生存法则 如何防守周鸿祎
- PAT练习集L1之四(10分题之不仔细看头铁wa题)
- 光猫拨号和软路由拨号失败服务器无响应,光猫拨号好还是无线路由器拨号好(一文解答你的疑惑)...
- STM32F429 以太网MAC滤波应用说明
- MyBatis 源码阅读 -- 核心操作篇
- 机械公敌引发的人工智能思考