Плавное затенение не работает для 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();
}
} );