我用three.js(使用typescript)制作我自己的自定义几何体。它出了点问题,兰伯特材料上的物体看起来都很暗。我查看了three.js源代码,看看在创建几何图形时我是否忘了做某事。我看到这两行出现在几乎每个几何类的构造函数的末尾:
this.computeCentroids();
this.computeFaceNormals();
添加computeFaceNormals解决了我的问题。我记得有关法线与灯光有关的事情(这很有意义)。
但我不知道computeCentroids的作用,以及需要这些质心的位置/原因。谁能解释一下?我还需要调用该功能吗?如果我不这样做会怎么样?
答案 0 :(得分:1)
computeCentroids
计算网格中每个三角形的质心,而不是网格本身的中心。
查看其目的的最简单方法可能是在three.js源代码中搜索.centroid
。 AFAICS,除了照明之外,它们的用途并不多,但只有当你使用CanvasRenderer
时才会使用它们。