<Modify.*>
Modify 为 GLB 内实体和组件提供声明式规则,在 Gltf 内放 Modify.Node 匹配层级,再用子组件修改。
它支持:
- 用路径模式或谓词匹配实体。
- 将 props 合并到已有灯光、渲染或摄像机。
- 移除组件或替换全部子项。
- 在规则内添加全新实体。
实际案例见修改 GLB。
<Modify.Node>
path 可按名称、组件筛选、单级或多级通配,或谓词函数选择目标。
<Gltf asset={asset} key={asset.id}>
<Modify.Node path="Interior.**[light]">
<Modify.Light intensity={(current = 1) => current * 0.5} />
</Modify.Node>
</Gltf>
clearChildren 先清空原子项,再加入自己的内容:
<Modify.Node path="Accessories" clearChildren>
<Entity name="Spoiler">
<Render type="torus" />
</Entity>
</Modify.Node>
嵌套的非 Modify 元素会被克隆,添加到每个匹配节点下。
路径辅助
Body.FrontBumper:精确路径。Body.*:直接子项。Body.**:全部后代。**[render]:带 Render 的实体。(entity) => entity.name.startsWith('Wheel'):谓词。
组件修改器
支持直接值、更新函数和 remove 标记。
<Modify.Node path="**[light]">
<Modify.Light color="cyan" intensity={2} />
</Modify.Node>
<Modify.Node path="**[render]">
<Modify.Render
castShadows={(value = false) => !value}
receiveShadows
/>
</Modify.Node>
<Modify.Node path="Cabin.Camera">
<Modify.Camera remove />
</Modify.Node>
全部匹配均处理,同组件多规则时最具体路径优先。
函数更新
通过当前值计算合并配置:
<Modify.Light intensity={(current = 1) => current * 1.5} />
适合相对原 GLB 配置调整。
实时示例
组合 Gltf 和 Modify.Node 控制渲染,切换复选框观察效果。关闭 Render visuals 后,规则仍在纯数据模式执行。
- 演示
- 代码
gltf-modify-example.jsx
// ↑ imports hidden
export const GltfModifyExample = () => {
const { asset } = useModel('/assets/statue.glb');
const { renderStyle } = useControls()
if (!asset) return null;
return (
<Gltf asset={asset} >
<Modify.Node path="**[render]" >
<Modify.Render renderStyle={renderStyle} />
</Modify.Node>
</Gltf>
);
};
属性
<Modify.Node/>
| 名称 | 类型与说明 | 默认值 |
|---|---|---|
path | string | PathPredicate | - |
clearChildren? | boolean | - |
children? | ReactNode | - |
<Modify.Light/>
| 名称 | 类型与说明 | 默认值 |
|---|---|---|
remove? | boolean | - |
type? | PropOrUpdater<"directional" | "omni" | "spot">光源类型。 | "directional" |
color? | string | ((current: string | undefined) => string | undefined)设置或获取光源的 sRGB 颜色,忽略 Alpha,默认白色 [1, 1, 1]。更新颜色时使用 setter。 | - |
intensity? | number | ((current: number | undefined) => number | undefined)设置或获取光源亮度,默认 1。 | - |
luminance? | number | ((current: number | undefined) => number | undefined)设置或获取基于物理单位的亮度,仅在 scene.physicalUnits 为 true 时使用,默认 0。 | - |
shape? | number | ((current: number | undefined) => number | undefined)设置或获取光源形状:LIGHTSHAPE_PUNCTUAL 为无限小点;LIGHTSHAPE_RECT 为矩形;LIGHTSHAPE_DISK 为圆盘;LIGHTSHAPE_SPHERE 为球体。默认 LIGHTSHAPE_PUNCTUAL。 | - |
affectSpecularity? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取此光源是否影响材质镜面反射。仅在 type 为 "directional" 时有效;其他类型会保留该值,之后改为平行光时应用。默认 true。 | - |
castShadows? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否投射阴影,默认 false。平行光只渲染视点到 LightComponent#shadowDistance 以内的阴影,默认距离 40。应按相机实际可见范围设置,否则超出距离后阴影消失。 | - |
shadowDistance? | number | ((current: number | undefined) => number | undefined)设置或获取停止渲染阴影的视点距离,仅影响平行光,默认 40。 | - |
shadowIntensity? | number | ((current: number | undefined) => number | undefined)设置或获取阴影变暗强度。0 无效果,1 为全黑,默认 1。 | - |
volumetricScattering? | number | ((current: number | undefined) => number | undefined)设置或获取光源对体积雾的贡献倍率,以独立调整散射强度,0 表示无贡献。仅用于点光源与聚光灯,且 CameraFrame 体积雾启用局部光源时有效,默认 1。 | - |
shadowResolution? | number | ((current: number | undefined) => number | undefined)设置或获取阴影贴图尺寸,可用 64、128、256、512、1024、2048,默认 1024。 | - |
shadowBias? | number | ((current: number | undefined) => number | undefined)设置或获取阴影贴图深度偏移,用于调整此光源的阴影表现。范围 0 到 1,默认 0.05。 | - |
numCascades? | number | ((current: number | undefined) => number | undefined)设置或获取阴影级联数量,可为 1、2、3、4。默认 1,表示不使用级联。 | - |
cascadeBlend? | number | ((current: number | undefined) => number | undefined)设置或获取级联阴影混合系数,范围 0 到 1,表示每级用于相邻级联混合的比例。默认 0,禁用级联混合和阴影距离处淡出。也会在阴影距离末尾按此比例渐变到完全受光,单级联同样有效,例如 0.1 表示最后 10% 距离内淡出。 | - |
bakeNumSamples? | number | ((current: number | undefined) => number | undefined)设置或获取将此光源烘焙到光照贴图的采样数,默认 1,最大 255。 | - |
bakeArea? | number | ((current: number | undefined) => number | undefined)设置或获取烘焙平行光软阴影边界所用区域的角尺寸,单位度,范围 0 到 180。要求 bake=true 且 type="directional",默认 0。 | - |
cascadeDistribution? | number | ((current: number | undefined) => number | undefined)设置或获取各阴影级联的视锥划分分布,仅在 numCascades 大于 1 时使用。范围 0 到 1,0 为线性,1 为对数,默认 0.5。较大值提高近处阴影分辨率。 | - |
normalOffsetBias? | number | ((current: number | undefined) => number | undefined)设置或获取法线偏移深度偏差,范围 0 到 1,默认 0。 | - |
range? | number | ((current: number | undefined) => number | undefined)设置或获取光源范围,仅影响点光源和聚光灯,默认 10。 | - |
innerConeAngle? | number | ((current: number | undefined) => number | undefined)设置或获取聚光灯开始衰减的半角,单位度,从光源方向轴量到锥体边缘。完整内光束角为此值两倍,仅用于聚光灯。默认 40,即完整内角 80 度。 | - |
outerConeAngle? | number | ((current: number | undefined) => number | undefined)设置或获取聚光灯完全衰减到零的半角,单位度,从方向轴量到锥体边缘。完整外光束角为此值两倍,仅用于聚光灯。默认 45,即完整外角 90 度。 | - |
falloffMode? | number | ((current: number | undefined) => number | undefined)设置或获取光源衰减模式,控制随距离衰减的速度。LIGHTFALLOFF_LINEAR 为线性,LIGHTFALLOFF_INVERSESQUARED 为平方反比。仅用于点光源和聚光灯,默认 LIGHTFALLOFF_LINEAR。 | - |
shadowType? | number | ((current: number | undefined) => number | undefined)设置或获取阴影类型,可选 SHADOW_PCF1_32F、SHADOW_PCF3_32F、SHADOW_PCF5_32F、SHADOW_PCF1_16F、SHADOW_PCF3_16F、SHADOW_PCF5_16F、SHADOW_VSM_16F、SHADOW_VSM_32F、SHADOW_PCSS_32F。默认 SHADOW_PCF3_32F。 | - |
vsmBlurSize? | number | ((current: number | undefined) => number | undefined)设置或获取方差阴影贴图模糊采样数,仅支持 1 到 25 的奇数,偶数向上取到下一奇数。默认 11。 | - |
vsmBlurMode? | number | ((current: number | undefined) => number | undefined)设置或获取方差阴影贴图模糊模式。BLUR_BOX 为盒式滤波,BLUR_GAUSSIAN 为高斯滤波,通常更平滑但需要更多采样。默认 BLUR_GAUSSIAN。 | - |
vsmBias? | number | ((current: number | undefined) => number | undefined)设置或获取抑制方差阴影贴图自阴影条纹的偏移,范围 0 到 1,默认 0.0025。 | - |
cookieAsset? | number | ((current: number | null | undefined) => number | null | undefined) | null设置或获取光源投影纹理的资源 ID,未设置时为 null。仅聚光灯与点光源支持,前者需要二维纹理,后者需要立方体贴图。默认 null。 | - |
cookie? | Texture | ((current: Texture | null | undefined) => Texture | null | undefined) | null设置或获取光源投影纹理。仅聚光灯与点光源支持,前者需要二维纹理,后者需要立方体贴图。默认 null。 | - |
cookieIntensity? | number | ((current: number | undefined) => number | undefined)设置或获取投影纹理强度,默认 1。 | - |
cookieFalloff? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取使用投影纹理时是否保留常规聚光灯角度衰减。false 时像纯纹理投影仪,仅随距离衰减。默认 true。 | - |
cookieChannel? | string | ((current: string | undefined) => string | undefined)设置或获取投影纹理使用的颜色通道,可为 "r"、"g"、"b"、"a" 或 "rgb",默认 "rgb"。 | - |
cookieAngle? | number | ((current: number | undefined) => number | undefined)设置或获取聚光灯投影纹理旋转角度,单位度,默认 0。 | - |
cookieScale? | Vec2 | ((current: Vec2 | null | undefined) => Vec2 | null | undefined) | null设置或获取聚光灯投影纹理缩放,null 表示不缩放,默认 null。 | - |
cookieOffset? | Vec2 | ((current: Vec2 | null | undefined) => Vec2 | null | undefined) | null设置或获取聚光灯投影纹理位置偏移,默认 null。 | - |
shadowUpdateMode? | number | ((current: number | undefined) => number | undefined)设置或获取阴影更新模式。SHADOWUPDATE_NONE 不渲染;SHADOWUPDATE_THISFRAME 只渲染一次后自动改为 NONE;SHADOWUPDATE_REALTIME 每帧渲染。默认 SHADOWUPDATE_REALTIME。 | - |
mask? | number | ((current: number | undefined) => number | undefined)设置或获取决定此光源照亮哪些 MeshInstance 的位掩码,由 MASK_AFFECT_DYNAMIC、MASK_AFFECT_LIGHTMAPPED 和 MASK_BAKE 组合,仅使用低 8 位。affectDynamic、affectLightmapped、bake 辅助属性写入同一掩码,但各自保存状态,不会从 mask 重新计算;直接修改 mask 不会更新它们,后续写入辅助属性也可能覆盖 mask 设置。默认 MASK_AFFECT_DYNAMIC。 | - |
affectDynamic? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否影响未使用光照贴图的对象,切换 mask 的 MASK_AFFECT_DYNAMIC 位,默认 true。 | - |
affectLightmapped? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否影响已使用光照贴图的对象,切换 MASK_AFFECT_LIGHTMAPPED 位。在 mask 中与 bake 互斥,启用一个会清除另一个位。默认 false。 | - |
bake? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否将此光源烘焙进光照贴图,切换 MASK_BAKE 位。在 mask 中与 affectLightmapped 互斥,启用一个会清除另一个位。默认 false。 | - |
bakeDir? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取光源方向是否参与方向光照贴图。要求光源启用且 bake=true。方向贴图每像素只保存一个近似方向,多个 bakeDir=true 光源相交时可能使交叠区镜面反射或凹凸映射异常,是否明显取决于场景。默认 true。 | - |
isStatic? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取光源是否始终不移动,用于优化提示,默认 false。 | - |
layers? | readonly number[] | ((current: readonly number[] | undefined) => readonly number[] | undefined)设置或获取光源所属图层 ID 数组(Layer#id),默认 [LAYERID_WORLD]。不要直接 push、pop、splice 或修改数组,应赋入新数组。 | - |
shadowUpdateOverrides? | number[] | ((current: number[] | null | undefined) => number[] | null | undefined) | null设置或获取各阴影级联的 SHADOWUPDATE_ 配置数组,不使用时设为 null,默认 null。 | - |
shadowSamples? | number | ((current: number | undefined) => number | undefined)设置或获取 SHADOW_PCSS_32F 软阴影的阴影采样数,必须是从 1 开始的正整数。越高越平滑,但可能显著降低性能,默认 16。 | - |
shadowBlockerSamples? | number | ((current: number | undefined) => number | undefined)设置或获取 SHADOW_PCSS_32F 接触硬化阴影的遮挡物采样数,用于估计投射者与接收者距离。必须为非负整数,值越高质量越好但性能越低。0 禁用接触硬化,使柔度恒定。默认 16,可低于 shadowSamples 以优化性能,通常不会明显影响质量。 | - |
penumbraSize? | number | ((current: number | undefined) => number | undefined)设置或获取接触硬化阴影半影尺寸。面光源中作为尺寸倍率,点状光源和平行光中表示光源区域大小。默认 1。 | - |
penumbraFalloff? | number | ((current: number | undefined) => number | undefined)设置或获取接触硬化阴影半影衰减率,必须大于等于 1。控制阴影随距离变软的速度,值越大变软越快,较小值过渡更缓。默认 1。 | - |
system? | ComponentSystem | ((current: ComponentSystem | undefined) => ComponentSystem | undefined)创建此组件的 ComponentSystem。 | - |
entity? | Entity | ((current: Entity | undefined) => Entity | undefined)此组件挂载的 Entity。 | - |
enabled? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取组件的启用状态。 | - |
<Modify.Render/>
| 名称 | 类型与说明 | 默认值 |
|---|---|---|
remove? | boolean | - |
type? | PropOrUpdater<"asset" | "box" | "capsule" | "cone" | "cylinder" | "plane" | "sphere" | "torus">要渲染的基本形状类型。 | "box" |
asset? | Asset<string> | ((current: Asset<string> | undefined) => Asset<string> | undefined)要渲染的资源。 | - |
children? | PropOrUpdater<ReactNode> | - |
isStatic? | boolean | ((current: boolean | undefined) => boolean | undefined)将网格标为不可移动,用于优化。 | - |
renderStyle? | number | ((current: number | undefined) => number | undefined)设置或获取组件网格实例的渲染样式:RENDERSTYLE_SOLID、RENDERSTYLE_WIREFRAME 或 RENDERSTYLE_POINTS,默认 RENDERSTYLE_SOLID。 | - |
customAabb? | BoundingBox | ((current: BoundingBox | null | undefined) => BoundingBox | null | undefined) | null设置或获取附加网格实例用于可见性剔除的自定义对象空间包围盒。可为蒙皮角色指定较大包围盒,避免每帧根据骨骼位置重新计算。 | - |
meshInstances? | readonly MeshInstance[] | ((current: readonly MeshInstance[] | undefined) => readonly MeshInstance[] | undefined)设置或获取组件包含的 meshInstances 数组。替换时使用 setter,不要直接修改返回的数组。 | - |
lightmapped? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取组件是否受运行时光照贴图生成器影响。true 时调用 lightmapper.bake() 后为网格生成光照贴图。 | - |
castShadows? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取附加网格是否为启用阴影投射的光源投射阴影。 | - |
shadowCascadeMask? | number | ((current: number | undefined) => number | undefined)设置或获取网格对 LIGHTTYPE_DIRECTIONAL 阴影级联的贡献位掩码。组合 SHADOW_CASCADE_0 至 SHADOW_CASCADE_3,仅在 castShadows 启用时有效。默认 SHADOW_CASCADE_ALL,参与所有级联。此值只在渲染时按级联过滤,不从 Layer 阴影投射者列表移除网格;完全关闭请用 castShadows。 | - |
receiveShadows? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取附加网格是否接收阴影。 | - |
castShadowsLightmap? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取渲染光照贴图时网格实例是否投射阴影。 | - |
lightmapSizeMultiplier? | number | ((current: number | undefined) => number | undefined)设置或获取光照贴图分辨率倍率。 | - |
layers? | readonly number[] | ((current: readonly number[] | undefined) => readonly number[] | undefined)设置或获取网格实例所属图层 ID 数组(Layer#id)。不要直接 push、pop、splice 或修改,应赋入新数组。 | - |
batchGroupId? | number | ((current: number | undefined) => number | undefined)设置或获取组件中网格实例的批处理组(BatchGroup),默认 -1,即无分组。 | - |
material? | Material | ((current: Material | undefined) => Material | undefined)设置或获取组件渲染使用的 Material。type 为 asset 时忽略此材质;instantiateRenderEntity 创建的实体均属于 asset,因此该 setter 对容器加载的模型无效。此时应分别设置 RenderComponent#meshInstances 中各项的 material。 | - |
materialAssets? | Asset<string>[] | number[] | ((current: Asset<string>[] | number[] | undefined) => Asset<string>[] | number[] | undefined)设置或获取组件渲染使用的材质资源,每个材质对应相应网格实例。 | - |
rootBone? | Entity | ((current: Entity | null | undefined) => Entity | null | undefined) | null设置渲染组件的根骨骼实体或实体 GUID;获取时返回根骨骼实体。 | - |
materialAsset? | any | - |
system? | ComponentSystem | ((current: ComponentSystem | undefined) => ComponentSystem | undefined)创建此组件的 ComponentSystem。 | - |
entity? | Entity | ((current: Entity | undefined) => Entity | undefined)此组件挂载的 Entity。 | - |
enabled? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取组件的启用状态。 | - |
<Modify.Camera/>
| 名称 | 类型与说明 | 默认值 |
|---|---|---|
remove? | boolean | - |
gammaCorrection? | number | ((current: number | undefined) => number | undefined)设置或获取场景渲染的伽马校正。GAMMA_SRGB:对输出进行伽马编码,适合标准 sRGB 显示器,也是默认和常规渲染推荐值。GAMMA_NONE:保持线性输出,仅用于先渲染到中间 HDR 纹理、再通过后续通道进行色调映射与伽马校正的高级流程。警告:GAMMA_NONE 会让标准显示器上的整个场景(包括界面)过暗,因为线性值未经伽马编码直接输出。带后处理的 HDR 渲染请使用会自动处理这些步骤的 CameraFrame。 | - |
toneMapping? | number | ((current: number | undefined) => number | undefined)设置或获取应用到渲染颜色缓冲区的色调映射。可选 TONEMAP_LINEAR、TONEMAP_FILMIC、TONEMAP_HEJL、TONEMAP_ACES、TONEMAP_ACES2、TONEMAP_NEUTRAL,默认 TONEMAP_LINEAR。 | - |
fog? | FogParams | ((current: FogParams | null | undefined) => FogParams | null | undefined) | null设置雾参数;非 null 时覆盖 Scene#fog。获取时返回 FogParams,未设置则为 null。 | - |
aperture? | number | ((current: number | undefined) => number | undefined)设置或获取以光圈级数表示的相机光圈,默认 16。数值越大曝光越低,仅在 Scene#physicalUnits 为 true 时使用。 | - |
aspectRatio? | number | ((current: number | undefined) => number | undefined)设置或获取相机宽高比(宽除以高)。aspectRatioMode 为 ASPECT_AUTO 时每帧自动计算且只读;为 ASPECT_MANUAL 时可手动设置。 | - |
aspectRatioMode? | number | ((current: number | undefined) => number | undefined)设置或获取宽高比模式。ASPECT_AUTO 根据当前渲染目标宽高自动计算,ASPECT_MANUAL 使用 aspectRatio 属性。默认 ASPECT_AUTO。 | - |
clearColor? | string | ((current: string | undefined) => string | undefined)设置或获取相机清屏颜色,默认 [0.75, 0.75, 0.75, 1]。渲染到多颜色缓冲区的 RenderTarget 时,它用于颜色附件 0,也用于未通过 CameraComponent#setClearColor 单独设置颜色的其他附件。 | - |
clearColorBuffer? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取相机是否在渲染前自动清除颜色缓冲区,默认 true。 | - |
clearDepth? | number | ((current: number | undefined) => number | undefined)设置或获取清除深度缓冲区时使用的深度值,默认 1。 | - |
clearDepthBuffer? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取相机是否在渲染前自动清除深度缓冲区,默认 true。 | - |
clearStencilBuffer? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取相机是否在渲染前自动清除模板缓冲区,默认 true。 | - |
cullFaces? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否剔除三角形面。为 true 时遵循 Material#cull,否则同时渲染正反面。默认 true。 | - |
disablePostEffectsLayer? | number | ((current: number | undefined) => number | undefined)设置或获取相机停止应用后处理的图层 ID。默认 LAYERID_UI,表示 UI 图层及后续图层不应用后处理。设为 undefined 时对所有图层应用。 | - |
farClip? | number | ((current: number | undefined) => number | undefined)设置或获取远裁剪距离,超过此距离不渲染。默认 1000。 | - |
flipFaces? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取是否翻转三角形面方向。为 true 时交换正反面,适用于反射渲染,默认 false。 | - |
fov? | number | ((current: number | undefined) => number | undefined)设置或获取相机视野角度,单位为度。通常是 Y 轴视野,参阅 horizontalFov。仅用于 PROJECTION_PERSPECTIVE 相机,默认 45。 | - |
frustumCulling? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取视锥剔除状态,控制是否跳过相机视锥之外的 MeshInstance。为 false 时渲染场景中所有网格实例,不考虑可见性。默认 false。 | - |
horizontalFov? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取相机视野 fov 是否为水平方向。默认 false,即垂直视野。 | - |
layers? | readonly number[] | ((current: readonly number[] | undefined) => readonly number[] | undefined)设置或获取相机所属图层 ID 数组(Layer#id)。不要直接 push、pop、splice 或修改数组,应赋入新数组。默认 [LAYERID_WORLD, LAYERID_DEPTH, LAYERID_SKYBOX, LAYERID_UI, LAYERID_IMMEDIATE]。 | - |
jitter? | number | ((current: number | undefined) => number | undefined)设置或获取投影矩阵抖动强度,用于 TAA 抖动采样。1 表示像素范围 [-1, 1] 的抖动;较小值更清晰但锯齿更多,较大值更平滑但较模糊。默认 0,即无抖动。 | - |
nearClip? | number | ((current: number | undefined) => number | undefined)设置或获取近裁剪距离,比此距离更近的内容不渲染。默认 0.1。 | - |
orthoHeight? | number | ((current: number | undefined) => number | undefined)设置或获取正交视窗在 Y 轴上的半高。仅用于 PROJECTION_ORTHOGRAPHIC 相机,默认 10。 | - |
priority? | number | ((current: number | undefined) => number | undefined)设置或获取相机渲染优先级,数值较小的先渲染。默认 0。 | - |
projection? | number | ((current: number | undefined) => number | undefined)设置或获取投影类型。PROJECTION_PERSPECTIVE 为透视投影,视锥呈截头金字塔;PROJECTION_ORTHOGRAPHIC 为正交投影,视锥呈长方体。默认 PROJECTION_PERSPECTIVE。 | - |
projectionOffset? | [number, number] | ((current: [number, number] | undefined) => [number, number] | undefined)设置或获取投影窗口相对观察方向的偏移,形成偏心、非对称投影。单位为半视锥尺寸,(0, 1) 表示向上移动半个视锥高度。支持透视与正交投影;XR 由系统提供投影,因此忽略此值。默认 (0, 0)。典型用途是移轴透视校正:保持相机水平,用垂直偏移框选高大物体,令其竖线保持平行。 | - |
rect? | [number, number, number, number] | ((current: [number, number, number, number] | undefined) => [number, number, number, number] | undefined)设置或获取相机渲染矩形,使用归一化屏幕坐标,默认 [0, 0, 1, 1]。矩形可超出渲染目标边界,如 [-0.5, 0, 1.5, 1],仅重叠部分会被渲染。WebGL2 支持此功能;WebGPU 需平台允许视口超出目标边界。 | - |
renderSceneColorMap? | boolean | ((current: boolean | undefined) => boolean | undefined) | - |
renderSceneDepthMap? | boolean | ((current: boolean | undefined) => boolean | undefined) | - |
renderTarget? | RenderTarget | ((current: RenderTarget | undefined) => RenderTarget | undefined)设置或获取相机渲染目标。未指定时直接渲染到屏幕。 | - |
scissorRect? | [number, number, number, number] | ((current: [number, number, number, number] | undefined) => [number, number, number, number] | undefined)设置或获取相机裁剪矩形,丢弃矩形外的像素。数值顺序为 [x, y, width, height],默认 [0, 0, 1, 1]。 | - |
sensitivity? | number | ((current: number | undefined) => number | undefined)设置或获取相机 ISO 感光度,默认 1000。值越大曝光越高,仅在 Scene#physicalUnits 为 true 时使用。 | - |
shutter? | number | ((current: number | undefined) => number | undefined)设置或获取相机快门时间,单位秒,默认 1/1000 秒。快门时间越长曝光越高,仅在 Scene#physicalUnits 为 true 时使用。 | - |
system? | ComponentSystem | ((current: ComponentSystem | undefined) => ComponentSystem | undefined)创建此组件的 ComponentSystem。 | - |
entity? | Entity | ((current: Entity | undefined) => Entity | undefined)此组件挂载的 Entity。 | - |
enabled? | boolean | ((current: boolean | undefined) => boolean | undefined)设置或获取组件的启用状态。 | - |