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

unity 摄像机

2020-07-06 14:37 155 查看

一 概述

Unity的相机用来将游戏世界呈现给玩家。你始终至少有一个相机在场景中,你也可以有多个。多相机可以给你一个双人分屏效果或创建高级的自定义效果。你可以让相机动起来,或用物理(组件)控制它们。几乎你能想到的任何事,都可以用相机变成可能,而且为了适合你的游戏风格,你可以用典型的或特殊的相机类型。

二 属性

1 clear flags
确定屏幕的哪一部分将被清除。
每个摄像机在渲染它视图的时候都会缓存颜色和深度信息。绘制出来的图像中那部分没有被绘制到的部分是空白的,默认的情况下会显示天空盒的颜色。
当使用多个摄像机的时候,每个都在缓存中存放了它自己的颜色和深度信息,在每个相机渲染的时候会累积更多的数据。在场景中任何特定的摄像机渲染其视图的时候,可以指定清除标志来清除缓存信息中的不同部分。可选项有skybox,solid color,depth only和dont clear。
<1> Skybox
这是清除标志的默认设置。屏幕的任何空白部分都会显示摄像机的天空盒,如何当前摄像机没有设定天空盒,它会默认使用渲染设置中(Eidt->Render Settings)的天空盒。假如默认渲染设置中也没有设定天空盒,它会退而使用背景色。可以选择是否将一个天空盒组件添加到摄像机。
<2> Solid Color
屏幕的任何空白部分都会显示当前摄像机的背景色
<3> Depth Only
如果想要绘制一个玩家的枪而不让它在环境中不被裁剪,可以设定一个深度为0的相机来绘制环境,同时另一个深度为1的相机单独绘制这个武器。武器相机的清除标志应该设置成Depth Only。这会保持环境的图形显示在屏幕上,但是丢弃所有关于每个对象处于3D空间什么位置的信息。当枪被绘制的时候,被绘制出来的不透明部分会完全覆盖现有的被绘制的环境图像,而不管枪离墙壁多近。
为相机使用Depth Only作为清除标志,会使相机仅仅根据相机的深度信息来输出画面,比如相机深度为N的清除标志设为Depth only,那么它的输出会直接覆盖在所有深度小于N的相机输出画面上,而不管在真实的3D环境中,各种对象的z值如何。
<4> Don’t clear
这个模式下不会清除颜色和深度缓存。这会导致下一帧会在上一帧的结果上进行绘制,这个模式在游戏中用得少,一般用于常规的shader中。
不清除的话不过一会屏幕所有的空白区域都会被填满,完全看不出是什么东西。

2 Background
在没有天空盒的时候,当所有的元素绘制完成后剩余屏幕的颜色,即那些没有被元素绘制到的屏幕区域显示的颜色

3 Culling Mask
用于来设定是否剔除处于某一层的对象。Unity场景中的每一个对象,都被分配了一个层,默认为“default”层。打开层级管理器可以看到初始状态下分配了8个层,即0-7层是已经被U3D使用,而”default”处于第0层。
摄像机的Culling Mask的可选项就是这些被使用的层,外加两个完全选项Everthing和Nothing,摄像机Culling Mask的默认选择是Everything,即不剔除任何层,这个时候所有的层也都被选中,如下图
假如现在要隐藏处于Background Image层的对象,只需在该列表中取消勾选Background Image即可。

4 Projection
摄像机的投影方式,有透视投影和正交投影两种。
正交投影:投影线垂直于投影面,也叫平行投影
将摄像机设成正交投影,可以看到它变成了一个立方体

5 Size
当摄像机设成正交投影时,摄像机对应的那个长方体的大小

6 Field of view
视角,透视投影时才有的特性。视角越大,能看到的视野也越大,对应的焦距也越短

7 Clipping Planes
裁剪平面,Near和Far指定了裁剪的区域范围,即在Near-Far范围之内的面将被裁剪掉,不进行渲染。
远近裁剪平面和由Field Of view决定的平面一起构成一个椎体,被称为相机椎体或视椎体,完全处于该椎体之外的物体将会被剔除,这被称为椎体剔除。

8 Normalized viewport rect
指定如何将摄像机的视图绘制到屏幕坐标系上(取值范围为0-1)
X:摄像机视图在屏幕上被绘制的水平初始位置
Y:摄像机视图在屏幕上被绘制的垂直初始位置
W:摄像机视图输出图像占屏幕宽度的比例
H:摄像机视图输出图像占屏幕高度的比例
U3D屏幕的坐标系是以左下角为坐标原点,向右为X轴,向上为Y轴

9 Depth
摄像机在绘制序列中的位置(层级)。有更大深度值的摄像机将会在深度值更小的摄像机上面绘制,即假如两个相机C1和C2,深度值分别为10和8,假如将摄像机设为在场景中可见,则C1会在C2的上层绘制,会把摄像机C2也绘制到图像中

10 Rendering Path
用于指定摄像机使用哪种渲染方法,有下面几种
Use Player Settings,摄像机会使用在玩家配置里面指定的渲染路径
Vertex Lit,所有被该摄像机渲染的对象都会被渲染成Vertex-Lit对象
Forward,所有的对象都会被渲染为一个材质对应一个通道
Deferred Lighting,所有的对象在没有光照的情况下绘制一次,然后在渲染队列的末端将所有对象的光照一起绘制,也就是所谓的“延迟光照”技术。

11 Target Texture
可以用于容纳摄像机视图输出的Render Texture对象的引用,设定这个引用将会禁止摄像机将视图绘制到屏幕

12 HDR
启用摄像机的高动态范围渲染(High Dynamic Range Rendering)

13.Allow MSAA:允许进行硬件抗锯齿。

14.Allow Dynamic Resolution:如果相机使用动态分辨率渲染,则为True;如果不是,则为false。即使此属性为true,也仅在当前图形设备也支持使用动态分辨率。

15.Stereo Separation:虚拟眼睛之间的距离。使用此选项 查询或设置 当前眼睛分离。请注意,大多数VR设备都提供此值,在这种情况下设置该值将不起作用。

16.Target Display:此设置使Camera渲染到指定的显示中。支持的最大显示数量(例如监视器)为8.。

17.Target Eye:定义相机渲染的VR显示的哪个眼睛。此属性仅在启用虚拟现实时使用。默认是渲染到双眼。

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