http://renderwonk.com/publications/s2010-shading-course/snow/sigg2010_physhadcourse_ILM_slides.compressed.pdf

http://renderwonk.com/publications/s2010-shading-course/snow/sigg2010_physhadcourse_ILM.pdf

siggraph10上面physically based lighting course里的文章。

由Industrial Light and Magic带来,原来的标题是《钢铁侠》和《终结者》中的image based lighting和physical shading,但是实际上这个paper覆盖了IML多年的积累,包括《珍珠港》,《绿巨人》等电影。

同时里面的很多做法,对realtime graphics也非常的有指导意义。

film reality

一点需要澄清的是,cg开发者的终极目标是film reality,不是真实的人眼可见的那种reality,这个限制来源于存储介质是LDR,所以在这个限制下,很多东西要考虑到这些因素。

90年代

在90年代的时候,是捕捉一个LDR的环境贴图(当时是LDR的,后来是HDR),来作image based lighting,当时使用cook torrence来做specular公式。

一些hack:比较典型的是一些ambient的光照,这个没法非常准确的进行capture,并生成shadow信息,会使用大量的spotlight来模拟:

(简直就是irradiance volume)

《珍珠港》

michael bay(《勇闯夺命岛》《珍珠港》《变形金刚》的导演)挑战IML说要一个比以往电影中cg渲染的飞机要更真实的效果,IML一顿捣鼓,结果大家都看到了,不说还以为是真实拍的飞机呢,如同战争比10所大学更能推进技术进步,需求真的是技术进步最好的助燃剂。

到了90年代晚期,raytracing(光线追踪)技术已经比较成熟,但是IML还是没有使用,源于在如此复杂的场景中使用不太现实,而且他们习惯使用的软件(renderman)中还没有这个功能(嗯,不错的实战经验),所以继续他们的image based lighting。

在珍珠港中,添加了

  • reflection occlusion,从image中读取的光照信息,加一个occlusion,防止在犄角旮旯的地方,应该比较暗,还很明亮的反射环境
  • ambient environment
来以手头拥有的资源,以很低的消耗(开发消耗和生成实际图像的运算消耗)达到了接近raytracing的GI质量。
最终到达了这样的质量:(coooool)

《绿巨人》(<hulk>)

到了绿巨人这里有了一个进展,就是环境贴图改成hdr的了,并且分辨率也进一步加大。

《钢铁侠》

到了《钢铁侠》这里主要是处理的材质上的事情,在环境贴图等image based lighting上面的工作已经比较成熟了(稳定的使用高分辨率的HDR环境贴图),但是在钢铁侠中的对材质高要求带来了新的挑战,很快项目组发现材质上的BRDF不够好。

这里必须要提的几个是:可见做一个很棒的最后结果,中间有多少积累工作需要做,他们很多的工作甚至不会再最终产品中露头

  • 在《变形金刚》中,ILM已经成功的做了不少的适用于车上的材质,这为钢铁侠中的工作铺垫了不少
  • ILM使用BRDF探测器(记录材质如何对光进行反射,bungie在halo上也做过这样的事情),
    • 但是发现chrome合金部分过于复杂,以至于没法收集足够的信息。
    • 收集的信息很棒,但是美术想做点改动就非常的难(估计一大票莫名参数直接眩晕了)
    • 最后探测BRDF工作没有使用,但是却帮助项目组更好的理解了材质的BRDF
基于这些分析,最后ILM使用各向异性的specular function来做超酷金属效果:

各向异性的brdf的研究也比较多了,ILM用的是在一些矢量方向上使用不同的specular exponent。

使用brickmap来做ray traced reflection surface caching。

ILM在钢铁侠开发期间也遇到了不少问题,其中一个就是很多参数(影响的factor),这些有些过于复杂,美术一顿调之后存在个人之间很不同,同时也会出现不真实的情况,简化等问题在后面的《终结者》的开发中有了很多进步。

这里ILM说的一个挺不错:ambient和diffuse其实是一个东西,reflectance和specular其实是一个东西。

《终结者》

到了《终结者:救赎》,ILM希望能够解决在之前项目开发中的一些头痛问题(比如太多参数调节的窘境),并迎接新的挑战(终结者中的一些场景的变化更加剧烈等)。

ILM采用更加基于物理的材质光照系统(physically based lighting)来:

  • 达到一个更加简单,更加直观,更物理正确的光照渲染系统
  • 这里包括:
    • 能量守恒的材质
    • normalized specular
    • more physically plausible specular falloff
    • more heavily image based
    • importance sampled raytracing
能量守恒
这个是物理光照中基本都会有的一项,就是保证反射的光强度不会超过入射光。
同时ILM把ambient和diffuse合并,specular和reflectance合并,这样只要平衡diffuse和specular就好了(不像原来要平衡4项)。
normalized specular
一个光在粗糙表面上反射,那么反射面会更大,同时亮度降低,其实这也是能量守恒的一种。
原来ILM没有这一项,是通过人手动来调的,现在做到specular公式中,那么结果不用调就比较自然了。

normalized Importance sample raytracing

importance sample就是通过去采样主要的部分来尽可能有效的去采样场景。

这个让我想起ue3的塞玛利亚人里面的反射就只反射霓虹灯,而建筑物什么的一概不管的这种,这应该也算是一种importance sample。

实际应用的时候,importance sample包括:

  • 主要采样image中比较亮的点
  • 在粗糙表面的时候,会对反射的方向做一些改变,指向最有效的部分
最后结果和标准raytracing差不多,但是效率却好很多。
变革的烦恼与收获
ILM在做了这些技术改变之后,和很多公司一样,有几点痛楚:
  • 对生产的影响,ILM在开发的同时也在制作电影,于是就沿用原先的系统来做原先系统可以处理的很好的部分,比如里面的摩托车机器人,然后在系统开发好之后,在做有挑战的部分,比如骷髅机器人
  • 开始技术的改变也导致了工具的效率问题(如果到游戏上还得加上bug和crash),开始做好的工具效率颇低(相比于原来)
  • 习惯于原先hack的美术们,对这个新系统的使用也颇有不习惯,ILM内部甚至引发了一场“圣战”,简而言之,费了好多力气才把新的系统(energy conservation, normalized specular等)推行下去
  • 不过到了后面的项目(《钢铁侠2》)的时候,痛楚期过去,全线转入新的物理材质光照系统,品质和开发效率都更加的高
最后来个图,钢铁侠是这样拍的,感觉演员拍的时候应该不会很high吧:

《钢铁侠》等电影中的image based lighting和physical shading相关推荐

  1. 2016版单词的减法_在2016年最大的电影中,女性只说了27%的单词。

    2016版单词的减法 by Amber Thomas 通过琥珀托马斯 在2016年最大的电影中,女性只说了27%的单词. (Women only said 27% of the words in 20 ...

  2. 学术科普 | 漫威电影中的智能大脑

    漫威电影中的智能大脑 王元卓  中国科学院计算技术研究所 陆   源   北京科技大学 崔原豪   北京邮电大学 不想读文字?那先来看精彩的视频解读! (点击下方图片即可观看视频解读) 科幻电影通常以 ...

  3. GraphicsLab Project之基于物理的着色系统(Physical based shading) - 基于图像的光照(Image Based Lighting)(Diffuse篇)

    作者:i_dovelemon 日期:2018-01-21 来源:CSDN 主题:PBR, Equrectangular Map, Cube Map, Irradiance Map, HDR Image ...

  4. 那些出现在电影中的程序代码

    高科技无关的电影也偶尔会出现一些跟计算机相关的镜头.文本搜罗的是在各种电影中出现过的代码,它们有的是黑客脚本,有的是绝密文件,有的就是为了摆酷,文中对这些代码都有截屏,你是否能看出它们是什么语言? 一 ...

  5. AI看电影看哭了...MIT科学家正在教AI感受电影中的喜怒哀乐

    翻译 | AI科技大本营(rgznai100) 参与 | 么广忠 虽然我们都知道人工智能(AI)特别火,但AI究竟能做什么了不起的事情呢?要是问AI能不能写出一本畅销的书,目前的答案是不能,显然AI目 ...

  6. 还原黑客电影中那些Hacking技术的真相

    图源来自geralt <我是谁 – 没有绝对安全的系统>主人公本杰明通过将自己DIY的设备放置目标公司,用诺基亚将上网的数据转发,最后攻破公司内网服务器. <幽灵>中的主人公通 ...

  7. MIT科学家正在教AI感受电影中的喜怒哀乐

    翻译 | AI科技大本营(rgznai100) 参与 | 么广忠 虽然我们都知道人工智能(AI)特别火,但AI究竟能做什么了不起的事情呢?要是问AI能不能写出一本畅销的书,目前的答案是不能,显然AI目 ...

  8. 在…视域下是什么意思_电影中出现的出品人是什么意思?你需要了解下

    随着市场经济的发展,中国国内的影视市场已经成为了全球第二大电影市场.2020年更有望成为全球第一大电影市场. 我们有时候在看电影时就会看到电影中出现出品人的字样,哪这出品人是什么意思呢? 出品人:一部 ...

  9. 周星驰搞笑电影中的BT角色大全(100位)

    1.吴孟达 所谓"戏骨"是指那些演戏基本已经达到戏我两忘,人戏合一之境界的演员们,有句话常来形容这样一种人,说他们"浑身上下都是戏".周星驰电影中的" ...

最新文章

  1. php header调试,yii2打log
  2. 《剑指offer》第1~11题:刷题week1[C++题解]
  3. 今天俺要说一说工厂方法模式(Factory)
  4. Android项目实战(十三):浅谈EventBus
  5. QT的QFile类的使用
  6. SQL Server 2005新特性之使用with关键字解决递归父子关系
  7. Linux基础学习一:初步认识linux
  8. 开机一直转圈_天气转凉,电脑早上开机也需要预热了吗?
  9. MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理
  10. MT5 MT4 zigzag指标的算法详解
  11. AD9导入CAD文件做封装外框
  12. 一分钟搞定网页监控,实现网站链接百度自动推送
  13. 联想 计算机无线网络设置方法,联想笔记本无线网络开关,教您联想笔记本无线网络开关...
  14. php guzzle批量请求
  15. 解决unity调用WebCam显示的拉伸
  16. NodeJS使用socket传输大文件
  17. 超市进销存管理系统软件(JFrame简版)
  18. 渠道SDK接入的各种坑
  19. bing 搜索 默认排除csdn 内容
  20. hyperledger fabric v2.4环境搭建及区块链项目开发

热门文章

  1. java实现根据名单进行随机的小组分组。
  2. uc3854 matlab,一种Boost变换APFC电路的设计与仿真
  3. 文心一言:这48小时,我被问了xxxx个问题
  4. 用c语言输出魔方阵答案,C语言——输出“魔方阵”(带解析)
  5. Excel的公式和函数
  6. 爬虫好学吗python-八爪鱼采集器能取代python爬虫吗?
  7. 软件测试常用设计模式
  8. 读书-量子物理基础1
  9. hive实训项目之电商数据分析
  10. Butler-Volmer 方程与Nernst 方程的关系