gis和unity的结合当前有哪些考虑?
发布网友
发布时间:2024-10-02 07:35
我来回答
共1个回答
热心网友
时间:2024-11-12 19:33
GIS在Unity或UE中的重要结合点在于Cesium for unity和Cesium for Unreal。然而,一旦结合,CesiumJS的WebGIS优势就会消失,因此,山海鲸采用了直接将游戏引擎算法集成到CesiumJS渲染中,以保持原始CesiumJS的优点,并提升视觉效果至游戏引擎水平。
本文前提明确,山海鲸并未采用ThreeJS引擎。由于ThreeJS引擎应用广泛,文中使用其与CesiumJS整合方案来替代山海鲸中的3D引擎与CesiumJS整合。
系列链接:
山海鲸可视化:GIS融合之路(一)技术选型CesiumJS/loaders.gl/iTowns?
山海鲸可视化:GIS融合之路(二)CesiumJS和ThreeJS深度缓冲区整合
山海鲸可视化:GIS融合之路(三)CesiumJS和ThreeJS相机同步
文章进入最后阶段,主要关注光影效果整合与提升。提及虚幻引擎的Cesium For Unreal产品,该产品结合了Cesium地理信息展示能力和Unreal的视觉效果,显著提升了表现力。对比图显示,Cesium For Unreal的表现力强于CesiumJS。
山海鲸中整合CesiumJS的效果已非常接近Cesium For Unreal,自带体积云和灵活设置,而Unreal实现类似效果可能需要购买插件或自建模型。山海鲸整合CesiumJS,允许使用熟悉的JS语言和接口进行二次开发,无需修改原有CesiumJS项目代码,开发成本和学习难度低于Unreal的C++或蓝图。
接下来,本文将探讨山海鲸如何将CesiumJS效果提升至Cesium For Unreal的水平。首先介绍大气散射原理及渲染方法,包括简单实现和工业界实现。
大气散射原理解释了天空颜色和远处景象颜色变化的物理原因,涉及到太阳光被大气层中粒子散射的现象。大气散射渲染方法包括单次散射和多次散射,以及预计算大气散射参数的LUT方法,UE在2020年优化了算法,降低了计算难度。
山海鲸的实现包括解决算法不在论文中、WebGL不支持ComputeShader和GeometryShader、WebGL不支持读取MSAA多采样等难题,以及与CesiumJS的整合。
在克服技术障碍后,山海鲸成功实现了Cesium For Unreal算法与WebGL和CesiumJS的集成,保持了无侵入性修改CesiumJS代码。接下来,文章将关注体积云和指数高度雾的整合,并展示最终效果视频。