跳到主要内容

Camera

Ploy3DDocs


Ploy3D / Camera

Class: Camera

相机组件实例。

Extends

Constructors

new Camera()

new Camera(impl, ptr, id): Camera

构造函数。

Parameters

impl: Camera_kernel

内核实现。

ptr: never

内核实例指针。

id: number

实例ID。

Returns

Camera

Overrides

Resource.constructor

Accessors

cullingFilter

get cullingFilter(): number

裁剪过滤,被标记的层不会被视锥裁剪。

set cullingFilter(value): void

Parameters

value: number

Returns

number


depth

get depth(): number

相机渲染排序(数值越高越优先渲染,最大值视为主相机)。

set depth(value): void

Parameters

value: number

Returns

number


distance

get distance(): number

相机距观察目标距离(用于脱离变换组件控制相机姿态)。

set distance(value): void

Parameters

value: number

Returns

number


enabled

get enabled(): boolean

是否启用组件。

set enabled(value): void

Parameters

value: boolean

Returns

boolean


farZ

get farZ(): number

远平面距离(用于计算相机投影矩阵)。

set farZ(value): void

Parameters

value: number

Returns

number


fov

get fov(): number

垂直视角(弧度,用于计算相机投影矩阵)。

set fov(value): void

Parameters

value: number

Returns

number


height

get height(): number

画布高度(用于计算相机投影矩阵)。

set height(value): void

Parameters

value: number

Returns

number


id

get id(): number

实例ID。

Returns

number

Inherited from

Resource.id


internalPtr

get internalPtr(): never

内核实例指针。

Returns

never

Inherited from

Resource.internalPtr


nearZ

get nearZ(): number

近平面距离(用于计算相机投影矩阵)。

set nearZ(value): void

Parameters

value: number

Returns

number


pitch

get pitch(): number

相机俯角(角度,用于脱离变换组件控制相机姿态)。

set pitch(value): void

Parameters

value: number

Returns

number


readTS

get readTS(): number

相机参数应用时间戳(传递到GPU的时间戳)。

set readTS(value): void

Parameters

value: number

Returns

number


roll

get roll(): number

相机翻滚角(角度,用于脱离变换组件控制相机姿态)。

set roll(value): void

Parameters

value: number

Returns

number


target

get target(): Float32Array

观察目标世界空间坐标(用于脱离变换组件控制相机姿态)。

set target(value): void

Parameters

value: ArrayLike<number>

Returns

Float32Array


transformCtrl

get transformCtrl(): boolean

是否由所依附对象变换组件控制相机姿态。

set transformCtrl(value): void

Parameters

value: boolean

Returns

boolean


type

get type(): number

相机类型(0-透视投影相机、1-正交投影相机)。

Returns

number


updated

get updated(): boolean

相机参数是否有更新。

set updated(value): void

Parameters

value: boolean

Returns

boolean


wdirection

get wdirection(): Vector3

世界空间观察向量。

Returns

Vector3


width

get width(): number

画布宽度(用于计算相机投影矩阵)。

set width(value): void

Parameters

value: number

Returns

number


wposition

get wposition(): Vector3

世界空间坐标。

Returns

Vector3


writeTS

get writeTS(): number

相机参数更新时间戳(计算各个变换矩阵的时间戳)。

set writeTS(value): void

Parameters

value: number

Returns

number


yaw

get yaw(): number

相机偏航角(角度,用于脱离变换组件控制相机姿态)。

set yaw(value): void

Parameters

value: number

Returns

number

Methods

Fit()

Fit(bounding, pitch?, yaw?): void

使相机姿态适应观察内容范围。

Parameters

bounding

观察内容范围。

bounding.center: number[]

bounding.extents?: number[]

pitch?: number

yaw?: number

Returns

void


GetMatrix()

GetMatrix(key): Matrix4x4

获取相机相关变换矩阵。

Parameters

key: "vfgMat" | "gfvMat" | "cfvMat" | "vfcMat" | "cfgMat" | "gfcMat" | "gfwMat" | "wfgMat" | "uvfvMat" | "last_uvfvMat" | "lastcfwMat" | "cullingMat"

变换矩阵名称。

Returns

Matrix4x4

返回矩阵数据。


Move()

Move(offsetX, offsetY, width, height): void

相机平移控制方法。

Parameters

offsetX: number

光标横向平移像素数。

offsetY: number

光标纵向平移像素数。

width: number

事件源元素宽度。

height: number

事件源元素高度。

Returns

void


Reset()

Reset(): void

重置相机基本状态。

Returns

void


Rotate()

Rotate(offsetX, offsetY, width, height): void

相机旋转控制方法。

Parameters

offsetX: number

光标横向平移像素数。

offsetY: number

光标纵向平移像素数。

width: number

事件源元素宽度。

height: number

事件源元素高度。

Returns

void


Scale()

Scale(delta, width, height): void

相机推拉控制方法。

Parameters

delta: number

滚轮方向。

width: number

事件源元素宽度。

height: number

事件源元素高度。

Returns

void


ScreenPointToRay()

ScreenPointToRay(x, y): object

屏幕空间坐标[0, 1]转世界空间射线。

Parameters

x: number

屏幕空间坐标X[0,1]。

y: number

屏幕空间坐标Y[0,1]。

Returns

object

返回世界空间射线起点和方向。

dir

dir: Vector3

origin

origin: Vector3


Set3D()

Set3D(target?, distance?, pitch?, yaw?): void

设置相机姿态。

Parameters

target?: ArrayLike<number>

观察目标坐标(世界空间)。

distance?: number

距观察目标距离。

pitch?: number

相机俯角。

yaw?: number

相机偏航角。

Returns

void


WorldToScreen()

WorldToScreen(wpos): number[]

世界坐标转相机屏幕坐标。

Parameters

wpos: number[]

世界坐标

Returns

number[]

返回屏幕坐标。