GI的简介

今年年初,在导师的严厉催促下,终于决定毕设搞一搞GI(global illumination,全局光照渲染),毕竟之前也读过几篇文章。做研究之前当然要先从研读论文开始,虽然决定搞GI,但是以什么样的方式来实现GI, 现在的GI有什么缺陷,世界上的研究者又在GI这方面有哪些进展这都是需要去了解的(@_@这个不是偶说的,是偶导师说的),就当做是一个熟识GI的过程。

    GI,简单来说就是寻找一种描述空间内光线分布的一种模式(再简单一点就是我们想知道当房间里开了灯之后,这个房间会变成什么样),在计算机图形学中有很多光照模型,比如Phone模型,Lambert模型,Blinn模型,cook_Torrence模型等等,这些模型描述的就是在光源存在时,物体所应该表现出来的属性,最直观的就是颜色,也就是我们需要输出到屏幕上的东西。实际上对于一个真实场景,照亮物体的光并不一是都直接来自于光源,比如折射光,反射光,这些光在传递过程中会发生能量的损耗(比如某一波长的光被吸收),所以想得到真实感程度高的场景并不能通过简单光照模型来模拟。

    有了问题,就有解决问题的方法,一个叫做Arthur Appel的哥们第一次提出了一种光线投射算法,这也是大名鼎鼎的光线追踪算法的雏形,光线投射的基础就是从眼睛投射光线到物体上的每个点,查找阻挡光线的最近物体,也就是将图像当作一个屏风,每个点就是屏风上的一个正方形。这种思想被一家纽约的公司MAGI用于模拟放射线的传播,这些研究被用来帮助军方建造避免辐射的用具。后来伟大Turner Whitted在1979年提出了光线追踪算法,他意识到了我们上面所说的间接光照的问题,于是在Arthur Appel的idea的基础上增进了一步开始研究光线在空间中的传输,并且追踪这个过程。这个就是我们最早的光线追踪。

    其实光线追踪也是一种光照模型,区别是他加入了对间接光的描述,这种描述的准确定义出现在1986年,由另一位大牛James Kajiya提出——Render Equation,也就是

                                                   

这个方程可以说是现有的GI的基础,这个方程可以描述出现有的所有光线传播现象,折射反射,漫反射。不仅如此大牛还提出了使用Montle Carlo和光线跟踪来求解render equation的方法(James Kajiya基本上相当于GI界的牛顿了),这个才是我们广泛接触到的ray tracing。

    光线追踪的缺点很明显,就一个字——慢,于是“牛顿“的后辈们开始努力提出新的改进的算法,比如之后的path tracing(改进了ray tracing的效果),photon mapping(改进了速率),Metropolis light transport(改进效果和速率)。

    再后来GI的发展就开始变得缓慢(其实是渲染的发展开始变得缓慢了,各种大牛都开始瞄向了计算机图形学的其他方面),有人说是碍于现在GPU的运算速度,也有人说是碍于光线追踪模型的根深蒂固,总之实时的光线追踪一直只是一个想法而已。

    PS: 今年的Siggraph 上,微软亚研的大牛任沛然将将神经网络应用在于GI上,并达到了在特定情况下的实时,绝对狂拽酷炫。

 

posted on 2013-11-20 00:00  Pooopooo  阅读(1285)  评论(0编辑  收藏  举报

导航