修改后的网格物体照明看起来不正确

时间:2019-08-06 08:02:51

标签: three.js

我要在每个上方添加一个平面,并稍微修改顶点。之后,连接点之间的照明不正确。为什么会这样?

enter image description here

1 个答案:

答案 0 :(得分:1)

这有点复杂,但是在这里:

每个顶点都有一个法线。该法线是所有相邻顶点法线的加权平均值。

第一个面片的边缘上的相邻像素未与第二个面片对齐,并且不知道相邻面的顶点法线是什么,从边缘开始面朝上。 因此,一种解决方案是创建由2个单元重叠的面片,以使每个面片周围都有一个共享的面环,然后重新计算其法线,然后除去面的外环(因为这些面将具有不正确的法线)。

因此,如果您的面片是16x16面,则制作18x18的面片,并使它们的边缘重叠..根据顶点的世界空间x / z使用相同的噪波函数修改每个面片的顶点(单面或perlin噪声好),然后重新计算脸部/顶点法线,然后从脸部列表中移除外环。 这很复杂,但是可以。