我正在使用分形布朗运动创建高度图。然后我根据高度对其进行着色并将其映射到一个球体。我的问题是高度图没有无缝包裹。我使用了 Diamond Square 算法,使用它很容易使事情变得无缝,但我似乎无法弄清楚如何使用 fBm 来做到这一点,而且我似乎很难在网络上找到它的解释。
澄清一下,“无缝”是指当我将它映射到球体时,它会在球体上创建一个无缝映射。
不是在高度图上计算每个像素的高度图,而是根据球体上的每个点计算 3D 空间中的高度图,然后将其映射到图像像素。除非您从球体开始计算,否则您将很难将像这样的 2D 矩形高度图包裹到球体上而不会在两极得到难看的结果。
fBM 概括为 3 维,因此给定球体上的一个点,您可以获得该点的高度,然后您可以进行数学运算将该值映射到它应该存储在高度图图像中的位置。
或者您可以使用传统的地图投影之一。圆柱投影 (x, y)->(x, sin y) 会给您一条只有一条经线的接缝,您可以将其向后旋转。或者您可以通过一种或另一种方式“消除锯齿”边缘。
对于立体投影 (x,y,z)->(x/(z+1),y/(z+1)),只有一个酸点(投影点本身)。