> 技术文档 > Unity中的渲染管线(二十七):URP-相机组件详解_urp camera rendering

Unity中的渲染管线(二十七):URP-相机组件详解_urp camera rendering

在通用渲染管线(URP)中,Unity 会根据相机类型在 Inspector 面板中显示 Camera 组件的不同属性。要更改相机类型,请选择Render Type(渲染类型)

(一).基础相机(Base cameras)显示以下属性
  • Projection(投影)
  • Physical Camera(物理相机)
  • Rendering(渲染)
  • Stack(相机栈)
  • Environment(环境)
  • Output(输出)
(二).叠加相机(Overlay cameras)显示以下属性
  • Projection(投影)
  • Physical Camera(物理相机)
  • Rendering(渲染)
  • Environment(环境)

(三).Projection(投影)

属性 描述 Projection 控制相机模拟透视的方式: - Perspective(透视):按透视关系渲染物体,近大远小。 - Orthographic(正交):均匀渲染物体,无透视感(如 2D 游戏)。 Field of View Axis 设置 Unity 测量相机视野的轴(仅当 Projection 为 Perspective 时显示): - Vertical(垂直) / Horizontal(水平) Field of View 设置相机视野角度(度),根据所选轴测量(仅当 Projection 为 Perspective 时显示)。 Size 设置相机视口大小(仅当 Projection 为 Orthographic 时显示)。 Clipping Planes 设置相机开始和停止渲染的距离: - Near(近裁剪面):相机最近渲染距离。 - Far(远裁剪面):相机最远渲染距离。

(四).Physical Camera(物理相机)

当 Projection 为 Perspective 时,显示模拟真实相机的额外属性,通过焦距(Focal Length)、传感器尺寸(Sensor Size)和偏移(Shift)计算视野.

(五).Rendering(渲染)

属性 描述 Renderer 选择此相机使用的渲染器(URP 中通常自动处理)。 Post Processing 启用后处理效果。 Anti-Aliasing 选择相机使用的后处理抗锯齿方法(仅当 Render Type 为 Base 时显示): - None:可使用硬件 MSAA,但不启用后处理抗锯齿。 - FXAA(快速近似抗锯齿):全屏处理,逐像素平滑边缘。 - SMAA(亚像素形态抗锯齿):检测图像边缘模式并按模式混合像素,质量优于 FXAA。 Quality (SMAA) 选择 SMAA 质量(Low/Medium/High,仅当 Anti-Aliasing 为 SMAA 时显示)。 Stop NaNs 将相机中的 NaN(非数值)替换为黑色像素,解决特定效果崩溃问题(性能开销大,仅在必要时启用)。 Dithering 启用 8 位抖动,减少宽渐变和低光区域的色带(仅当 Render Type 为 Base 时显示)。 Clear Depth 启用后在渲染时清除前一相机的深度(仅当 Render Type 为 Overlay 时显示)。 Render Shadows 启用阴影渲染。 Priority 优先级较高的相机绘制在较低者上方(范围 - 100 到 100,仅当 Render Type 为 Base 时显示)。 Opaque Texture 控制相机是否创建 CameraOpaqueTexture(仅当 Render Type 为 Base 时显示): - Off:不创建;On:创建;Use Pipeline Settings:使用管线资产设置。 Depth Texture 控制相机是否创建_CameraDepthTexture(深度纹理,仅当 Render Type 为 Base 时显示): Culling Mask 选择相机渲染的图层(仅渲染选中图层的物体)。 Occlusion Culling 启用遮挡剔除,优化性能。

(六).Stack(相机栈)

注意:仅当 Render Type 为 Base 时可用
相机栈允许将多个相机的结果合成:由一个基础相机(Base)和任意数量的叠加相机(Overlay)组成.

(七).Environment(环境)

属性 描述 Background Type 控制相机渲染循环开始时初始化颜色缓冲区的方式(仅当 Render Type 为 Base 时显示): - Skybox:清除为天空盒(无天空盒时默认背景色)。 - Solid Color:清除为指定颜色(选择后显示 Background 属性)。 - Uninitialized:不初始化颜色缓冲区(仅当相机或相机栈将绘制所有像素时使用,否则像素内容未定义)。 Volumes 定义体积(Volume)对相机的影响: - Update Mode:体积更新模式(每帧更新 / 通过脚本更新 / 使用管线设置)。 - Volume Mask:设置图层遮罩,定义哪些体积影响此相机。 - Volume Trigger:指定体积系统使用的 Transform(如第三人称角色的 Transform,未指定时使用相机自身 Transform)。

(八).Output(输出)

注意:仅当 Render Type 设置为 Base 时可用
当相机的 Render Type 为 Base 且 Render Target 为纹理时,Inspector 面板不会显示 Target Display、HDR、MSAA、Allow Dynamic Resolution 属性(这些由渲染纹理资产决定)。

属性 描述 Output Texture 若分配渲染纹理,则相机输出到该纹理;否则输出到屏幕。 Target Display 选择渲染到的外部设备(如多显示器设置)。 Target Eye 选择相机的目标眼睛(XR 渲染时): - Both:启用 XR 双眼前渲染;None:禁用 XR 渲染。 Viewport Rect 设置相机视图在屏幕上的绘制区域(视口坐标,0-1): - X/Y:绘制起点;W/H:输出宽度 / 高度。 HDR Rendering 启用高动态范围(HDR)渲染。 MSAA 启用多重采样抗锯齿(硬件特性)。 Allow Dynamic Resolution 允许动态分辨率(根据性能自动调整分辨率)。

(九).关键概念总结

  1. 相机类型:Base 相机支持完整属性(包括输出纹理和相机栈),Overlay 相机用于叠加渲染(如 UI 层)。
  2. 投影模式:透视(Perspective)适用于 3D 场景,正交(Orthographic)适用于 2D 或等距视角。
  3. 后处理与抗锯齿:URP 支持 FXAA/SMAA 后处理抗锯齿,与硬件 MSAA 可同时使用(除时间抗锯齿外)。
  4. 性能优化:合理设置 Culling Mask、Occlusion Culling 和 Depth Texture,减少不必要的渲染开销。

通过灵活配置这些属性,可在 URP 中实现从基础场景渲染到复杂多相机效果的各种需求。