2013-05-10 61 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