[siggraph14]杀戮地带的反射和体积光照技术

[siggraph14]杀戮地带的反射和体积光照技术_第1张图片
siggraph14, KillZone:ShadowFall的开发商guerilla games带来。
links:http://advances.realtimerendering.com/s2014/
sum
反射:screen space reflection+offline env map,并且物理正确
体积光:ray marching+shadow
各种优化手段都上了,在效果和效率都有不错的表现

反射
[siggraph14]杀戮地带的反射和体积光照技术_第2张图片
- 能用screen space reflection的像素就使用,不行的像素使用offline env map
- killzone里env map使用的比较多,probe很多,而且是parallax correct的
物理正确:
- env map的filter是依据brdf来的,不是简单blur出mipmap chain
- screen space reflection,也是会做基于BRDF的filter,生成1/4到1/32这样的各级别,然后根据gloss来进行sample,这个不是完全物理正确,但是已经考虑进了gloss,比之前crytek的已经进了一步
performance:
- 在1/4 resolution上做的
- 使用reprojection,会通过4帧的积累,合并成最终的一个反射,效果上会有一些抖
- reprojection就使用在这种不需要绝对准确的地方挺好
最后完成反射pass的所有工作,ps4上面2.8ms

volumetric lighting
[siggraph14]杀戮地带的反射和体积光照技术_第3张图片
view space ray marching
[siggraph14]杀戮地带的反射和体积光照技术_第4张图片

  • 以比较固定的步数去sample,以depth为终点
  • 每一步会sample shadow
    filter优化,对于这类精度要求不高的,类particle的性能和品质优化方式悉数出动:

  • 1/4 resolution+bilateral filter

  • dither,让sample点更随机
  • 性能消耗大约是2ms(ps4, 1080p)
    补充:

  • killzone的这个做的是光在均匀介质里的传播计算,所以一些烟雾,或者典型的有密度变化的雾的效果难以表达,这种情况使用particle来补充

  • 这个计算可以针对多个光源来做的,比如:自然光和机器人的光都投出了volumetric lighting
    [siggraph14]杀戮地带的反射和体积光照技术_第5张图片

比较刺客信条的volumetric lighting&fog,刺客信条要好不少:
- 刺客信条更进一步,在fog的density上面有很好的参数定义,而且密度这些可以随着风等变化,进而在计算的时候引入这些density,
- 刺客信条使用的3d texture,可以进行scattering,光的散射,GI,点光源都可以应用进去,更加物理正确
- 性能:killzone 2ms,刺客信条1.1ms

你可能感兴趣的:(Engine&Render,游戏开发)