現在、形状を作成し、その形状に対して複数の CSG 操作を実行するために three.js ジオメトリ クラスを使用しています。したがって、継続的に形状を再描画します。
複数の csg 操作を実行するこのプロセスは低速です。レイキャスティングを使用してクリック時に形状を取得し、選択した形状と事前定義された形状 (任意の形状またはジオメトリ) の CSG を実行しているためです。
だから私の質問は:
THREE.BufferGeometry
バッファ ジオメトリを使用すると CSG が高速化されますが、インスタンスで CSG 操作を実行するライブラリはありますか?他の方法を使用してプロセスを高速化する方法はありますか?
これは私のコードフローです:
var objects = [];
init();
render();
function init(){
//scene and camera setup ... etc
var sphere = new THREE.SphereGeometry(200, 32, 32);
objects.push(sphere);
// raycasting config
// bind mouse click and move event
}
function onMouseDown() {
var intersects = raycaster.intersectObjects(objects);
.....
// get intersected shape ..
// perfrom csg with predifend shape .
// Also contains steps to convert
geometry to *CSG libaray geometry*
and back to Three.js geometry)..
// replace the shape with existing
.....
render();
}
このライブラリを CSG 操作に使用しています。全体的なフローは、three.js の例のこの例と似ています。