Class: PerspectiveCamera

PerspectiveCamera

new PerspectiveCamera(params)

透视投影摄像机

Name Type Description
params Object optional

创建对象的属性参数。可包含此类的所有属性。

Name Type Default Description
fov number 50 optional

相机视野大小,角度制

near number 0.1 optional

相机视锥体近平面z

far number null optional

相机视锥体远平面z,null 时为无限远

aspect number 1 optional

宽高比

[value:string] any optional

其它属性

Extends

Members Show Inherited

Name Type Default Description
isPerspectiveCamera boolean true
className string PerspectiveCamera
near number 0.1

相机视锥体近平面z

far number null

相机视锥体远平面z,null 时为无限远

fov number 50

相机视野大小,角度制

aspect number 1

宽高比

isCamera boolean true inherited
viewMatrix Matrix4 inherited

相对于摄像头的矩阵

projectionMatrix Matrix4 inherited

投影矩阵

viewProjectionMatrix Matrix4 inherited

View 联结投影矩阵

isNode boolean true inherited
name string inherited

Node 的名字,可以通过 getChildByName 查找

anim Animation null inherited

动画

animationId String '' inherited

animation 查找 id

jointName String '' inherited

骨骼名称

autoUpdateWorldMatrix boolean true inherited

是否自动更新世界矩阵

autoUpdateChildWorldMatrix boolean true inherited

是否自动更新子元素世界矩阵

parent Node null inherited

父节点

needCallChildUpdate boolean true inherited

每次更新的时候是否调用子节点的 onUpdate 方法

visible boolean true inherited

节点是否显示

pointerEnabled Boolean true inherited

可视对象是否接受交互事件。默认为接受交互事件,即true。

pointerChildren Boolean true inherited

子元素是否接受交互事件。

useHandCursor Boolean false inherited

是否用鼠标指针

userData any null inherited

用户数据

onUpdate function null inherited

update 回调

onlySyncQuaternion Boolean false inherited

只同步四元数,不同步欧拉角

id string inherited
up Vector3 inherited

元素的up向量

children Array.<Node> inherited

元素直接点数组

worldMatrix Matrix4 inherited

元素的世界矩阵

matrix Matrix4Notifier inherited

元素的矩阵

position Vector3Notifier inherited

位置

x number inherited

x轴坐标

y number inherited

y轴坐标

z number inherited

z轴坐标

scale Vector3Notifier inherited

缩放

scaleX number inherited

缩放比例x

scaleY number inherited

缩放比例y

scaleZ number inherited

缩放比例z

pivot Vector3Notifier inherited

中心点

pivotX Number inherited

中心点x

pivotY Number inherited

中心点y

pivotZ Number inherited

中心点z

rotation EulerNotifier inherited

欧拉角

rotationX number inherited

旋转角度 x, 角度制

rotationY number inherited

旋转角度 y, 角度制

rotationZ number inherited

旋转角度 z, 角度制

quaternion Quaternion inherited

四元数角度

matrixVersion Number 0 inherited

矩阵 version,每次改变会加一

worldMatrixVersion Number 0 inherited

世界矩阵 version,每次改变会加一

Methods Show Inherited

updateProjectionMatrix()

更新投影矩阵

inherited updateViewMatrix(){Camera}

更新viewMatrix

Returns:
Type Description
Camera this

inherited getGeometry(forceUpdate){Geometry}

获取几何体,子类必须重写

Name Type Description
forceUpdate Boolean

是否强制更新

Returns:
Type Description
Geometry

inherited updateViewProjectionMatrix(){Camera}

更新viewProjectionMatrix

Returns:
Type Description
Camera this

inherited getModelViewMatrix(node, out){Matrix4}

获取元素相对于当前Camera的矩阵

Name Type Description
node Node

目标元素

out Matrix4 optional

传递将在这个矩阵上做计算,不传将创建一个新的 Matrix4

Returns:
Type Description
Matrix4 返回获取的矩阵

inherited getModelProjectionMatrix(node, out){Matrix4}

获取元素的投影矩阵

Name Type Description
node Node

目标元素

out Matrix4 optional

传递将在这个矩阵上做计算,不传将创建一个新的 Matrix4

Returns:
Type Description
Matrix4 返回获取的矩阵

inherited projectVector(vector, width, height){Vector3}

获取世界坐标系(三维)中一个点在画布(二维)上的位置

Name Type Description
vector Vector3

点坐标

width number optional

画布宽,不传的话返回-1~1

height number optional

画布高,不传的话返回-1~1

Returns:
Type Description
Vector3 返回获取的坐标位置,如 { x: 0, y: 0 }

inherited unprojectVector(vector, width, height){Vector3}

屏幕坐标转换世界坐标系

Name Type Description
vector Vector3

点坐标

width number optional

画布宽,传的话vector会认为是屏幕坐标

height number optional

画布高,传的话vector会认为是屏幕坐标

Returns:
Type Description
Vector3 返回世界坐标系(三维)中一个点

inherited isPointVisible(point){Boolean}

point是否摄像机可见

Name Type Description
point Vector3
Returns:
Type Description
Boolean

inherited isMeshVisible(mesh){Boolean}

mesh 是否摄像机可见

Name Type Description
mesh Mesh
Returns:
Type Description
Boolean

inherited updateFrustum(matrix){Camera}

更新 frustum

Name Type Description
matrix Matrix4
Returns:
Type Description
Camera this

inherited clone(isChild){Node}

Name Type Default Description
isChild boolean false optional

是否子节点,子节点不会处理动画及骨骼Mesh,即如果有动画将共享

Returns:
Type Description
Node 返回clone的Node

设置节点的动画,这个需要是模型的根节点

Name Type Description
anim Animation

动画实例

Returns:
Type Description
Node this

inherited resetSkinedMeshRootNode()

重置子孙元素中 SkinedMesh 的根节点为当前元素

inherited getChildrenNameMap(){Object}

将所以子孙元素放到一个对象中,对象key为元素的name,value为该元素

Returns:
Type Description
Object 返回获取的对象

inherited addChild(child){Node}

添加一个子元素

Name Type Description
child Node

需要添加的子元素

Returns:
Type Description
Node this

inherited removeChild(child){Node}

移除指定的子元素

Name Type Description
child Node

需要移除的元素

Returns:
Type Description
Node this

将当前元素添加到某个父元素的子元素中

Name Type Description
parent Node

需要添加到的父元素

Returns:
Type Description
Node this

inherited removeFromParent(){Node}

将当前元素从其父元素中移除

Returns:
Type Description
Node this

inherited updateMatrix(){Node}

更新本地矩阵

Returns:
Type Description
Node this

inherited updateQuaternion(){Node}

更新四元数

Returns:
Type Description
Node this

inherited updateTransform(){Node}

更新transform属性

Returns:
Type Description
Node this

inherited updateMatrixWorld(force){Node}

更新世界矩阵

Name Type Default Description
force Boolean true optional

是否强制更新

Returns:
Type Description
Node this

inherited getConcatenatedMatrix(ancestor){Matrix4}

获取当前元素相对于指定元素的矩阵

Name Type Description
ancestor Node optional

相对于的元素,需要是当前元素的祖先元素,不传表示获取世界矩阵

Returns:
Type Description
Matrix4 返回获取的矩阵

inherited traverse(callback, onlyChild){Node}

遍历当前元素的子孙元素

Name Type Default Description
callback NodeTraverseCallback

每个元素都会调用这个函数处理

onlyChild Boolean false optional

是否只遍历子元素

Returns:
Type Description
Node this

inherited traverseBFS(callback, onlyChild){Node}

遍历当前元素的子孙元素(广度优先)

Name Type Default Description
callback NodeTraverseCallback

每个元素都会调用这个函数处理

onlyChild Boolean false optional

是否只遍历子元素

Returns:
Type Description
Node this

inherited getChildByFnBFS(fn){Node|null}

根据函数来获取一个子孙元素(广度优先)

Name Type Description
fn NodeGetChildByCallback

判读函数

Returns:
Type Description
Node | null 返回获取到的子孙元素

inherited getChildByNamePath(path){Node|null}

根据 name path 来获取子孙元素

Name Type Description
path Array.<String>

名字数组, e.g., getChildByNamePath(['a', 'b', 'c'])

Returns:
Type Description
Node | null 返回获取到的子孙元素

inherited traverseUpdate(dt){Node}

遍历调用子孙元素onUpdate方法

Name Type Description
dt Number
Returns:
Type Description
Node this

inherited getChildByFn(fn){Node|null}

根据函数来获取一个子孙元素

Name Type Description
fn NodeGetChildByCallback

判读函数

Returns:
Type Description
Node | null 返回获取到的子孙元素

inherited getChildrenByFn(fn){Array.<Node>}

根据函数来获取匹配的所有子孙元素

Name Type Description
fn NodeGetChildByCallback

判读函数

Returns:
Type Description
Array.<Node> 返回获取到的子孙元素

inherited getChildByName(name){Node|null}

获取指定name的首个子孙元素

Name Type Description
name string

元素name

Returns:
Type Description
Node | null 获取的元素

inherited getChildrenByName(name){Array.<Node>}

获取指定name的所有子孙元素

Name Type Description
name string

元素name

Returns:
Type Description
Array.<Node> 获取的元素数组

inherited getChildById(id){Node|null}

获取指定id的子孙元素

Name Type Description
id string

元素id

Returns:
Type Description
Node | null 获取的元素

inherited getChildrenByClassName(className){Array.<Node>}

获取指定类名的所有子孙元素

Name Type Description
className string

类名

Returns:
Type Description
Array.<Node> 获取的元素数组

inherited getChildrenByBaseClassName(className){Array.<Node>}

获取指定基类名的所有子孙元素

Name Type Description
className string

类名

Returns:
Type Description
Array.<Node> 获取的元素数组

inherited setScale(x, y, z){Node}

设置元素的缩放比例,如果只有一个参数三个轴等比缩放

Name Type Description
x number

X缩放比例

y number optional

Y缩放比例

z number optional

Z缩放比例

Returns:
Type Description
Node this

inherited setPosition(x, y, z){Node}

设置元素的位置

Name Type Description
x number

X方向位置

y number

Y方向位置

z number

Z方向位置

Returns:
Type Description
Node this

inherited setRotation(x, y, z){Node}

设置元素的旋转

Name Type Description
x number

X轴旋转角度, 角度制

y number

Y轴旋转角度, 角度制

z number

Z轴旋转角度, 角度制

Returns:
Type Description
Node this

inherited setPivot(x, y, z){Node}

设置中心点

Name Type Description
x Number

中心点x

y Number

中心点y

z Number

中心点z

Returns:
Type Description
Node this

改变元素的朝向

Name Type Description
node Node | Object | Vector3

需要朝向的元素,或者坐标

Returns:
Type Description
Node this

inherited raycast(ray, sort, eventMode){Array.<raycastInfo>|null}

raycast

Name Type Default Description
ray Ray
sort Boolean false optional

是否按距离排序

eventMode Boolean false optional

是否事件模式

Returns:
Type Description
Array.<raycastInfo> | null

inherited getBounds(parent, currentMatrix, bounds){Bounds}

获取元素的包围盒信息

Name Type Description
parent Node optional

元素相对于哪个祖先元素的包围盒,不传表示世界

currentMatrix Matrix4 optional

当前计算的矩阵

bounds Bounds optional

当前计算的包围盒信息

Returns:
Type Description
Bounds 返回计算的包围盒信息

inherited destroy(renderer, destroyTextures){Node}

销毁 Node 资源

Name Type Default Description
renderer WebGLRenderer optional

stage时可以不传

destroyTextures Boolean false optional

是否销毁材质的贴图,默认不销毁

Returns:
Type Description
Node this