平滑着色不适用于在Three.js场景中加载的OBJ

时间:2015-02-17 05:43:13

标签: javascript three.js

也就是说,OBJ在我的3D建模软件中看起来很流畅,而在Three.js场景中看起来古怪(三角形)。我为它分配了MeshLambertMaterial。根据文档,该材质的默认着色是THREE.SmoothShading。即使我手动设置它并通过调试控制台检查"阴影"属性设置正确,场景中的模型看起来仍然不平滑。

1 个答案:

答案 0 :(得分:4)

VertexNormals不是由OBJ(MTL)加载程序计算的。您可以在之后计算它们(尚未测试):

my3dObject.traverse( function( node ) {
    if ( node instanceof THREE.Mesh ) {
        node.geometry.computeVertexNormals(); 
    }
} );