一張魚眼圖或者6方圖,展現出來的全景影像效果圖
PanoramaGL
PanoramaGL是世界上第一個開源的實現360度全景圖像的iOS、Android類庫。基於OpenGL 支持球,立方體,圓柱。有重力加速等。
很老的一個庫了,但是效果做的非常棒,缺點就是非常耗內存,並且作者早已經不在維護了,bug非常多
https://code.google.com/p/panoramagl
本人在生產環境用了很久這個庫,所以自己也fork了一個版本,修改了若干bug,滿足基本使用
https://github.com/shaojiankui/PanoramaGL
JAPanoView (推薦)
JAPanoView是一個UIView子類,從立方全景圖像創建顯示360 - 180度全景,交互式平移和縮放。可以添加任何UIView JAPanoView熱點。類庫非常棒,完全基於iOS類庫實現,沒有借助OpenGL
https://bitbucket.org/javieralonso/japanoview/
顯然這個庫也很久更新了,Bug也有些,偌大互聯網也有人fork了下,修復了bug,
Panorama
同樣是基於OpenGL的
https://github.com/robbykraft/Panorama
threejs.org
Three.js 是一款運行在瀏覽器中的 3D 引擎,你可以用它創建各種三維場景,包括了攝影機、光影、材質等各種對象。你可以在它的主頁上看到許多精彩的演示。不過,這款引擎目前還處在比較不成熟的 開發階段,其不夠豐富的 API 以及匱乏的文檔增加了初學者的學習難度(尤其是文檔的匱乏)。但是顯示在iOS Webview略顯雞肋。最后放棄之
three.js的代碼托管在github上面
https://github.com/mrdoob/three.js
類庫非常強大。全景展示僅僅是一個小功能
http://threejs.org/examples/webgl_panorama_equirectangular.html
自己動手實現
GLKit.framework 與OpenGLES
使用 GLKTextureLoader
的cubeMapWithContentsOfFiles
,textureWithContentsOfFile
,textureWithCGImage
我們很容易渲染出來一個球體效果,難點就在於根據手勢的拖動與縮放改變球體