在前面介绍专业显卡时,提到了Global Illumination、Ray Tracing等专业名词,下面就对它们的含义作一些简单的解释。
什么是Global Illumination?
采用全局照明渲染器绘制的3D图片(请注意本文所有示例图片都为直接渲染而成)
Global Illumination(全局照明)是一个和Local Illumination(局部照明)相对的概念。绝大部分简单的3D软件都能提供Local Illumination的支持。但是Local Illumination在应用上有极大的局限。Local Illumination只考虑光源对目标物体的改变,而不去考虑该光源对其他对象的影响。而在Global Illumination中光线对于目标对象以外的影响将会被同时计算。现代的全局照明往往同时包含了光线追踪渲染和辐射度渲染,渲染器用辐射度计算出全局与视图无关的照明方案,然后Ray tracing使用这个方案渲染跟视图相关的图像并增加镜像高光和反射。现阶段应用最广泛的Mental Ray、Final Render等渲染器都提供了对GI的支持。
什么是Ray Tracing?
我们将光源分成众多的射线,然后再沿着视点和象素连线射出一条光线,之后根据材质的属性计算出这些光线被物体吸收、折射、反射后最终回到视点中的数值变化,从而获得一个正确光照场景。OpenGL ARB在2005年1月31日宣布,已经有研究组织成功的在Geforce6800 GT GPU上通过Cg和OpenGL API实现硬件光线追踪计算。
用OpenGL API在Geforce6800 GT上实现硬件Raytrace(按此下载该示例,需要Geforce6800 GT以上显卡)
2002年Graphics Hardware会议上北卡罗莱纳大学发表的光线追踪GPU构想
什么是Radiosity?
LightWave 8中Radiosity渲染器所渲染出的图片
Radiosity (辐射度渲染或光能传递) 算法其本质就是将光看作是一种物理辐射,然后计算辐射的传导就能获得加之于每个对象物体上的光照强度,从而获得正确的渲染结果。辐射度渲染通过制定在场景中光线的来源并且根据物体的位置和反射情况来计算从观察者到光源的整个路径上的光影效果。在这条线路上,光线受到不同物体的相互影响,如:反射、吸收、折射等情况都被计算在内。和其他渲染方法相比,Radiosity更接近于光的自然传播原理,因而受到广泛的欢迎。
单纯采用Radiosity算法进行的场景渲染
(责任编辑:admin) |