即使我已经拥有computeVertexNormals
,模型也始终显示在FlatShading中。为了优化目的,模型导出时没有正常,由JsonLoader加载到3JS中,并转换为BufferGeometry。
材料已经SmoothShading
。请参阅此jsFiddle以获得更好的演示:http://jsfiddle.net/2w9Lkjbm/6/
答案 0 :(得分:5)
方法
bufferGeometry.fromGeometry( geometry );
返回非索引BufferGeometry
。
也称为"三角汤",非索引BufferGeometry
没有共享顶点,因此computeVertexNormals()
将所有顶点法线设置为与面法线相同。
在您的情况下,在转换为computeVertexNormals()
之前,您需要在原始几何图形上调用BufferGeometry
:
model.geometry.computeVertexNormals();
var bufferGeometry = new THREE.BufferGeometry();
bufferGeometry.fromGeometry( model.geometry );
更新小提琴:http://jsfiddle.net/2w9Lkjbm/8/
three.js r.85