Maya教程:顶级灯光环境设置教程(一)
来源: 作者:拾光
这教程全部使用Autodesk Maya8.5的MentalRay进行渲染
“幸福就像阳光:有光线的环境才让人感到舒适。”让我们开始这次由Otto Ludwing(奥托.路德)提供的案例练习.
欢迎共同讨论关于挑战制作写实3D室内环境的可行性。Maya Mental Ray的用户在开始这次封闭式训练的时候,一定又是习惯性的害怕起来,甚至会指尖冒汗^_^;因为这是一流的灯光环境制作训练。在这里没有任何其他的理由,你只需要为这场“战斗”准备一个战场指南(即本次教程),并且需要一点点的耐心和细心^_^。
好了,这一切为了什么?让我们看看这次练习的示范场景(图片1)
图1
像你所看到的一样,我们有一个封闭的房间;你能看到船的内部有一个舷窗和一个非常有特色的门。让我们想象一下那是一个没有装修的船的甲板舱,可供人们休息,那个楼梯可以让人们爬到甲板的上面。
从灯光的角度看过去,我们可以大概的分析那个灯光除了是从敞开的天花板照射进来的(就是楼梯伸到外面的窗口)还有从门和窗户照射进来的光。这些还不够,如果你曾经在这种条件下照过像你就会知道这些原理,即使有再好的设备,你也很难捕捉到灯光的瞬间来描绘这种特定的氛围。(气氛也是需要定义的,除了灯光自身的条件以外,像时间点、建筑结构、天气、周围生长的植物等,都会对气氛形成影响)
所以,在我们第一部分的教学中,我们将选择下面的特定的情节:我们的船,名叫“MS No-Frills”,停靠在地中海的突尼斯(北非国家)海滨;正值夏天,时间在午后,天气晴朗干净。这些都是我们在开始制作前需要知道的东西。
如果你打开这个场景,你会看到场景中还没有定义一个正确的视角。你可以自由选择一个你喜欢的透视视角或者使用我已经定义好的透视图摄像机视角。点击其中一个标签,所有相关的摄像机属性(位置、方向、焦距等等)默认的参数都会改变,这会给我们提供很大的帮助,当你改变了参数但是还没有提交的时候,也可以避免跟多于的摄像机之间弄混。
图2
在开始对场景设置灯光和渲染之前,我们应该稍微介绍一下关于实际生活中场景的明暗关系和色彩空间范围方面的技术性知识。如果你觉得这很烦,那你可以忽略接下来的两节内容,它不是必须掌握的,尽管如此,我们还是要讲解一下关于如何达到本次教程的最终效果。
关于阴影明暗关系的要点
你所看到的船上所有材质都是用Maya8.5中的新增的“Mia Material”进行创建的。这个材质被认为是Monolithic(取自希腊文字“Mono”,意思是单一的,并且“Lithos”,意思是象石头一样)接近建筑学上的用途,并且它能够被用来模拟我们每天所看到的大量的普通材质。与Maya默认的材质不同,大多数Mental Ray自带的材质,都能够执行精确的物理效果,优化镜面反射、透明和半透明效果,并能够提高用Final Gather表现封闭环境的细节,自动阴影效果和光子明暗效果,极大地优化和提高性能,而且最重要的是它使用起来真的非常简单。所有归结为一点----那就是“Monolithic”。因此我决定在我们的教程中使用它。
色彩空间范围的要点
就象你所了解的那样,通常你在计算机上看到的所有的照片和图象都是在sRGB色彩空间范围内。这是因为,举例来说,RGB值为200、200、200的颜色并不是像你预料的那样,是RGB值为100、100、100的颜色亮度的两倍。当然,在数学上是它的双倍值,但实际上不是。与简单的数学上的概念不同(像2x100=200),我们的眼睛无法在这种线性的方式下工作。这里告诉了sRGB是从哪来的….这个色彩空间范围示意图的数值成线性显示。这也是为什么许多图片没有正确的色彩空间范围却看起来很漂亮而且自然。然而,几乎所有的渲染工作者,除非我们告诉他怎么做,否则都不能分辨出这些熟悉的和正确的线性图象(因为这只不过是计算机的工作方式---线性数学)。许多人不知道这些,在渲染中用多余的灯光和周边的元素替代正确的色彩空间范围从而无意中导致这样的错误。在图片3和4里面,你能看到两张示例图片描绘了正确的线性(左边的)和sRGB色彩空间范围的之间的区别。在图片5中,你能看到用CG渲染同样的图片;你能注意到那个真实的线性看起来更假而且不自然。在错误的色彩空间范围内,即使你提高它的亮度,增加和减少对比度,你仍然不能达到真实的效果,特别是如果你不小心使用了sRGB参考纹理(也就是你能找到的几乎所有的数字图像),只会更增加整体的混乱。这是一个创建视觉效果上真实而自然的计算机图象的本质与关键所在。如果你跟着我学习到了这儿,并且你已经知道了使用正确的色彩空间,那让我们休息一会儿,喝杯咖啡或者可口的绿茶,享受一下快乐的生活-----这是你应得的!这些都是一些基本的知识和技巧。至于这些理论和观点在Mental Ray中是如何实际运用的,我们将在接下来的知识中进行说明……
那让我们开始给场景设置灯光……Maya8.5中提到,除了Mia 程序之外,还需要手动创建一个物理天光系统。这会让你设置一个自然的视觉环境变得更简单,并且我们可以将注意力更多地集中在灯光设置的审美上,而不必在意那些看起来很奇怪的颜色。天光系统从渲染全局面板上的Environment选项进行创建。如图6所示
图6
通过点击按扭,你可以创建以下内容:
a) 一盏方向光用来模拟太阳的方向
b) 相应的灯光材质mia_physicalsun
c) Mia_physicalsky,一个环境材质节点,与可被渲染的摄像机的Mental Ray环境相连接
d) 一个名叫mia_exposure_simple的调和图像色调的镜头材质
这儿还有一个值得注意的是Final Gathering的按钮也要打开
图7
现在我们有了一个默认的天光系统设置,已经为渲染做好了准备。在我们第一次测试渲染之前,一定要注意确保在正确的色彩空间范围内,默认情况下,我们在正确的线性空间内进行渲染(关于这个解释,请参考前面有关色彩空间范围的要点),但在现在的情况下,却不正确。我们所创建的镜头材质,无论如何也会把我们带进一个对整体渲染图片应用了2.2Gamma曲线值的接近于sRGB的色彩空间范围,就像我们计算的一样,通常情况下,这是一个好事情也是我们所期望的。但是如果我们用这种方法执行了Gamma校正,那我们将不得不取消我们场景中每一个单独纹理文件的Gamma值,这是由于事实上那些纹理已经有了正确的Gamma值(对任何8位或16位图像文件这通常都是正确的),并且在顶部增加一个Gamma校正,将使Gamma值倍增,而且可能消除纹理的颜色,这是多让人失望的事!
所以,我们也不得不去除每一张纹理文件的Gamma值(枯燥又乏味),或者我们用Mental Ray的内部Gamma校正替代镜头材质的Gamma校正(仍然枯燥却少了点乏味^_^)
如图8所示,我们在渲染全局面板中所设置的Gamma值,代表了我们的初始期望值,非常简单明了,因为这是Mental Ray的工作方式。1被数值划分(2.2接近我们的实际情况),等于0.455.同时,我们也需要移除镜头材质的Gamma校正,所以我们必须设置它的Gamma属性为1.0(线性等于没有校正;你可以从Hapershade的工具面板选择这些材质),因此,我们完全把Gamma校正移交给Mental Ray的内部结构,自动应用正确的“无Gamma值”给我们的每一张纹理,现在不必再担心我们的纹理颜色了。如果我们使用“数值”纹理无论是什么方式(像凹凸贴图,置换贴图,或任何一个比实际颜色更需要纹理填充的地方),我们都不得不为了精确的“数值”,去改变前面的Gamma校正节点,从而关闭它的内部结构来弥补我们所期望得到的Gamma值,将其填充进Gamma校正属性里面(注意:这个属性并不代表实际的颜色值^Gamma功能,它在一定程度上象征了我们所期望弥补的Gamma数值,也就是说,“反相”,或者让Gamma值交互左作用,---没有人总会告诉你这些知识,但是你可以现在把它学好)。这是一个长篇的理论,现在我们接着往下看
图8
我打开Final Gathering设置面板(图9所示)以使我们得到相对快速的聚焦,也就是说,快速的结果。同时将mia_physicalsun的Samples采样值将到2
图9
现在稍微有点暗并有一些错误(图10所示),主要是由于ray tracing(光线跟踪)设置不充足的原因。
图10
让我们提高普通的光线深度值(图11所示)和Fina Gathering光线深度值(图12所示)。我们也打开Secondary Diffuse Bounces(二次漫反射反弹)。然而,渲染全局中二次漫反射反弹按钮只能设置它们的反弹深度为1;我们想反弹两次所以我们选择mental ray设置存储中的实际的节点进行操作,它名叫“miDefaultOptions”。
图11
图12
你也可以在根据类型选择输入线上通过鼠标点击输入名称“miDef*”进行操作(上面的那个星号是专门为像我这样的懒人设置的搞怪的缩写^_^,如图13所示)。
图13
一旦我们选择了miDefaultOptions,所有的或多或少的mental ray设置的相关属性都会显示出来。还有一些东西是在mental ray Globals(mental ray全局设置面板)节点中显示,但是我们现在把焦点集中在miDefaultOptions的Final Gather 面板上。让我们把Final Gathering Diffuse Bounces属性设置为2(如图14所示)。这些光线的深度设置对达到本次教程的最后效果已经足够了。
图14
让我们重新渲染一下。仍然非常暗,但是你能感觉到间接灯光的照明已经足够了(不用担心阴影的细节,我们等会还会深入它),所以我们需要切实的以某种方式提高曝光的级别。
记住,我们仍然在很基础的默认设置下做所有的东西。过去常用的一种打开曝光度的方法是mia_exposure_simple里面的Gain属性,作为一个镜头材质与我们的摄像机进行链接,我们把Gain值提到0.5(如图16所示)
图16
现在好多了,并且更增加了自然的感觉(如图17所示)
图17
现在我们可以真正最终设置灯光和强调画面的美感了。在这一部分中,请不要对我选择的颜色设置感到不舒服-跟着你自己的感觉走!我旋转太阳方向到X -70,Y 175, Z 0以强调阳光照射方向的某些特定元素,另外我对mia_physicalsky材质的属性所设置的数值请参考图18。我把Haze的数值增加到0.5(注意这个属性值可以提到到15,所以0.5是很低的)。然后我设置 Red/Blue Shift到0.1,基本的作用是让白色平衡稍微泛红一点(要得到偏蓝色的效果调节为负值,比如-0.1)。同时也提高Saturation的属性值到2.0,这是它的最大值。接下来我稍微调整一下水平线,这样对整体的效果影响不大但是经过我的尝试发现这样的话我们的视线透过舷窗和窗户。
图18
最后我改变Ground的颜色。我给它一个偏绿的色调因为我觉得这样看起来更有湖水的感觉,并且我觉得这样更增添了整体的趣味性(如图19所示)。从我的角度看,这为我们实现一个地中海午后的景象打下了良好的基础。
图19
如果我们满足一般的视觉要求,我们可以开始为场景设置最后的渲染了。首先,让我们增加Final Gathering的质量,因为我们等会可以再次使用Final Gathering解决。就像你从图20中所看到的,我提到Accuracy值到64,但是更重要并且更特别的是阴影的细节,Point Density值现在是2.0。要得到一个密集的Final Gathering结果我们也可以提高Point Interpolation数值这样也不会丢失阴影的对比细节。同时我关掉了Rebuild设置,因为从开始到现在灯光的设置从没更改过,并且我们能因此决定反复使用现有的Final Gathering数值。
图20
让我们看一下(如图21)。就像你所看到的,阴影的区域仍然缺少一些细节,尤其是门所在区域。我们能很简单的使用一个新的、具有特殊环境计算(Ambient Occlusion)模式的mia_material工具来解决这个问题。你只需要检查材质中的环境计算(Ambient Occlusion),其他所有的东西都用默认的参数设置就非常好了。(我做的所有的事情就是设置那个距离到一个合理的数值以及稍微降低一点暗部色)。
图21
Mia_material材质的主要诀窍就是细节部分(让环境保持全黑色)。通过打开细节模式,Ambient Occlusion 只会对有问题的区域进行间接照明,避开传统的全局照明和看起来不合要求的Ambient Occlusion。参考图22提高细节以后的效果。
图22
要点:同时调整所有材质,从hypershade中选择所有mia_material材质,并且在Attribute Spread Sheet里面设置Ao_on属性为1(如图23所示)(Attribute Spread Sheet在这里打开Window >General Editors > Attribute Spread Sheet)。也要注意在Ambient Occlusion中开启材质的Final Gathering效果;它将在原来的基础上重新进行计算。如果你觉得Final Gathering计算时间太长,将Point Density从1降到0.5,这仍然会给你带来良好的结果并且灯光的细节也足够。
图23
现在让我们增加普通采样的质量Sampling quality(如图24所示)。采样级别现在是0(Min)到2(Max)之间,对比度是(contrast )0.05,Filter(过滤值)设置为Mitchell可以得到清晰的图像。
图24
最后但也同样重要的是,如果你仍然觉得由于镜面反射导致画面看起来不够真实,为了得到高级别的质量,提高mia_material材质的反射采样值(Refl_gloss_samples)到8。同样可以在attribute spread sheet里面去完成。
最后渲染的时候,我选择渲染分辨率为1024像素的32位floating point framebuffer,(浮动点结构缓冲),这可以在渲染全局(Render Globals)中进行设置(如图25所示)
图25
如果我想从GUI中得到正确的32位结构缓冲效果(批处理渲染除外),我需要在渲染全局(Render Globals)的Preview面板中打开Preview Convert Tiles选项,关闭Preview Tonemap Tiles选项
图26
重点:我也要选择一种恰当的图片格式,OpenEXR格式是一种非常好的浮动点格式,并且一直在到今天仍被广泛使用,让我们选择这种格式(如图27所示)
图27
当渲染32位图像的时候,你将在渲染视图中得到一些有意思的新奇的颜色,但是最终的图像是没有问题的---不必担心,渲染完毕后,你可以在你的projects images\tmp folder中找到你的图片。图28展示我最终的效果,一张为后期合成准备的非常棒的图像。
自从我们开始渲染一张真实的32位图像的时候,我们有了大量的自由时间可以去做很多事情。亲眼看看我的没有添加说明的附图,只需要提亮一点颜色。自己去做吧!
全教程完,学完记得交作业。如果本教程对您有所帮助,请推荐给你的朋友。
推荐教程
-
maya卡通汽车绑定与动画教程
wangchangcheng -
Maya教程:简单的室外场景搭建教程
admin -
Maya新手教程:角色快速建模步骤
admin -
Maya教程:在Maya中创建玻璃容器中的液体
admin -
Maya教程:线框白模渲染实例教程
admin -
Maya教程:CG汽车制作合成教程详解
肖壮悦 -
Maya新手教程:角色快速建模步骤
admin -
Maya教程:简单的室外场景搭建教程
admin -
maya卡通汽车绑定与动画教程
wangchangcheng -
Maya的粒子替换功能和高级的MEL命令colorAtPoint
-
教你用maya做逼真的车库场景
admin -
教你用maya做逼真街道场景
BrandonMartynowicz -
分享maya制作场景经验和体会