也就是说,OBJ在我的3D建模软件中看起来很流畅,而在Three.js场景中看起来古怪(三角形)。我为它分配了MeshLambertMaterial。根据文档,该材质的默认着色是THREE.SmoothShading。即使我手动设置它并通过调试控制台检查"阴影"属性设置正确,场景中的模型看起来仍然不平滑。
答案 0 :(得分:4)
VertexNormals不是由OBJ(MTL)加载程序计算的。您可以在之后计算它们(尚未测试):
my3dObject.traverse( function( node ) {
if ( node instanceof THREE.Mesh ) {
node.geometry.computeVertexNormals();
}
} );