Three.js: ジオメトリを減算する方法は?

作成日 2011年12月07日  ·  2コメント  ·  ソース: mrdoob/three.js

ジオメトリを減算する方法はありますか?

建物の輪郭と中庭の輪郭があります。 建物の輪郭を高さだけ押し出して、建物の立体を作成しましたが、中庭を中央から削除する必要があります。

ありがとう

Question

最も参考になるコメント

全てのコメント2件

私は答えを見つけました-それが最善の方法かどうかはわかりませんが、うまくいきます。

外側のジオメトリを時計回りに追加してから、ビットを反時計回りにパスに追加してから、押し出す形状に変換します。

        var path = new THREE.Path();
        // outer clockwise
        path.moveTo(-10, 10);
        path.lineTo(10, 10);
        path.lineTo(10, -10);
        path.lineTo(-10, -10);
        path.lineTo(-10, 10);
        // inner anti-clockwise
        path.moveTo(-5, 5);
        path.lineTo(-5, -5);
        path.lineTo(-2, -5);
        path.lineTo(-2, 5);
        path.lineTo(-5, 5);
        // inner anti-clockwise
        path.moveTo(2, 5);
        path.lineTo(2, -5);
        path.lineTo(5, -5);
        path.lineTo(5, 5);
        path.lineTo(2, 5);

        var height = 20;
        var shapes = path.toShapes();
        var solid = new THREE.ExtrudeGeometry(shapes, { amount: height, bevelEnabled: false });
        var mesh = new THREE.Mesh(solid, materials['building']);
        mesh.position.y = height;
        mesh.rotation.x = 90 * Math.PI * 2 / 360;
        scene.add(mesh);
このページは役に立ちましたか?
0 / 5 - 0 評価