Unity Camera深度指南——全面解析实例对象的属性及其应用

前言

Camera实例对象的属性涵盖了从基本视图和投影设置到高级性能和渲染选项。每个属性都有其特定的用途和配置场景,允许开发者在Unity中精细地控制摄像机的行为。


Tips:找到你想看的属性点击即可跳转到相应的解释哦~

一、基本视图设置:

fieldOfView: 定义了摄像机的视角宽度。
nearClipPlane: 定义了摄像机视锥的近平面。
farClipPlane: 定义了摄像机视锥的远平面。
aspect: 表示摄像机视锥的宽高比,即视图宽度除以视图高度的比率。
orthographic: 一个布尔值,用于切换摄像机的投影模式。
orthographicSize: 定义了摄像机视图半高的大小。

二、渲染路径与技术:

actualRenderingPath: 用于确定摄像机的实际渲染路径。
renderingPath: 允许你选择摄像机应使用的渲染路径。
allowHDR: 指定摄像机是否允许使用高动态范围 (HDR) 渲染。
allowMSAA: 控制摄像机是否使用多重采样抗锯齿 (MSAA)。
depthTextureMode: 用于控制摄像机是否应生成深度纹理或运动矢量纹理。
opaqueSortMode: 定义了不透明物体的排序方式。
transparencySortMode: 控制透明物体的排序方式。

三、性能优化:

allowDynamicResolution: 允许摄像机动态调整其分辨率以提高性能或图像质量。
useOcclusionCulling: 允许摄像机利用遮挡剔除来提高渲染效率,不渲染被其他物体完全遮挡的对象。
layerCullDistances: 允许你为每个图层设置一个特定的剔除距离。
layerCullSpherical: 用来决定剔除计算是基于球形体(true)还是基于相机平面的距离(false)

四、VR和立体视觉:

stereoEnabled: 摄像机是否处于立体模式。
stereoSeparation: 表示左右眼摄像机之间的距离,影响立体视觉的强度。
stereoConvergence: 控制收敛点的位置,影响物体在3D空间中的感知深度。
areVRStereoViewMatricesWithinSingleCullTolerance: 检查VR(虚拟现实)环境中左右眼视图矩阵是否足够接近。

五、输出和显示设置:

activeTexture: 当前摄像机渲染到的活动纹理。
targetTexture: 当前摄像机目标纹理。
pixelRect: 定义了摄像机视口在屏幕上的位置和大小。
targetDisplay: 用于指定摄像机的输出目标显示器。
rect: 定义了摄像机视口的矩形区域。
cameraType: 定义摄像机的类型。
forceIntoRenderTexture: 是否应该总是将摄像机的输出渲染到一个纹理中。

六、高级属性与杂项:

worldToCameraMatrix: 一个Matrix4x4,表示从世界坐标系到摄像机坐标系的转换。
projectionMatrix: 一个Matrix4x4,用于定义摄像机的投影矩阵。
nonJitteredProjectionMatrix: 提供了一个不包含抖动(jitter)效果的投影矩阵版本。
velocity: 摄像机的移动速度和方向。
sensorSize: 定义了摄像机传感器的大小。
usePhysicalProperties: 启用物理属性。
overrideSceneCullingMask: 设置自定义的剔除蒙版,这个蒙版决定了哪些层(Layer)的对象应该被渲染或忽略。
clearFlags: 摄像机在开始渲染之前应该如何渲染颜色和深度缓冲区。
backgroundColor: 摄像机屏幕背景颜色。
cullingMask: 哪些层(Layer)被当前摄像机渲染。
eventMask: 控制哪些层(Layer)上的事件可以被当前摄像机所注册。
clearStencilAfterLightingPass: 一个布尔值,用于指定在光照阶段后是否清除模板缓冲区。
gateFit: 当摄像机的纵横比与物理摄像头的纵横比不匹配时,如何调整图像以适应视口。
transparencySortAxis: 定义透明对象的排序轴。


一、基本视图设置:

fieldOfView

定义:
fieldOfView 属性定义了摄像机的视角宽度,以度为单位。
 
用途:
这是摄像机视锥的垂直视角,影响场景的透视强度。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    camera.fieldOfView = 60.0f; // 设置视角宽度为60度
}

nearClipPlane 和 farClipPlane

定义:
这两个属性定义了摄像机视锥的近平面和远平面。
 
用途:
只有在这两个平面之间的物体才会被摄像机渲染。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    camera.nearClipPlane = 0.1f; // 最近裁剪面
    camera.farClipPlane = 1000.0f; // 最远裁剪面
}

aspect

定义:
示摄像机视锥的宽高比,即视图宽度除以视图高度的比率。
 
用途:
这个比率影响摄像机视图的形状。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    camera.aspect = 16.0f / 9.0f; // 设置宽高比为16:9
}

orthographic

定义:
orthographic 是一个布尔值,用于切换摄像机的投影模式。
 
用途:
当设置为 true 时,摄像机将使用正交投影,这种投影不会使物体因距离远近而产生大小变化。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    camera.orthographic = true; // 开启正交投影
}

orthographicSize

定义:
当摄像机处于正交模式时,orthographicSize 属性定义了摄像机视图半高的大小。
 
用途:
这个值表示从摄像机的中心到视图顶部的距离。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    camera.orthographic = true; // 确保是正交模式
    camera.orthographicSize = 5.0f; // 视图半高设置为5单位
}

二、渲染路径与技术:

actualRenderingPath

定义:
属性表示摄像机实际使用的渲染路径。
 
用途:
这个属性是只读的,它依赖于项目设置和摄像机的renderingPath设置。

  • DeferredShading: 延迟渲染路径,允许更多的光照和影响效果。
  • Forward: 正向渲染路径,适用于需要较多透明物体或特殊效果的场景。
  • VertexLit: 顶点光照渲染路径,适用于性能有限的平台。

示例:

void Start() {
   
   
    Camera camera = Camera.main;
    Debug.Log("摄像机实际使用的渲染路径: " + camera.actualRenderingPath)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Y仙森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值