threejs 三维物体(Object3D)

阅读数:2 评论数:0

跳转到新版页面

分类

html/css/js

正文

这是Three.js中大部分对象的基类,提供了一系列的属性的方法来对三维空间中的物体进行操作。

一、构造方法

Object3D()

二、属性

1、castShadow:Boolean

对象是否被渲染到阴影贴图中,默认值为false。

2、children:Object3D

含有子对象的数组

3、customDepthMaterial:Material

渲染到深度贴图时此材质要使用的自定义深度材质。与DirectionalLight或SpotLight同时使用。

4、customDistanceMaterial: Material

与customDepthMaterial相同,但与PointLight一起使用。

5、frustumCulled:Boolean

当这个属性被设置的时候,它将在渲染物体之前,检查每一帧的物体是否在相机的视锥体中,否则,即使物体不可见,它也将在每一贝帧中被渲染,默认值为true。

6、id:Integer

7、layers:Layers

物体的层级关系,物体只有和一个正在使用的Camera至少在同一个层时才可见。

8、matrix:Matrix4

局部变换矩阵。

9、matrixAutoUpdate:Boolean

当这个属性设置之后,它将计算每一帧的位移、旋转和缩放矩阵,并重新计算matrixWorld属性。

10、matrixWorld:Matrix4

物体的世界变换。

11、matrixWorldNeedsUpdate:Boolean

当这个属性设置之后,它将计算在那一帧中的matrixWorld,并将这个值重置为false。

12、modelViewMatrix:Matrix4

这个值传递给着色器,用于计算物体的位置。

13、name:String

14、normalMatrix:Matrix3

这个值传递给着色器,用于计算物体的光照。

15、onAfterRender: function

一个可选的回调函数,在Object3D渲染之后直接执行。

16、onBeforeRender: function

一个可选的回调函数,在Object3D渲染之前直接调用。

17、parent:Object3D

一个对象最多仅能有一个父级对象。

18、position:Vector3

表示对象局部位置,默认值(0,0,0)

19、quaternion: Quaternion

表示对象局部旋转的四元数。

20、receiveShadow:Boolean

材质是否接收阴影,默认值为false。

21、renderOrder:Number

不透明对象和透明对象保持独立顺序,渲染顺序是由低到高来排序的,默认值为0.

22、rotation:Euler

物体的局旋转,以弧度来表示

23、scale:Vector3

物体的局部缩放。默认值 (1,1,1)

24、up

这个属性由lookAt方法所使用。

25、userData:object

一个用于存储Object3D自定义数据的对象。

26、visible:Boolean

这个值为true时,物体将被渲染,默认值为true。

三、方法

1、add(object:Object3D,...)

添加对象到这个对象的子级,可以添加任意数量的对象。当前传入的对象中的父级将在这里被移除,因为一个对象仅能有一个父级。

2、applyMatrix(matrix:Matrix4)

对当前物体应用这个变换矩阵。

3、applyQuaternion(quaternion:Quaternion)

对当前物体应用由四元数所表示的变换。

4、lookAt(vector: Vector3) lookAt(x,y,z)

旋转物体使其在世界空间中面朝一个点,这一方法不支持其父级被旋转过或者被位移过的物体。

5、remove(object:Object,...)

从当前对象的子级中移除对象

6、roateOnAxis(axis:Vector3,angle:Float)

在局部空间中绕着该物体的轴来旋转一个物体,假设这个轴已被标准化。

7、rotateOnWorldAxis(axis:Vector3,angle: Float)

在世界空间中绕着该物体来旋转一个物体。

8、rotateX(rad:Float) roateY(rad:Float) rotateZ(rad:Float)