2

THREE.Shapeオブジェクトを使用して、角の丸い立方体を正常に描画しています。

var shape = new THREE.Shape();
x = width/2;
y = height/2;
shape.moveTo(x - radius, y);

//*** Top right
x = -width/2;
y = height/2;
shape.lineTo(x + radius, y);
if (tr) shape.quadraticCurveTo(x, y, x, y - radius);
else shape.lineTo(x, y);

//*** Bottom right
x = -width/2;
y = -height/2;
shape.lineTo(x, y + radius);
if (br) shape.quadraticCurveTo(x, y, x + radius, y);
else shape.lineTo(x, y);

//*** Bottom left
x = width/2;
y = -height/2;
shape.lineTo(x - radius, y);
if (bl) shape.quadraticCurveTo(x, y, x, y + radius);
else shape.lineTo(x, y);

//*** Top left
x = width/2;
y = height/2;
shape.lineTo(x, y - radius);
if (tl) shape.quadraticCurveTo(x, y, x - radius, y);
else shape.lineTo(x, y);

var extrude = this.shape.extrude({amount: extr || 0, bevelEnabled: false});
this.mesh = new THREE.Mesh(extrude, mat);

問題は、このメッシュを と同じように扱いCubeGeometry、ビットマップ (および最終的にはビデオ) テクスチャでテクスチャリングする必要があることです。現在の結果は、立方体の前面が 4 つの等しいセグメントに分割され、それぞれがビットマップのピクセル データのように見えるものの単一の色です。この例では、立方体の前面のみに関心があります。

4

1 に答える 1

1

(今では)UV座標を自分で書く必要があるようです。

ジオメトリのバウンディングボックスを計算する必要があります。そのデータを使用すると、各側に0から1のUVを生成できるはずです。

于 2012-05-31T20:37:52.823 に答える