computeVertexNormals不能与JsonLoader中的模型一起使用

时间:2017-04-26 03:49:34

标签: javascript three.js

即使我已经拥有computeVertexNormals,模型也始终显示在FlatShading中。为了优化目的,模型导出时没有正常,由JsonLoader加载到3JS中,并转换为BufferGeometry。

材料已经SmoothShading。请参阅此jsFiddle以获得更好的演示:http://jsfiddle.net/2w9Lkjbm/6/

1 个答案:

答案 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