=《阿凡达》材质渲染解析《阿凡达》上映后,观众无不对其绚丽的场景真实的角色而感叹,那么制作阿凡达究竟有多么复杂呢?今天我就为大家来分析一下其中的奥妙。图000以女主角为例,我用已经做好的模型来讲解。这里我们不分析过于技术化的东西,我只给大家讲一些思路和方法,一般最终材质的效果可以用2种方法来实现:分层渲然+后期合成或者直接用贴图+材质网络,我们采用前一种方法,这种方法的优点就是制作步骤简易不繁琐而且很好理解,。图001(一)UV拆分UV的拆分我们就不过多讲解了,常者用一些插件诸如roadkill等等都可以。我一般不用任何其他软件或插件,直接用maya2009(包括之后版本)自带的UV命令可以快速完成UV拆分这一环节。图002(二)基础COLOR图的绘制我们仔细观察女主角的脸部可以了解到:她的脸部颜色为灰蓝色,上面还有蓝色的条纹和白色的点,这些都是阿凡达人的重要特征。我们首先来绘制基本色层。软件应用photoshop,bodypaint等即可完成。图003基本色调定下来以后我们就要把眼睛鼻子嘴等部位的基本色按照UV来进行定位。阿凡达人和地球人一样也具有皮肤的纹理,所以我们还要用真人的照片来作出一张皮肤纹理层来叠加上去。图004继续加深细节方面的绘制,加上脸部的条纹。图005把耳朵的纹理加上,脸部加深细节。图006现在我们来渲染一下,看看还有那些地方需要改进。打开maya新建立一个lambert材质球并直接在color通道上贴上我们刚才画的贴图。图007眼睛,鼻子和嘴没有细节,我们继续在ps里面把贴图进一步完善一下。图008图009嘴部有素材的话绘制时便会容易很多,注意色调的变化。过多的细节就不多说了,这个步骤对美术基础要求较高,多加练习即可。完成后效果如下图:图010图011渲染测试。(三)其他贴图绘制我们再次观察女主角的面部,可以看到面部皮肤不同的地方会呈现不同的纹理。这里我们如果直接在maya或photoshop里绘制会十分的不方便,所以我用zbrush来完成雕刻纹理,就是制作bump贴图的步骤。我用的版本是zbrush3.5R3版本。由于我们不雕刻大形所以直接细分到5-6级进行精细的纹理刻画。图012由于面部纹理每个地方不一样为了方便控制,我把面部的纹理分了4块来进行分别的雕刻,然后倒出贴图在maya里面进行结合。图013这部分重点在于对细节的把握上要分寸得当,尤其是面纹和眼袋,要反复捉摸。为了突出凹凸的效果我用了另外一个lambert材质球,只贴bump图并打了4盏灯。完成后如下图:图014下面我们继续制作高光图(specular)。面部的高光只有嘴部最亮,所以我直接用bump贴图来进行修改。高光图我们要注意面部皮肤的分布涵盖范围及泛光区域,所以如果直接用maya的材质球是无法完成我们的需求的。那么我考虑用MR的材质球来实现它的效果。新建一个misss_fast_skin_maya材质球,这个材质球也是专门做sss效果的最佳材质球,这里我们只用到他的spacular。测试高光渲染效果如下:图015(四)眼睛材质制作眼睛的模型是由2层nurbs制做的所以我们不能直接拆uv,那么现在我们就要用Asprojection的方式来把素材映射到模型上,导出来的贴图是纵向的眼球颜色分布,在photoshop里面可以继续修改。眼睛材质用color,specular,bump三张贴图即可完成。外面的高光反射球用全透明的blinn材质就可以做好,注意反射如果想要真实效果就要用到灯光贴图,配合环境反射即可达到最佳效果。下图为节点连接。图016实际渲染效果:图017(五)分层渲染分层渲染部分是重中之重。我们有几种方案供参考,这里我只用最传统的最基本的分层方法,当然如果你比较熟悉maya2009之后MR新加的RenderPasses那也是一个很好用选择。分层的基本思路就是:需要什么效果我们就用什么层。根据渲染的不同需要,我分了10个层(面部8层,眼睛2层),如下图所示:图0181.Diffuse漫反射层这个层主要的作用就是渲染出灯光对整个模型的影响,如果多于1盏灯(一般只会多不会少)那么就要考虑分开来渲染或者采用RGB纯色通道来把几盏灯的光线分开。我总共打了4盏spotlight,主灯1盏辅灯3盏,位置如下图:图019灯光位置可以参考原图打也可以自己自订,总之能体现出体积感是最重要的。Diffuse渲染的时候我用了最基本的lambert材质球,要把bump图贴上,其余没有任何贴图,把灯光用RGB三原色渲染的好处就是可以把每盏灯的光线分别提取出来,方便在后期里面调整。RGB三原色通道图渲染如下:图020图021以上就是分别提取后并合成的效果。2.Color基本色层Color层只要渲染出基本的颜色信息,其他非颜色信息都不要,比如阴影什么的都不能有。最简单的办法就是本层只用一盏环境灯ambientlight把环境阴影值ambientshade调整到0即可。渲染效果如下图:图0223.Specular高光层Specular高光在上面我们已经提及了,唯一要注意的就是和diffuse一样用RGB三原色灯把不同的光线通道分开。应用misss_fast_skin_maya注意把高光之外的属性全关掉,只开specularity的属性。图023渲染结果如下图:图0244.AmbientColor环境色层这一层AC层的主要作用就是混合环境对整体漫反射效果的影响,总的来说这一层作用很大,但是实际看起来效果或许并不明显,需要仔细调整。这层还需要开启几个辅助属性选项:MR中的间接照明Indirectlighting的基础图照明imagebasedlighting和FG效果方可帮助我们完成。在间接照明中,环境球的贴图最好用一张HDR图,它可以更好的体现出环境对模型的影响效果。图025图0265.Reflection反射层反射层就是制作模型上的反射效果,那么一般情况下皮肤上几乎是没有反射的,但是这层反射还是必要的,因为皮肤并不是完全没有反射,而是非常微弱的存在。这里我们用一个blinn材质color调节为纯黑色即可,周围和环境色一样的间接照明,但是不要开FG,并且要把刚才的4盏灯加进来。图0276.SSS(Sub-surfacescatter)次表面散射层Sss层的作用即是调整出次表面散射层的皮肤半透明效果,这里我们把sss单独提出来,分开渲染,可以更为有效的调整其效果。这层的重点在于sss材质球的设置,新建一个misss_fast_skin_maya材质球,把diffuseweight关掉,然后重点调整一下参数:背向散射Backscatter的4个数值和运算法则控制algorithmcontrol的2个数值。渲染效果如下:图0287.AmbientOcclusion环境自阴影层这层效果就是基本的AO效果,用maya渲染层中的默认效果即可。图0298.Eye_color/reflection眼镜基本色与反射眼镜可以不用单独来渲染,但是为了达到更好的效果,我把它分为了2层。图0309.Face_dot面部的白点大家可以发现我在面部颜色层贴图并未加入白点,是因为白点是不受阴影影响的并且有荧光效果所以分开来渲染的话会更好调节。图031(六)后期合成部分所有需要的层我们已经渲染好了,剩下的工作就是后期合成。后期合成是整个最终效果的灵魂所在,一个片子合成效果的好与不好关系到整个片子的成败,所以合成之关键要求我们所有人都要重视起来。那么合成的软件有很多种类,AE,Dfusion,Nuke等等。这里我用Dfusion来完成剩下的合成工作。Dfusion,全称DigitalFusion,是一款节点式的后期软件,目前最新版本6.0。打开Dfusion,我们建立10个读取(loader)节点把之前渲染的10张图全部导入进来。第一张图是我渲染的RGB的diffuse层,要利用纯色把灯光通道分开,所以建立3个通道布尔运算(ChannelBooleans)节点分别把3个通道用RGB三色分开,之后再用2个ChannelBooleans节点把颜色用加法(add)合成到一起。如下图所示:图032接下来分别把环境色层和自阴影层添加到合成中,创建2个合并(merge)节点,环境色用screen叠加方式,自阴影用multiply。图033中间可用一些校色节点来进行辅助调整。下一步我们要把sss效果合成到里面,这里面用到一个技巧,利用正负加乘方式我们可以把sss的效果单独加上去,具体操作是建立一个色彩空间(colorspace)节点并把模式开为反向色(negative)然后把其与刚才的merge2节点再利用一个merge节点multiply叠加到一起,其后用channelBooleans把sss层和merge3相加(add),我们就会得到一个具有sss效果的图。图034我们再把color用multiply叠加到上面。图035接下来我们把高光处理好,方法和diffuse层是完全一致的:图036我们再把反射用merge的screen方式叠加上去。图037下面我们就可以把颜色部分和高光部分和起来:新建channelbooleans节点并把2个merge节点相加。图038这其中我用了2个校色节点亮度对比度(BrightnessContrast)和颜色校正(ColorCorrector)来调整效果。最后把眼睛和面部的白点部分加上:图039这之后我还做了不少校色和贴图调整的工作,想要出好的效果并不是很容易,最终效果及节点如下所示:图040图041(七)其他配件物品最后我们简单制作一下头部的其他配件并加上一个背景。效果如下图所示:图042