【发布时间】:2015-05-25 23:37:36
【问题描述】:
我正在试验其中一个示例,即 webgl_loader_obj.html 将从搅拌机导出的 .obj 文件加载到 three.js 中
这可以完全按预期工作并显示模型。 现在我正在研究 material.shading = THREE.SmoothShading 的用法。
为此,模型需要有顶点法线。 从搅拌机导出的文件没有定义法线。
所以我研究了使用 computeVertexNormals 来计算所需的法线。 但是这似乎没有做任何事情,结果视图是未平滑的模型。
除此之外,作为测试,我导出了具有法线的相同模型。 直接加载它,它看起来很平滑。
如果我随后执行了 computeFaceNormals() 和 computeVertexNormals(),它将再次导致未平滑的网格。
var loader = new THREE.OBJLoader( manager );
loader.load( 'test.obj', function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.material = new THREE.MeshLambertMaterial( { color: 0xff6600 });
child.geometry.computeFaceNormals();
child.geometry.computeVertexNormals();
child.material.shading = THREE.SmoothShading;
}
} );
【问题讨论】:
-
你的问题是什么?
-
为什么网格不平滑着色
标签: three.js