先写想法:

想做个简单的地形漫游,于是考虑在ww直接开发,或找个控件形式的开发组件。

最大的期望有:

1. 支持google的sketchup,快速智能三维建模

2. 设计模式做好点,最好先做成组件形式,然后开发应用程序

3. 性能再好点,对于索引技术,内存管理等等

4. 客户端独立版本 和客户服务器端耦合版本的优化

5. 放点服务器的资料。

.net平台

1.WorldWind
      知名度很高,介绍也很全。链接在这里NASAWorld Wind
     目前分为.net版本和java版本。
     开发语言:c#.java
     渲染方式:DirectX,Opengl(Java)

WorldWind的优势
          WorldWind的软件架构应该来说还是很不错的,很优秀。开放的设计,使得Worldwind的扩展非常方便和快捷,目前已有上百种各式各样的插件,很多插件都很有意思和实用。使用.net和java,研究它的工作原理变的相对容易。
         相对来说.net版本的容易深入些。java版的严格面向对象方法的使用,使得java版的精简,但深入起来不如.net容易。
        以前交流的时候,我经常会推荐WorldWind。很好很强大。

这里以.net版进行说明。

下面的缺陷不能掩盖WorldWind的光彩。      
       
       WorldWind的缺陷
          总体架构设计没太大问题。主要在内部的几点
        1.速度慢。几个原因导致worldwind在实际使用中存在速度慢的问题.
            a)影像数据组织混乱。由于worldwind在系统设计时面向的就是各个行业各种数据的集成。因此他设计时的兼容,导致同一地区数据获取重复(占内存资源)、不同数据获取服务器速度不一致影响。
            b)c#异常。捕获异常占用了worldwind大部分时间。导致显示、数据获取时严重的停顿。
            c)SRTM的动态生成。如果你想像取图工具一样把SRTM下载下来,那简直不可能。
            d)QueueDownload实际运作时,一旦出现异常和错误,将导致数据下载停顿。需要重新调整视角。而貌似多线程的下载,实际效果并不明显。这就导致显示出现停顿。
        2.三维支持能力稍差。
           尤其是在模型的支持方面,虽然有个ModelFeature类来进行三维显示。这里有问题:
          a)不支持LOD,虽然.x文件设计时能支持,不过显然ModelFeature不支持。
          b)模型显示漂移。当你放大到最详细时,会发现模型左右上下晃动。
          c)模型未按tile形式组织。Cache、内存、释放等方式都存在问题。
        3.矢量支持
           worldwind的矢量处理显示类比较混乱。效果也不是太好。
        4.KML支持
           通过一个插件能够支持KML,不过想达到googleearth的添加等功能,还需要做很多工作。
        5.内存泄露
           按理,c#不会存在内存泄露。出现问题的地方是QuadTile.Dispose,D3D的纹理没有进行清除。使得资源占用越来越大,速度越来越慢
        6.DEM显示缺陷
           每个Tile之间未作平滑处理,经常会出现深坑、断档。
        7.影像黑边
           大多数基于worldwind的软件,可以看到影像边缘很明显的黑边、锯齿。究其原因,是Jpg压缩,出现黑色渗透交融导致黑边锯齿。 两种解决办法,a)边缘地带采用png。b)严格的数据组织。

WorldWind的国内应用
          可以说,国内很多高手都解决了上述的问题,并且发扬WorldWind的优势。典型代表EVGlobe等等。很不容易,从某种角度上来说,确实是自主研发。

非.net平台

2.OSSIMPlanet
      链接:ossimplanet
     开发语言:c++
     渲染方式:opengl
      相比WorldWind而言,名气并太大。虽然推荐时,我一般不推荐它,但他确实是另外一个很强大的开源数字地球。我不推荐它的原因是:
     1)基于c++。光研究了解它就要花好多成本,这并不太适合国内公司和单位。门槛高,时间长,见效慢。
     2)相关资料少。它涉及到太多的大型开源库,而国内翻译的资料相对少很多。不像WorldWind,拿套源代码就能开干。

但我很喜欢它,作为技术人员来说,我推荐大家去看。很多乐趣和知识在里面。很优雅,很内涵,值得收藏。

OSSIMPlanet优势
     1)基于OSG(Open Scene Graph),一个很庞大很工业很成熟的开源软件。这点很吸引我。国内很多公司采用,如西安赛能。地址:http://www.3snews.net/html/71/www.openscenegraph.org
        仅OSG就能列出非常多的文章,使用OSG的好处不胜列举。要描述清楚需要花很多篇幅。这里我们就带过。
    2)平滑快速高效的显示效果。
    3)作为平台来说,他涵盖的内容很全,比如你可以用OSG做出媲美TerraBuilder的软件。用GDAL+OSG支持绝大多数矢量、影像、模型文件。
    4)完美的模型支持。不用说LOD,连整个城市装入一点问题没有。在很早以前,有个叫做VTP的虚拟城市开源软件。
    5)专业化,确实很专业。
    6)脚本支持。通过采用OSG的osgInterper(这部分实在是太美妙了),能快速绑定Python,Lua,JavaScript,Ruby。
    7)想了解更多的优势,还是自己去下个来看吧。

OSSIMPlanet缺陷
     从技术角度来讲,OSSIMPlanet的缺陷几乎没有。不过,上面说过了,想基于它形成自己的产品和解决方案,要花很多投入和资金。因此它的硬伤就是,不适合商业化。

OSSIMPlanet国内应用
     几年前,我和一个开发工作室聊过。他们采用的是OSG以及基于OSG开发的数字地球,参考了ossimplanet但未直接使用。因此,国内应用,没有。
     这个工作室产品名为VirtualTerran。后来貌似变成了mapok(不确定,知道的请联系我)

3.Gps3D
   地址:http://www.3snews.net/html/71/www.mgix.com/gps3d/
   这款开源软件应该来说更侧重于gps功能。当然也包含了三维地球的部分功能。
   开发语言:c++
   渲染方式:Opengl

这个开源软件很小巧也很实用。作为技术参考来说,非常不错。可以参考的部分是经纬度转三维坐标,WMS、WFS的远程调用以及Tile的三维显示。

缺点就不多说,毕竟方向不一致,不能以平台来要求它。

4.Earth3D
  地址:http://www.3snews.net/html/71/www.earth3d.org
  这款开源软件适合初步研究三维地球。它显示了三维地球,并显示了国界线。
  开发语言:c++
  渲染方式:Opengl

作为初步研究,还是不错的。毕竟起点的第一步就是如何显示三维地球并贴上MODIS数据。它还能显示国界线。很不错的参考。

5.其他更多的开源软件
  目前为止,我发现的开源软件就是以上4种,如果你知道更多,请告诉我。

总结:
  1.WorldWind最成熟,最适合商业化.
  2.技术最优OSSIMPlanet

其他.net平台下开源(免费)三维 GIS (地形,游戏)平台资料

Axiom:开源3D游戏引擎,是著名的开源引擎OGRE的.NET版本。源代码完全用c#构造,主要为图形部分。
RealmForge:开源3d游戏引擎,图形部分采用Axiom、并组合并重写其他一些网络、人工智能等模块,完全由C#构造。

还有google earth,

Axiom 
The Axiom 3D Engine is an open-source, cross-platform 3D graphics rendering engine for .NET and Mono.  The engine is a high-performance C# port of the powerful OGRE engine.  Its flexible component-oriented architecture allows easy extension and provides full support for both DirectX and OpenGL.  The engine is also cross platform supporting both Windows and Linux operating systems.

RealmForge:
The .NET 3D game engine predecessor to Visual3D.NET (www.visual3d.net), which is a framework and toolset for the visual design and development of 3D games, simulations, and interactive environments using C#, .NET 2.0, and XNA.

irrlicht
The Irrlicht Engine is an open source high performance realtime 3D engine written and usable in C++ and also available for .NET languages. It is completely cross-platform, using D3D, OpenGL and its own software renderer, and has all of the state-of-the-art features which can be found in commercial 3d engines.
We've got a huge active community, and there are lots of projects in development that use the engine. You can find enhancements for Irrlicht all over the web, like alternative terrain renderers, portal renderers, exporters, world layers, tutorials, editors, language bindings for java, perl, ruby, basic, python, lua, and so on. And best of all: It's completely free.

非.net平台

ORGE:评价非常高开源3D游戏引擎。使用c++构建,主要为图形部分。

TerraVision 
http://www.ai.sri.com/digitalearth/index.shtml

http://www.ai.sri.com/tvgeo/download_full.shtml

https://sourceforge.net/projects/terravision

http://www.ai.sri.com/tvgeo/

TerraVisionTM is an Open Source distributed, interactive terrain visualization system developed by SRI International. It allows users to navigate, in real time, through a 3-D graphical representation of a real landscape created from elevation data and aerial images of that landscape. There are many terrain visualization tools on the market, but here are some of the features that make TerraVisionTM unique:

New: Full Open Source hosted on SourceForge. 
TerraVisionTM can browse huge datasets, in the order of terabytes. 
All data can be distributed over multiple servers across the Web. 
3-D VRML and GeoVRML models can be overlaid, e.g. buildings, wind vectors, etc. 
TerraVision can access OGC Web Map Servers (WMS) [More] 
Datasets of different size, resolution, source, and coordinate system are supported. 
New: TerraVision Server on Internet2. 
Available for free for Windows, Linux, and SGI platforms.
New: Version 6.0 released

开源(免费)三维 GIS(地形,游戏)的更多相关文章

  1. 开源(免费)三维 GIS(地形,游戏) 续1

    转自:http://www.cnblogs.com/xiexiaokui/archive/2009/04/02/1428525.html 转自 三维数字地球发布平台探索--几款开源软件介绍 http: ...

  2. .NET平台下开源三维 GIS (地形与游戏)平台资料

    .net平台下开源(免费)三维(地形,游戏)GIS平台 open source (free) 3d (terrain,game) gis platform based on .net (C#) Axi ...

  3. 开源免费的HTML5游戏引擎

    青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...

  4. 开源免费的HTML5游戏引擎——青瓷引擎(QICI Engine) 1.0正式版发布了!

    青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...

  5. Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架

    Phaser是一款专门用于桌面及移动HTML5 2D游戏开发的开源免费框架,提供JavaScript和TypeScript双重支持,内置游戏对象的物理属性,采用Pixi.js引擎以加快Canvas和W ...

  6. 19个三维GIS软件对比

    19个三维GIS软件对比 麦豆科研技术中心 days ago 我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方 ...

  7. 国内外主流的三维GIS软件

    我国GIS经过三十多年的发展,理论和技术日趋成熟,在传统二维GIS已不能满足应用需求的情况下,三维GIS应运而生,并成为GIS的重要发展方向之一.上世纪八十年代末以来,空间信息三维可视化技术成为业界研 ...

  8. OpenWebGlobe-开源三维GIS初体验(附源码和演示)

    1.OpenWebGlobe简介 OpenWebGlobe是一个高性能的三维引擎.可应用于可视化仿真,游戏,三维GIS,虚拟现实等领域.它使用纯javascript编写,可以运行在任何支持HTML5. ...

  9. [转]的C#实现三维数字地形漫游(基于Irrlicht)

    马省轩  任丽娜 摘  要:本文采用C#编程语言,利用Irrlicht三维图形引擎实现了三维数字地形的漫游.为三维数字地形显示提供了较易实现的解决方案. 关键词:C#   高度图 Irrlicht引擎 ...

随机推荐

  1. C实现通用数据结构--双向链表

    双向链表概述 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继next和直接前驱prev.所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结 ...

  2. Java从零开始学四十二(DOM解析XML)

    一.DOM解析XML xml文件 favorite.xml <?xml version="1.0" encoding="UTF-8" standalone ...

  3. 解决Junit单元测试 找不到类 ----指定Java Build Path

    做junit 单元测试时,发现怎么执行都是以前编译过得代码. 最后找到原因了, src/test/java 编译完的.class路径是 Default output folder Default ou ...

  4. Effective Java 65 Don't ignore exceptions

    Principle An empty catch block defeats the purpose of exceptions, which is to force you to handle ex ...

  5. 《SQL Server企业级平台管理实践》读书笔记——当我们的备份都已经损坏的时候该怎么办

    作为数据库管理员最最痛苦的莫过于,当数据库宕机的时候需要找备份,但在这个时候突然发现备份文件也是坏的,这就意味着数据会丢失,为此可能会丢掉职位,饭碗不保,所以为此,我们一定要保证好备份的完整性,一般发 ...

  6. poj 1144 Network 图的割顶判断模板

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8797   Accepted: 4116 Descripti ...

  7. [嵌入式开发板]iTOP-4412以模块的方式编译驱动

    本文转自迅为:http://www.topeetboard.com 大家好,本章节我们将向大家讲解如何在 linux 下实现以模块的方式加载内核驱动.我们以内核里面蜂鸣器的 驱动为例来讲解. 1)首先 ...

  8. Android逆向工程初步(一) 15.4.24

    最近看了看Android的逆向工程,破解的书,像是<Android Hack‘s Book>之类的,感觉挺有意思的,看了看一些smali的语法,试着自己写了个demo玩玩: 1.工具: 最 ...

  9. 1644 免费馅饼 题解(c++)(S.B.S.)

    1644 免费馅饼(巴蜀oj上的编号) 题面:          SERKOI最新推出了一种叫做“免费馅饼”的游戏.         游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占 ...

  10. 使用Burpsuite破解Webshell密码

    Burp Suite 是用于攻击web  应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP  消息,持久性,认证 ...