4

私は現在、以下を使用してthree.jsでメッシュを作成しています:

sphereGeometry  = new THREE.SphereGeometry( 1, 16,16 );
mesh = new THREE.Mesh( sphereGeometry, material );

トーラスも作成しました。

torusGeometry   = new THREE.TorusGeometry( 1, 0.42 );

アニメーション ループのどの時点でも、球をトーラスに交換できるようにしたいと考えています。これは可能ですか?あるジオメトリを別のジオメトリに交換するにはどうすればよいですか?

4

5 に答える 5

5

ジオメトリの切り替えにはコストがかかる場合があります。状況に応じて、シーンと非表示/表示の両方を追加するだけです。

于 2013-06-19T22:50:42.970 に答える
-2

これを見てみてください: http://threejs.org/docs/58/#Reference/Objects/Mesh

特にこの方法:

mesh.setGeometry(geometry)

レンダー ループ内で行う方法は次のとおりです (球体をトーラスに交換するときはいつでもフラグを設定します)。

var flag;  
...
function render () {
    if (flag) {
        mesh.setGeometry(torusGeometry);
        flag = false;
    }
}
render();

前後に反転する場合 (レンダリング ループ内):

if (conditions) { 
    mesh.setGeometry(sphereGeometry);
}

if (condition) {
    mesh.setGeometry(torusGeometry);
}
于 2013-06-19T22:48:44.270 に答える