在CodeProject上有个Panorama 360项目,是在iPhone平台上变换角度浏览一张全景照片,类似于对景色进行3D展示。
(本来我是在文章里提到原始链接的,但是很奇怪,一贴原始链接文章发表就出问题,看来是的spam机制在起作用呀。大家就自己搜索吧。网站是codeproject,搜索关键字panoramagl,或者搜索Panorama 360 iPod Touch & iPhone。)
示范程序下载下来后编译不了,网上似乎遇到这个问题的人也不少。
我的Xcode版本是3.2.5,采用的SDK版本是iOS 4.2。似乎有些人用比较早的版本的Xcode反而没有遇到这个编译问题。
解决办法如下:
1. 把原工程文件中的 PanoramaGL.xcodeproj 的引用去掉。
2. 把 PanoramaGL 的classes文件拷贝到 HelloPanorama 的classes 里面。
3. 把 Classes/glus/glu.h 的内容改成:#include “glues.h”
4. 把Classes/libtess下面的priorityq-heap.h和priorityq-heap.i这两个文件删除(去掉引用)。
Build and Go之后即可运行看到效果。这个效果的实现其实是把一张全景照片卷成一个球形的空间,然后以拍摄原点为中心向不同的方向转动即可看到这个方向应有的景象。
这种实现效果的优点是不需要对场地进行3D建模,通过平面照片得到3D景象。
这种效果的局限性是:
1. 不能用普通的数码相片,要用全景照片。
全景照片用普通的数码相机也可以拍摄,但是需要掌握一定的拍摄技巧。
2. 视角平视的情况下失真比较小,但仰视或俯视的时候画面扭曲比较严重。
3. 对于开阔的场地进行全景拍摄,最终展示的效果比较好,但如果是比较狭小的空间,不容易把仰视所见的画面拍进去。
4. 不能“
走进
”场景中去,只能站在拍摄原点观察景象。
可能说到“局限性”有点吹毛求疵了。Anyway,效果还是挺炫的,感谢作者Javier Baez的共享精神!