全局照明(Global Illumination)的无偏差渲染(unbiased render)简介

绪论: 本文属于科普性质,将会不以任何数学的方式介绍全局照明中最重要的概念无偏差渲染算法,希望大家对CG知识有更深入的了解。 一、什么是全局照明(Global Illumination) 我们首先来看两张图片A和B: 我们可以看到,在图片B中,白色墙反射了红色和绿色,光透过玻璃球后产生了折射形成了焦散(caustic),由于早期的光照模型属于简单光照模型和局部光照模型,因此不能够真实的还原光照效果。 在1986年,有一位大神横空出世——Jim Kjiya 他写了一篇论文叫做《render equation》,基于几何光学的角度发明了一种全新的光照模型——全局照明(Global Illumination),虽然依然不能从物理光学解决光照问题,比如这个方程不能计算衍射、干涉和两极分化。但是对于整个CG界,这近乎是质的飞跃。(渲染器中的焦散是一种散射模拟,不是折射) 上面这个equation我们观摩下就好了,想要弄明白它到底是什么意思你需要先学习电学、磁学,然后是电磁波,然后......总之你看不懂就对了。 那么既然已经知道了方程,我们总要解方程吧,解方程就需要算法,算法就是要完成一件事情所需要的若干步骤,那么根据每个人的喜好,每个人都有自己的方式,可以说,解这个方程的算法其实有很多种的。 其中最早的算法就是用蒙特卡罗随机方法计算路径追踪(path tracing),蒙特卡罗方法是一种随机方法,路径追踪是一种数学模型,在这里不讲数学,二者结合起来就可以计算出真实感的光照了。 这里顺便插一句,游戏里也有全局照明,不过游戏的全局照明主要是依靠IBL(基于图像的照明),即给一张HDRI贴图作为计算,这种方式属于造假,但是如果美工的水平很高,就可以以假乱真,让人以为光照很真实,IBL技术不作赘述。 接下来,我们就要进入今天的主题啦,就是其他的解方程的算法啦~ 二、无偏差与偏差算法(un/biased render) 大家都用过Vray渲染器,在这个渲染器中有一些计算GI(全局照明)的选项,比如Brute force,比如Irradiance map,这些都是计算全局照明的方法,从数学模型上说,分为发射光子和收集光子两种,从数学方法上说,分为有偏差和无偏差两种。 关于选择发射光子的算法还是选择收集光子的算法,我做了一张图表请大家参考,特此提醒,只有发射光子的算法才可以计算出焦散(caustic)哦~ 这张图表仅包含vray的一般算法: 也就是说,在vray中,如果你想计算焦散,就必须开启photon map。 无偏差渲染是指只要你渲染的足够久,那么你的画面最终一定是非常精确、准确的,没有误差的,理想完美的,但是,实际上你需要无限久的时间。 所以无偏差渲染是有噪点的,并且算法比较傻,很多效果比如一个点光源反射镜子后再去产生焦散就算不出来,不过基本上不会出错,因为是最笨的方法嘛。 于是就有了插值、估值的偏差算法,因为算法上的优化,所以可以调整的参数很多,并且出来的画面很干净,毕竟不是随机乱来的嘛,计算速度也很快,由于现代人审美越来越抽象化,所以即使有错误的光照效果,只要画面和谐充满美感,我们也是可以接受的,所以偏差渲染器成为了主流渲染器,获得了普罗大众的好感,最重要的是设计师终于可以解脱了。 Vray渲染器中现在只有Brute force这一种蛮力算法是无偏差的了,如果有人用过2.0的版本,那么一定会记得有一个准蒙特卡罗方法,原来还有一个双向追踪路径方法,不过按照vray官方的说法:不实用,已删掉。 在此只能是赞美蛮力吧,因为最笨的方法就是最好的方法。 最后我们还是欣赏下无偏差渲染出来的效果图吧,有很多无偏差的渲染器由于渲染时间太长并没有实现商业上的成功,Arnold除外,有兴趣的朋友还可以关注下迪士尼最新的亥伯龙渲染器,据说速度是Arnold的很多倍,《超能陆战队》就是该渲染器的作品。   Dongming  瑞云小讲堂 瑞云科技 是一家专注于研究集群渲染、并行计算技术,为全球电脑动画、电影特效、电视动画片、建筑设计表现、城市规划、游戏片头动画和商业广告行业提供云端渲染计算服务的互联网科技公司,是中国“自助式云渲染”的开创者、阿里云视觉云计算全球战略合作伙伴,同时也是全球最大的渲染农场之一,客户遍及40多个国家和地区,其中包括两位奥斯卡奖用户!(www.rayvision.com)

你可能感兴趣的:(全局照明,无偏差渲染)