Skip to content

@simversus/yjvis


@simversus/yjvis / cax / CaxScene

Class: CaxScene ​

Defined in: cax/CaxScene.ts:59

场景,渲染物体的容器

Extends ​

  • Scene

Constructors ​

Constructor ​

new CaxScene(_p): CaxScene

Defined in: cax/CaxScene.ts:148

构造函数

Parameters ​

_p ​

SceneOption = ...

场景配置项

Returns ​

CaxScene

Overrides ​

Scene.constructor

Properties ​

_visible ​

_visible: boolean = true

Defined in: core/Transform.ts:51

是否可见

Inherited from ​

Scene._visible


autoAdjustCameraClippingRange ​

autoAdjustCameraClippingRange: boolean = true

Defined in: cax/CaxScene.ts:87

是否每次渲染自动调整相机剪切面


background? ​

optional background: Number3 | Node | Color | CubeTexture | DataTexture

Defined in: scene/Scene.ts:20

场景背景,可以是颜色、纹理或节点

Inherited from ​

Scene.background


backgroundBlurriness ​

backgroundBlurriness: number = 0

Defined in: scene/Scene.ts:45

背景模糊度 (0-1)

Inherited from ​

Scene.backgroundBlurriness


backgroundIntensity ​

backgroundIntensity: number = 1

Defined in: scene/Scene.ts:50

背景强度

Inherited from ​

Scene.backgroundIntensity


backgroundNode? ​

optional backgroundNode: Node

Defined in: scene/Scene.ts:40

背景节点

Inherited from ​

Scene.backgroundNode


backgroundRotation ​

backgroundRotation: Euler

Defined in: scene/Scene.ts:55

背景旋转角度 (Euler)

Inherited from ​

Scene.backgroundRotation


camera ​

camera: CaxCamera

Defined in: cax/CaxScene.ts:61

场景主相机


castShadow ​

castShadow: boolean = false

Defined in: core/Transform.ts:27

是否投射阴影

Inherited from ​

Scene.castShadow


children ​

children: Transform[] = []

Defined in: core/Transform.ts:57

子节点

Inherited from ​

Scene.children


classHierarchy ​

classHierarchy: ClassEnum[]

Defined in: core/baseObject.ts:19

继承链

Inherited from ​

Scene.classHierarchy


control ​

control: CameraControlBase

Defined in: cax/CaxScene.ts:70

相机控制器


environment? ​

optional environment: DataTexture

Defined in: scene/Scene.ts:25

环境贴图,用于基于图像的光照 (IBL)

Inherited from ​

Scene.environment


environmentNode? ​

optional environmentNode: Node

Defined in: scene/Scene.ts:35

环境光节点

Inherited from ​

Scene.environmentNode


fogNode? ​

optional fogNode: Node

Defined in: scene/Scene.ts:30

雾效节点

Inherited from ​

Scene.fogNode


id ​

readonly id: number

Defined in: core/Transform.ts:40

唯一序号

Inherited from ​

Scene.id


interactor ​

interactor: Interactor

Defined in: cax/CaxScene.ts:66

场景交互器


label? ​

optional label: string

Defined in: core/baseObject.ts:27

自定义标识

Inherited from ​

Scene.label


layerMask ​

layerMask: number = 0

Defined in: core/Transform.ts:139

层级掩码,用于控制不同层级对象的可见性或交互

Inherited from ​

Scene.layerMask


matrix ​

matrix: Mat4

Defined in: core/Transform.ts:71

本地变换矩阵 (相对于父节点)

Inherited from ​

Scene.matrix


modelViewMatrix ​

modelViewMatrix: Mat4

Defined in: core/Transform.ts:82

模型视图矩阵 (ModelMatrix * ViewMatrix) 用于着色器计算

Inherited from ​

Scene.modelViewMatrix


normalMatrix ​

normalMatrix: Mat3

Defined in: core/Transform.ts:88

法线矩阵 (模型视图矩阵的逆转置矩阵的左上3x3部分) 用于变换法向量

Inherited from ​

Scene.normalMatrix


occlusionTest ​

occlusionTest: boolean = false

Defined in: core/Transform.ts:35

是否进行遮挡查询测试

Inherited from ​

Scene.occlusionTest


oitWeightScale ​

oitWeightScale: number = 1

Defined in: cax/CaxScene.ts:99

WOIT 的权重缩放系数。 保持为 1 时与默认算法一致。


onAfterRender()? ​

optional onAfterRender: (node) => void

Defined in: core/Transform.ts:134

渲染后的回调

Parameters ​

node ​

Transform

Returns ​

void

Inherited from ​

Scene.onAfterRender


onBeforeRender()? ​

optional onBeforeRender: (node, scene?, camera?, geometry?, material?, group?) => void

Defined in: core/Transform.ts:122

渲染前的回调

Parameters ​

node ​

any

scene? ​

Scene

camera? ​

Camera

geometry? ​

BufferGeometry

material? ​

NodeMaterial

group? ​

any

Returns ​

void

Inherited from ​

Scene.onBeforeRender


overrideMaterial? ​

optional overrideMaterial: NodeMaterial

Defined in: scene/Scene.ts:15

覆盖材质,如果设置,场景中所有物体将使用此材质渲染

Inherited from ​

Scene.overrideMaterial


parent? ​

optional parent: Transform

Defined in: core/Transform.ts:63

父节点

Inherited from ​

Scene.parent


position ​

position: Vec3

Defined in: core/Transform.ts:100

位置

Inherited from ​

Scene.position


quaternion ​

quaternion: Quat

Defined in: core/Transform.ts:112

旋转

Inherited from ​

Scene.quaternion


receiveShadow ​

receiveShadow: boolean = false

Defined in: core/Transform.ts:31

是否接收阴影

Inherited from ​

Scene.receiveShadow


renderer ​

renderer: Renderer

Defined in: cax/CaxScene.ts:77

渲染器


renderOrder ​

renderOrder: number = 0

Defined in: core/Transform.ts:45

渲染顺序

Inherited from ​

Scene.renderOrder


rotation ​

rotation: Euler

Defined in: core/Transform.ts:117

旋转信息的欧拉表达

Inherited from ​

Scene.rotation


scaling ​

scaling: Vec3

Defined in: core/Transform.ts:106

缩放

Inherited from ​

Scene.scaling


transparencyMode ​

transparencyMode: TransparencyMode = TransparencyMode.WOIT

Defined in: cax/CaxScene.ts:93

当前场景的透明物体渲染模式。 默认使用 WOIT,Alpha Blend 作为显式回退选项。


up ​

up: Vec3

Defined in: core/Transform.ts:94

上方向

Inherited from ​

Scene.up


userData ​

userData: object = {}

Defined in: core/baseObject.ts:23

用户自定义数据

Inherited from ​

Scene.userData


uuid ​

uuid: string

Defined in: core/baseObject.ts:15

唯一标识符

Inherited from ​

Scene.uuid


worldMatrix ​

worldMatrix: Mat4

Defined in: core/Transform.ts:76

世界变换矩阵 (相对于世界坐标系)

Inherited from ​

Scene.worldMatrix

Accessors ​

mtime ​

Get Signature ​

get mtime(): number

Defined in: core/baseObject.ts:56

获取对象的最后修改时间戳

Returns ​

number

Inherited from ​

PixelData.mtime


renderArea ​

Get Signature ​

get renderArea(): Number4

Defined in: cax/CaxScene.ts:122

获取渲染区域。 单位为物理像素。Number4: [startX, startY, width, height]

Returns ​

Number4

Set Signature ​

set renderArea(area): void

Defined in: cax/CaxScene.ts:140

设置渲染区域。 单位为物理像素。Tuple: [startX, startY, width, height]

Parameters ​
area ​

[x, y, width, height] 或返回该数组的函数

Number4 | () => Number4

Returns ​

void


visible ​

Get Signature ​

get visible(): boolean

Defined in: core/Transform.ts:170

获取可见性状态

Returns ​

boolean

Set Signature ​

set visible(value): void

Defined in: core/Transform.ts:177

设置可见性状态

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Scene.visible

Methods ​

add() ​

add(...nodes): void

Defined in: core/Transform.ts:358

添加子节点 会自动将子节点从原来的父节点移除

Parameters ​

nodes ​

...Transform[]

要添加的子节点列表

Returns ​

void

Inherited from ​

Scene.add


addEventListener() ​

addEventListener(type, cb): void

Defined in: core/baseObject.ts:105

添加事件监听器

Parameters ​

type ​

string

事件类型字符串

cb ​

Function

事件触发时的回调函数

Returns ​

void

Inherited from ​

Scene.addEventListener


adjustCamera() ​

adjustCamera(ratio, setBox?): void

Defined in: cax/CaxScene.ts:320

自动调整相机位置和视角以适应场景中的物体 会计算场景包围盒,将相机移动到合适的位置,使得物体尽可能充满视野

Parameters ​

ratio ​

number = 0.5

场景中物体在视口中的填充比例,范围 (0, 1],默认0.5

setBox? ​

Box

可选的手动指定的包围盒,如果不提供则自动计算场景可见包围盒

Returns ​

void


adjustCameraClippingRange() ​

adjustCameraClippingRange(setBox?): void

Defined in: cax/CaxScene.ts:371

自动调整相机的近远裁剪面 (near/far plane) 使得裁剪范围尽可能紧凑地包裹可见物体,提高深度缓冲精度

Parameters ​

setBox? ​

Box

可选的手动指定的包围盒,如果提供则优先使用

Returns ​

void


changed() ​

changed(): void

Defined in: core/baseObject.ts:72

标记对象为已修改 更新修改时间戳并触发所有注册的变更回调

Returns ​

void

Inherited from ​

Scene.changed


clearBounds() ​

clearBounds(): void

Defined in: cax/CaxScene.ts:361

清除外部设置的包围盒,恢复自动计算

Returns ​

void


clone() ​

clone(recursive?): CaxScene

Defined in: core/Transform.ts:406

克隆当前节点

Parameters ​

recursive? ​

boolean

是否递归克隆子节点,默认为 true

Returns ​

CaxScene

克隆后的新节点

Inherited from ​

Scene.clone


computeVisibleBounds() ​

computeVisibleBounds(): Box

Defined in: cax/CaxScene.ts:277

计算场景中所有可见物体的合围包围盒

Returns ​

Box

计算得到的 Box 对象,如果没有可见物体则返回 null


copy() ​

copy(source, recursive): CaxScene

Defined in: core/Transform.ts:417

从源节点复制属性

Parameters ​

source ​

this

源节点

recursive ​

boolean = true

是否递归复制子节点,默认为 true

Returns ​

CaxScene

this

Inherited from ​

Scene.copy


dfsSceneGraph() ​

dfsSceneGraph(): object

Defined in: cax/CaxScene.ts:227

深度优先遍历场景图,收集所有可见的模型和灯光

Returns ​

object

包含模型数组和灯光数组的对象

lights ​

lights: Light[]

models ​

models: Model[]


dispatchEvent() ​

dispatchEvent(event): void

Defined in: core/baseObject.ts:126

分发事件 触发所有注册了该事件类型的监听器

Parameters ​

event ​

事件对象,包含 type 和可选的 data

data? ​

any

type ​

string

Returns ​

void

Inherited from ​

Scene.dispatchEvent


dispose() ​

dispose(): void

Defined in: cax/CaxScene.ts:217

销毁该对象 分发 dispose 事件,通知监听者对象即将被销毁

Returns ​

void

Overrides ​

Scene.dispose


getRotation() ​

getRotation(): Number3

Defined in: core/Transform.ts:208

获取欧拉角旋转信息 (数组形式)

Returns ​

Number3

[x, y, z] 旋转角度数组

Inherited from ​

Scene.getRotation


getWorldDirection() ​

getWorldDirection(target): Vec3

Defined in: core/Transform.ts:343

获取节点在世界空间中的朝向

Parameters ​

target ​

Vec3 = ...

目标向量,用于存储结果

Returns ​

Vec3

朝向向量

Inherited from ​

Scene.getWorldDirection


is() ​

is(t): boolean

Defined in: core/baseObject.ts:65

检查对象是否属于指定的类类型

Parameters ​

t ​

ClassEnum

类类型枚举值

Returns ​

boolean

如果对象是该类型或继承自该类型,则返回 true

Inherited from ​

Scene.is


lookAt() ​

lookAt(target): void

Defined in: core/Transform.ts:291

使节点看向指定目标点 (改变朝向)

Parameters ​

target ​

Vec3 = ...

目标点坐标 (Vec3)

Returns ​

void

Inherited from ​

Scene.lookAt


lookTo() ​

lookTo(direction): void

Defined in: core/Transform.ts:304

使节点看向指定方向

Parameters ​

direction ​

Vec3

方向向量 (Vec3)

Returns ​

void

Inherited from ​

Scene.lookTo


onChanged() ​

onChanged(cb): () => void

Defined in: core/baseObject.ts:90

注册对象变更回调 当对象发生改变(调用 changed 方法)时触发

Parameters ​

cb ​

Function

回调函数

Returns ​

取消注册该回调的函数

(): void

Returns ​

void

Inherited from ​

Scene.onChanged


recordCameraState() ​

recordCameraState(ratio): object

Defined in: cax/CaxScene.ts:439

记录并计算适应当前场景的理想相机状态(位置和缩放) 不会实际修改当前相机的状态,而是返回计算结果

Parameters ​

ratio ​

number = 0.5

场景中物体在视口中的填充比例,默认0.5

Returns ​

object

包含理想相机位置和缩放比例的对象

parallelScale ​

parallelScale: number

position ​

position: Vec3


remove() ​

remove(...nodes): void

Defined in: core/Transform.ts:372

移除子节点

Parameters ​

nodes ​

...Transform[]

要移除的子节点列表

Returns ​

void

Inherited from ​

Scene.remove


removeEventListener() ​

removeEventListener(type, cb): void

Defined in: core/baseObject.ts:116

移除事件监听器

Parameters ​

type ​

string

事件类型字符串

cb ​

Function

要移除的回调函数

Returns ​

void

Inherited from ​

Scene.removeEventListener


render() ​

render(rop): Promise<void>

Defined in: cax/CaxScene.ts:172

渲染场景

Parameters ​

rop ​

RenderOP = {}

渲染选项

Returns ​

Promise<void>


reSetCameraPosition() ​

reSetCameraPosition(ratio): void

Defined in: cax/CaxScene.ts:418

重置相机位置,使其沿着当前视角方向移动,以适应场景中的物体 不会改变相机的朝向,只会改变位置

Parameters ​

ratio ​

number = 0.5

场景中物体在视口中的填充比例,默认0.5

Returns ​

void


rotate() ​

rotate(param0): void

Defined in: core/Transform.ts:270

绕本地坐标系的 X, Y, Z 轴旋转及从欧拉角选择

Parameters ​

param0 ​

包含 dx, dy, dz 的对象 (弧度)

dx? ​

number

dy? ​

number

dz? ​

number

Returns ​

void

Inherited from ​

Scene.rotate


rotateOnAxis() ​

rotateOnAxis(axis, radian): void

Defined in: core/Transform.ts:251

绕本地坐标系的指定轴旋转

Parameters ​

axis ​

Vec3

旋转轴 (Vec3)

radian ​

number

旋转角度 (弧度)

Returns ​

void

Inherited from ​

Scene.rotateOnAxis


rotateOnWorldAxis() ​

rotateOnWorldAxis(axis, radian): void

Defined in: core/Transform.ts:261

绕世界坐标系的指定轴旋转

Parameters ​

axis ​

Vec3

旋转轴 (Vec3)

radian ​

number

旋转角度 (弧度)

Returns ​

void

Inherited from ​

Scene.rotateOnWorldAxis


scale() ​

scale(param0): void

Defined in: core/Transform.ts:280

缩放节点 (在现有缩放基础上累乘)

Parameters ​

param0 ​

包含 dx, dy, dz 的对象

dx? ​

number

dy? ​

number

dz? ​

number

Returns ​

void

Inherited from ​

Scene.scale


setBounds() ​

setBounds(box): void

Defined in: cax/CaxScene.ts:353

设置外部包围盒,避免重复计算

Parameters ​

box ​

Box

包围盒,如果为 null 则清除外部设置的包围盒,恢复自动计算

Returns ​

void


setMatrix() ​

setMatrix(m): void

Defined in: core/Transform.ts:190

设置节点的本地变换矩阵 会自动分解出 position, quaternion, scaling

Parameters ​

m ​

Mat4

变换矩阵

Returns ​

void

Inherited from ​

Scene.setMatrix


setRotation() ​

setRotation(x, y, z): void

Defined in: core/Transform.ts:218

设置旋转角度 (欧拉角)

Parameters ​

x ​

number

X轴旋转角度 (弧度),也可传入 Vec3

y ​

number = x

Y轴旋转角度 (弧度)

z ​

number = x

Z轴旋转角度 (弧度)

Returns ​

void

Inherited from ​

Scene.setRotation


toJSON() ​

toJSON(): any

Defined in: core/Transform.ts:393

序列化为 JSON 对象

Returns ​

any

包含位置、旋转和缩放的 JSON 对象

Inherited from ​

Scene.toJSON


translate() ​

translate(param0): void

Defined in: core/Transform.ts:240

沿本地坐标系的 X, Y, Z 轴平移

Parameters ​

param0 ​

包含 dx, dy, dz 的对象

dx? ​

number

dy? ​

number

dz? ​

number

Returns ​

void

Inherited from ​

Scene.translate


translateOnAxis() ​

translateOnAxis(axis, distance): CaxScene

Defined in: core/Transform.ts:230

沿指定轴平移节点 轴是在本地坐标系下指定的,但移动方向受当前旋转影响

Parameters ​

axis ​

Vec3

移动轴 (Vec3)

distance ​

number

移动距离

Returns ​

CaxScene

this

Inherited from ​

Scene.translateOnAxis


traverse() ​

traverse(cb): void

Defined in: core/Transform.ts:199

遍历场景树,对当前节点及所有后代节点执行回调

Parameters ​

cb ​

(node) => void

回调函数,接收当前正在处理的节点作为参数

Returns ​

void

Inherited from ​

Scene.traverse


updateMatrix() ​

updateMatrix(): void

Defined in: core/Transform.ts:313

更新本地矩阵 根据当前的 position, quaternion, scaling 组合计算 matrix

Returns ​

void

Inherited from ​

Scene.updateMatrix


updateWorldMatrix() ​

updateWorldMatrix(): void

Defined in: cax/CaxScene.ts:204

更新场景中所有物体的世界矩阵,并准备渲染 会自动调整相机的近远裁剪面(如果开启)

Returns ​

void

Overrides ​

Scene.updateWorldMatrix


useOrbitControl() ​

useOrbitControl(): OrbitControl

Defined in: cax/CaxScene.ts:252

启用轨道控制器 (OrbitControl) 允许用户围绕焦点旋转、缩放和平移相机

Returns ​

OrbitControl

OrbitControl 实例


useTrackBallControl() ​

useTrackBallControl(): TrackballControl

Defined in: cax/CaxScene.ts:265

启用轨迹球控制器 (TrackballControl) 允许用户自由旋转相机(无极轴限制)

Returns ​

TrackballControl

TrackballControl 实例