three.js - 修改后的网格照明看起来不正确
解决方案
这有点复杂,但这里有:
每个顶点都有一个法线。法线被计算为所有相邻顶点法线的加权平均值。
第一个面片边缘的邻居没有与第二个面片对齐,也不知道相邻面片的顶点法线是什么,一个从边缘面朝内。因此,一种解决方案是创建重叠 2 个单元格的面片,以便每个面片周围都有一个共享面环,然后重新计算它们的法线,然后删除外圈面,(因为那些面的法线不正确)。
因此,如果您的补丁是 16x16 面.. 制作 18x18 的补丁,并使其边缘重叠.. 使用基于顶点的世界空间 x/z 的相同噪声函数修改每个补丁的顶点(单纯形或柏林噪声很好),然后重新计算面/顶点法线,然后从面列表中移除外环。这很复杂,但很有效。
推荐阅读
- html - 响应式文本定位?
- c# - 多次打开 WPF 应用程序
- acumatica - Acumatica REST API - StockItem - 如何在请求中使用多个产品 ID
- nginx - 例程:SSL23_GET_SERVER_HELLO:尝试使用代理连接到 Neo4j 服务器时的未知协议
- javascript - 在没有任何 PHP 的情况下刷新 HTML 中的 div?
- python - 在xaxis(python)中使用日期时间创建seaborn catplot
- macos-mojave - Apple News Preview - 无法加载文章
- java - Java:空检查后的空指针异常
- hibernate - 如何将 TypedQuery 结果映射到自定义对象列表
- reactjs - 使用 axios 发布请求和获取响应