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

Smooth shading not working for OBJ loaded in Three.js scene

本文关键字:加载 OBJ js 不适用 适用于 Three 平滑      更新时间:2023-12-01

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

顶点法线不是由OBJ(MTL)加载器计算的。你可以事后计算(尚未测试):

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