Cesium介绍

1、背景

在许多虚拟地理空间应用的实现中,Cesium是一个很有用的WebGL图形库。学习如何解释CSS文件保证它准确呈现3D场景是一个重要的知识,因此本文提供了Cesium源代码的指导和说明。

  1. Cesium文件和组件
  2. 初始化WebGL
  3. 渲染流水线
  4. 资源优化
  5. 最佳实践

2、Cesium文件和组件

Cesium是一个开源的跨平台的3D地图库,允许您以不同的方式显示可视化内容。它有一些文件和组件,用来帮助构建和显示数据和地理信息。

        Cesium支持各种文件格式,常见格式有KML、COLLADA、TMS和GeoJSON,它也支持跨平台服务如ArcGIS MapServer、OGC WMS、Geoserver等。

        Cesium有一系列可扩展的组件,如 3D 地形和图像图,3D 城市模型,时间控制,导航功能,3D 覆盖物,三维海洋环境等。它也支持用户附加任何 Javascript 代码作为组件,以组合多个组件形成一个完整的 Cesium 应用。

3、初始化Cesium中的WebGL

让我们看看如何在Cesium中初始化 WebGL:

  1. 为了使用Cesium,首先需要引入Cesium.js文件:

    
    
  2. 然后,必须提供一个网页上用于渲染3D内容的 HTML 标签:

  3. 最后,可以在 cesiumContainer 中创建 Cesium 实例来创建 WebGL:

    var viewer = new Cesium.Viewer('cesiumContainer');
    

这就完成了 WebGL 的初始化。 

4、流水线渲染

Cesium中的流水线渲染是一种在 3D 场景中构建具有逼真效果的低延迟图形数据处理系统。它使用从输入到输出的各种处理环节 (stages),从而可以根据硬件条件提供最佳的可用性和呈现。

Cesium 的流水线渲染使用了大量的顶点和片元处理 (vertex and fragment shaders)、几何形状和裁剪的语义,模板测试 (stencil test)、不同的材料属性 (material attributes)、光学和动画效果 (optical and animation effects) 等处理步骤。

它使用一些常用的途径来极大地提高性能,如着色缓冲 (color-buffer)、深度缓冲 (depth-buffer)、模板缓冲 (stencil-buffer)、纹理缓冲 (texture-buffer) 和显卡缓冲 (GPU-buffer)。

此外,Cesium 还包括一个实时着色器,可以快速地渲染出包含复杂可见物体的实时场景

5、资源优化 

  1. 清理3D模型:减少不必要的复杂度,比如降低贴图采样次数,删除冗余面片等。

  2. 调低Cesium插件帧率:将动画、天气场景改为快速模式或者关闭它们,避免多余的CPU消耗。

  3. 多灵活使用dem:dem在计算tiles对低高度区域产生generateTerrainHighness这种影响之前,可以先将更加高的dem解析并且存入geojson中。

  4. 缩小载入范围:可以在载入cesium地图时,采用LOD(Level of Detail)方法只载入当前显示级别的tile。

6、最佳实践 

  1. 优先使用向量地图进行操作,而不是使用栅格数据:如果操作包括绘制、编辑和查询,那么向量地图就会比栅格地图更好。向量地图更便于编辑和绘制,并且可以送至表达式,以处理查询操作。

  2. 避免使用 geographic 和 Cartesian 这两个坐标系:使用 WGS84 的坐标系进行绘制,然后将其转换为模型的局部坐标系,这将帮助减少数据映射和操作时精度损失。

  3. 优先使用静态原生数据格式:GLTF 格式尤其有益于构建高性能地图,因为它不需要额外的编码/解码步骤。

  4. 使用 AO-优化的材质:将 ambiet Occlusion 高级功能启用在 Obj 或 FBX 对象上将提升地图对象的细节水平。

  5. 使用 CVT-Triangulations :CVT分割技术可以在保留细节的情况下细分图块,从而提升地图的性能。

  6. 使用 Shader 着色器:HLSL Shader 着色器可以实现一系列的功能,并大大提升 Cesium 集成功能的性能。

你可能感兴趣的:(cesium,前端)