Skip to content

CloudEffect 体积云 ​

CloudEffect 在地球上空构建具有真实高度的球形云壳,从相机向云层进行世界空间光线步进,并通过三维噪声计算每个采样点的云密度。移动或旋转镜头时,云体保持在地理空间中并产生视差。

组件案例 ​

构造函数 ​

js
new WeatherEffects.CloudEffect(viewer, options)
参数默认值范围说明
intensity10~2云体密度和整体强度
coverage0.520~1云量覆盖比例
baseHeight4800100~50000云底相对地表高度,单位:米
topHeight8800200~60000云顶相对地表高度,单位:米
scale10.2~8世界空间三维噪声尺度
speed0.55-5~5云体随风运动速度,负值反向移动
windDirection35-360~360水平风向角,单位:度
maxDistance16000010000~500000最远体积云计算距离,单位:米
steps7216~72每条视线的最大采样次数,越高越细腻但开销越大
color#f1f4f6e6CSS 颜色云体颜色和透明度

使用示例 ​

js
const cloud = new WeatherEffects.CloudEffect(viewer, {
  intensity: 1,
  coverage: 0.52,
  baseHeight: 4800,
  topHeight: 8800,
  scale: 1,
  speed: 0.55,
  windDirection: 35,
  maxDistance: 160000,
  steps: 72,
  color: '#f1f4f6e6',
})

cloud.setOptions({ coverage: 0.55, speed: 0.3, windDirection: 80 })

setOptions 会实时更新体积云参数。旧版 altitude 参数仍可使用,SDK 会将 0~1 的屏幕高度换算为体积云的 baseHeight 和 topHeight;cloudBase、cloudTop 和 windAngle 也分别兼容映射到新参数。

体积云需要对屏幕像素执行多次三维噪声采样。移动端或集成显卡可以将 steps 调整到 24~40,桌面独立显卡可使用默认值或提高到 72。

基于 Apache-2.0 许可发布