2016-06-25 6 views
1

角が丸いフラットな形状のジオメトリを作成しています。ここに私のコードの一部があります。Three.js形状のジオメトリにフロントテクスチャとバックテクスチャを追加する方法は?

var geometry = new THREE.ShapeGeometry(shape); 
    var front_material = new THREE.MeshPhongMaterial({ map: frontTexture, side: THREE.FrontSide }); 
    var back_material = new THREE.MeshPhongMaterial({ map: backTexture, side: THREE.BackSide }); 
    var materials = [front_material, back_material]; 
    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 

このコードは、前面にのみ読み込まれ、背面には表示されません。 数時間のグーグルで、現在のThree.jsバージョンr78にmaterialIndexを追加する方法が見つかりません。

私はこの問題にマテリアルインデックスを追加する必要があると考えています。

答えて

1

あなたは前面と背面に異なる材料を持っている平坦な形状を作成する場合は、このパターンを使用することができます。

var geometry = new THREE.ShapeGeometry(shape); 

var frontMaterial = new THREE.MeshPhongMaterial({ map: frontTexture, side: THREE.FrontSide }); 
var backMaterial = new THREE.MeshPhongMaterial({ map: backTexture, side: THREE.BackSide }); 

var materials = [ frontMaterial, backMaterial ]; 

var object = THREE.SceneUtils.createMultiMaterialObject(geometry, materials); 

scene.add(object); 

研究SceneUtilsのソースコードので、あなたはそれをやっているかを理解。

three.js r.78

+0

これはトリックでした。ありがとう@WestLangley – ralcazar

関連する問題