跳到主要内容

<Camera/>

没有摄像机就不会绘制。Camera 让实体从自身视点渲染,通过实体位置和旋转控制视角。

用法​

将 Camera 挂到 Entity,从该实体姿态渲染。

<Entity>
<Camera clearColor="red" />
</Entity>

此例在两个配置不同的摄像机之间切换。

详见引擎 CameraComponent。

属性​

名称类型与说明默认值
gammaCorrection?
number
设置或获取场景渲染的伽马校正。GAMMA_SRGB:对输出进行伽马编码,适合标准 sRGB 显示器,也是默认和常规渲染推荐值。GAMMA_NONE:保持线性输出,仅用于先渲染到中间 HDR 纹理、再通过后续通道进行色调映射与伽马校正的高级流程。警告:GAMMA_NONE 会让标准显示器上的整个场景(包括界面)过暗,因为线性值未经伽马编码直接输出。带后处理的 HDR 渲染请使用会自动处理这些步骤的 CameraFrame。
-
toneMapping?
number
设置或获取应用到渲染颜色缓冲区的色调映射。可选 TONEMAP_LINEAR、TONEMAP_FILMIC、TONEMAP_HEJL、TONEMAP_ACES、TONEMAP_ACES2、TONEMAP_NEUTRAL,默认 TONEMAP_LINEAR。
-
fog?
FogParams | null
设置雾参数;非 null 时覆盖 Scene#fog。获取时返回 FogParams,未设置则为 null。
-
aperture?
number
设置或获取以光圈级数表示的相机光圈,默认 16。数值越大曝光越低,仅在 Scene#physicalUnits 为 true 时使用。
-
aspectRatio?
number
设置或获取相机宽高比(宽除以高)。aspectRatioMode 为 ASPECT_AUTO 时每帧自动计算且只读;为 ASPECT_MANUAL 时可手动设置。
-
aspectRatioMode?
number
设置或获取宽高比模式。ASPECT_AUTO 根据当前渲染目标宽高自动计算,ASPECT_MANUAL 使用 aspectRatio 属性。默认 ASPECT_AUTO。
-
clearColor?
string
设置或获取相机清屏颜色,默认 [0.75, 0.75, 0.75, 1]。渲染到多颜色缓冲区的 RenderTarget 时,它用于颜色附件 0,也用于未通过 CameraComponent#setClearColor 单独设置颜色的其他附件。
-
clearColorBuffer?
boolean
设置或获取相机是否在渲染前自动清除颜色缓冲区,默认 true。
-
clearDepth?
number
设置或获取清除深度缓冲区时使用的深度值,默认 1。
-
clearDepthBuffer?
boolean
设置或获取相机是否在渲染前自动清除深度缓冲区,默认 true。
-
clearStencilBuffer?
boolean
设置或获取相机是否在渲染前自动清除模板缓冲区,默认 true。
-
cullFaces?
boolean
设置或获取是否剔除三角形面。为 true 时遵循 Material#cull,否则同时渲染正反面。默认 true。
-
disablePostEffectsLayer?
number
设置或获取相机停止应用后处理的图层 ID。默认 LAYERID_UI,表示 UI 图层及后续图层不应用后处理。设为 undefined 时对所有图层应用。
-
farClip?
number
设置或获取远裁剪距离,超过此距离不渲染。默认 1000。
-
flipFaces?
boolean
设置或获取是否翻转三角形面方向。为 true 时交换正反面,适用于反射渲染,默认 false。
-
fov?
number
设置或获取相机视野角度,单位为度。通常是 Y 轴视野,参阅 horizontalFov。仅用于 PROJECTION_PERSPECTIVE 相机,默认 45。
-
frustumCulling?
boolean
设置或获取视锥剔除状态,控制是否跳过相机视锥之外的 MeshInstance。为 false 时渲染场景中所有网格实例,不考虑可见性。默认 false。
-
horizontalFov?
boolean
设置或获取相机视野 fov 是否为水平方向。默认 false,即垂直视野。
-
layers?
readonly number[]
设置或获取相机所属图层 ID 数组(Layer#id)。不要直接 push、pop、splice 或修改数组,应赋入新数组。默认 [LAYERID_WORLD, LAYERID_DEPTH, LAYERID_SKYBOX, LAYERID_UI, LAYERID_IMMEDIATE]。
-
jitter?
number
设置或获取投影矩阵抖动强度,用于 TAA 抖动采样。1 表示像素范围 [-1, 1] 的抖动;较小值更清晰但锯齿更多,较大值更平滑但较模糊。默认 0,即无抖动。
-
nearClip?
number
设置或获取近裁剪距离,比此距离更近的内容不渲染。默认 0.1。
-
orthoHeight?
number
设置或获取正交视窗在 Y 轴上的半高。仅用于 PROJECTION_ORTHOGRAPHIC 相机,默认 10。
-
priority?
number
设置或获取相机渲染优先级,数值较小的先渲染。默认 0。
-
projection?
number
设置或获取投影类型。PROJECTION_PERSPECTIVE 为透视投影,视锥呈截头金字塔;PROJECTION_ORTHOGRAPHIC 为正交投影,视锥呈长方体。默认 PROJECTION_PERSPECTIVE。
-
projectionOffset?
[number, number]
设置或获取投影窗口相对观察方向的偏移,形成偏心、非对称投影。单位为半视锥尺寸,(0, 1) 表示向上移动半个视锥高度。支持透视与正交投影;XR 由系统提供投影,因此忽略此值。默认 (0, 0)。典型用途是移轴透视校正:保持相机水平,用垂直偏移框选高大物体,令其竖线保持平行。
-
rect?
[number, number, number, number]
设置或获取相机渲染矩形,使用归一化屏幕坐标,默认 [0, 0, 1, 1]。矩形可超出渲染目标边界,如 [-0.5, 0, 1.5, 1],仅重叠部分会被渲染。WebGL2 支持此功能;WebGPU 需平台允许视口超出目标边界。
-
renderSceneColorMap?
boolean
-
renderSceneDepthMap?
boolean
-
renderTarget?
RenderTarget
设置或获取相机渲染目标。未指定时直接渲染到屏幕。
-
scissorRect?
[number, number, number, number]
设置或获取相机裁剪矩形,丢弃矩形外的像素。数值顺序为 [x, y, width, height],默认 [0, 0, 1, 1]。
-
sensitivity?
number
设置或获取相机 ISO 感光度,默认 1000。值越大曝光越高,仅在 Scene#physicalUnits 为 true 时使用。
-
shutter?
number
设置或获取相机快门时间,单位秒,默认 1/1000 秒。快门时间越长曝光越高,仅在 Scene#physicalUnits 为 true 时使用。
-
system?
ComponentSystem
创建此组件的 ComponentSystem。
-
entity?
Entity
此组件挂载的 Entity。
-
enabled?
boolean
设置或获取组件的启用状态。
-