Three.js透明对象和颜色变化(加载.obj + .mtl)

时间:2015-03-02 14:56:30

标签: javascript 3d three.js .obj wavefront

我使用Three.js加载.obj + .mtl文件以在浏览器中查看3d模型。 目前刚开始,如果有人能帮到我,我会很高兴:)

我还不明白的两件事:

The model on which I am working(需要用鼠标拖动)

  1. 在场景的开头,对象是透明的,并且能够看到它需要拖动

  2. 如何更改对象的黑色? (下面有一张图片为黑色)

  3. 我的目标是让它看起来更多或更少like here in sketchfab

    大部分代码来自脚本教程中的城堡示例ׂ(写在页面顶部)

    我将不胜感激任何信息或指导。

1 个答案:

答案 0 :(得分:0)

编辑:现在我看到你已经玩了一些,只要注意MTL提示。

您是否尝试修改环境/定向光组件或添加它们?看起来你必须配置光照到模型的方式。

ambient = new THREE.AmbientLight(0xFFFFFA); //most black
    scene.add( ambient );

    var directionalLight = new THREE.DirectionalLight( 0xffeedd ); //to see shaders
     directionalLight.position.set( 0, 0, 1 ).normalize(); //front of scene
     scene.add( directionalLight );

您也可以在mtl文件上手动更改材质的Ks和Ke组件。一个常见的问题是它们默认配置如下:

Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000

他们可能会使用其他一些值,例如1而不是0,以便校正光反射。

您也可能有兴趣将obj置于场景中心,您可以通过设置模型负载上的位置来实现,如

    var loader = new THREE.OBJMTLLoader();
                    loader.load( 'models/'mymodel.obj', 'textures/mymodel.mtl', function ( object ){

//after the load of your model you can modify it's initial position by
                    object.position.set(0,0,0); //in one step
                    object.position.y = -80; //or by separated components
                    scene.add(object);

});

或者您也可以通过

修改相机参数
camera.position.z = 550 ; //for example

我希望你能做点什么。