前一篇博客中讲到怎么由全景图转到小行星,这次换一种投影方式说下由全景图转到水晶球模式。
首先,还是要有一副全景图,风景秀丽是不是:
1. 将其按照经纬展开法,贴到单位球面上。图像第一行聚集在一起成为球体的北极点;图像的最后一行像素聚集在一起成为球的南极点。
2. 设定投影平面为与南极点相切的平面,观察者视点可以视为在无穷远处,我们要做的就是讲下半球面垂直投影到该平面上。
3. 根据球面坐标(theta, fi),根据球面坐标theta值可以判断像素点是不是在需要投影的南半球面,而根据fi值可以解算出球面坐标系下的(x,y)坐标。
4. 将符合南半球面的像素点(x,y)坐标转换到具体的图像坐标系,得到图像坐标(u,v)。
当然,具体球面坐标系三个轴的朝向可以根据自己的习惯设定,符合右手坐标系准则即可。
同理,当你转动球体的时候,球面不同位置半球的像素点将会投影到图像平面上,从而实现仿佛在转动水晶球的效果。
下图是不同视角下观看到的水晶球效果图:
我向右拨动水晶球,gif效果如下: