siggraph2014, advanced course中的
由ubisoft montreal带来。
放个总连接:http://advances.realtimerendering.com/s2014/
如果有访问问题可以试试这个:http://download.csdn.net/detail/ccanan/8856803
sum:
基于物理的,把atmosphere scattering,光照和阴影结合起来,把雾效和光照表达的非常好,应该说是目前顶尖实现了。
效果在置顶图里可以看到,这个是有基于物理的大气散射效果作为雾效,并且有光照的散射和阴影信息。
文章的前几页做了一些介绍,说了现在一些技术,包括:
- 08年crytek推广的基于2D的radial blur的light shaft
放的图片是witcher的图,是嘲讽它过时了么????
radial blur的问题就是它是screen space的,2D的,所有它有这两个技术的局限(类ssao):
如果光源(太阳)不在视野里,light shaft的效果就看不到了等等,简而言之,它和本文讲的东西基本不是一码事。
- billboard based
这个在UE3里面用的多一些,美术放一些billboard模拟纯3D的光束散射,在一些UE3的作品里,比如《子弹风暴》里有很多。
个人觉得这种做法有很好的产品价值,对于固定场景固定环境是一个很不错的选择,尤其是mobile平台上,它的问题就是美术要做相关的工作,不自动,不physically based,如果环境(光照,模型)是变化的,那么久不对的
- 还有一个ray marching based的方法,游戏里用的比较少,也是有诸多的不足
刺客信条的方法
- 大量的使用了compute shader来提高效率
- 它的计算都是在3D空间上的
- 相关的media density(介质密度。。。翻译的好难受)计算
- 光照计算
- 光的扩散过程是physically based
density estimation
包括:
- 风驱动的噪声信息
- 雾的衰减
- 散射参数
光照
这里包括了很全的点光源,直射光和阴影
由于有了3D 贴图,所以比较麻烦的是阴影,刺客信条这代的阴影精度已经非常高了,1k到1536这样,如果基于PCF来downsample到雾效所需的精度,需要大量的采样。
刺客信条使用了exponential shadow map(细节可以看这里http://blog.csdn.net/toughbro/article/details/6091152),这个技术选型非常的棒,exponential shadow map这种基于卷积的阴影技术简直就是为这个量身打造的(ps,曾经在自己项目里使用过esm,但是pc平台上面效率和效果都不如有硬件支持的PCF来的好)
scattering
基于大气散射的物理公式,使用ray marching的方式来积累in scatter和out scatter信息
compute shader
该使用compute shader的地方都使用了compute shader,这才是使得其所的计算方式啊
版权声明:本文为博主原创文章,未经博主允许不得转载。