threejs 三维物体(Object3D)
阅读数:171 评论数: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)