computeFaceNormals,computeVertexNormals和computeMorphNormals的用途是什么

时间:2014-02-03 05:13:35

标签: three.js

computeFaceNormals(), computeVertexNormals() and computeMorphNormals()有什么用途。

我在一个例子中评论了geometry.computeVertexNormals(),模型看起来像是给出了平面阴影。当我添加geometry.computeVertexNormals()时,模型看起来像是给出了平滑的阴影。这是用途geometry.computeVertexNormals()

1 个答案:

答案 0 :(得分:1)

是的,确实如此。顾名思义,它计算法线。查找顶点和面法线是什么。 computeVertexNormals函数本质上非常简单,因为你不能使用任何参数进行平滑(除了“加权”以提供更好的视觉效果),该函数将平滑整个对象。在three-js github上搜索这个主题,我实现了一个基本方法(不是100%正确)来定义平滑角度,所以例如45°阈值只会平滑2个相邻面的顶点法线,如果它们的面法线做的话相差不超过45度。因此,您可以为无机物体获得更好的平滑效果。

关于three.js方法,computeVertexNormals仅适用于您真正希望平滑整个对象的情况,或者当导入器未正确导入顶点法线时,您可以对模型应用更好的着色而不是平面着色。大多数情况下,看起来很丑陋^^