2012-11-13 8 views
5

Zaimportowałem model piłki nożnej (ścięty icosahedron) z blendera (przez program ładujący JSON) i chciałem zmienić kolory twarzy po kliknięcie. Twarze są poprawnie zidentyfikowane Mogę zmienić kolor całego modelu, ale nie poszczególnych twarzy. Zagłębiłem się nieco głębiej i odkryłem, że kolory są poprawnie przypisane do soccerball.geometry.faces [i], ale nowe kolory twarzy nie są wyświetlane.Zmienianie kolorów twarzy podczas pracy w Three.js na modelu zaimportowanym z blendera

Przeszedłem przez wszystkie podobne wątki i wypróbowałem wszystkie proponowane rozwiązania (różne materiały, dirtyColors, dynamic, colorsNeedUpdate, itp.), Ale nic nie pomogło.

to jak importować model:

var loader = new THREE.JSONLoader(); 
var onGeometry = function(geom) { 
soccer = new THREE.Mesh(geom, new THREE.MeshLambertMaterial()); 
soccer.position.set(0, 0, 0); 
soccer.scale.set(2, 2, 2); 
soccer.geometry.dynamic = true; 
soccer.geometry.dirty = true; 
soccer.overdraw = true; 
objects.push(soccer); 
scene.add(soccer); 
}; 

loader.load("models/model.js", onGeometry); 

Czy możesz mi pomóc? z góry dzięki

Odpowiedz

1
soccer.material.vertexColors = THREE.VertexColors ; 

lub

soccer.material.vertexColors = THREE.FaceColors; 

Jeśli to nie poskutkuje, to będę musiał Havre sam model, aby zrobić kilka testów.

+0

Wielkie dzięki, zadziałało! – Victor