我目前正在开发一个体素引擎,该引擎利用双重轮廓为地形提供更有机/真实的外观。
如果您不熟悉双轮廓,基本上我需要提供一个密度函数来表示特定点是空气还是固体(在我的情况下,我使用的是 3D Simplex Noise)并且我需要能够提供3D 噪声函数上任意点的法向量。
通常,在计算三角形的法线时,我取构成三角形的两个向量的叉积;在这种情况下,我应该只对噪声函数应用一个小增量来达到相同的效果吗?
谢谢你的帮助!
您可以将噪声函数的梯度函数计算为等值面上某个点的法线向量。
在 3D Perlin 噪声情况下,您可以使用3D Perlin 噪声分析导数。
我找到了一种使用渐变进行立方体算法的简单方法(我也在使用体素引擎),但由于您仍在 3D 网格上操作,而不是直接在三角形上操作,您可以尝试一下。