2011-10-20 41 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)),只有一個酸點(投影點本身)。