首页 > 解决方案 > 修改后的网格照明看起来不正确

问题描述

我在每个平面旁边添加平面,并稍微修改顶点。之后,连接点之间的照明看起来不正确。为什么会这样?

在此处输入图像描述

标签: three.js

解决方案


这有点复杂,但这里有:

每个顶点都有一个法线。法线被计算为所有相邻顶点法线的加权平均值。

第一个面片边缘的邻居没有与第二个面片对齐,也不知道相邻面片的顶点法线是什么,一个从边缘面朝内。因此,一种解决方案是创建重叠 2 个单元格的面片,以便每个面片周围都有一个共享面环,然后重新计算它们的法线,然后删除外圈面,(因为那些面的法线不正确)。

因此,如果您的补丁是 16x16 面.. 制作 18x18 的补丁,并使其边缘重叠.. 使用基于顶点的世界空间 x/z 的相同噪声函数修改每个补丁的顶点(单纯形或柏林噪声很好),然后重新计算面/顶点法线,然后从面列表中移除外环。这很复杂,但很有效。


推荐阅读