根据导师的要求,我们要做一个类似于谷歌的可视化的三维地球浏览器,但是浏览影像是在本地存储,可断网使用。一开始头绪很模糊,不知道该从何开始。。。舍友的同学在做OpenGL相关的东西,我们便先用来参考,他实现的功能是一个网状球体,通过键盘来控制球体的大小和旋转,这应该算是我们要做的基础吧,因为首先要实现的便是这个球体,在此之上将事先已下好的省市的地图进行纹理映射。。。想法觉着不难,可是实现起来却很困难,因为图片很大,进行贴图后运行的很慢,效果非常不好。
后来导师建议我们用OSG,OpenSceneGraph图形系统是一个基于工业标准OpenGL的软件接口,可以让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。在此之前从未接触过OSG,后来又开始查阅相关的资料和书籍,发现OSG是非常强大的,使用的第一步便是配置环境。虽然网上有很多相关的配置方法,可是我们仍然花费了一两天的时间才配置好,总是会出现各种各样的错误,不过最后总算是配置完成。利用OSG我们能很方便的就实现球体模型的实现和纹理贴图功能,可是新的问题又出现,我们利用Mipmap机制,先存入分辨率最大的图片,其次变小直到1*1,可是按照我们的惯例,在GoogleEarth时,我们是不断放大来查看,这与我们的初衷相违背。OSG有一个很好的中国官网论坛http://bbs.osgchina.org/index.php,这里面有经验很丰厚的管理员可以帮大家解答问题,我们将我们的问题呈上,如何来确定经纬度?如果在特定区域贴图?这都是我们的疑问,后来有一个管理员建议我们去参考world wind,这是一个开源的三维GIS软件,能够实现我们想要的所有功能,于是我们又转战了world wind,现在在编译运行阶段又出现了各种各样的问题。。。其实特别头疼,在这一周多内,我们换了几种方式,想找到一种最好的办法,但是却感觉每次都是在打酱油,觉着都看了,可什么都没有深入的懂,似乎还是很迷茫,world wind的开源码很多,用的是C#语言,开始学并将其学通又是一件非常艰巨的任务。。。
加油吧。。。既然选择了,就尽量减少遗憾吧,虽然会很辛苦,但会继续努力的。。。