在cesium 的配置中 有一些参数 可以配置地图的显示
显示出 水的动态显示 山的效果
相当于一些动画显示的效果

  var viewer = new Cesium.Viewer("cesiumContainer", {
    infoBox: false,
    terrainProvider: await Cesium.createWorldTerrainAsync({
      requestWaterMask: true,
      requestVertexNormals: true
    }),
  });在 CesiumJS 中,Cesium.createWorldTerrainAsync 方法用于异步加载全球地形数据,它返回一个 Cesium.TerrainProvider 的实例,该实例可以被用于 Cesium.Viewer 或其他需要地形数据的 Cesium 组件中。这个方法接受一个配置对象作为参数,其中 requestWaterMask 和 requestVertexNormals 是这个配置对象中可以设置的两个选项,它们各自有不同的用途:
- requestWaterMask:- 这个选项用于指示 Cesium 在加载地形数据时是否也应该请求水掩码(water mask)信息。水掩码信息用于区分哪些区域是水域(如海洋、湖泊等),这对于渲染水体、计算水面反射等效果非常重要。
- 当 requestWaterMask设置为true时,Cesium 会尝试获取并应用水掩码数据,以便更准确地表示水体区域。
- 需要注意的是,并非所有地形数据源都提供水掩码信息,这取决于具体的数据源。
 
- requestVertexNormals:- 这个选项用于指示 Cesium 是否应该在加载地形时请求顶点法线(vertex normals)信息。顶点法线对于光照计算、阴影生成以及许多视觉效果都至关重要,因为它们定义了表面的方向性。
- 当 requestVertexNormals设置为true时,Cesium 会尝试获取并应用地形表面的顶点法线数据,以改善视觉效果和物理计算的准确性。
- 同样,并非所有地形数据源都直接提供顶点法线信息。如果数据源不包含这些信息,Cesium 可能会通过算法来近似计算这些法线。
 
在你的代码中,await Cesium.createWorldTerrainAsync({...}) 这一行使用了 await 关键字,这意味着该代码片段应该位于一个异步函数内部。然而,直接在 new Cesium.Viewer 的构造函数中这样使用 await 是不合适的,因为构造函数的参数需要是同步确定的。为了解决这个问题,你可以将地形提供者的创建放在一个单独的异步函数中,并在该函数内部使用 await,然后将返回的地形提供者传递给 Cesium.Viewer 的构造函数。

如果不加这两个参数 是这样的显示 效果 就没有真么立体了 还是有很大的区别的



















