2016-04-08 3 views
0

Я новичок в three.js и мне нужно, чтобы загрузить объект частиц , кажется, работает, если добавить частицы на вершинахthreejs перемещение одного объекта перемещает второй слишком

если я загрузить мой JSon раз и внутри load() я строю 2 разных THREE.Points, когда я перемещаю первый второй, также перемещаюсь, если я использую 2 разных вызова нагрузки и внутри каждого из них я создаю объект THREE.Points, каждый объект может перемещаться отдельно

это i функция которые я вызываю внутри анимированные

function animateParticles(particleSystem, particleSystemOriginal, deltaTime) { 

    var vertsOriginal = particleSystemOriginal.geometry.vertices; 
    var verts = particleSystem.geometry.vertices;  

    for(var i = 0; i < verts.length; i++) { 

     var vertOriginal = vertsOriginal[i]; // original position 
     var vert = verts[i]; // cloud position 

     var vertOriginalY = vertOriginal.y;   
     var vertY = vert.y; 

     if (i==1) console.log("vertOriginalY " + vertOriginalY + " vertY " + vertY); 

     vert.y = vertY - (10 * deltaTime); // move   

    } 

    particleSystemOriginal.geometry.verticesNeedUpdate = true; 
    particleSystem.geometry.verticesNeedUpdate = true; 

} 

, мне кажется, странно, что мне нужно дважды загружать один и тот же объект, чтобы переместить один из них.

в моей функции i'just тестирование и перемещение голубя облака, но мне хотелось бы пожать частицы, поэтому мне нужно знать частицы исходное положение и установить частицы новое положение

EDIT 1

я загрузить свою модель, как этот

var loader = new THREE.JSONLoader(); 
loader.load('../3d-models/creati/mymodel-001.json', function(geometry, materials) { 

    var material = new THREE.MeshNormalMaterial(); 
    var particleModelOriginal = new THREE.Mesh(geometry, material); 

    var particleModel = particleModelOriginal.clone(); 

    /* build particle THREE.Points */ 

    particleSystemOriginal = new THREE.Points(particlesOriginal, particleMaterial);  
    particleSystem = new THREE.Points(particles, particleMaterial); 
    //particleSystem = particleSystemOriginal.clone(); 

}); 
+0

Вы также можете указать, как вы загружаете объект? – micnil

ответ

0

Если я правильно понял вопрос правильно, вы, вероятно, нужно использовать .clone() объект на сетке/геометрии Y ou загружаются, если вы хотите создать несколько объектов. В противном случае они ссылаются на один и тот же объект, и оба будут изменены, если один из них будет изменен.

+0

Я редактирую свой вопрос на EDIT 1, они оба двигаются жестче, если я клонирую свое пюре после загрузки или я клонирую свое облако в конце – al404IT

Смежные вопросы