2013-05-10 60 views
2

我想向加载的对象添加材质/颜色,但我不知道确切的语法,请更好地说我应该添加哪些变量和函数。如果我把这条线放在上面,那么它显示的是物体,但是物质的线条忽略了。Three.JS将材质颜色指定为对象

//object loader 
var loader = new THREE.OBJLoader(); 
loader.load('3D4.obj', function (object) { 
    // what should I add here to assign an obj material color? 

    var mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({color: 0xFF0000})); 

    // add object to scene 
    scene.add(object); 
}); 

回答

7
var loader = new THREE.OBJLoader(); 
loader.addEventListener('load', function (event) 
{ 
    var object = event.content; 
    object.traverse(function (child) 
    { 
     if (child instanceof THREE.Mesh) 
      child.material.color.setRGB (1, 0, 0); 
    }); 
    scene.add(object); 
}); 
loader.load('3D4.obj'); 

会给你一个红色的物体。

+0

非常感谢你gaitat。它的作品:) – 2013-05-10 22:43:18

+0

嗨@gaitat,可以在材料周围绘制边框?否则,我们可以将'color.setRGB'设置为完整材质,这意味着现在颜色应用于材质的角落 – 2014-08-04 14:33:46

+0

如果我明白你想要的叫做'rim lighting',但你需要提出一个正式的问题。 – gaitat 2014-08-04 14:54:09