Próbuję mieć wiele materiałów na jednej płaszczyźnie, aby utworzyć prosty edytor terenu. Więc tworzę kilka materiałów i spróbować przypisać matetrial indeks do każdego wierzchołka w moim samolocie:Three.js - samolot z wieloma materiałami
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);
Ale zawsze uzyskać albo całą masę błędów w cieniującego, lub tylko jeden all-czerwony samolot, jeśli używam MeshBasicMaterial zamiast FaceMaterial. Każda pomoc jest świetna!
http://stackoverflow.com/questions/8820591/how-to -używanie-wielu-materiałów-w-trzech-js-kostce To samo pytanie – Gero3
Tak, widziałem to, ale jest to starsza wersja pliku three.js i nie działa :( –