Cesium加载纯色背景

本文档介绍了如何在Cesium中实现纯色背景,以解决大屏展示时地球或模型的黑色天空盒与背景不协调的问题。通过修改Cesium配置,关闭天空盒,设置背景颜色,并调整相关选项,可以创建与大屏风格更匹配的场景。代码示例展示了具体步骤,包括加载自定义背景图片、禁用天空盒、设置背景透明、关闭大气效果等,最终达到理想的纯色背景效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cesium加载纯色背景

1.在使用Cesium引擎时,我们经常要使用大屏适配导致地球或者模型的黑色天空盒和大屏的样式不匹配造成场景不好看的情况,这样就可以用到我们修改Cesium的天空为纯色背景,与大屏更适配,直接上代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport"
    content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
  <title>加载纯色背景</title>
  <link href="../../Build/Cesium/Widgets/widgets.css" rel="stylesheet" />
  <script src="../../Build/Cesium/Cesium.js"></script>
  <style>
    html,
    body,
    #cesiumContainer {
      width: 100%;
      height: 100%;
      margin: 0;
      padding: 0;
      overflow: hidden;
    }
  </style>
</head>

<body>
 <!-- 设置你需要的背景图片 -->
  <div id="cesiumContainer" class="fullSize" style="background-image: url(../../img/back.png);"></div>
  <script>
    var viewer = new Cesium.Viewer('cesiumContainer', {
      //需要进行可视化的数据源的集合
      selectionIndicator: false,//关闭绿色点击框
      animation: false, //是否显示动画控件
      shouldAnimate: true,
      homeButton: false, //是否显示Home按钮
      fullscreenButton: false, //是否显示全屏按钮
      baseLayerPicker: false, //是否显示图层选择控件
      geocoder: false, //是否显示地名查找控件
      timeline: false, //是否显示时间线控件
      sceneModePicker: false, //是否显示投影方式控件
      navigationHelpButton: false, //是否显示帮助信息控件
      infoBox: false, //是否显示点击要素之后显示的信息
      requestRenderMode: true, //启用请求渲染模式
      scene3DOnly: false, //每个几何实例将只能以3D渲染以节省GPU内存
      sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式  Cesium.SceneMode
      fullscreenElement: document.body, //全屏时渲染的HTML元素 暂时没发现用处
      //加载谷歌影像地图,UrlTemplateImageryProvider该接口是加载谷歌地图服务的接口
      imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
        url: "https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer",
      }),
      //需要纯色背景必须设置
      contextOptions: {
        webgl: {
          alpha: true,
        }
      },
    })
    viewer.scene.skyBox.show = false //关闭天空盒,否则会显示天空颜色
    //背景透明
    viewer.scene.backgroundColor = new Cesium.Color(0.0, 0.0, 0.0, 0.0);
    
    //关闭大气
    viewer.scene.skyAtmosphere.show = false
    //抗锯齿
    viewer.scene.fxaa = true;
    viewer.scene.postProcessStages.fxaa.enabled = true;
    //清除月亮太阳
    viewer.scene.moon.show = false
    viewer.scene.sun.show = false
  </script>
</body>

</html>

这样我们的纯色图片就出来了效果如下,也可以用模型来代替
在这里插入图片描述
在这里插入图片描述

### Cesium 美观样式与主题 Cesium 是一款强大的开源地球可视化引擎,其核心功能集中在三维地理数据展示上。虽然它的默认外观可能显得较为朴素,但它提供了丰富的扩展性和灵活性来实现美观的主题和样式[^1]。 以下是几个常见的方法用于提升 Cesium 的视觉效果: #### 自定义背景 通过设置 `scene.skyBox` 或者 `scene.backgroundColor` 可以更改场景的背景颜色或引入更复杂的星空背景。 ```javascript // 设置纯色背景 viewer.scene.backgroundColor = Cesium.Color.BLACK; // 使用 SkyBox 替代默认背景 viewer.scene.skyBox = new Cesium.SkyBox({ sources: { positiveX: &#39;path/to/skybox/right.png&#39;, negativeX: &#39;path/to/skybox/left.png&#39;, positiveY: &#39;path/to/skybox/top.png&#39;, negativeY: &#39;path/to/skybox/bottom.png&#39;, positiveZ: &#39;path/to/skybox/front.png&#39;, negativeZ: &#39;path/to/skybox/back.png&#39; } }); ``` #### 修改地形材质 可以通过加载自定义纹理或者调整现有地形的颜色映射来增强地面的真实感。 ```javascript var terrainProvider = new Cesium.CesiumTerrainProvider({ url : &#39;https://assets.agi.com/stk-terrain/world&#39; }); viewer.terrainProvider = terrainProvider; ``` #### 添加灯光效果 为了使模型更加生动,可以启用环境光以及定向光源模拟太阳光照。 ```javascript viewer.scene.globe.enableLighting = true; ``` #### 调整相机视角参数 合理配置摄像机视距范围有助于改善整体布局比例关系。 ```javascript viewer.camera.frustum.near = 1.0; // 近裁剪面距离 viewer.camera.frustum.far = 10000000.0;// 远裁剪面距离 ``` 以上仅列举部分基础操作实例,更多高级定制方案可参考官方文档中的 Style API 部分[^2]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值