- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WorldWind的三维模型植入研究
摘要:World Wind 是美国航天宇航局(NASA)发布的三维地理信息系统。因其代码开源,开发成本低廉,可扩展性强且功能强大,以其为基础平台开发特定功能的GIS应用程序得到了广泛使用。但WorldWind作为一个地理信息应用平台,对三维模型植入应用还没有提出完善的解决策略。该文通过研究WorldWind运行机制、分析三维模型的植入原理并对其三维模型加载过程进行改进,实现了三维模型在该地理信息平台的合理植入,通过实现三维模型碰撞检测实现了模型与使用者的互动响应,该文对利用WorldWind进行城市规划、资源勘探、战场环境模拟等应用的开发人员具有一定的参考价值。
关键词:World Wind;3D建模;模型植入;碰撞检测
中图分类号:TP37文献标识码:A文章编号:1009-3044(2011)30-7356-02
1 WorldWind运行机制
1.1 平台功能及版本
WorldWind是NASA发布的开源三维地理信息系统,通过将Landsa卫星图像和航天飞机雷达遥感数据结合在一起,用户可以浏览由因特网上WMS服务器提供的地球、月球、火星和木星等星球的三维实景影像资料;可在所观察的行星上随意进行放大、缩小、倾斜、旋转等操作。通过卫星数据进行自动更新, World Wind能够在世界范围内跟踪天气云图、火灾、自然灾害等情况。
WorldWind的开源代码有两种版本,分别为java版本和C#版本,Java版本支持B/S模式,C#版本支持C/S模式,本文以C#版为例进行了研究,软件版本为1.4.0版。
1.2 WorldWind运行机制分析
通过分析软件源代码(重点分析了程序配置加载流程),得出WorldWind程序的运行机制如表1。
1.3 三维地理模型构建原理
WorldWind模型由数字高程模型和卫星图片数据构成。数字高程模型包含地表海拔高度信息,构成星球的骨架,而卫星图片数据构成星球的血肉,两者相结合生成了我们看到栩栩如生的三维星球。通过网络浏览星体时,随着用户浏览角度和位置的变化,从WMS服务器下载的图片会按指定的算法与数字高程模型结合一起,生成用户看到的影像。如图2所示。
2 三维模型建模介绍
2.1 三维建模介绍
WorldWind本身不提供三维建模工具,因其采用了direct3D技术,只能加载directX格式(.x)三维模型文件。用户建模可以使用 3DSMAX、AutoCAD等成熟的建模商业软件,也可以使用Google公司提供的建模软件:GoogleSketchUp快速创建三维模型,该软件支持导入常用 3D格式的文件:*.3ds/*. max/*.dwg/*.dxf,编辑后导出为 *.skp格式,然后可以通过格式转换插件导出成.x格式模型文件。
2.2 WorldWind三维模型加载接口
WorldWind加载三维模型参数以XML文件形式存储,其格式范例如下:
tiny
160.0
40
116
2
Data\Model\tiny.x
0.0
-90.0
90.0
10000.0
10
WorldWind程序提供了一个三维模型类ModelFeature,用以解析相关三维模型加载的XML文件,并应用到地理信息平台中。ModelFeature继承自渲染对象基类RenderObject,因此在程序初始化配置时将三维模型对象加载后,在主程序渲染函数中能自动进行渲染。
3 WorldWind平台三维模型加载问题及改进策略
WorldWind程序只是提供了.x文件的加载接口,简单实现三维模型的显示,实际使用过程中发现三维模型的加载还存在一些问题,下面重点对这些问题进行分析并提出解决策略。
3.1 模型的倒置镜像对称问题
具体现象为模型文件加载后,显示在地理平台上为原模型的镜像对称模型。
原因分析:一般制作三维模型采用的是左手坐标系,而WorldWind显示采用了右手坐标系,因此地理平台上显示出原模型的对称镜像。
解决策略:通过对ModelFeature类中direct3D设备转换矩阵初始化时进行一次对称矩阵变换可将加载坐标系变换回左手坐标系。变换矩阵如下:■
3.2 大规模加载模型时的低效问题
具体表现为大规模加载模型时内存消耗明显上升,加载速度变慢。
原因分析:WorldWind维模型是否可见,是通过视锥裁剪实现的,当视锥范围内模型过多时,消耗内存急剧上升导致加载速度变慢。
解决策略:首先模型可
文档评论(0)