1. 程式人生 > >全景圖轉水晶球檢視原理詳解

全景圖轉水晶球檢視原理詳解

前一篇部落格中講到怎麼由全景圖轉到小行星,這次換一種投影方式說下由全景圖轉到水晶球模式。

首先,還是要有一副全景圖,風景秀麗是不是:

1. 將其按照經緯展開法,貼到單位球面上。影象第一行聚集在一起成為球體的北極點;影象的最後一行畫素聚集在一起成為球的南極點。

2. 設定投影平面為與南極點相切的平面,觀察者視點可以視為在無窮遠處,我們要做的就是講下半球面垂直投影到該平面上。

3. 根據球面座標(theta, fi),根據球面座標theta值可以判斷畫素點是不是在需要投影的南半球面,而根據fi值可以解算出球面座標系下的(x,y)座標。

4. 將符合南半球面的畫素點(x,y)座標轉換到具體的影象座標系,得到影象座標(u,v)。

當然,具體球面座標系三個軸的朝向可以根據自己的習慣設定,符合右手座標系準則即可。

同理,當你轉動球體的時候,球面不同位置半球的畫素點將會投影到影象平面上,從而實現彷彿在轉動水晶球的效果。

 下圖是不同視角下觀看到的水晶球效果圖:

我向右撥動水晶球,gif效果如下: