シンプルな地形エディタを作成するために、1 つの平面に複数のマテリアルを配置しようとしています。そこで、いくつかのマテリアルを作成し、プレーンの各頂点にマテリアル インデックスを割り当ててみます。
var materials = [];
materials.push(new THREE.MeshFaceMaterial( { color: 0xff0000 }));
materials.push(new THREE.MeshFaceMaterial( { color: 0x00ff00 }));
materials.push(new THREE.MeshFaceMaterial( { color: 0x0000ff }));
// Plane
var planegeo = new THREE.PlaneGeometry( 500, 500, 10, 10 );
planegeo.materials = materials;
for(var i = 0; i < planegeo.faces.length; i++)
{
planegeo.faces[i].materialIndex = (i%3);
}
planegeo.dynamic = true;
this.plane = THREE.SceneUtils.createMultiMaterialObject(planegeo, materials);
しかし、シェーダーで大量のエラーが発生するかMeshBasicMaterial
、FaceMaterial
. 私は何を間違っていますか?