2014-04-27 9 views
6

Próbuję zastosować teksturę tylko po jednej stronie obiektu Box.Jak utworzyć wiele ramek i zmieniać teksturę tylko z jednej strony?

kod podstawowy:

BoxGeo = new THREE.BoxGeometry(50, 50, 125); 
BoxMat = new THREE.MeshLambertMaterial({ color: 0xF0F0F0 }); 
BoxObj = new THREE.Mesh(GeoBox, GeoMat); 

że próbuje za pomocą tablicy zawierającej 6 obiektu materiałów, 5 kolorowe i jeden z obrazem (wybrał losowo innej tablicy tekstur dla każdego Box). Ale to powoduje błąd :(

Czy możliwe jest przedstawienie prostego przykładu pudła z różnymi teksturami dla każdej twarzy? Widziałem niektóre przykłady w Internecie, ale wymagają one umieszczenia tablicy materiałów wewnątrz obiektu Geometry i Chciałbym uniknąć tworzenia nowego Geometryczne obiektu dla każdego okna ze względu na wydajność.

Odpowiedz

3

Co this sample? To stwarza istotnego tablicę, a następnie dodaje ją do siatki. Tak, można ponownie użyć.

Odnośny kod:

// Create an array of materials to be used in a cube, one for each side 
var cubeMaterialArray = []; 
// order to add materials: x+,x-,y+,y-,z+,z- 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0xff3333 })); 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0xff8800 })); 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0xffff33 })); 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0x33ff33 })); 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0x3333ff })); 
cubeMaterialArray.push(new THREE.MeshBasicMaterial({ color: 0x8833ff })); 
var cubeMaterials = new THREE.MeshFaceMaterial(cubeMaterialArray); 
// Cube parameters: width (x), height (y), depth (z), 
//  (optional) segments along x, segments along y, segments along z 
var cubeGeometry = new THREE.CubeGeometry(100, 100, 100, 1, 1, 1); 
// using THREE.MeshFaceMaterial() in the constructor below 
// causes the mesh to use the materials stored in the geometry 
cube = new THREE.Mesh(cubeGeometry, cubeMaterials); 
+0

Hahaha! Niesamowity! Dziękuję bardzo! (Chyba sprawdziłem wszystkie dema na tej stronie z wyjątkiem tej) –

+0

@JeremyDicaire - miło mi pomóc – acarlon

Powiązane problemy