three.js中的object3D对象
下⾯是object3D对象的构造⽅法,在该⽅法下我们可以清楚的看到⼀个object3D对象的构造过程。
接下来按源码顺序具体解释⼀下每个属性和对象⽅法:
Object.defineProperty() ⽅法会直接在⼀个对象上定义⼀个新属性,或者修改⼀个对象的现有属性, 并返回这个对象。
uuid是Universally Unique Identifier的缩写,它是在⼀定的范围内(从特定的名字空间到全球)唯⼀的机器⽣成的标识符。
name可以⾃⼰指定,默认为空。
免费英文简历模板type类型即为object3D。
children为其⼦对象。
reply过去式THREE.Object3D.DefaultUp将此对象的up⽅向设置为默认的物体的up⽅向,同时也作为DirectionalLight、HemisphereLight和Spotlight(⾃顶向下创建的灯光)的默认⽅向。 默认设为( 0, 1, 0 )。
scope范围
position中⼼点的位置
rotation转动⾓度
quaternion四元数,这个现在我还没有搞懂
scale设置缩⼩或者放⼤倍数
如何学好英语口语onRotationChange⽤来更新转向
onQuaternionChange⽤来更新四元数
Object.defineProperties见第⼀个
renderDepth渲染程度
rotationAutoUpdate设置转向⾃动更新
高一数学课程讲解视频matrix这是关于矩阵的,之后再进⾏研究。
visible对象是否可见
castShadow光照是否有阴影
receiveShadow是否接收阴影
frustumCulled默认true,设置后在每⼀帧渲染时检查对象在相机的截头体(四棱台)。如果设定为真,那么在相机视界之外的会被踢出。urDataObject 存储⽤户⾃定义数据的对象
源码如下所⽰:
optimalTHREE.Object3D=function(){
Object.defineProperty(this,'id',{ value:THREE.Object3DIdCount ++});
this.uuid =ateUUID();
this.name ='';
this.parent = undefined;
this.children =[];
this.up =THREE.Object3D.DefaultUp.clone();
var scope =this;
var position =new THREE.Vector3();
var rotation =new THREE.Euler();
var quaternion =new THREE.Quaternion();
var scale =new THREE.Vector3(1,1,1);
var onRotationChange=function(){
quaternion.tFromEuler( rotation,fal);
spotlight
};
var onQuaternionChange=function(){
rotation.tFromQuaternion( quaternion, undefined,fal);
};
};
Object.defineProperties(this,{
position:{
enumerable:true,
value: position
},
rotation:{
enumerable:true,
value: rotation
},
quaternion:{
enumerable:true,
value: quaternion
},
scale:{
enumerable:true,
value: scale
},迈格森
});
this.matrix =new THREE.Matrix4();
考研英语复习this.matrixWorld =new THREE.Matrix4();
this.matrixAutoUpdate =true;
this.matrixWorldNeedsUpdate =fal;
this.visible =true;
this.castShadow =fal;
stunning
this.frustumCulled =true;
this.urData ={};
};