次表面散射材质_[GPU Gems2] 16. 精确的大气散射

本文介绍了如何在GPU上实时渲染次表面散射材质和精确的大气散射效果。通过解散射方程和数值方法,结合瑞利散射和米氏散射模型,实现了光线在大气中的散射计算。文章讨论了相位方程、外向散射和内向散射方程,并提出查找表方法以优化计算效率。此外,还提出了若干改进方案,包括高动态范围渲染、多重散射模拟和后处理模糊滤镜等,以增强渲染的真实感和视觉效果。
摘要由CSDN通过智能技术生成

5454c00e54bfe806401a40c34b063e1b.png
Chapter 16. Accurate Atmospheric Scattering​developer.nvidia.com
9b0f7ac8e50ea1479607d6fb32da610e.png

介绍

本章介绍如何基于Nishita et al. 1993的完整方程在GPU上实现实时大气散射。这些方程可以精确地构建大气散射,海拔上升时密度指数级下降。

解散射方程

需要使用数值方法(如梯形规则)来解散射方程的嵌套积分,即在循环中加权求和来求近似解。

现在假定从相机发出一条射线,穿过大气到达某个顶点(顶点可能在地形上、天空盒、云甚至太空中的月亮上)。因为射线穿过大气,所以需要计算散射,此时需要定义两个点A和B:射线到达大气层的点A和射线离开大气层的点B。现在根据线段AB计算大气散射的近似积分,下图中假设取五个样本点,每个点都参与了散射:光线从太阳进入大气并在该点散射,部分光被反射到相机。

657ac353d66f3cd742358d4d94d88d7c.png

瑞利散射VS米氏散射

光线在点P如何被散射有不同数学建模方式。其中比较常用的是瑞利散射(Rayleigh scattering)和米氏散射(Mie scattering)。瑞利散射由空气中的小分子导致,并会更多地散射波长短的光(蓝>绿>红),天空是蓝的以及夕阳是橙黄的就是这个原因。米氏散射则由空气中更大的粒子(气溶胶, 如灰尘)导致,对所有波长的光相同散射,灰蒙蒙的日子里米氏散射使天空偏灰以及太阳周围出现光晕,此外米氏散射还可以应用于小水珠和冰粒子来产生彩虹的效果。

相位方程

357a656def35ec71cfb20c3ba9f49f56.png

相位方程基于视线和光线之间的角度计算有多少散射的光会射向相机,还添加了一个常量g来影响散射的对称性。本文使用的相位方程是对Henyey-Greenstein方程的改进。g为正时更多光会散射回光源,g为负时更多光会散射到光线前进方向。瑞利散射可以通过把g设置为0来近似,此时对正负角散射都是对称的。米氏散射通常把g设置为-0.75到-0.999。

外向散射方程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值