论坛's Archiver

高思 发表于 2007-6-20 07:57

[转帖]各种渲染插件详解

<h3><span class="javascript"><span><font size="2">各种渲染插件详解<br/>主流渲染插件火力比拼之1、2、3 &lt;超级全面><br/>Mental Ray(简称MR)<br/>Mental Ray是早期出现的两个重量级的渲染器之一(另外一个是Renderman),为德国Mental Images公司的产品。在刚推出的时候,集成在著名的3D动画软件Softima-ge3D中,作为其内置的渲染引擎。正是凭借着Mental Ray高效的速度和质量,Softima-ge3D一直在好莱钨电影制作中作为首选的软件。<br/>相对于另外一个高质量的渲染器Renderman 来说,Mental Ray的渲染效果几乎不相上下,而且其操作比Renderman简单地多,效率非常高。因为Renderman渲染系统需要使用编程的技术来渲染场景,而 Mental Ray一般来说只需要在程序中设定好参数,然后“智能”地对需要渲染的场景自动计算,所以Mental Ray有了一个别名“智能”渲染器。<br/>目前业内的商业渲染软件中,只有Pixar renderman、Mental ray、Houdini Mantra能够成熟的支持shader writing,这种特性对于从事高品质要求工作的用户来说,非常重要。同时mental ray的基础应用也是很轻松的,与多种常用软件的无缝集成,使用户不必完全从头学习就能容易的掌握mental ray的大部分功能。<br/>Avid和mental images?有多年密切的合作关系,但近期Alias与mental images?的合作,给业界带来了更大的震撼。《Matrix2》、《星战前传2》、《终结者3》、《shark》等影片中,mental ray都提供了惊人的视觉特效。诸位读者可以参阅书后附录的图片来了解。2003年度的电影领域的最高奖——Oscar技术金奖同时颁给了mental ray和maya。<br/>对于Maya用户来说,mental ray带来了革命性的变化。从电影特效技术人员,网络工作者,建筑游历动画制作者到平面动画艺术家……各个层次的用户都可以借助最强大的软件渲染工具,提升自己的工作品质。最新的Maya6.0的启动LOGO图片,就是Alias特邀艺术家用mental ray渲染完成的。<br/>Mental ray不只是能生成接近真实世界的图片,也能用于抽象艺术和手绘外观的创作。1994年完成的《Asterix in America》就是一部用mental ray完成的2d手绘风格的动画片。某种意义上说,mental ray所能渲染的风格,更多的取决于用户对图形算法的掌握和不羁的想象力。到了最新的3.3版本,mental ray甚至可以用NVIDIA、ATI、3Dlabs、Matrox、SGI, Sun等品牌的显示卡,使用OpenGL或DirectX加速方式,进行高速的硬件渲染。(其中也包括利用NVIDIA可编程语言Cg。)<br/>但是mental ray的核心能力来自shader。Shader是一类特殊的函数。传统的说法,shader是被用来确定物体表面的色彩和照明的(这一过程叫shading着色),但是mental ray扩展这一概念到实际上所有与渲染的可编程及可定制的方面。<br/>Shader是在mental ray 运行时挂载的,用C或C++语言编写的插件模块。Shader可以作为源代码或物体模块被提供给mental ray,但最常见的情况是放在库文件里,在Unix平台上也被叫作Dynamic Shared Object动态共享对象(DSO),或在Windows NT平台上叫Dynamic Link Library动态链接库(DLL))。用户也可以编写自定义的shader,来扩展mental ray的功能。<br/>renderman<br/>renderman 电影业渲染得老大。以前主要是控制台操作,基本无图形界面。最新的版本里已经有了图形界面,但是好莱坞的高手们似乎都还是继续使用控制台操作,纯字符操作,这样的控制性更强。记得在三年前好莱坞用这个的年薪高达30美刀。<br/>RenderMan 是美国PIXAR公司在九十年代推出的产品,在国外经过几年的应用,已越来越受到他们的青睐,许多大的动画公司都采用它,如迪斯尼动画公司、华纳影业公司。现在用它完成的作品到处都是,如著名的世界第一部三维动画电影--《玩具总动员》,还有:《蚂蚁》、《星球大战》、《昆虫总动员》、《玩具总动员续集》……等等。<br/>  Pixar RenderMan是电影工业界的标准图形综合化(合成)软件。它以快速、强大、可变设置和可编程赢得此名声,是目前唯一可用的足够强大的特技电影渲染工具。<br/>Brazil(简称BR)<br/>在大家对Mental Ray渐渐失望的时候,2001年,一个名不见经传的小公司SplutterFish在其网站发布了3DS MAX的渲染插件Brazil,在公开测试版的时候,该渲染器是完全免费的,作外一个免费的渲染插件来,其渲染效果是非常惊人的,但目前的渲染速度相对来说非常慢。Brazil渲染器拥有强大的光线跟踪的折射和反射、全局光照、散焦等功能,渲染效果极其强大。<br/>SplutterFish公司推出的Brazil渲染器虽然名气不大,其前身却是大名鼎鼎的Ghost渲染器,经过了很多年的开发,已经非常是非常成熟了。<br/>Brazil 惊人的质量却是以非常慢的速度为代价的,用Brazil渲染图片可以说是非常慢的过程,以目前计算机来说,用于渲染动画还是不太现实。 Brazil是一个极富魅力max渲染器,很多人都在使用它的光能传递效果,我却看好它的Raytrace光线跟踪的计算速度和效果,对于广告和片头的制作,光能传递的用处不大,而高速和亮丽的反射折射效果是最重要的,这一点Softimage|3D和Xsi一直凭借Mentalray渲染器独占熬头,虽然Mentalray也给MAX做了插件接口,但功能移植很不完善,而且对MAX本身的功能支持也不好.经过简单的测试,发现Brazil的 Raytrace的确是高品质和高速度的渲染引擎,渲染速度仅次于Xsi的Mentalray,效果非常好,足够满足MAX使用者制作更专业的广告和片头效果了。对比MAX本身的Raytrace,Brazil的反射渲染效果要更细腻,不容易把高光暴掉,保留的层次非常好,而且速度也更快;如果是玻璃的折射,Brazil的渲染速度比MAX本身的快出几十倍,这是最重要的,而且效果也比MAX的更真实,还能加入光的物理色散效果。<br/>而且Displacement置换贴图的渲染速度也非常快。结论就是Brazil已经可以去和Mentalray的渲染质感和速度去抗衡了。 这里提供了一个我调的巴西金属材质和玻璃材质效果。<br/>渲染时间AMD1G机器48秒。<br/>(个人看法:Brazil是我又爱又恨的渲染器,他的质量真是无言,而速度又却更无言,如果是用来做动画或角色、室内设计等,还是无法接受他的速度,但用于产品渲染已是很普及,因为产品本身容量不算大,最重要是产品渲染是需要很强调材质感,高反锯齿等)<br/>FinalRender(简称FR)<br/>2001年渲染器市场的另一个亮点是德国Cebas公司出品的FinalRender渲染器(FinalRender又名外 终极渲染器)。<br/>这个渲染器可谓是当前最为火红的渲染器。其渲染效果虽然略逊色于Brazil,但由于其速度非常快,效果也很高,对于商业市场来说是非常合适的。<br/>Cebas 公司一直是3DS MAX的一个非常著名插件开发商,很早就以Luma(光能传递)、Opic(光斑效果)、Bov(体积效果)几个插件而闻名。这次又融合了著名的三维软件 Cinema 4D内部的快速光影渲染器的效果,把其Luma、Bov插件加入到FinalRender中,使得FinalRender渲染器达到前所未有的功能。相对别的渲染器来说,FinalRender还提供了3S(次表面散射)的功能和用于卡通渲染仿真的功能,可以说是全能的渲染器。<br/>(个人看法:FR相对其他渲染器来说,设置比较多些,在开始入门的时候可能觉得比较难理解。但一但熟悉后,就知道它的设置很好,可以调节很多不同的细节,其实速度比BR快很多,比VR慢)<br/>VRay(简称VR)<br/>渲染器的大战打得越来越激烈,另外一个著名的3DS MAX插件公司Chaosgroup又发布推出最新渲染器VRay。<br/>VRay相对其他渲染器来说是“业余级”的,这是因为其软件编程人员都是来自东欧的CG爱好者,而不像别的渲染器那样是有雄厚实力的大公司所支撑。但经过实践表明,VRay的渲染效果丝毫不逊色于别的大公司所推出的渲染器<br/>(个人看法:VR让我最为惊牙是它的速度,真是很快。学习起来也不难,因为其参数调节小,简单,所以很多无基础的人也会选择它)<br/>总结两句:每个软件也有自己的优点与缺点,要是说那个好?坦白说,每个也很好,毕竟这些都是顶级的渲染器。主要看他大家喜欢用哪个。<br/>那么我就围绕着“速度、质量、易学”这个观点打个分数<br/>MR—— 速度:70分<br/>质量:90分<br/>易学:70分<br/>BR—— 速度:50分<br/>质量:100分<br/>易学:75分<br/>FR—— 速度:90分<br/>质量:97分<br/>易学:68分<br/>VR—— 速度:100分<br/>质量:88分<br/>易学:95分</font></span></span></h3><h3><span class="javascript"><span><font size="2"></font></span></span></h3>
[align=right][color=#000066][此贴子已经被作者于2007-6-20 8:10:44编辑过][/color][/align]

高思 发表于 2007-6-20 08:03

当今主流的高端三维动画、渲染软件指南(2)<br/><br/>本文介绍几种当今影视、电视媒体和游戏工业中几种主流的三维动画与渲染软件,它们是:Alias公司的Maya、Avid公司的Softimage|XSI、Side Effects Software公司的Houdini、Discreet公司的3D Studio Max、Newtek公司的 Lightwave 3D、Pixar公司的Photorealistic Renderman和Mental Images公司的Mental Ray。介绍包括3个方面:市场使用情况、主要特色和发展历史,希望大家能从这样的介绍中,窥见现在三位数字制作领域之一斑。<br/><br/>1:Alias公司的Maya<br/><br/>市场使用情况:Maya可以说是当今三维动画领域之王,在过去的6年之中,它已逐步发展成故事电影、动画片制作行业的创立者和领先者。尤其在最近,由于 Alias公司调整了价格策略,Maya也成为了视频游戏工业的强有力的参与者,但在游戏工业领域,其普及程度还稍微落后于Discreet公司的3D Studio Max。<br/><br/>主要特色:Maya具有非常著名的全能建模工具,强大的角色动画与特效制作能力,它是一款及其深奥和可扩展的软件系统,具有极强的协作开发能力。但对于学习者来说,Maya也是一款巨型、极端复杂的软件程序包。它具有最先进、完全可配置的软件用户界面;它的独具特色的雕刻笔刷绘画工具,可以对场景中的物体进行实时的,自由绘画式的编辑、雕刻;它的绘画效果(Paint Effccts)工具可以直接将树木、玻璃、和其它三维视觉元素描绘到的三维空间之中并渲染出来;它的动力学模拟系统,包括刚体、柔体、流体力学、皮毛和毛发,再结合使用强大脚本编辑语言,使Maya成为了当今最伟大的特殊效果制作工具。 Maya自身的标准渲染器可能不像这个软件程序那样的出类拔萃,但是在最近的版本中,它集成了业界另一个最强大、最稳定的渲染器之一Mental Ray。所以现在在世界各主要的制作公司在制作动画、故事影片时,通常都使用Mental Ray或者Renderman进行最终镜头的渲染。<br/><br/>发展历史:在Maya之前,Alias Research公司开发了两款当时非常有名的软件,它们是Alias Studio和Alias Power Animator,到目前为止Alias Studio仍然是一款在设计领域非常流行的工业、汽车设计软件(当前版本是Alias Studio Tools 11)。 而早期的Alias Power Animator在加入了一些动画功能后,至今仍有一些娱乐行业的制作公司在使用。由于早期的Alias Research公司与另外一个公司Wavefront|TDI(这家公司拥有一系列的软件产品,如:Advanced Visualizer, TDI Explore, Kinemation, and Dynamation)合并,并取名AliasWavefront,才有了今天的Maya,后来AliasWavefront被美国以生产高端计算机,工作站,军事用计算机系统而著名的SGI公司并购,2004年,美国和加拿大的两家投资机构又从SGI公司手中购回AliasWavefront公司,现在改名为Alias公司。Maya目前的最新版本是Maya6.0。<br/><br/>2:Avid公司的Softimage|XSI<br/><br/>市场使用情况:XSI在最近的高端三维动画软件市场中扮演着非常重要的角色,这个软件的开发公司Avid公司曾经以其早期的Softimage 3D软件统治过三维软件市场。但是由于若干年来集中精力XSI软件,使得它在与Maya的竞争中失去了相当的市场份额。最近,它又收回了一部分市场份额,所以在高端市场,XSI是Maya的最有力的竞争对手。<br/><br/>主要特色:XSI中的多边形建模方式是非常强大的,它同时还有不同类型的几种细分表面建模方式。尽管它的Nurbs建模功能非常有限,但是XSI中的非线性动画系统非常强大,既可以编辑许多片断的动画序列,又能够同时对模型上的各种极端姿势,骨骼装配设定、约束,表情等进行变换、变形。XSI软件中完全无缝地集成了业界流行的著名渲染器Mental Ray,而且还有支持一个非常方便的渲染功能称为区域渲染(render regions),使用这个功能,动画师们只需在模型窗口上画出一个方形区域,就可以看到由Mental Ray渲染出来的具有光线追踪计算的局部渲染图像,并且可以随着参数的调节自动地更新,例如改变灯光的阴影设置以后,或者改变了摄像机的位置和动画以后等等。而且它的渲染系统还对其它软件中的多通道渲染具有最完全的支持。XSI中甚至还集成了后期合成系统。<br/><br/>发展历史:在XSI软件发布以前,其早期的产品名为Softimage|3D,是许多动画影片制作公司中非常流行的一款软件。Softimage|3D软件的早期名称The Softimage Creative Environment是业界第一款支持反向运动学(IK)系统和其它动画特点的的商业动画软件。Softimage曾经是一个位于加拿大蒙特利尔的独立软件开发商,但是在1994年被微软Microsoft收购,成为了当时第一个支持Windows平台的高端三维软件,当时所有的高端三维软件都是运行在 SGI公司的IRIX平台上。后来微软Microsof通过交换股权的方式将Softimage卖给了现在的Avid公司,直到现在微软仍持有Avid公司的股权。<br/>3:Side Effects Software公司的Houdini<br/><br/>市场使用情况:尽管很少有动画公司将Houdini用于一部完整的动画电影的生产,但是许多大型的制作公司里仍然都会购买几套Houdini软件,如果在生产过程中遇到了一些其它软件所不能解决的特殊问题时,就会用到Houdini软件。在许多的公司里,Houdini被称为是一个技术导演(TD——Technical Directors)的必备工具,当然也会有一些动画师乐于使用它。<br/><br/>主要特色:Houdini是一款非常错综复杂、极度灵活的三维动画软件包,它解决问题三维的方法非常适合于制作视觉特效的技术导演,以及那些希望最大限度地对软件工具进行控制的人们。这有时意味着需要使用者自己组装工具、对工具进行一些预设置,才能使这些工具象其它软件中的工具架按钮那样进行操作。Houdini中包括了Side Effects'公司自己开发的光线追踪渲染器Mantra,同时也具有完善的与Renderman渲染器的接口,它的VEX材质模型(Shader)与 Renderman渲染器和Mantra渲染器相互兼容,所以当需要使用光线追踪算法渲染一些特殊的项目时,可以非常方便地在Renderman渲染器和 Mantra渲染器之间进行切换。<br/><br/>发展历史:在Houdini之前,Side Effects公司生产的软件叫做Prisms,就是这款软件,当时在技术上已经远远地领先于其它软件,这是因为它的先进的节点体系结构和协同工作能力。比如在3ds Max具有操作器堆栈功能(operator stack)以前,在Maya具有构建历史以前,在Softimage具有建模关系(modeling relations)以前,在Softimage和Alias公司为它们各自的软件使用基于节点的体系结构以前,Prisms就应经具有完全基于节点体系的建模、动画和材质体系。<br/><br/>4 :Discreet公司的3D Studio Max<br/><br/>市场使用情况:3D Studio Max 软件目前统治着视频游戏工业领域。它是在三维爱好者中最流行的三维软件,同时也有一些公司将它用于电影和电视产品的制作。<br/><br/>主要特色:3D Studio Max 提供了还说的过去的建模、动画及渲染解决方案,但是这个系统的潜力要靠一个庞大的插件和扩展程序市场来支持,比如有支持其带有阴影能力的体积烟雾渲染输出的插件,或者模拟复杂流体动力学的插件等,3D Studio Max是第一款可以直接通过插件程序渲染出Flash动画格式的三维软件,另外还有几种插件渲染程序,可以支持3D Studio Max进行更强有力的光线追踪算法和全局照明渲染。如果加上这些高端的插件程序,3D Studio Max要比其他的软件程序贵很多。<br/><br/>发展历史:过去,Discreet Logic公司以其后期合成、编辑产品Flint, Flame和Inferno等而著名。这些产品是一系列运行在SGI平台上的软硬件组合系统。后来Autodesk收购了Discreet Logic,生产出了3D Studio Max。很快,Autodesk又收购了Lightscape,所有的这些产品组成了一个两维、三维产品序列,公司也以一个更短的名字Discreet出现在市场之上。<br/>5:Newtek公司的 Lightwave 3D<br/><br/>市场使用情况:Lightwave是一款非常流行、容易使用的三维软件。它在世界范围广泛地应用在视频和电视产品的生产之中。<br/><br/>主要特色:Lightwave具有非常强大的多边形建模工具,它还提供了一种称为MetaNURBS(尽管名称上有Nurbs的字样,但实际上 Lightwave不支持Nurbs技术)的基于多边形技术的细分表面建模方式。尽管因它的建模操作缺乏协作性而导致对模型的修改工作会较慢,Undo操作的次数也有限,但是它的建模能力还是非常强大的,简单易学,有经验的用户更能用它制作出非常高质量的模型。它的动画工具离Maya和 Softimage|XSI还有很大一段距离,但是对一般的动画制作任务还是说得过去的。Lightwave的渲染器非常注重光线追踪渲染,还带有图像的 Based Lighting功能,如果再等等,还会有全局照明功能。所以Lightwave的渲染器经常被用到广告和电视节目的制作当中。尽管很少有主要的电影制作公司使用Lightwave,但是,一些小的制作公司经常会用它来制作片头、显示器屏幕上的图像和电影中的某一部分。<br/><br/>发展历史:早期的 Lightwave是NewTek公司的Video Toaster中的一个三维组件,这是一套运行在Amiga计算机上的桌面视频编辑系统,而且是这个领域的开创者。这个系统可以生成角色、动画、2维和3 维图像,并且可以与当时的两种VHX录像带相互转换,进行视频编辑和特效合成等工作。早期版本的Lightwave也只能运行在Amiga计算机上,并使用一种称为Toaster RAM的存贮系统进行缓存,后来NewTek公司将Lightwave独立出来,分开销售,并且有了现在的PC 版和Mac版。<br/><br/>6 :Pixar公司的Photorealistic Renderman<br/><br/>市场使用情况: Pixar公司的Photorealistic Renderman(简写PRMan)是电影制作公司最广泛使用的一个渲染解决方案。著名的Pixar公司、工业光魔公司(Industrial Light and Magic)和其他一些顶级电影制作公司都使用它来渲染电影中的三维场景。<br/><br/>主要特色:新版本中的 Photorealistic Renderman 11中加入了光线追踪和全局照明功能,这些功能以前只能使用一些其他的渲染器来虚拟、计算。之所以在电影制作中大量使用Photorealistic Renderman是因为它渲染的图像非常鲜亮、置换贴图的细节和运动模糊效果非常逼真,可以非常快速地渲染出极高分辨率的图像。Renderman在渲染计算时,并不是在渲染之前就将所有的Nurbs表面模型或者细分表面模型镶嵌细分成多边形表面,而是分区域进行这个工作。Renderman的材质模型(Shader)是使用脚本语言编写出来的,这个脚本语言非常强大、灵活,且用容易使用。<br/><br/>7 :Mental Images公司的Mental Ray<br/><br/>市场使用情况:Mental Ray是Avid公司的Softimage|XSI中的标准渲染器,现在它也被包括在了Alias公司的Maya之中,而且在其他的动画系统中也越来越普及。<br/><br/>主要特色:Mental Ray是一个非常复杂的可编制程序的光线追踪渲染器,支持全局照明、光线的发散反射及光学特效。Mental Ray的材质模型就是一些标准的程序代码,通常是使用C++语言编写的。所以在速度上要优于用其他脚本语言编写的的材质模型。,但是这同时也给材质模型的开发工作带来了一定的困难。Mental Ray中的各个渲染进程都是用可编写程序式的材质模型进行控制的,比如几何体材质模型用来控制细分表面物体或者几何体的镶嵌细分,材质和贴图模型用来控制表面外观,光子材质模型用来控制全局照明效果,摄像机材质模型用来控制各种镜头的应用和抗锯齿效果。输出材质模型用来控制各种后期特效,等等。 Mental Ray现在也是3ds Max中的一个可选渲染器,但是功能有限,不支持可编成的材质模型。<br/>

高思 发表于 2007-6-20 08:04

<p>现在业界争论得最多的光照渲染不外两种:<br/>1、全局照明 Global lllumination 简称GI<br/>2、光能传递<br/><br/>Finalrender是一个GI渲染器的代表,类似的还有V-RAY等;<br/>Lightscape是一个典型的光能传递技术的代表。类似还有巴西、mental_ray等<br/><br/>包括如下渲染器<br/>Renderman<br/>Maxman<br/>Mental_ray<br/>VRay GI caustics<br/>FinalRender<br/>RenderPal for maya<br/>Illustrate 卡通渲染<br/>Ray gun for max3一个很老的渲染玻璃很不错的冬冬<br/>Digimation.Phoenix 其中有一个渲染火的插件相当不错。<br/>VirtualLight 一个早期在3dmax里模拟真实灯光的冬冬。<br/>Flamingo v1.0 SR1 for Rhino 2<br/>PMG Messiah Studio弥赛亚超强渲染器<br/>Abvent ArtLantis V4.5<br/>Penguin for Rhino/AUTOCAD<br/>InSight光线大师!可以调用LS的光域网文件的渲染器!<br/>CartoonReye 卡通风格渲染<br/><br/>local lllumination (局部照明)<br/><br/>也就是MAX中默认的照明方式,光线只对它击中的物体进行照明计算,而其它的地方则是阴影区,根本不会有任何光线,但现实中不是这样的,光线经过无数次反拆射是会照亮整个区域的。这也就是大家所觉得MAX 的灯难打,光强弱太黑了,光强大又爆光了!<br/><br/>下面的图就是MAX本身渲染器所计算出来的,对于光线没有击中的地方是不会计算的,我们所看到的就是,太暗! 我们的眼镜告诉我们—这是不真实的!<br/><br/>Global lllumination (全局光照)<br/><br/>这是一种正确的光线计算方法,灯光发射出光线后,在物体表面反射又发射出多条光线,这样经过若干次反射后,场景就符合直实世界的光照。这样就可以实现一个灯照亮一个房间的效果!!!<br/>光能传递算法是LS的算法,他采用工程热力的方法来处理光的照射方案。<br/>我个人觉得应是将光模拟成一种能量----辐射能,这些能量在物体表面不断的反射计算的一种方法。这个过程也就是光能传递运算,也就是LS最酷的一点!!!<br/><br/>几种渲染算法~~~~<br/><br/>Radiosity光能传递法<br/>==========<br/><br/>西方计算机界的定义:一种渲染法则,对场景中所有表面之间的光和<br/>颜色的满发射都加 以计算。通俗的说,一个物<br/>体反射的光可以着亮其他物体,该效 果就是光<br/>能传递效果。<br/>直接光计算: 有<br/>间接光计算: 有<br/>运算导致的场景结果:全局照明结果,即场景中无论直接光照到还是<br/>没照到的地方都是<br/>亮的,并且明暗符合一定物理规律。<br/>场景渲染效果评判: 非常真实<br/>适合的对象: 单帧图像,如建筑、环艺专业的效果图,不适<br/>合动画<br/>代表软件: Lightscape, RAD, Radiance, Luminaire<br/>Scanline Render扫描线渲染法<br/>==============<br/><br/>西方计算机界的定义:构成一张光栅图像的像素的水平行<br/>直接光计算: 有<br/>间接光计算: 无<br/>运算导致的场景结果:只有被直接光照到的地方才是亮的,场景中不<br/>存在光传递运算概 念上的非直接光。想使直接<br/>光照射以外的地方亮起来,只能靠认 为的方法<br/>在场景中设置光源模拟非直接光效果。<br/>场景渲染效果评判: 不易真实<br/>适合对象: 低品质要求场景,小场景<br/>代表软件: 3D Stutio Max<br/><br/>Indirect Illuminate间接照明法<br/>===============<br/><br/>西方计算机界的定义:是光能传递算法的简化,与光能传递遵循的运<br/>算法则相同,但运 算量要比光能传递少得多<br/>直接光计算: 有<br/>间接光计算: 有,不充分<br/>运算导致的场景结果:全局照明结果。场景中无论直接光照到的地方<br/>还是没照到的地方 都是亮的,别且明暗符合一<br/>定物理规律。<br/>场景渲染效果评判: 较真实<br/>适合对象: 较快(不同软件的情况不甚相同)单帧与动画<br/>均可,是质量与速 度均可兼顾的最佳选择<br/>代表软件: Enlight, Luma, Mantal ray<br/><br/>Raytracen光线跟踪法<br/>==========<br/><br/>西方计算机界的定义:是一种渲染技术,用于定义可见表面和产生真<br/>实阴影,反射和折 射。<br/>直接光计算: 有<br/>间接光计算: 有,不完全<br/>运算导致的场景结果:部分全局照明结果,因为只计算高光反射,所<br/>以照明结果有限。<br/>场景渲染评判: 真实(定向使用)<br/><br/>适合对象: 最适合阴影以及金属,玻璃等反射、折射材质<br/>的渲染。基本不会 被单独使用。<br/>代表软件: Raygun 该方法一般被作为使用其他渲染方法的<br/>软件的辅助内嵌功能使用。<br/></p>

高思 发表于 2007-6-20 08:08

光能传递渲染器到底给了我们什么?<br/><br/>一、说说什么是光能传递<br/>  曾经在视觉中国上有人问我什么是光能传递。我很好奇,在现在光能传递如此火热的时代竟然还有人连光能传递都不知道。但小日本的广岛研究所在80年代研究光能传递的时候中国又有多少做三维动画的人知道呢?<br/>  我虽然痞,而数学、物理又差,但在光能传递上我还是可以说上两句的。<br/>  我们之所以可以看见颜色,是因为可见光中包含了这无数种颜色的波长的光,如红色光的波长最长(可见光中)、紫色的最短。白色的则包含了大部分的光波,黑色的则只包含了很少量的光波。万事万物由原子或分子构成(指一般的事物),原子或分子在受光子激发后会吸收一定波长的光波,再把剩下的反射出去。我们的眼睛接受到了这些被反射出来的光、视觉神经就会识别出是什么颜色。那么,红色的物体则反射红色的光,蓝色的物体就反射蓝色的光,白色的物体反射几乎所有的光。<br/>  但要注意的是这些物体的表面是粗糙的,才只反射一定颜色,如果是光滑的,就会像镜子一样反射周围的影象。<br/>  为什么?因为粗糙的物体表面有很多不平的地方,光反射的方向就不一致了,受光的方向也不一致。而光滑的物体表面受光反射的方向都一致,所以可以完全把受光方向的光的信息反射到反射方向。<br/>  学渲染的人首先要接触材质。材质的种类很丰富——Blinn,Phong,PhongE,Lambert,Metal,Anistropic, Cook/Torrance等等。但如果完全按照上面所说的光的理论,那么就只需要一种材质——可以反射光的材质——就够了。所以FinalRender 只有一种材质;而Lightscape虽然有多种材质,但它们都是同一种材质不同的参数罢了。以上的材质叫做经验模型。<br/>  接着说:当光被物体反射出来后,就会影响到周围的物体。这个步骤相信很多书或教材都有说到,我的另一篇文章也有详细描述,在这里我就不多说了。<br/>  光能传递分四种方式:非漫反射面——漫反射面、非漫反射面——非漫反射面、漫反射面——漫反射面、漫反射面——非漫反射面。<br/>  有人会说,这四种方式是不是重叠了?其实这四种传递方式一点也不含糊,每一种都有自己的特点和特性。<br/><br/>漫反射面——非漫反射面:这是一般的镜子的情况,从镜子里面看到反射方向的物体,就是物体对镜子的光能传递,光线跟踪可以很好的独立解决这一步。<br/>  非漫反射面——非漫反射面:这是从镜子里面看镜子的情况,但其中包含了镜子的形状因子对镜子传递的影响作用的复杂计算,一般的光线跟踪只能简单的模拟。<br/>  漫反射面——漫反射面:这是辐射的情况,Lightscape最擅长就是求解这中情况;Br,Mr所用的MC(蒙地卡罗积分)并不能很好的模拟,Fr的采样也在有的场景中有黑块的出现。<br/>  非漫反射面——漫反射面:这是Caustic的情况,可以通过PhotonMap求解,但也有精确度问题。<br/>  现在的软件,实际上都只能在相对独立的情况下分别解出这四种情况。现实中,这四种情况经常混合发生,会使光能传递变的异常复杂,这是现在没有可以完全求解的情况。  譬如,第四种情况的非漫反射面一定从某个方向承继了二次光源,所以计算时将先计算影响非漫反射面的光能分布状况,但影响非漫反射面的光能分布状况也受到非漫反射面的影响,就只能用逐步逼近的方法解算。这样将耗费大量的运算!<br/>  当场景中应用了贴图、BumpMaping、大气效果——大气中的微粒散射在理论上应计算入光能传递之内等效果后,计算复杂度将大得无法用普通的计算机计算!<br/><br/>首先,每一个渲染器都基于一套基本的求解算法,这些算法的名称大家都已耳熟能详了。基本渲染算法有三种:Scanliner(扫描线)、Raytrace(光线跟踪)、Radiosity(辐射度)。Scanliner与Raytrace都为大多数软件所采用,而Radiosity就只有BMRT与Lightscape采用。Scanliner最早被开发,应用亦最广泛。其中Renderman的 REYES(Render Everything You’d Ever Seen)算法是Scanliner的最极致的发挥,但也表示Scanliner已经走到了尽头了。Raytrace的应用越来越广泛,它最初用来求解非漫反射面之间的光能传递,即反射与折射的模拟。后来分布式光线跟踪与双向光线跟踪得到长足发展,特别是先进的有限元采样算法得到发展后,光线跟踪也被应用于漫反射面的光能传递求解。MentalRay的Global Illumination、Brazil、FinalRender就是很好的例子。其中,分布式光线跟踪的算法决定了软件输出的质量。MentalRay 假定每个元面都有一张PhotonMap(在双向光线跟踪算法的创始人Arvo(ARVO1986)的论文中叫Illumination Map),在PhotonMap上投射光线采样,然后把PhotonMap像Texture一样贴在元面上。所以MentalRay必须设定光线的大小 (Radius)以方便在PhotonMap上采样。这样保证了速度,但要在有丰富经验的人调较下才能渲染出高质量的图片。Brazil直接用半球体采样,用立体方位角投射到元面表面,类似于Radiosity算法的立方体采样,但Brazil通过控制辐射残差来加快速度,也牺牲了质量,所以在采样不足的情况下,Brazil渲染的质量是最差的。FinalRender用有限元采样,同时保证了速度和质量。有限元是一种结合Radiosity的采样方法。Radiosity是在80年代末发展起来的渲染算法,它采用热力学的辐射积分式:B<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>=E<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/> + p<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>$B(x’)[cos<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>cos(x’)/pi*r^2]*HID(dS<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>,dS(x’))dA(x’),其中x’为源元面,x为目标元面,B<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>是x的辐射度分量,E<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>是x的源能量,p<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>是x的漫反射系数,$是对元面x积分,HID是遮挡函数(x与x’之间有遮挡为0,没有则为1),dA<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>是x的面积。可以看到,Radiosity是通过对整个场景的表面都求解辐射度来达到模拟光能传递效果。Lightscape的求解过程就是Radiosity的Shooting过程,它采用空间四叉树算法来加速求解,所以速度比较快。Radiosity渲染基于物理学理论,其渲染效果真实,是Raytrace所不能比拟的,但从视觉效果上考虑,现在Raytrace和Radiosity不相上下,在速度上,Raytrace更占绝对优势。而且,Refract(折射)、caustic(焦散效果)是Radiosity无法模拟的(所以Lightscape也带了Raytrace渲染器)。<br/>

高思 发表于 2007-6-20 08:09

第二,每个渲染器都有贴图的优化算法,这也是成败的关键,因为高级的渲染往往极依赖贴图,像一R些优秀的CG都“无图不欢”甚至“无图不成”,所以贴图的质量是十分重要的!Renderman的优化算法堪称第一!为什么?它用了先进的改良式B-spline(B样条)算法,克服了许多贴图变形的问题,尤其是在同等元面由于镜头焦距不一引起的走样(因为软件常常假设同一元面在画面上的分辨率是一样的,就导致当镜头对准元面中心,而元面两极z 值直差超过了MipMap或Liner的极限,z值小的部分和z值大的部分之间的区域过度产生严重走样,MR2用z值细分元面解决了问题,但造成了运算量的不必要增加)。在渲染器多如牛毛的今天,很多标榜光能传递的软件都忽略了贴图算法的重要性,片面的加强实际上专业用户并不需要的功能,舍本逐末。也是因为如此,使用最原始的Scanliner的Renderman在今天能稳稳地坐在电影制作的第一把交椅上。    贴图是渲染里一个复杂的大系,它包括原始图象的处理、合成,与几何物体坐标的互换,过程化的贴图以及过渡性的贴图(PhotonMap和ShadowMap等)。贴图也参加几何变换 (Displacement),灯光的定义(VolumeShader)以及镜头特效。  Max向渲染器提供了贴图的原始处理,可以让渲染器直接使用它的输出而专心于画面的质量,它包括了图形学里的4X3种贴图投射方式:(平面、圆柱体、立方体、球面)~(表面向量、景物中心、中介面法向量)。其实真正有用只有:平面~中介面法向量、圆柱体~中介面法向量、立方体~中介面法向量、球面~景物中心、立方体~景物中心。所以不要盲目选择贴图方式。详细的贴图方式指引请参考《计算机真实感图形的算法基础》。Maya的贴图分为Normal和Project(Stencil不在贴图方式的讨论之列),也就是UV 和以上的四种贴图表面(平面、圆柱体、立方体、球面),当然,它还包含了衍生出来的三角平面和摄象机平面。  Renderman提供了更详细的贴图方案,但对普通用户有用的只有ST(就是UV)和MayaUV(还是UV)。因为在Renderman里面要精确控制贴图必须写Expression。<br/>所谓的UV,就是指曲面坐标。在我们看来,空间是三维的(用三个分量表示一个向量),而在曲面上看来,空间是二维的,如地图上的经度和纬度一样。要指出曲面上的一点,就要用向量v(u,v)表示。而贴图则是平面的,要影射到空间的元面上必须用一种贴图影射 (就是以上讨论的几种):在曲面坐标上P(u,v)可以转换成贴图坐标T(s,t),就是若曲面S(u[0,1],v[0,1])那贴图就是T(s[0, Tmax_x],t[0,Tmax_y]),然后求屏幕坐标E<img alt="Camera" src="http://page.hxsd.com.cn/images/smiles/camera_smile.gif" width="19"/>=Sp(u,v)=S’(u,v)=T(s,t),得到屏幕的颜色为F(T(s, t)),F为加工的过程。在max中选择的贴图方式就是S’。  这就是贴图在渲染器内的工作方式。<br/>  贴图的合成主要是Renderman的结点式思想,这点在Maya中的已经得到体现,相信我不用在讨论。但结点式Shader并不是Maya第一个使用,早在1984年,Cook(著名图形学家,提出了著名的Cook-Torrance光谱光照模型)就提出了左右结点的Shanding language。最初,Renderman就是这一思想的实验产物,可以说Shading language导致了Renderman的诞生。所以Renderman的贴图处理能力可以说是Renderman的看家本领了。<br/>  贴图的反走样:主要的方法有Liner(一次)、Quadric(二次)、Gaussian(高斯)、MipMap等。其中MidMap应用最广泛,从 OpenGL到DirectX到MayaRenderer到Renderman的Script都可以看到它的身影。所以我们主要讨论MidMap(其他的请“望文生义”吧)。  MidMap的工作方式是在内存中建立一张比源文件还要大的正方形查找表,也就是N X N的数组。大多少?例如:一张TIFF(256 X 256 X 24bit NoAlpha)的贴图,<br/><br/>在贴图的讨论中,我们主要讨论的是Renderman的贴图,因为其他的几个软件并没有太多的贴图文献(而Renderman则几乎每年的SIGGRAPH都有)所以不作讨论。  下一节,我们将讨论Renderman所没有的——Radiosity和Raytrace!<br/>  第三,我们来集中讨论一下光能传递。  关于光能传递,相信有必要详细叙述,因为网上和市面的许多教材都存在片面的说法,许多使用光能传递软件的人甚至写教材的人都没有比较扎实的光能传递理论基础,这导致我们很多时候都无法发挥渲染器的最大潜能。这也是许多人就算用Lightscape、 MentalRay也只能做出很“假”的图的原因了。了解光能传递,就算用Max的渲染器也可以做出很真实质量很高的图形。<br/>  所谓光能传递,就是物体表面反射物体吸收波长以外的光能在封闭环境中的面到面之间的传递。所以光能传递必须满足:1、场景封闭;2、场景内有原始的未被吸收的光能;3、传递方式为面到面。  我们之所以看到物体有不同的颜色,是因为物体表面属性决定了物体吸收一定波长的光能,而不吸收的一部分反射到我们的眼睛里,产生了颜色。如果一束全波段光波射到一白色物体和红色物体上(两物体靠近,都是漫反射面),则白色物体并不吸收任何可见波波长的光能(理论上,实际上它还是要吸收一部分),把接收的光能都反射出去。那么红色物体就吸收了除红色波长以外的所有可见光光能,把红色波长的光能反射出去。这样,白色物体从环境中获得的光能发生了不平衡,红色光波的能量战多数,于是,在实际中的以上情况,我们将看到两物体之间发生了光能传递。  还有一个例子,就是镜子。因为漫反射面十分粗糙,几乎每个点的法线都不同,所以光能发射的方向不一,就造成了辐射现象;而非漫反射面表面法线一致,所以光能反射方向一致,所有光能向同一方向反射,造成镜面现象。  要注意的是,生活中我们是在一个封闭的空间中观察物体的,就算是户外,因为空气有散射作用,所以也可以算是封闭。就是在一定范围内光能必须趋向平衡。所以几乎所有的光能传递演示场景都是在封闭的室内,而室外的场景则必须添加大气辐射。Lightscape中的完成百分比实际是它估算的环境内辐射平衡残差(以后会讨论),但也可以看作是封闭环境中剩余的未平衡能量。<br/>  光能传递分成四种类型:漫反射~漫反射、非漫反射~漫反射、非漫反射~非漫反射、漫反射~非漫反射。这四种传递性质各异,难以以统一的算法求解,也导致了两种完全不同的算法的产生。  <br/>Raytrace 光线跟踪是最早开发来解决反射、折射的涉及非漫反射面参与的光能传递的算法,它基于假设光线是一根没有大小、长度的射线,从屏幕平面投射到场景中,与可见面相交;它完全遵守反射折射定律。所以Raytrace极其成功地解决了两种传递:非漫反射面~非漫反射面 和 漫反射面~非漫反射面。   Raytrace是逆向求解算法,属于递归算法,其核心为每次求交后调用自身再次求交,直到反射/折射深度达到最大值。因为场景内包含了大量的元面,所以光线跟踪的大部分运算量都集中在求交上,则软件的求交算法极为重要。BSP是最成功的求交算法之一,MentalRay刚推出之时许多人都惊叹于它的快速就是因为当时只有它应用了BSP。  BSP叫(Binary Space Partition)空间二叉树算法,即把场景分成许多子空间,每个父节点都有两个子节点。场景为最大父节点,场景下包含两个节点(左右节点),若左节点包含的元面数目大于阀值,则把左节点分成上下两个子节点,再看上下节点中的元面数目……如此剖分直到子节点深度大于阀值。当求交时只需把光线与左右节点求交,若左节点有交则只需把光线与上下节点求交,最后把光线与确定的空间节点中的有限元面求交。这样就可以节省大量无用的求交。<br/><br/>虽然 Raytrace完美地解决了两种传递方式,但在日常生活当中我们最常见的漫反射面~漫反射面的传递(除非您住在镜子世界当中)它则显得束手无策。 1984年美国Cornell大学和日本广岛大学的学者分别把热力学中的辐射度方法引入到了光能传递求解当中,成功地模拟了漫反射面之间的光能传递。于是 Radiosity算法问世了。  光能与热能的性质十分相似,可以说光与热是能量的两种表现方式,光在理想漫反射面上的传递方式与热力学的辐射方式近似。因为热是向热力不均匀的地方传递的,而光也是向光能不平衡的地方传递的;而热力辐射的方式是扩散的,光能在漫反射面上的反射也可以近似表示为扩散。  Raytrace假设光线是没有大小的一根射线,但漫反射面的表面十分粗糙,几乎每一点上的发线都有不同程度的偏离。因为是从屏幕上出发向场景采样,所以Raytrace也在某程度上用一根光线的大小抹杀了很多不能用有限采样表示的信息(如用320X240表示一个十万面的球,则很多极点的元面被忽略,因为屏幕上的光线只能和一个元面有交)。Raytrace无法较精确地采样漫反射面上的光照信息,那就更无法表现漫反射面的光能传递了。(但后来有了分布式光线跟踪就另当别论了,下面会讨论到)<br/>  Radiosity把元面上的光能看作整体,采用全局求解的方法,先把整个场景的光能分布求出,再在屏幕上显现。它不在受一条条的光线所限制,而把能量一分分地送出去。<br/>  Radiosity的算法有很多种,其中最常用的为逐步求精和空间四叉树算法。Lightscape把两者结合起来,继承了逐步求精法的耗大内存和空间四叉树求解奇慢的“优点”,留了一个“大好”的印象给大家。其实Radiosity的求解核心是辐射度方程(见讨论(一))。它的积分号表明了它不能精确求出辐射度的解的性质,所以用残差估算和有限元算法可以快速解决问题。因为用Radiosity算法的软件并不多(好象只有Lightscape、 FinalRender和BMRT吧),所以在此不多说了,如果有兴趣知道更多的辐射度资料,请和我联络。<br/>  (其实大家有必要知道Radiosity更多,因为有限元度方法的出现令Radiosity活力大增,相信不久大家就会见到大批基于有限元度算法的Radiosity软件的出现)<br/><br/>上面的算法解决了三种传递方式,还有一种呢?  就是Caustic!著名的聚焦现象。  因为光在经过非漫反射面的传递后会出现集中聚焦、二次光源等现象,而一般的Raytrace和Radiosity都不能解决,于是诞生了双向光线跟踪。  其实在双向光线跟踪之前还有一种很重要的算法,就是分布式光线跟踪。在Radiosity诞生的那一年,著名的图形学家Cook发表了分布式光线跟踪的论文。分布式光线跟踪其实是一种非均匀的采样算法,但它通过 jitter抖动来达到分布式的效果。比如说:屏幕上的一点要求解,则软件通过jitter得到一张查找表(通常是16x16的),按照上面的抖动值换算屏幕上的光线发射方向。这样就可以避免了Raytrace“抹杀元面信息”的行为。  在分布式的基础上,Heckbert和Hanrahan提出了双向光线跟踪的思想。因为光线应该是从光源出发射向物体的,但Raytrace则从屏幕出发射向物体再回溯到光源,所以一般的Raytrace被称为逆向光线跟踪。这样的好处是避免不需要的光线求解,简化算法,减少运算量。但这样根本不利于光能传递的求解。双向光线跟踪的思想是在逆向光线跟踪的同时进行正向的光线跟踪。实际上双向光线跟踪是通过一张PhotonMap来实现的。<br/>  PhotonMap是一张抽象的贴图,它包裹在物体的表面上,当进行正向光线跟踪时从光源到物体表面进行有限的光线采样,光线交在物体上,但采样结果表现在PhotonMap上,也就是说光线是射在PhotonMap上的。 PhotonMap上的信息是光线信息,所以通过整理后可以得到精细的Caustic贴图,在渲染时要得到物体表面信息可以直接从PhotonMap上得到相应的元面上的贴图信息。  同理,使用PhotonMap的全局光照也是通过这样的采样方法达到光能传递的效果。<br/><br/>PhotonMap用在Caustic上是一种十分精确的方法,但在全局光照里就属于基于视觉上的算法,并不精确真实。<br/>附:各种光照模型参考:<br/>  光照模型是渲染的基础,各种不同的光照模型可以表现各种不同的表面属性。1986年,Immel曾尝试给出可以统一各种光照模型的“系统方程”,但由于运算量出奇庞大,以至现在的超级计算机求解也比较困难,所以没有得到实际的应用。  各种光照模型的以流传是因为至今视觉工业还是基于经验而不是物理定律,所以Lambert、Blinn、Phong、Cook-Torrance、Strauss、Anisotropic等经验模型今天还可以生存而不至于被Radiosity和Raytrace等物理模型代替。(Radiosity和Raytrace都有自己的光照定律,在max、mr、fr、br中还可以和以上经验模型混用是因为他们还有很强的生命力)<br/>  Lambert:一个绝对经典的经验模型,基于漫反射面的光照基础。它只是简单地计算出 I=k*Il*cos<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>,可以看到影响它的因素只有漫反射系数k和物体法线同光线的点积,所以它特别容易表现纸张、墙壁、木头等表面粗糙而没有高光的物体。(Max却把它的改良版本称为Metal……)<br/>  Phong: 更经典的经验模型,它加入了高光系数,可以渲染出高光:I=Il*W <img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>*cos<img alt="Fight" src="http://page.hxsd.com.cn/images/smiles/fight_smile.gif" width="32"/>^n,可以看出在高光控制上用了幂(就是法线与光线的点积的n次方),所以高光的边缘比较平滑。Max中的Specular level就是幂的数值,而在maya中就表示为cos power,可以说max的说明比较感性,maya的说明比较理性。<br/><br/>Blinn:  著名的图形学家Blinn提出的经验与定律相结合的经典光照模型(因为公式十分复杂,所以不作讨论,想仔细了解的请和我联系),它使用了“双向反射率” (请别问我是什么,我到现在还搞不清楚这玩意儿到底是什么……)和微平面法线,使高光边缘有一层比较尖锐的区域,很接近现实中的塑料、金属等表面光滑而又并非绝对光滑的物体实际反射情况。当Blinn的rough值取一定的值(到底是多少要视各个系统确定)时,可以退化成Phong;而当高光系数为0时,可以退化成Lambert。所以Blinn是最实用的光照模型。<br/>  Cook-Torrance:用Max和Maya的朋友比较陌生,用XSI的朋友就很熟悉,但是否觉得比较难控制呢?这是一个更接近物理定律的光照模型,它的所有计算方式和Blinn一样,但只是高光部分用了光谱计算。这在自然界的一些金属中可以看到高光的异常变化状况,但其实它并不使用,而且光谱计算要额外的运算,所以在Max和Maya中没有引入。 <br/>

nsxz 发表于 2007-6-20 23:06

太深了,,,用好le就行了....

小伟 发表于 2007-12-8 22:49

<p>都晕了</p><p>不过仔细看一下,真的不错耶</p>

2005sunsun 发表于 2008-1-17 09:50

[em05]

myway1009 发表于 2008-1-21 10:49

好东西就是难学

Jacke_chen 发表于 2008-9-6 21:57

怎么没见介绍POLY BOOST呢?:(

ky693 发表于 2008-10-4 15:03

好全:lol   正在用VRAY

牛超 发表于 2008-10-6 10:16

好东西 拿走看看

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.