Плавное затенение не работает для OBJ, загруженного в сцене Three.js

То есть OBJ выглядит гладко в моем программном обеспечении для трехмерного моделирования, в то время как в сцене Three.js выглядит причудливо (треугольно). Я назначаю MeshLambertMaterial к этому. Согласно документации, затенение по умолчанию для этого материала - THREE.SmoothShading. Даже если я установлю его вручную и проверим через консоль отладки, свойство "затенение" установлено правильно, модель в сцене все еще не выглядит гладкой.

1 ответ

VertexNormals не рассчитываются загрузчиком OBJ(MTL). Вы можете рассчитать их потом (еще не проверял):

my3dObject.traverse( function( node ) {
    if ( node instanceof THREE.Mesh ) {
        node.geometry.computeVertexNormals(); 
    }
} );
Другие вопросы по тегам