2011-10-20 42 views
2

我使用分形布朗运动创建高度图。然后,我根据高度对它进行着色并将其映射到一个球体。我的问题是高度图不能无缝换行。我已经使用了Diamond Square算法,使用它可以非常容易地实现无缝连接,但我似乎无法弄清楚如何使用fBm来做到这一点,并且我似乎无法在网络上找到它的解释。使用分形布朗运动创建无缝世界地图

为了澄清,“无缝”,我的意思是,当我将它映射到一个球体时,它会在球体上创建一个无缝映射。

回答

1

不是计算heightmap上每个像素的高度图,而是基于球体上的每个点计算3D空间中的高度图,然后将其映射到图像像素。除非你从球体开始计算,否则你将无法将一个2D矩形的高度图像包装到球体上,而不会在杆上得到难看的结果。

fBM概括为3个维度,因此给定球体上的点可以获得该点的高度,然后可以执行数学运算将该值映射到应存储在高度图图像中的位置。

0

或者您可以使用传统的地图投影之一。一个圆柱形投影(x,y) - >(x,sin y)会给你一条只有一条子午线的缝隙,你可以旋转到后面。或者你可以通过一种或另一种方式“抗衡”边缘。对于立体投影(x,y,z) - >(x /(z + 1),y /(z + 1)),只有一个酸点(投影点本身)。