在Three.js中生成顶点法线以使用折角平滑阴影

Dre*_*kes 5 computational-geometry three.js

我有Three.js的JSON模型格式的几个对象。它指定顶点位置和面-有时是三角形,有时是四边形,有时是带有材质索引,有时没有。

但是,这些文件均未指定顶点法线。

我想要一种可以在一组网格面上计算此类法线的算法。我想指定一个角度限制,超过该角度将显示折痕(在顶点处,相邻面不共享法线。)

在自己编写代码之前,我想知道,这是否已经存在于Three.js中或其他可用的地方?

Wes*_*ley 5

唯一可用的是

geometry.computeFaceNormals();
geometry.computeVertexNormals();
Run Code Online (Sandbox Code Playgroud)

有关算法,请参见源。

three.js r.55

  • 我确实在寻找一种方法,该方法可以控制折痕角度以保持锋利的边缘。我自己编写了这样的解决方案,经过整理后,将在此处提供答案。我还将查看它是否可以很好地适合Three.js库本身并提交请求请求。 (2认同)