の期間にわたってTHREE.Pointsオブジェクトをモーフィング私はTHREE.Pointsは、私は別の形に変身しようとしているオブジェクトがあります。私は単に新しいジオメトリへのオブジェクトのジオメトリを設定した場合、頂点は自動的に新しい位置に更新されます:は時間
object.geometry =新しいTHREE.SphereGeometry()。
はしかし、私は頂点が単純に瞬時にそこに登場するのではなく、彼らの新しい位置に「旅」にしたいです。 Tweenjsを使ってすべての頂点に対して新しいトゥイーンを作成することを検討しました。これはうまくいくように見えますが、操作する頂点が何千個もある場合、実際には遅れます。
function morph(){
var newGeom = new THREE.SphereGeometry(2.5, 64, 64);
var curGeom = box.mesh.geometry;
var targetVertices = newGeom.vertices;
var curVertices = curGeom.vertices;
var less = targetVertices.length < curVertices.length ?targetVertices : curVertices;
var tween;
var cur, target;
for (var i=0; i<curVertices.length; i++){
cur = curVertices[i];
target = targetVertices[i];
tween = new TWEEN.Tween(cur).to(target, 1000);
tween.start();
box.mesh.geometry.verticesNeedUpdate = true;
}
}
もっと良い解決法はありますか?私はモーフターゲットを使ってみましたが、THREE.Pointsがそれらをサポートしているとは思いません。
ありがとうございます!これはまさに私が探していたものでした。 –