[siggraph19]《荒野大镖客2》的大气云雾技术(2/4)

在这里插入图片描述

接下来我们看第二部分,这部分主要谈渲染部分,包括scattering 和lighting的render,相对内容也多一些。
可以说这部分是本片重点所在。

voxel+raymarching

在这里插入图片描述
处理大气效果时候,为了兼顾近处的精度和场景的宏大,使用了混合方案:

  • 近处使用voxelization的方式,得到高精度的渲染结果,reference了刺客信条的一个文章:https://blog.csdn.net/toughbro/article/details/46706837
  • 远处使用rayMarching的方式,平衡效果和效率

光照模型

在这里插入图片描述
这里最终的光照模型,使用这样的公式列出来,这个比较像大家所熟悉的PhysicallyBasedLighting中的macrofacet公式的模样,其中三项如下:

  • P:phase的缩写,是光通过media时候的scattering的情况
  • V:visibility,我们可以近似理解成shadow类的东西
  • L:lighting,也就是光源,直接光,ambient lighting等等

phase项

在这里插入图片描述
这里分成两个层级:

  1. 基础phase模型,是基于Henyey-Greenstein phase function(简称HG),这个模型对于single forward scattering处理的比较好
  2. 多种scattering组合,基于上面的擅长处理single forward scattering的HG(heney-greenstein)模型,
  3. ==使用多级HG模型来模拟multi scattering
  4. ==使用一个clamp操作来模拟back scattering
    这里稍微贴下HG模型的样子,
    在这里插入图片描述
    这里g项是[-1,1]之间,代表从back scattering到forward scattering的情况,表示media的属性
    theta就是各个角度,phase function就是关于角度的函数么。

HG函数这部分还是比较物理的,但是multi scattering部分就是比较变通了,是多级HG来模拟multi scattering,各级之间的权重由美术定义。

然后给定g,关于theta就可以预计算出来,放到LUT(look up tabble)贴图中:
在这里插入图片描述
最后放在一起的效果:
只有一级HG function的时候:
在这里插入图片描述
2级HG function模拟multi scattering+back scattering:
在这里插入图片描述

”physically based"的度和变通

这里也是涉及到一个“physically based"的程度问题,原则上我们是要physically based这样会尽可能的物理化,好处现在PBR已经论证的非常好了。
但是实际开发中,我们会遇到各种需要折中的地方,或许是物理模型不够好,或许计算过重等等;
这时候,none-physically-based就还是需要了,这时候建议是,尽可能在高层去做hack和变通,保持底层原子项部分的“physically based"正如phase function这里,底层是HG function,高层是美术来指定的函数。

visibility项

在这里插入图片描述
这一项就是光照信息中间被遮挡的情况,和直接光照有点不一样的是,由于这个是一个scattering的过程,所以完整来讲是光线一路射过来中间每一步的visibility情况的叠加。
在这里插入图片描述
落实到实际计算中,就是ray marching中间每一步的visibility情况的叠加。
这里visibility主要针对影响大的两个case:terrain, cloud来做计算。
terrain使用raymarching的方式构建一个shadowmap信息;
cloud使用exponential shadow map的方式,来encode shadow map信息,来达到非常软阴影的信息,一共存了6mips(esm的使用在刺客信条的文章里也有)

lighting项

在这里插入图片描述
ambient lighting部分:

  • 远处的ray marching部分,就是sky ambient,把sky scattering存到低精度的paraboloid贴图里面
  • 近处的frustum voxelization部分,sky light+light probe lighting*AO
    在这里插入图片描述local light 部分,直接就读light cluster volume.
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值