Note: OpenGlobe is great for learning along with our book, 3D Engine Design for Virtual Globes. But for a production quality, open source, virtual globe by the same authors (plus more), check out Cesium! 注意:OpenGlobe对于学习《3D Engine Design for Virtual Globes》很棒!但是如果用于生产环境,查看Cesium! OpenGlobe是一个虚拟地球的3D引擎(想想谷歌地球或NASA世界风),旨在说明我们的书《虚拟地球3D引擎设计》中描述的引擎设计和渲染技术。它用C#编写(完全支持使用Mono在Linux上运行),并通过OpenTK使用OpenGL 3.3核心配置文件。它不是一个完整的虚拟地球应用程序,而是一个核心引擎和许多可运行的示例。
OpenGlobe具有以下特性和功能:
- 一个设计良好(且实用)的渲染器抽象,使其更容易与OpenGL接口,且不易出错。
- 使用细分或GPU光线投射进行WGS84(和其他椭球体)球体渲染。
- 当在距相机的广泛变化的距离处发现渲染对象时,用于避免深度缓冲区错误的技术。
- 高精度顶点渲染技术,避免抖动问题。
- 矢量数据渲染,包括从形状文件读取矢量数据。
- 多线程资源准备。
- 使用CPU三角测量、GPU置换映射和GPU光线投射进行地形面片渲染。
- 使用程序技术进行地形着色。
- 使用几何剪贴在精确的WGS84地球仪上渲染整个世界的地形和图像。
该代码(以及该书)借鉴了作者在STK(最早的商业虚拟地球仪之一)上工作的真实经验。因为它是作为一种学习辅助工具,所以代码的编写风格是我们希望易于理解和遵循的,尤其是在有书的情况下。
有关在Windows和Linux上启动和运行代码的信息,请参阅此处的说明。