我从搅拌器(通过JSON加载程序)导入了一个足球模型(截短的二十面体),我想在单击时更改面部颜色。可以正确识别这些面孔,我可以更改整个模型的颜色,但不能更改特定面孔的颜色。我进行了更深入的研究,发现颜色已正确分配给Soccerball.geometry.faces [i],但未显示新的脸部颜色。

我经历了所有类似的话题,并尝试了所有建议的解决方案(不同的 Material ,dirtyColors,dynamic,colorsNeedUpdate等),但没有任何帮助。

这是我导入模型的方式:

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);

你能帮我么?提前致谢

最佳答案

soccer.material.vertexColors = THREE.VertexColors ;

或者
soccer.material.vertexColors = THREE.FaceColors;

如果那不起作用,那么我将需要对模型本身进行一些测试。

关于javascript - 在从Blender导入的模型上的Three.js中,在运行时更改面色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13357989/

10-12 00:34