[sig12][pbs]《机器人总动员》和《飞屋环游记》中的光照模型

http://blog.selfshadow.com/publications/s2012-shading-course/smits/s2012_pbs_pixar_model_slides_v2.pdf

http://blog.selfshadow.com/publications/s2012-shading-course/smits/s2012_pbs_pixar_model_notebook_v2.pdf

siggraph2012的practical physically based shading in films and game production中的一篇。

pixar带来。


很喜欢wall-e,终于可以探知其光照模型的究竟了。

pixar在<Wall-E>中使用了新的光照模型,我们可以对比<Wall-E>与pixar之前的动画,可以发现品质有了不小的提升,之前是比较Q版的,到了Wall-E动画的感觉更多体现在里面模型的风格上,画面简直真的一样。


必要性

换到现在这个光照系统(其中包含physical based shading部分,也有其他的改进)的几个原因:(基本也耳熟能详了)

  • 需要更真实的观感
  • 更加高效的渲染速度---也就加快了迭代时间
  • 简化光照模型
    • 原先基于拼凑的方法过于复杂,导致shader参数调整的时间很长
      • 包括diffuse,specular, rim, 其他的组成部分
      • 而且和各种不同的类型的光进行计算

    • 原先很多多层的材质,渲染巨费
那么新模型的需求也就简单明了了:
  • 更简单的参数,易于使用
    • 大部分材质的参数简化到:
      • color, roughness, metal
      • [sig12][pbs]《机器人总动员》和《飞屋环游记》中的光照模型_第1张图片
    • 必要的时候也可以进行一些hack
  • 更真实稳定的观感
    • 更真实的fresnel现象
    • higher dynamic range
      • 基于物理的BRDF
      • 光的亮度也更高
    • 能量守恒
      • 对于材质在各种光照环境下保持稳定的观感比较重要
  • 不同材质之间对于光照的计算结果能够保持稳定和一致
    • 在一种光照环境下,调出一个比较真实的或者说好的效果是比较简单的,但是在所有环境下都适用则极其困难,可以说只能通过正确的基于物理的数学模拟来做到
  • 也能做一些简单明了的hack来调整
    • 在材质和光照上都有一些

光照
光的行为,包括:
  • 在材质表面反射:specular/reflection
  • 漫反射和散射
那么我们可以通过两个参数表达:
  • roughness:很多模型里面roughness和specularpower都是可以互相转换,物理意义也比较像了
  • metallic:这个比较少见,控制subsurface diffuse和镜面反射(这个说的不是很明白,从下面这个图上感觉还就是在能量守恒的前提下,控制subsurface diffuse)
    • [sig12][pbs]《机器人总动员》和《飞屋环游记》中的光照模型_第2张图片
Diffuse
对于非金属来说,有两个来源:
  • subsurface scattering,这个也是主要来源, 受fresnel现象影响比较多,
  • multiple interface reflection,随着roughness的增加而增加
金属类:
只是来源于multiple interface reflection。

透明(transparency)
[sig12][pbs]《机器人总动员》和《飞屋环游记》中的光照模型_第3张图片
包括三个部分:
  • transmitted diffuse
  • transmitted specular
  • refraction
同时也和subsurface scattering相关。

多层(layering)
tri-ace也提到了,看来这个的确是一个进一步发展的时候会面临的课题。
也就是两层这样的:
[sig12][pbs]《机器人总动员》和《飞屋环游记》中的光照模型_第4张图片
合成一个这样的:

一般的原理就是光线经过一个transmission函数,透到下一个layer。
transmission的过程中就包含scattering,光线进入和反射出都会经过这样的过程,这样就类似一个blur filter。
记得能量守恒。
最后的结果:



最后的结果
WALL-E和UP(飞屋环游记)都是用这一套系统,很容易得到basic material。并且也易于创建大量复杂的材质。
光照上稳定一致,打光的哥们不用去改shader了,那么进度也就很快。
简化和灵活性都非常重要。





你可能感兴趣的:(filter,basic,UP,interface,layer,shader)