在Three.js中运行时更改从Blender导入的模型的面颜色

5
我已经从blender成功导入了一个足球模型(截短的正二十面体),通过JSON加载器。我想在点击时更改面的颜色,正确识别面并可以更改整个模型的颜色,但无法更改特定的面。我深入挖掘后发现,颜色确实被分配给soccerball.geometry.faces[i] ,但新的面颜色没有显示出来。
我已经阅读了所有相似的帖子并尝试了所有提出的解决方案(不同的材料,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);

你能帮我吗?提前感谢你。

1个回答

1
soccer.material.vertexColors = THREE.VertexColors ;

或者

soccer.material.vertexColors = THREE.FaceColors;

如果那不起作用,我就需要拿到模型本身进行一些测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接