2

押し出しを適用できるThree.Shapeがあります平面を取得するには、最初に正方形を描画してから、押し出しを適用します

var squareShape = new THREE.Shape();
squareShape.moveTo( 0,0 );
squareShape.lineTo( 0, sqLength );
squareShape.lineTo( sqLength, sqLength );
squareShape.lineTo( sqLength, 0 );
squareShape.lineTo( 0, 0 );

var geometry = new THREE.ExtrudeGeometry( squareShape,extrudeSettings);

これで、ブラウザに3Dの正方形が表示されます。

次に、上面に256x256の画像テクスチャを適用します。これを行う方法?

4

2 に答える 2

4

THREE.jsのsrc/extras / geometries / ExtrudeGeometry.jsを見ると、これらのコメントが表示されます。

  • 材料://前面と背面の材料インデックス
  • extrudeMaterial://押し出し面と斜角面のマテリアルインデックス

したがって、たとえば、次のように言うことができます(不完全であるため、明らかに直接実行されません)

// The face material will be index #0.  The extrusion (sides) will be #1.
var extrudeSettings = { amount: 10, bevelEnabled: true, bevelSegments: 3, steps: 4, bevelThickness: 8, material: 0, extrudeMaterial: 1 };

また、メッシュを作成するときに、2つのマテリアルを作成し、それらをメッシュに割り当てます。

var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { color: color } ), new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, transparent: true } ) ] );

これがあなたを正しい道に導いてくれることを願っています。

ちなみに、他の回答に関連して、押し出しを使用して、寸法が正方形に似ているが斜角を持つものを作成したいとします。1つの例は、サイコロを描画しようとしていて、エッジを丸めたい場合です。

于 2013-02-26T01:30:44.793 に答える
0

必要なのが立方体だけの場合、なぜ押し出しますか?CubeGeometryを使ってみませんか。

于 2013-02-25T21:30:38.953 に答える