2017-04-20 17 views
1

私は最近、3つのリビジョン71からリビジョン84に切り替えました。 THREE.PointCloudを使用すると、シーンからポイントを追加(削除)するのが非常に簡単でしたこのように:three.r84のシーンからTHREE.Pointsを追加して削除します

function updatePoints(newData) { 

    geometry.dispose(); 
    geometry.vertices = []; 

    geometry.vertices.push(...); 

    scene.add(newPoints); 
    render(); 
} 

今リビジョン84にTHREE.PointCloudはTHREE.Pointsに置き換えられ、このパターンはもう動作しません。また、これは、なぜ私は無知です。 私の実際のコードはr71では完璧に機能しますが、r84ではいくつかのポイントだけが削除されます。レイキャスターは、削除する必要があるポイントでは動作しません。アニメーションはできませんが、シーンから消えることはありません。

scene.remove(oldPoints);geometry.verticesNeedUpdate = true;を追加し、レンダリングしてシーンにポイントを追加する前に、別のsetTimeoutを追加して試しました。これのどれも働かなかった。

ご協力いただければ幸いです。

すでに頂点を再作成する必要があるので、

K

答えて

0

をありがとう、それはクラウド全体を再作成するためにそれほど多くの仕事ではありません。

geometry.dispose(); 
geometry = new THREE.Geometry(); 

geometry.vertices.push(...); 

scene.remove(pointCloud); 
pointCloud = new THREE.Points(geometry, material); 
scene.add(pointCloud); 

https://codepen.io/Sphinxxxx/pen/zwqvmP

+0

はありがとうSphinxxx!これは素晴らしい。あなたはこれが完璧であり、はるかに努力しているわけではありません。それでも、なぜこれがもううまくいかないのかはわかりませんが、私はこのようにしています。 – kim

関連する問題