3D GIS入门指南

3D GIS,顾名思义,要求具备一定的CG(计算机图形学)知识,包括几何学、渲染和模拟等物理建模内容。GIS则涉及地理信息领域,如地形、建筑物和天气等地球尺度下的数据。因此,3D GIS的核心是对物理世界的建模。从开发角度来看,需要具备基本的编程能力,如C++、JS(WebGL/WebGPU)、Shader编程以及性能优化(CPU/GPU)。而3D GIS的研发人员也需要掌握以上三个领域的知识。

学习3D GIS存在两个主要挑战:一是知识点繁多且相互交错,难以建立扎实的基础和知识体系;二是从业人员大多来自Web GIS背景,对于C++相关技术如GL和Shader的掌握参差不齐。这些因素使得3D GIS容易上手却难以精通。

首先,掌握OpenGL是基本功,Learn OpenGL是一个不错的教程。如果学习OpenGL还有难度,可以先从WebGL入门,比如《WebGL编程指南》,之后再开始OpenGL的学习,图形学比较感兴趣的话,结合看看GAMES 101:现代计算机图形学入门。OpenGL/WebGL的优点是学习资料丰富,缺点是属于比较成熟或过时的技术,现在学习有点鸡肋。如果你工作中并不需要使用它们,那么Cuda/Vulkan/DX/WebGPU也是可以考虑的替代方案。目的是掌握基本的编程能力和图形学的基本概念。

其次,在这个基础上,需要掌握基本的GIS知识。通常需要了解构建一个地球模型的基本概念。个人觉得通过Cesium教程以及学习《3D Engine Design for Virtual Globes》是一个不错的方式。Cesium的代码开源,结合Virtual Globes以及对应的源码,目标是掌握构建一个地球模型的基本概念,以及如何应用GL技术来实现该地球模型。

最后,拥有这些基础并不意味着我们已经建立了坚实的根基。实际情况往往是在工作推动下,我们解决问题的一知半解。这些问题可能涉及到我们对数学物理等理论知识的欠缺,或者是对算法或开源库的不了解。这些问题是很好的试金石,我们才能发现自己知识体系中的盲区,并有针对性地完善自己。在这个过程中,我们将接触到许多优秀的技术文章、产品和专家,了解他们的学习和思考方式,以及他们关注的问题和前沿技术。这将拓宽我们的认知,调整我们的技术发展方向,比如游戏引擎或AI等相关技术。我们的目标是实现工作和学习的双赢,营造一个良好的学习氛围和环境,持续推动个人的提升。

另外,团队成员之间的交流也是必不可少的。在我的学习过程中,我从许多人那里得到了指导和帮助。我个人认为定期的技术交流是值得投入的事情。可以分享自己在工作中解决的问题,也可以分享自己对感兴趣的知识点的理解,通过讲座或讨论会的形式。

以上是我个人总结的3D GIS入门简要指南,学少而精,思活而辩。3D GIS行业的发展也离不开每一位从业者的努力。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • 感知技术综述
  • 3D GIS是什么
  • Terrain