基于径向模糊的体积光在Cesium中的应用

概述

当空间中包含足够稠密的光散射介质(例如气体分子和气溶胶)时,光源透过遮挡物的缝隙投射的光线打在空气中的尘埃上,产生散射进入到人眼中,这些光线看起来像是一道一道的光柱,被称为体积光。

在图形渲染中,体积光对画面的质感能起到很大的提升作用。体积光的渲染主要有BillBoard贴片径向模糊光线追踪 3 种方式。BillBoard贴片是把带有光柱效果的图片叠放在原始场景之上,实现方式不够灵活,换另一个场景就得另一组图片;径向模糊用后处理方式实现,效果不错,性能开销较小;光线追踪效果最好,算法较为复杂,性能消耗相对也较大。

在以上3种方式中,径向模糊在算法复杂度、性能开销、渲染效果等方面的表现相对均衡,同时它是在后处理阶段实现的,正好 Cesium 提供了一套现成的后处理机制,因此我们不用考虑后处理的基本流程,只要提供片元着色器和相应的 uniform 变量即可。本文主要讨论基于径向模糊算法的体积光及其在Cesium上的实现思路。

图1 体积光效果

径向模糊算法

径向模糊算法的核心思想是:在当前片元到光源的路径上选取一系列的采样点,考虑权重和衰减等因素的影响算出采样颜色,采样颜色之和为当前片元最终的颜色。算法逻辑如图2所示,当前片元径向模糊后的颜色 Color 是所有采样颜色之和,屏幕空间中每个片元都按照这个逻辑计算一次。图3是径向模糊前后对比的示例,可以看出是朝一个方向模糊的,这也是径向的含义。表1是径向模糊的GLSL代码片段,虽然用到了循环,但实际使用中并没有感觉性能受到多大影响。

图2 算法逻辑 

图3 径向模糊前后对比 

/// Our light scattering pass texture
uniform sampler2D UserMapSampler;
/// Indicate where is the light source on the screen (2D position)
uniform vec2 lightPositionOnScreen;
void main()
{float decay=0.96815;float exposure=0.2;float density=0.926;float weight=0.58767;/// NUM_SAMPLES will describe the rays quality, you can play withint NUM_SAMPLES = 100;vec2 tc = gl_TexCoord[0].xy;vec2 deltaTexCoord = (tc — lightPositionOnScreen.xy);deltaTexCoord *= 1.0 / float(NUM_SAMPLES) * density;float illuminationDecay = 1.0;vec4 color =texture2D(UserMapSampler, tc.xy)*0.4;for(int i=0; i < NUM_SAMPLES ; i++){tc -= deltaTexCoord;vec4 sample = texture2D(UserMapSampler, tc)*0.4;sample *= illuminationDecay * weight;color += sample;illuminationDecay *= decay;}gl_FragColor = color;
}

表1 径向模糊 GLSL 代码片段

Cesium中体积光的实现思路

1、在Cesium提供的后处理机制中,我们不用自己去离屏渲染原始场景的纹理,在后处理阶段的片元着色器中可以直接拿到颜色纹理(colorTexture)和纹理坐标(v_textureCoordinates)。

图4 原始场景纹理

2、光源正常渲染,遮挡光源的物体都渲染为黑色,得到一张采样纹理。建议在Cesium中把太阳和大气都作为光源,如果只把太阳作为光源,最后体积光的效果不明显。

图5 光源正常渲染、遮挡物涂黑的纹理 

3、把上一步渲染的纹理传给径向模糊的着色器,在这张纹理上采样,逐片元算出径向模糊后的颜色,得到图6所示的径向模糊纹理。

图6 径向模糊纹理 

4、把上一步经过径向模糊的纹理和原始纹理叠加就可以看到如图7所示的体积光的效果了。

图7 Cesium中的体积光效果 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/276639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美易官方:道指续创收盘历史新高

美国股市周三继续上涨&#xff0c;道琼斯工业平均指数连续六个交易日收高&#xff0c;并再次创下收盘历史新高。尽管市场对全球经济增长放缓的担忧依然存在&#xff0c;但美国经济数据的强劲表现以及企业盈利的良好预期&#xff0c;使得投资者对股市的信心得到提振。 在今日的交…

【seata】 seata整合nacos + springcloud alibaba 真保姆级教程 解决各种坑点

前言&#xff1a; 坑点太多了&#xff0c;以至于需要单独写篇博客记录一下。 网上教程五花八门且不声明版本&#xff0c;文档不对应以及seata本身的bug&#xff0c;就造成了部署时各种踩坑&#xff0c;如果你和博主一样&#xff0c;已经又恰好很久没碰过nacos了&#xff0c;那可…

探索SSL证书的应用场景,远不止网站,还有小程序、App Store等

说到SSL证书&#xff0c;我们都知道其是用于实现HTTPS加密保障数据安全的重要工具&#xff0c;在建设网站的时候经常会部署SSL证书。但实际上&#xff0c;SSL证书的应用场景远不止网站&#xff0c;它还被广泛地应用到小程序、App Store、抖音广告、邮件服务器以及各种物联网设备…

常用的系统存储过程

exec sp_databases ---列出服务器上所有的数据库信息 exec sp_help student ---查看学生表中的所有信息 exec sp_renamedb Myschool,MySchools ---更改数据库的名称 需要两个参数 一个是原来数据库的名称 一个是要改为的数据库名称 消息框显示&#xff1a;数据库 名称 MyS…

KITTI数据集处理为COCO数据集格式

KITTI作为自动驾驶常用数据集&#xff0c;被广泛的应用于自动驾驶目标检测等过程中。 首先是数据集类别合并&#xff0c;原始的KITTI数据集有九个类别&#xff0c;分别是&#xff1a; Car Van Truck Pedestrian Person_sitting Cyclist Tram Misc而我们在使用过程中&#xff0…

led护眼台灯对眼睛伤害大吗?推荐专业的学生护眼台灯

护眼台灯如何挑选&#xff0c;一直是广大家长的一道难题&#xff0c;因为如今市场上的台灯种类是在太多了&#xff0c;让眼眼花缭乱&#xff0c;其中还混杂着不少不专业的品牌&#xff0c;一不留神就很有可能会踩雷。也有很多人问LED护眼台灯对眼睛伤害大吗&#xff1f; 其实一…

香港威雅报告:香港威雅学校入选英国《优秀学校指南》

今天&#xff0c;我们很荣幸地和大家分享一个特别的消息——香港威雅已接受了英国领先的学校审查机构——《优秀学校指南》&#xff08;The Good Schools Guide&#xff09;的全面评审。这是一家值得信赖的权威评审机构&#xff0c;相关工作人员来访并审查了我们的学校&#xf…

零信任 SASE 办公安全解决方案:提升企业网络安全与灵活性

​零信任 SASE&#xff08;Secure Access Service Edge&#xff09;办公安全解决方案为企业带来了许多好处&#xff0c;相较于以前的解决方案有明显差异。这个方案的出现是为了应对企业面临的新的网络安全挑战和远程办公的需求。 1、统一的网络安全管理&#xff1a;SASE 将网络…

世微 AP9166 DC-DC降压IC 18V 2A同步降压转换器

600KHz&#xff0c;18V&#xff0c;2A同步降压转换器 概述 AP9166是一款完全集成的效率2A同步整流降压转换器。AP9166运行在宽输出电流上以高效率 负载范围。此设备提供两个操作模式、PWM控制和PFM模式切换控制&#xff0c;允许更宽范围的高效率 负载AP9166至少需要现成标准的…

浏览器输入URL再按下回车会经历哪些过程

目录 前言 一、解析URL 二、解析域名(DNS) 三、TCP三次握手建立连接 1.seq、syn、ack含义 2.三次握手 四、发送http/https请求 五、服务器响应请求 六、浏览器解析渲染页面 七、TCP四次挥手断开连接 总结 前言 看各种面经发现这个问题是一个高频出现的面试问题&#xff0c;但…

双向无线功率传输系统MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介&#xff1a; 初级侧转换器通过双向 AC/DC 转换器从电网获取电力&#xff0c;并由直流线电压 Vin 供电&#xff0c;而拾波侧被视为连接到 EV&#xff0c;并由连接到任一存储的单独直流源 Vout 表示或…

人工智能与大数据的紧密联系

随着科技的飞速发展&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;和大数据&#xff08;Big Data&#xff09;已成为当今社会的热门话题。人工智能在许多领域的应用越来越广泛&#xff0c;而大数据则提供了支持和驱动AI技术的巨大资源。本…