Cesium高级-2、雾天特效

雾天特效,相对雨、雪来说要简单很多。利用postprogress后处理,可以很简单的实现雾天效果。

实现原理:雾由近及远,其可见度逐渐变弱。即,透明度逐渐减小。也就是随着地物距相机的距离由近到远,Alpha值从0到1的过程。

关键步骤分析:计算窗口中地物距场景相机的距离

                         根据距离远近,将alpha进行0-1之间插值

                          将雾颜色与场景纹理混合

前提条件:假设雾气为白色,能见度200米,前方10米内能够看清地物。

关键代码:

export function setFogEffect1(viewer: Cesium.Viewer) {
  const fs = ` 
  float getDistance(sampler2D depthTexture, vec2 texCoords) 
  { 
      //它用于将从深度纹理中读取到的深度值进行解压缩,以便在着色器中进行深度测试和深度值比较等操作。
      //深度纹理通常用于实现阴影效果、深度检测等功能。
      //在Cesium中,深度值通常被存储在一个16位的纹理单元中,这个值被压缩成0到1之间的浮点数,以便节省显存空间。
      float depth = czm_unpackDepth(texture(depthTexture, texCoords)); 
      //若深度值为0,则返回无穷远
      if (depth == 0.0) { 
          return czm_infinity; 
      } 
      //将窗口坐标系(即屏幕坐标系)下的像素坐标转换为相机坐标系下的坐标
      vec4 eyeCoordi
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值