2

Three.jsを使用して3Dの建物を手続き的にレンダリングしようとしています。これを行う方法の1つは、正方形/長方形を押し出すことです。ここで図19を参照してください:http://www.gamesitb.com/SurveyProcedural.pdf

ExtrudeGeometry APIのThree.jsドキュメントを見てきましたが、その使用法はあまり明確ではありません。考えられる例/コードスニペットをウェブとこのフォーラムで検索しました-無駄です!これに関するポインタは役に立ちます。ありがとう。

4

1 に答える 1

1

最初に確認する場所は、THREE.jszipで提供されているこの例です。

examples / webgl_geometry_shapes.html

次のビットは例のためのものです。

重要な点は、建物の角を定義する一連のVector2(私が言及したファイルの144〜165行目)を作成することです。

var californiaPts = [];
californiaPts.push( new THREE.Vector2 ( 610, 320 ) );
californiaPts.push( new THREE.Vector2 ( 450, 300 ) );
californiaPts.push( new THREE.Vector2 ( 392, 392 ) );
californiaPts.push( new THREE.Vector2 ( 266, 438 ) );

次のステップは、これらの行をTHREE.Shapeに変換することです(行167)

var californiaShape = new THREE.Shape( californiaPts );

次に、形状を押し出します。

var extrudeSettings = { amount: 20 }; // bevelSegments: 2, steps: 2 , bevelSegments: 5, bevelSize: 8, bevelThickness:5

var geometry = californiaShape.extrude(extrudeSettings);

この時点で、ジオメトリオブジェクトであるシェイプが押し出され、メッシュに変換してマテリアルを適用できるようになります。

于 2013-02-26T16:10:11.557 に答える