九、Camera
什么是摄像机(Camera)
将3D世界拍摄出2D的画面 从而显示到屏幕上
摄像机的角度和位置不一样 就能拍出不同的画面
Camera节点能够拍摄正因为带有了Camera组件
clearFlags
clearFlags 屏幕上任何空的部分将显示当前相机的XXXX(以xxx为背景来绘制场景)
- skybox即天空 屏幕上若没有物体 则看到天空
摄像机内若没有任何物体 则绘制天空 当绘制出天空后 再绘制每一样物体 - solid color即纯色背景
- depth only即仅仅清除深度信息
- don’t clear即不进行任何处理 没有背景
culling mask
culling mask即摄像机对哪些物体时 是可见的 即 摄像机能够拍摄哪些物体
和layer有关:
layer也可以自己添加
Clipping Planes裁剪平面
摄像机能够拍摄到多远的距离
Near:最近距离
Far:最远距离
Viewport Rect
成像出的视窗大小
x和y是所处的位置的坐标轴
该属性通常用于多个摄像机 同时监视多个画面时
若都改成0.5 那么只有四分之一了
Depth
Depth是摄像机的顺序
若场景中有两个摄像机 这两个摄像机都会将各自的画面输出到屏幕上
那么 有个绘制的先后顺序 哪个先绘制 哪个后绘制
- Depth大的 后绘制
- Depth小的 先绘制
Target Display渲染目标
为什么要有这么多Display
因为一台电脑可以接多台显示器 可以使用扩展将应用显示到多台显示器上
Target Display就是渲染目标 控制显示在哪台Display上
?透视摄像机和正交摄像机
用Projection属性来控制投射类型
- Perspective是透视投射 就是有个锥角来投射
同时会提供Field of View控制视角的角度
所展示的这个视角被称为视椎 在视椎外的场景不会被绘制
该模式的特点是距离越近的宽度越宽 距离越远的宽度越窄 较为符合通常的摄像方式 - Orthographic是正交摄像机
该模式下 拍摄角不是一个椎体了 而是一个立方体
size
是在纵向(y)上一半的显示范围
正交投射不会有远处窄近处宽的特点 不适合3D场景 但适合2D界面
遮挡剔除
在绘制的时候 由于是按顺序绘制的 因此部分被遮挡了的物品是没必要被绘制的 这样可以提高性能
因此需要开启遮挡剔除:
(若勾选 则开启)
一个模型下有很多子节点 相当于零部件用于拼凑成完整的模型
遮挡剔除实际上是针对带有Mesh的子节点的
因此 关卡中的几何体必须被分割成明显的不同尺寸的块 也有助于布置关卡中小块的容易定义的区域被其他大物体遮挡(例如墙壁和建筑物)
每个单独的Mesh被确定是否渲染 取决于Occlusion(包藏)数据
因此 若有一个物体包含了房间里的所有家具 那么所有家具要么全渲染 要么全不渲染 这是不妥当的 因此需要分开
是否渲染是基于组件而不是基于每个单独的物体自身的
十、光源
光源实际上也就是一个普通节点 只不过添加了Light组件
每种光都会有颜色 波及范围及强度 这三个因素决定了一个光源
?Unity的光源:
- 1、平行光源 - 模拟现实的太阳光
有颜色和范围 强度 范围是全局的 强度都是一致的 - 2、点光源 - 模拟现实的灯泡的光
从一个点开始 光向四周四散 强度根据距离衰减 有一定的范围 - 3、聚光灯 - 模拟现实的台灯
光像一个椎体 光中有一个看不见的中间轴 越靠近中间轴则光强度越强
?太阳光 / 平行光
光的颜色:可以自己调整
光的强度:世界里面所有的强度都一样
光的范围:整个世界
生活参照:太阳光
Type选择光源类型:
Directional是平行光
Color设置光照颜色
Intensity设置光照强度
Shadow设置光照的阴影类型
阴影能够使图形效果更逼真 但性能也会损耗
Resolution设置阴影精度
阴影精度不高时 计算量也没那么大 因此性能会有所提升
Draw Halo设置是否显示光晕
Culling Mask设置哪些物体受光源所影响
?点光源
光源颜色:可以自由设置颜色
光源强度:从中心点开始向四周减弱
光源范围:球体范围内进行衰减 距离越近 强度越强
生活参照:普通灯泡
Range设置光照的衰减距离/波及范围(单位是半径)
同样也支持阴影Shadow
?聚光灯
光源颜色:可以自由设置颜色
光源强度:从中心轴开始 向四周减弱
光源范围:有特定的方向和范围 像是锥形
生活参照:聚光灯
Spot Angle设置灯光 "打开"的角度
还可以调整照射的角度:
?光源模式
光源模式分为三种:
- 1、实时模式
光照是实时计算的 可以不断变化
但缺点是光照实时计算会比较耗费CPU
因此 建议该实时的时候才实时 - 2、烘培模式
烘培模式的光照是预先计算好的 性能好 但是不能动态改变
烘培步骤:- (1)场景中的3D物体设置为Lighting Static静态光照模式
- (2)将烘培的光源设置为Baked模式
- (3)打开Lighting窗口
在Scene下点击Build(5.6.0版本以前)可以自动也可以点击Object maps然后取消Auto Generate 点击Generate Lighting按钮(在5.6.0版本)进行烘培
Window -> lighting -> settings
烘培之后就会生成烘培数据 那么此时即使将光源隐藏 还是有灯光效果
若要烘培阴影 比如物体的阴影落在平面上 那么此时平面也要设置为Lighting Static模式
如果烘培了阴影 那么物体移动后 阴影还会再原地
通常适用于不移动的游戏场景
- (1)场景中的3D物体设置为Lighting Static静态光照模式
- 3、混合模式
若有另一个光是混合模式的 那么对于烘培的光源 也是能够将混合模式的光保存烘培的
Render设置渲染模式
若选择Important 则会对每个像素进行光照 那么光照的质量会更加好
若旋转Not Important 则会对每个顶点进行光照 那么光照的性能会更加好
若选择Auto 则自动选择
Cookie可以设置使用一个带Alpha通道的纹理来制作一个遮罩
从而使得光线在不同的地方具有不同的强度