Three.JS 将材质颜色分配给物体

3

我想给一个已加载的对象添加材质/颜色,但我不知道确切的语法,更好地说,我应该添加什么变量和函数。如果我使用上面的这行代码,则会显示对象,但是材料一行被忽略了。

//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 );
});
1个回答

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

会给您一个红色的物体。


嗨@gaitat,是否可以在材料周围画一个边框?否则我们可以将color.setRGB设置为整个材料,这意味着现在颜色应用于材料的角落。 - Jothi Kannan
如果我理解正确,您需要的是所谓的 “边缘照明”,但您需要提出一个正式的问题。 - gaitat
嗨@gaitat,这里发布了一个问题:https://dev59.com/64Lba4cB1Zd3GeqPay2z - Jothi Kannan

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