因为前期做了北京街景的采集软件,手中有很多街景图片;又看到google街景和soso街景效果很炫,就产生了小试牛刀的想法,我何不把手头的图片变成渲染成三维街景放到网上呢。于是开始搜集相关信息,经过5天的尝试,终于有了初步的效果;
首先,感谢http://www.hiwebgl.com/?p=42网站提供的WebGL的教程和源代码;
提到3D渲染,就不得不说到三维建模,那么google和soso的街景的三维模型是什么呢?不错,是球体;正好hiwebgl网站中有生成球体的模型,于是再一想想是不是可以把街景图片作为纹理贴到此球体上呢?当然可以,到此为止,我们就已经完成了街景渲染90%的工作;此时出现了几个问题:
1. 此时我们看到的并非google和soso的3D街景,而是如挂在天空的“街景”图;
解决方法:渲染3D模型的时候不再进行平移;
2. 不再平移后,挂在天空的“街景”图消失了,此时已经位于原点看球内表面了;但是又发现一个问题:图片中的字呈现"镜像";
解决方法:加载纹理的时候取消对纹理图片的垂直翻转;
3.此时镜像问题解决,但是默认的街景看上去是倒转的;
解决方法:这个好办,把当前模型绕X轴旋转180度;
4.此时还有一个问题,那就是看上去的街景不是正前方的,而是右侧的;
解决方法:把当前模型绕Y轴旋转90度;
最后,需要提醒的是,街景图片作为纹理时,它的分辨率必须是 2的整次幂*2的整次幂;
暂时先写这么多,等我把网站建好了,大家就可以看到效果了。