2013-08-16 50 views
2

欲網格映射到這樣一個球體:映射一個2D網格到一球形

grid to sphere mapping

換言之,對於每一個點(x, y)∈[0,1]的左,我需要球面上等值點的(x, y, z)座標,位於每個軸上-45º和+45º子午線之間。您也可以想到的源座標的兩個角度,使得:

phi = -45º + x * 90º 
theta = -45º + y * 90º 

傳統的經緯度或極性公式我發現elsewhere是沒有用的,因爲the results they produce are only distorted along one axis的。還有其他建議嗎?

+0

你想模擬桶形失真嗎?如果是這樣,這可能會有所幫助:http://stackoverflow.com/questions/6199636/formulas-for-barrel-pincushion-distortion – Blender

+0

如果我理解正確,桶形失真是純粹的二維效應?如果是這樣,恐怕這不是我所需要的。這更像是立方體映射。我正在生成具有立方體貼圖紋理的程序行星(思考孢子),所以我需要它是3D。 – jSepia

+0

這讓我想起很多共形映射......你已經試過了嗎? – Pedrom

回答

0

定義兩個函數,ab,映射你的x和y座標,以適當的THETA和phi角度:

a(x) = (pi/4) * (2x - 1) 
b(y) = (pi/4) * (4y + 1) 

然後就是map the resulting spherical coordinate回直角座標:

enter image description here

您將獲得r,x',y'[0,1] x [0,1]成員的函數,該函數將2D座標映射到半徑爲r的球體上。

+0

感謝'a(x)'和'b(x)'映射函數,他們爲我節省了一些工作。不幸的是,球座標映射的公式並不能讓我獲得我需要的結果。無論如何,我在Excel上試用了它們,並獲得了此證實我懷疑的https://dl.dropboxusercontent.com/u/1735705/grid2sphere_blender_excel.jpg。它必須是某種形式的立方體映射,而不是ECP(緯度 - 經度)映射。 – jSepia