U1L10-1——Camera可编辑参数相关

Camera窗口

Camera组件参数如下:

image

  • Clear Flags - 清除背景方式

    • skybox 天空盒

    • Solid Color 颜色填充,将没有拍摄到内容的部分用颜色填充

    • Depth only 只画该层,背景透明

      该选项常用于多摄像机时,让拥有渲染深度(Depth)更高的摄像机叠加它拍摄到的内容(物体或者特效)到渲染深度低的摄像机上,
      但又不覆盖渲染深度低的摄像机拍到的内容

      注意!只有一个摄像机使用该选项会出现渲染残影
      因为没有别的摄像机去覆盖掉它之前拍摄渲染出来的内容

    • Don’t Clear 不移除,覆盖渲染

  • Culling Mask - 选择性渲染部分层级,可以指定只渲染对应层级的对象

  • Projection - 摄像机投影模式

    • Perspective 透视模式

      • FOV Axis - 视场角 轴 - 决定了光学仪器的视野范围

        • Vertical - 以竖直方向夹角为准
        • Horizontal - 以水平方向夹角为准

        image

      • Field of view (FOV) - 视口大小,决定视锥开口角度

      • Physical Camera - 物理摄像机
        勾选后可以模拟真实世界中的摄像机
        焦距 传感器尺寸 透镜移位等等

        • Focal Length - 焦距
        • Sensor Type - 传感器类型
        • Sensor Size - 传感器尺寸
        • Lens Shift - 透镜移位
        • Gate Fit - 闸门配合
    • Orthographic 正交摄像机(一般用于2D游戏制作)

      image

      • Size - 摄制范围,视锥体竖直方向上的一半

        image

  • Clipping Planes - 裁剪平面距离

    • Near:近裁剪面离摄像机的距离
    • Far:远裁剪面离摄像机的距离
  • Viewport Rect - 视口范围 屏幕上将绘制该摄像机视图的位置

    • 主要用于双摄像机游戏
    • 0~1 相当于宽高百分比
  • Depth - 渲染顺序上的深度,数字越小越先被渲染,越大越后被渲染。

  • Rendering Path - 渲染路径

    image

    关于渲染路径,详见:US3S4L1——渲染管线概述

    • Use Graphics Settings:使用 Graphics 中的设置
    • Forward:前向渲染路径
    • Deferred:延迟渲染路径
    • Legacy Vertex Lit:(遗产)顶点照明渲染路径
  • Target Texture - 渲染纹理

    • 可以把摄像机画面渲染到一张图上 - 主要用于制作小地图
    • 在 Project 右键创建 Render Texture
  • Occlusion Culling - 是否启用剔除遮挡

  • Allow HDR - 是否允许高动态范围渲染

  • Allow MSAA - 是否允许抗锯齿

  • Allow Dynamic Resolution - 是否允许动态分辨率呈现

  • Target Display - 用于哪个显示器
    主要用来开发有多个屏幕的平台游戏

Render Texture

Render Texture 是一种特殊的纹理类型,它允许你将相机视图或任何其他渲染输出直接写入到一个纹理中。
然后这个纹理可以在场景中的其他地方使用,比如作为材质的输入。

Render Texture 可以动态存储立方体纹理贴图,详见:US3S8L3——动态生成立方体纹理 中的 Render Texture 部分

Custom Render Texture 是一种特殊类型的 Render Texture。详见:US3S8L8——镜面效果 的 Custom Render Texture 部分

在 UI 上显示摄像机拍到的内容

先在 Project 窗口上创建一个 Render Texture

image

然后单独为该 Render Texture 创建一个摄像机用来拍摄,再将该Render Texture挂载到新摄像机上
其中,这个摄像机最好要先设置好 Clear Flags 属性以及 Culling Mask 属性,避免渲染问题

image

之后,这个 Render Texture 就可以添加到:

  • GUI 的 GUIContent​ 的 Image​ 属性上
  • NGUI 的 Texture​ 上,详细可见:UG2L18——NGUI中显示3D模型和粒子特效
  • UGUI 的 RawImage​ 上,详细可见:UG3L15——模型和粒子显示在UI之前
  • FGUI 的某个空白图形上,详细可见:UG4L16——插入模型、粒子、Canvas

等等其他可以绘制 Texture 的对象上