2016-04-08 8 views
0

を移動し、私は一度、内部の私のJSONを読み込む場合は、頂点threejs私はthree.jsに新たなんだと私はパーティクルオブジェクト をロードする必要が二あまりに

に粒子を追加した場合、動作するようです2つの異なるロード呼び出しを使用し、それぞれが3つのオブジェクトを構築する場合は、各オブジェクトを個別に移動することができます。

これは私の関数です。私はアニメイトの中で呼び出すこと

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; 

} 

それは私が同じオブジェクトを2回ロードしてそのうちの1つを移動する必要があることは奇妙に思えます

私の機能ではテストと移動を凍結しますが、私は粒子を揺することです私はこの私が正しく質問を理解していれば、あなたはおそらくメッシュ上.clone()オブジェクトを使用する必要が

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

/ジオメトリように私のモデルをロード1

元の位置と設定し、粒子の新しい位置

EDITことy複数のオブジェクトを作成する場合は、読み込み中です。それ以外の場合、同じオブジェクトを参照していて、そのうちの1つが変更されている場合は両方が変更されます

+0

私はEDIT 1で私の質問を編集します。どちらかというと、私がマッシュをロードした後にクローンするか、 – al404IT

関連する問題