在使用three.js读取obj文件并为其赋予材质的时候,发现这个obj模型没有顶点法向量,所以默认使用了flatShading,现在想让其使用SmoothShading进行着色使得效果更自然,因此试着使用了computeVertexNormals让系统自动求出模型的顶点法向量并使用SmoothShading,但是效果没有改变,检查obj文件后没有发现顶点不复用之类的问题,控制台无报错,想求问有什么可能的原因和问题以及解决办法。
var loader = new THREE.OBJLoader( manager );
loader.load( 'models/obj/stdT.obj', function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.material = new THREE.MeshStandardMaterial( { color: 0xff1600 });
child.geometry.computeVertexNormals(true);
child.geometry.normalsNeedUpdate = true;
child.material.flatShading = THREE.SmoothShading;
scene.add(child);
}
} );
} );
threejs的文档里 没看到有SmoothShading啊