环境

在场景初始化时,通过设置初始化的第二个参数对象中的 environment 属性来自定义不同的场景环境。

注:光照在此不做说明,需要了解可到光照下进行查看。

1. 属性结构

1.1 环境

// 
interface Environment {
  // 是否显示天空大气层
  atmosphereEnabled: boolean;
  // 是否显示天空星星
  starsEnabled: boolean;
  // 天气
  weather: Weather;
  // 光照
  lighting: Lighting;
}

1.2 天气

interface Weather {
  // 天气类型
  type: WeatherType;
  // 指定特定天气类型的天空云量。
  cloudCover: number;
  // 指定降雨量(降雪量)。
  precipitation: number;
  // 显示被雪覆盖的表面。"enabled"|"disabled"
  snowCover:"enabled"|"disabled";
  // 指定场景中使用的雾量。
  fogStrength: number;
}

1.3 天气类型

共有5种天气类型: 'sunny'晴朗,'cloudy'多云, 'rainy'多雨 ,'snowy'下雪,'foggy'有雾

type WeatherType = 'sunny' | 'cloudy' | 'rainy' | 'snowy' | 'foggy';

2. 设置天气环境

如需设置场景天气,请在 environment 中配置 weather 属性,设置天气信息。

注:设置场景天气需要设置近地天空盒显示,否则天气效果不起效果。

示例代码如下:

  const scene = new ubm.Scene('app', {
  viewingMode: 'global',
  map: {
    basemap: 'satellite',
  },
  background: {
    // 打开近地天空盒
    enableSkybox: true,
  },
  environment: {
    // 天气设置
    weather: {
      type: 'rainy',
      precipitation: 0.3
    }
  }
})

3. 环境设置插件

对于场景的环境设置,为了方便用户直观的感受到环境的变化,我们封装了场景环境插件以满足此需求。

使用方式及代码示例如下:

// 场景环境设置插件
const environmentPlugin = new ubm.EnvironmentPlugin()
scene.plugin.register(environmentPlugin)
注:对于具体的插件使用方式请查看插件一栏,有详细的插件使用方式。