22 12
发新话题
打印

【专题】关于3D渲染算法的讨论 集锦

关于Renderman,MentalRay,Lightscape,Brazil,FinalRender的算法讨论 --- k : 关于Renderman,MentalRay,Lightscape,Brazil,FinalRender的算法讨论 众所周知,Renderman,MentalRay,Brazil,FinalRender,Lightscape都是一流的渲染器,孰优孰劣,大家都在网上讨论了很多了。这次我想从它们的算法入手进行分析,看它们在算法上的优劣,希望能让大家对它们有更深入的了解,从而改进对渲染器的使用。   首先,每一个渲染器都基于一套基本的求解算法,这些算法的名称大家都已耳熟能详了。基本渲染算法有三种: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(x)=E(x) + p(x)$B(x’)[cos(x)cos(x’)/pi*r^2]*HID(dS(x),dS(x’))dA(x’),其中x’为源元面,x为目标元面,B(x)是x的辐射度分量,E(x)是x的源能量,p(x)是x的漫反射系数,$是对元面x积分,HID是遮挡函数(x与x’之间有遮挡为0,没有则为1),dA(x)是x的面积。可以看到,Radiosity是通过对整个场景的表面都求解辐射度来达到模拟光能传递效果。 Lightscape的求解过程就是Radiosity的Shooting过程,它采用空间四叉树算法来加速求解,所以速度比较快。Radiosity渲染基于物理学理论,其渲染效果真实,是Raytrace所不能比拟的,但从视觉效果上考虑,现在Raytrace和Radiosity不相上下,在速度上,Raytrace更占绝对优势。而且,Refract(折射)、caustic(焦散效果)是Radiosity无法模拟的(所以Lightscape也带了Raytrace渲染器)。

TOP

第二,每个渲染器都有贴图的优化算法,这也是成败的关键,因为高级的渲染往往极依赖贴图,像一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。

TOP

所谓的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(p)=Sp(u,v)=S’(u,v)=T(s,t),得到屏幕的颜色为F(T(s,t)),F为加工的过程。在max中选择的贴图方式就是S’。   这就是贴图在渲染器内的工作方式。   贴图的合成主要是Renderman的结点式思想,这点在Maya中的已经得到体现,相信我不用在讨论。但结点式Shader并不是Maya第一个使用,早在1984年,Cook(著名图形学家,提出了著名的Cook-Torrance光谱光照模型)就提出了左右结点的Shanding language。最初,Renderman就是这一思想的实验产物,可以说Shading language导致了Renderman的诞生。所以Renderman的贴图处理能力可以说是Renderman的看家本领了。   贴图的反走样:主要的方法有Liner(一次)、Quadric(二次)、Gaussian(高斯)、MipMap等。其中MidMap应用最广泛,从OpenGL到DirectX到MayaRenderer到Renderman的Script都可以看到它的身影。所以我们主要讨论MidMap(其他的请“望文生义”吧)。   MidMap的工作方式是在内存中建立一张比源文件还要大的正方形查找表,也就是N X N的数组。大多少?例如:一张TIFF(256 X 256 X 24bit NoAlpha)的贴图,MidMap将打开一个(512X512)+1的数组。其排列为(用图形比较清楚): ---------------------------------------------| | || | || | || R | G || | || | |---------------------------------------------| | | || R | G | || | | ||--------------------| B || R | G | | ||---------| B | || X | B | | |--------------------------------------------- 使用的时候计算在匹配的分辨率下应使用哪一张Map。如此可见MidMap是一种的速度和质量可以达到最平衡的算法。 所以Maya以MidMap为缺省方式。

TOP

在贴图的讨论中,我们主要讨论的是Renderman的贴图,因为其他的几个软件并没有太多的贴图文献(而Renderman则几乎每年的SIGGRAPH都有)所以不作讨论。   下一节,我们将讨论Renderman所没有的——Radiosity和Raytrace!   第三,我们来集中讨论一下光能传递。  关于光能传递,相信有必要详细叙述,因为网上和市面的许多教材都存在片面的说法,许多使用光能传递软件的人甚至写教材的人都没有比较扎实的光能传递理论基础,这导致我们很多时候都无法发挥渲染器的最大潜能。这也是许多人就算用Lightscape、MentalRay也只能做出很“假”的图的原因了。了解光能传递,就算用Max的渲染器也可以做出很真实质量很高的图形。   所谓光能传递,就是物体表面反射物体吸收波长以外的光能在封闭环境中的面到面之间的传递。所以光能传递必须满足: 1、场景封闭; 2、场景内有原始的未被吸收的光能; 3、传递方式为面到面。   我们之所以看到物体有不同的颜色,是因为物体表面属性决定了物体吸收一定波长的光能,而不吸收的一部分反射到我们的眼睛里,产生了颜色。如果一束全波段光波射到一白色物体和红色物体上(两物体靠近,都是漫反射面),则白色物体并不吸收任何可见波波长的光能(理论上,实际上它还是要吸收一部分),把接收的光能都反射出去。那么红色物体就吸收了除红色波长以外的所有可见光光能,把红色波长的光能反射出去。这样,白色物体从环境中获得的光能发生了不平衡,红色光波的能量战多数,于是,在实际中的以上情况,我们将看到两物体之间发生了光能传递。   还有一个例子,就是镜子。因为漫反射面十分粗糙,几乎每个点的法线都不同,所以光能发射的方向不一,就造成了辐射现象;而非漫反射面表面法线一致,所以光能反射方向一致,所有光能向同一方向反射,造成镜面现象。   要注意的是,生活中我们是在一个封闭的空间中观察物体的,就算是户外,因为空气有散射作用,所以也可以算是封闭。就是在一定范围内光能必须趋向平衡。所以几乎所有的光能传递演示场景都是在封闭的室内,而室外的场景则必须添加大气辐射。Lightscape中的完成百分比实际是它估算的环境内辐射平衡残差(以后会讨论),但也可以看作是封闭环境中剩余的未平衡能量。   光能传递分成四种类型:漫反射~漫反射、非漫反射~漫反射、非漫反射~非漫反射、漫反射~非漫反射。这四种传递性质各异,难以以统一的算法求解,也导致了两种完全不同的算法的产生。    Raytrace光线跟踪是最早开发来解决反射、折射的涉及非漫反射面参与的光能传递的算法,它基于假设光线是一根没有大小、长度的射线,从屏幕平面投射到场景中,与可见面相交;它完全遵守反射折射定律。所以Raytrace极其成功地解决了两种传递:非漫反射面~非漫反射面 和 漫反射面~非漫反射面。   Raytrace是逆向求解算法,属于递归算法,其核心为每次求交后调用自身再次求交,直到反射/折射深度达到最大值。因为场景内包含了大量的元面,所以光线跟踪的大部分运算量都集中在求交上,则软件的求交算法极为重要。BSP是最成功的求交算法之一,MentalRay刚推出之时许多人都惊叹于它的快速就是因为当时只有它应用了BSP。   BSP叫(Binary Space Partition)空间二叉树算法,即把场景分成许多子空间,每个父节点都有两个子节点。场景为最大父节点,场景下包含两个节点(左右节点),若左节点包含的元面数目大于阀值,则把左节点分成上下两个子节点,再看上下节点中的元面数目……如此剖分直到子节点深度大于阀值。当求交时只需把光线与左右节点求交,若左节点有交则只需把光线与上下节点求交,最后把光线与确定的空间节点中的有限元面求交。这样就可以节省大量无用的求交。

TOP

虽然Raytrace完美地解决了两种传递方式,但在日常生活当中我们最常见的漫反射面~漫反射面的传递(除非您住在镜子世界当中)它则显得束手无策。 1984年美国Cornell大学和日本广岛大学的学者分别把热力学中的辐射度方法引入到了光能传递求解当中,成功地模拟了漫反射面之间的光能传递。于是Radiosity算法问世了。   光能与热能的性质十分相似,可以说光与热是能量的两种表现方式,光在理想漫反射面上的传递方式与热力学的辐射方式近似。因为热是向热力不均匀的地方传递的,而光也是向光能不平衡的地方传递的;而热力辐射的方式是扩散的,光能在漫反射面上的反射也可以近似表示为扩散。   Raytrace假设光线是没有大小的一根射线,但漫反射面的表面十分粗糙,几乎每一点上的发线都有不同程度的偏离。因为是从屏幕上出发向场景采样,所以Raytrace也在某程度上用一根光线的大小抹杀了很多不能用有限采样表示的信息(如用320X240表示一个十万面的球,则很多极点的元面被忽略,因为屏幕上的光线只能和一个元面有交)。Raytrace无法较精确地采样漫反射面上的光照信息,那就更无法表现漫反射面的光能传递了。(但后来有了分布式光线跟踪就另当别论了,下面会讨论到)   Radiosity把元面上的光能看作整体,采用全局求解的方法,先把整个场景的光能分布求出,再在屏幕上显现。它不在受一条条的光线所限制,而把能量一分分地送出去。   Radiosity的算法有很多种,其中最常用的为逐步求精和空间四叉树算法。Lightscape把两者结合起来,继承了逐步求精法的耗大内存和空间四叉树求解奇慢的“优点”,留了一个“大好”的印象给大家。其实Radiosity的求解核心是辐射度方程(见讨论(一))。它的积分号表明了它不能精确求出辐射度的解的性质,所以用残差估算和有限元算法可以快速解决问题。因为用Radiosity算法的软件并不多(好象只有Lightscape、FinalRender和BMRT吧),所以在此不多说了,如果有兴趣知道更多的辐射度资料,请和我联络。   (其实大家有必要知道Radiosity更多,因为有限元度方法的出现令Radiosity活力大增,相信不久大家就会见到大批基于有限元度算法的Radiosity软件的出现)

TOP

上面的算法解决了三种传递方式,还有一种呢?   就是Caustic!著名的聚焦现象。   因为光在经过非漫反射面的传递后会出现集中聚焦、二次光源等现象,而一般的Raytrace和Radiosity都不能解决,于是诞生了双向光线跟踪。   其实在双向光线跟踪之前还有一种很重要的算法,就是分布式光线跟踪。在Radiosity诞生的那一年,著名的图形学家Cook发表了分布式光线跟踪的论文。分布式光线跟踪其实是一种非均匀的采样算法,但它通过jitter抖动来达到分布式的效果。比如说:屏幕上的一点要求解,则软件通过jitter得到一张查找表(通常是16x16的),按照上面的抖动值换算屏幕上的光线发射方向。这样就可以避免了Raytrace“抹杀元面信息”的行为。   在分布式的基础上,Heckbert和Hanrahan提出了双向光线跟踪的思想。因为光线应该是从光源出发射向物体的,但Raytrace则从屏幕出发射向物体再回溯到光源,所以一般的Raytrace被称为逆向光线跟踪。这样的好处是避免不需要的光线求解,简化算法,减少运算量。但这样根本不利于光能传递的求解。双向光线跟踪的思想是在逆向光线跟踪的同时进行正向的光线跟踪。实际上双向光线跟踪是通过一张PhotonMap来实现的。   PhotonMap是一张抽象的贴图,它包裹在物体的表面上,当进行正向光线跟踪时从光源到物体表面进行有限的光线采样,光线交在物体上,但采样结果表现在PhotonMap上,也就是说光线是射在PhotonMap上的。PhotonMap上的信息是光线信息,所以通过整理后可以得到精细的Caustic贴图,在渲染时要得到物体表面信息可以直接从PhotonMap上得到相应的元面上的贴图信息。   同理,使用PhotonMap的全局光照也是通过这样的采样方法达到光能传递的效果。 PhotonMap用在Caustic上是一种十分精确的方法,但在全局光照里就属于基于视觉上的算法,并不精确真实。

TOP

附:各种光照模型参考:   光照模型是渲染的基础,各种不同的光照模型可以表现各种不同的表面属性。1986年,Immel曾尝试给出可以统一各种光照模型的“系统方程”,但由于运算量出奇庞大,以至现在的超级计算机求解也比较困难,所以没有得到实际的应用。   各种光照模型的以流传是因为至今视觉工业还是基于经验而不是物理定律,所以Lambert、Blinn、Phong、Cook-Torrance、Strauss、Anisotropic等经验模型今天还可以生存而不至于被Radiosity和Raytrace等物理模型代替。(Radiosity和Raytrace都有自己的光照定律,在max、mr、fr、br中还可以和以上经验模型混用是因为他们还有很强的生命力)   Lambert:一个绝对经典的经验模型,基于漫反射面的光照基础。它只是简单地计算出I=k*Il*cos(x),可以看到影响它的因素只有漫反射系数k和物体法线同光线的点积,所以它特别容易表现纸张、墙壁、木头等表面粗糙而没有高光的物体。(Max却把它的改良版本称为Metal……)   Phong: 更经典的经验模型,它加入了高光系数,可以渲染出高光:I=Il*W(x)*cos(x)^n,可以看出在高光控制上用了幂(就是法线与光线的点积的n次方),所以高光的边缘比较平滑。Max中的Specular level就是幂的数值,而在maya中就表示为cos power,可以说max的说明比较感性,maya的说明比较理性。

TOP

著名的图形学家Blinn提出的经验与定律相结合的经典光照模型(因为公式十分复杂,所以不作讨论,想仔细了解的请和我联系),它使用了“双向反射率”(请别问我是什么,我到现在还搞不清楚这玩意儿到底是什么……)和微平面法线,使高光边缘有一层比较尖锐的区域,很接近现实中的塑料、金属等表面光滑而又并非绝对光滑的物体实际反射情况。当Blinn的rough值取一定的值(到底是多少要视各个系统确定)时,可以退化成Phong;而当高光系数为0时,可以退化成Lambert。所以Blinn是最实用的光照模型。   Cook-Torrance:用Max和Maya的朋友比较陌生,用XSI的朋友就很熟悉,但是否觉得比较难控制呢?这是一个更接近物理定律的光照模型,它的所有计算方式和Blinn一样,但只是高光部分用了光谱计算。这在自然界的一些金属中可以看到高光的异常变化状况,但其实它并不使用,而且光谱计算要额外的运算,所以在Max和Maya中没有引入。

TOP

Ray gun for max3很久以前勇气来玩得冬冬,很不错。 现在应该有很新的版本了,但是我没有去找。你们可以去看看,速度很快,不错,做玻璃相当的好。
附件: 您所在的用户组无法下载或查看附件

TOP

几种渲染算法~~~~ Radiosity光能传递法 ========== 西方计算机界的定义:一种渲染法则,对场景中所有表面之间的光和 颜色的满发射都加 以计算。通俗的说,一个物 体反射的光可以着亮其他物体,该效 果就是光 能传递效果。 直接光计算: 有 间接光计算: 有 运算导致的场景结果:全局照明结果,即场景中无论直接光照到还是 没照到的地方都是 亮的,并且明暗符合一定物理规律。 场景渲染效果评判: 非常真实 适合的对象: 单帧图像,如建筑、环艺专业的效果图,不适 合动画 代表软件: Lightscape, RAD, Radiance, Luminaire Scanline Render扫描线渲染法 ============== 西方计算机界的定义:构成一张光栅图像的像素的水平行 直接光计算: 有 间接光计算: 无 运算导致的场景结果:只有被直接光照到的地方才是亮的,场景中不 存在光传递运算概 念上的非直接光。想使直接 光照射以外的地方亮起来,只能靠认 为的方法 在场景中设置光源模拟非直接光效果。 场景渲染效果评判: 不易真实 适合对象: 低品质要求场景,小场景 代表软件: 3D Stutio Max Indirect Illuminate间接照明法 =============== 西方计算机界的定义:是光能传递算法的简化,与光能传递遵循的运 算法则相同,但运 算量要比光能传递少得多 直接光计算: 有 间接光计算: 有,不充分 运算导致的场景结果:全局照明结果。场景中无论直接光照到的地方 还是没照到的地方 都是亮的,别且明暗符合一 定物理规律。 场景渲染效果评判: 较真实 适合对象: 较快(不同软件的情况不甚相同)单帧与动画 均可,是质量与速 度均可兼顾的最佳选择 代表软件: Enlight, Luma, Mantal ray Raytracen光线跟踪法 ========== 西方计算机界的定义:是一种渲染技术,用于定义可见表面和产生真 实阴影,反射和折 射。 直接光计算: 有 间接光计算: 有,不完全 运算导致的场景结果:部分全局照明结果,因为只计算高光反射,所 以照明结果有限。 场景渲染评判: 真实(定向使用) 适合对象: 最适合阴影以及金属,玻璃等反射、折射材质 的渲染。基本不会 被单独使用。 代表软件: Raygun 该方法一般被作为使用其他渲染方法的 软件的辅助内嵌功能使用。

TOP

光能传递渲染器到底给了我们什么? 一、说说什么是光能传递   曾经在视觉中国上有人问我什么是光能传递。我很好奇,在现在光能传递如此火热的时代竟然还有人连光能传递都不知道。但小日本的广岛研究所在80年代研究光能传递的时候中国又有多少做三维动画的人知道呢?   我虽然痞,而数学、物理又差,但在光能传递上我还是可以说上两句的。   我们之所以可以看见颜色,是因为可见光中包含了这无数种颜色的波长的光,如红色光的波长最长(可见光中)、紫色的最短。白色的则包含了大部分的光波,黑色的则只包含了很少量的光波。万事万物由原子或分子构成(指一般的事物),原子或分子在受光子激发后会吸收一定波长的光波,再把剩下的反射出去。我们的眼睛接受到了这些被反射出来的光、视觉神经就会识别出是什么颜色。那么,红色的物体则反射红色的光,蓝色的物体就反射蓝色的光,白色的物体反射几乎所有的光。   但要注意的是这些物体的表面是粗糙的,才只反射一定颜色,如果是光滑的,就会像镜子一样反射周围的影象。   为什么?因为粗糙的物体表面有很多不平的地方,光反射的方向就不一致了,受光的方向也不一致。而光滑的物体表面受光反射的方向都一致,所以可以完全把受光方向的光的信息反射到反射方向。   学渲染的人首先要接触材质。材质的种类很丰富——Blinn,Phong,PhongE,Lambert,Metal,Anistropic,Cook/Torrance等等。但如果完全按照上面所说的光的理论,那么就只需要一种材质——可以反射光的材质——就够了。所以FinalRender只有一种材质;而Lightscape虽然有多种材质,但它们都是同一种材质不同的参数罢了。以上的材质叫做经验模型。   接着说:当光被物体反射出来后,就会影响到周围的物体。这个步骤相信很多书或教材都有说到,我的另一篇文章也有详细描述,在这里我就不多说了。   光能传递分四种方式:非漫反射面——漫反射面、非漫反射面——非漫反射面、漫反射面——漫反射面、漫反射面——非漫反射面。   有人会说,这四种方式是不是重叠了?其实这四种传递方式一点也不含糊,每一种都有自己的特点和特性。

TOP

漫反射面——非漫反射面:这是一般的镜子的情况,从镜子里面看到反射方向的物体,就是物体对镜子的光能传递,光线跟踪可以很好的独立解决这一步。   非漫反射面——非漫反射面:这是从镜子里面看镜子的情况,但其中包含了镜子的形状因子对镜子传递的影响作用的复杂计算,一般的光线跟踪只能简单的模拟。   漫反射面——漫反射面:这是辐射的情况,Lightscape最擅长就是求解这中情况;Br,Mr所用的MC(蒙地卡罗积分)并不能很好的模拟,Fr的采样也在有的场景中有黑块的出现。   非漫反射面——漫反射面:这是Caustic的情况,可以通过PhotonMap求解,但也有精确度问题。   现在的软件,实际上都只能在相对独立的情况下分别解出这四种情况。现实中,这四种情况经常混合发生,会使光能传递变的异常复杂,这是现在没有可以完全求解的情况。   譬如,第四种情况的非漫反射面一定从某个方向承继了二次光源,所以计算时将先计算影响非漫反射面的光能分布状况,但影响非漫反射面的光能分布状况也受到非漫反射面的影响,就只能用逐步逼近的方法解算。这样将耗费大量的运算!   当场景中应用了贴图、BumpMaping、大气效果——大气中的微粒散射在理论上应计算入光能传递之内等效果后,计算复杂度将大得无法用普通的计算机计算!

TOP

二、商业光能传递渲染器的奥秘   既然计算量如此大,为什么还把这样不成熟的算法推出市场呢?用户可以忍受这样庞大的渲染时间吗?   渲染器的制造商很聪明,他们懂得人的眼睛对视觉分辨的能力十分参差,大部分的人都不会察觉画面很轻微的变化,所以他们选择牺牲画面质量!   我自己写出来的渲染器是严格按照逐步求精的算法解算的,没有“偷工减料”,当然计算的时间也十分长,但精度够高。在写的过程中我发现要牺牲画面质量十分容易,只要减少采样的数目就够了。正式的分布试光线跟踪要求16X16的采样才可以达到最小象素的损失,但一般的渲染器只提供2X2!如果你可以忍耐一两个月的计算时间(一帧),那么请试一下Mr或Br的16X16吧!我相信你一定可以做出别人无法比拟的画面效果来。   而且,象FinalRender这样的渲染器,投资了在光能传递的加速开发上,就必然减少了在BumpMap、Caustic上的开发力量,它的贴图能力就实在不感恭维了。

TOP

三、老外为什么不用   光能传递渲染器都出来了许久了,但用上的电影还不多见,除了FF,我就看不到其他的了。   这么好的东西,为什么聪明的老外不用?   老外不用当然聪明啦!   你想一下,光能传递会把大量的时间用在对镜头没有实际帮助的物体的计算上,那么导演会把主角用的服装、道具、化装用在演隔壁大妈的临时演员身上吗,这划算不划算!   FF用了光能传递是因为小日本人好大喜功,喜欢用根本不需要用的东西。看看Pixar多少年了还不在Renderman里加入Raytrace就知道了。 大多数的光能传递渲染器其实除了光能传递,在贴图、灯光控制、速度、材质、质感、颜色采样、景深、运动模糊等各方面都要弱(MentalRay除外),而这些才是三维创作真正所需要的关键。

TOP

四、我们的问题   为什么我们会有如此多的人对光能传递渲染器着迷?   这是历史问题。   最早一批的国内的三维用户恐怕是八十年代的吧。到95、96年左右,就是我第一次见到max的时候,国内才开始有一定规模的三维用户。要知道,这时候老外已经有很多年的动画经验,他们对于如何在扫描线的情况下模拟出真实的光能传递或十分真实的场景已经熟悉得如同小菜一碟了。他们就算,用3DS都可以做出十分逼真的画面。在哪里应该放多少盏灯,在哪里应该用什么贴图、如何用附加的色彩修饰贴图——等等——这是他们的家常便饭!   而我们呢?我们没有这样的经验,但如果我们处在与他们相同的起跑线上,我相信我们可以比他们做得更好!   但……现在处于初步发展中的我们比他们多了一样诱惑——不成熟的光能传递渲染器!这使大量的入门初学者崇尚“一盏灯理论”,就是无论什么场景,都只用一盏灯,或者谁的灯用得少,谁就是英雄!   还有态度问题。   大量的Br、FR作品涌现,还有VirtualLight的。这令很多人都喜欢用这样简便的工具。在画天的论坛上有一位朋友认为调几个参数就可以搞定了的渲染器是优秀的渲染器。   天啊,我们什么时候变得如此不专业?调几个参数、放一两盏灯就可以搞CG了,那我们这些日夜辛辛苦苦钻研的人在干什么?这是搞CG的态度吗?这可以使我们的CG健康发展下去吗?   如果我是老外,我要使中国的CG永远得不到发展,那么我就会首先向中国市场免费提供各种光能传递渲染器!   还有实用问题。   我们是如此的奢侈,用我们宝贵的机子来运算大量与画面无关的信息。老外有钱机器好尚且珍惜渲染的时间,而我们如果把那些浪费在等待光能传递结束的时间在做多一两个用心制作的作品上,我们的技术的进步会有多大多快呢?

TOP

长阿~ 头都看晕了smile_blush.gif

TOP

哈哈 棒啊 似乎有些内容以前杂志上看过了 精华贴 NICK兄可否链接到网站上面 我那天试了一下,失败了 还不是很懂那玩意!!smile_shock.gif

TOP

我才刚学3DMAX两个星期,这么深的看不懂啊,先存起来再说吧。

TOP

以后只是长文本的话用个文本附件发是否好一点呢

TOP

好东西,谢谢

TOP

 22 12
发新话题