applyMatrix不适用于克隆网格

时间:2014-09-15 16:01:25

标签: javascript three.js

在这个链接中,我快速组织了一个克隆网格并应用矩阵的展示: http://codepen.io/anon/pen/Crsxy

正如您在第150行所见,当我克隆网格并应用矩阵时,顶点根本不会改变位置。

 particle = electron.clone();                  
 particle.geometry.applyMatrix(new THREE.Matrix4().makeTranslation(position.x,position.y,position.z));

但是当我创建一个新网格并在构造函数中使用克隆的几何和材质时,它的工作正常!

 particle = new THREE.Mesh(electron.geometry.clone(),electron.material.clone());
 particle.geometry.applyMatrix(new THREE.Matrix4().makeTranslation(position.x,position.y,position.z));

当我更改THREE.Mesh的克隆功能时,它可以预期!

 THREE.Mesh.prototype.clone = function ( object, recursive ) {
   if ( object === undefined ) object = new THREE.Mesh( this.geometry.clone(), this.material.clone() );
   THREE.Object3D.prototype.clone.call( this, object, recursive );
   return object;
 };
 particle = electron.clone();                  
 particle.geometry.applyMatrix(new THREE.Matrix4().makeTranslation(position.x,position.y,position.z));

所以我的问题是,如果我应该总是实例化一个新的网格并使用构造函数中的克隆,或者我错误地期望THREE.Mesh的克隆函数使用克隆的几何和材料?

0 个答案:

没有答案