【结构简析】
Maya环境中,通常使用三种贴图:2D贴图,3D贴图以及Env环境贴图。3D贴图是由Maya内置的3D纹理节点生成,在这就不做讨论了,一般用于生成特殊的程序纹理;环境贴图与3D贴图类似,所不同的是环境贴图无明确的空间范围,常作为场景中的环境特效构成;2D贴图是我们最常用的贴图方式,也就是导入平面图形格式到模型的材质属性,如漫反射,高光,反射等。
以效果表现来看,2D贴图又可分为材质贴图,凹凸贴图和置换贴图三种:
材质贴图SurfaceMaterial表现的是模型的纹理构成;凹凸贴图BumpMap以虚假的起伏效果来丰富模型表面;置换贴图DisplacementMap则改变模型的表面结构,形成真正意义上的凹凸效果。
NormalMap法线贴图,在Maya中属于BumpMap凹凸贴图计算起伏效果的方法之一(Bump,Normal),包括Tangent Space Normals(切线空间法线)和Object Space Normals(物体空间法线)两种表现方式。
构成图如下(仅个人观点,不作权威认证……):
动画常用Bump方式进行起伏效果的模拟,而游戏因为特殊的硬件要求,采用的是Normal法线贴图(图形硬件渲染总是要比软件渲染快得多)。Bump方式是参考贴图的AlphaGain(透明增益)计算的起伏效果,而Normal方式则计算物体法线方向来实现起伏。但无论何种方式,都不能真正意义上实现物体凹凸,尤其是表面起伏较大的凹凸。至于法线贴图的构成机理就不做分析了(除非你想在2d的绘图软件如Photoshop中完成3d法线贴图的绘制……),我只以实际效果进行说明。
1. 首先,创建两个“经典”的球体(无论是动画还是建模,球体是众人青睐的对象……)
2. 赋予球体Lambert材质后,将fractal(碎片)节点连接到BumpMapping节点上;接着点击材质属性面板右上方的“GoToInputConnection”按钮
,进入“输入连接”的节点-bump2d
3. 保持左边球体的UseAs默认方式,即Bump;将右边的球体的UseAs更改为“TangentSpaceNormals”
4. 此时,保持默认场景照明的情况下,进行高质量显示来观看模型的变化(视图上方菜单Renderer->HighQualityRendering):
Bump贴图方式显示出物体表面的起伏效果;Normal方式起伏效果不明显,仅以物体颜色显示,这是因为法线贴图是以彩色进行识别的,当前图片信息不足
5. 先不管凹凸效果的问题,继续测试。将右边球体UseAs更改为ObjectSpaceNormals,我们发现:当旋转摄像机方向时,球体表面的光影发生了异常(旋转球体同样)。由此我们可知:TangentSpaceNormals能在活动中保持正常的光影关系,而ObjectSpaceNormals会发生光影错乱,只适合静止状态。以游戏来说,O模式可作为场景贴图,T模式则用于可动角色。
*如果此时使用MayaSofeware和MentalRay渲染效果是一样的,而用MyaHardware渲染结果和场景中看到的高质量显示也差不多
6. 给场景加入一个光源DirectionalLight,将光源属性的阴影开启:勾选UseRayTraceShadows(启用光线追踪阴影),并启用渲染设置中光线追踪渲染:勾选Raytracing
7. 为了便于观察,将灯光的ShadowColor(阴影颜色)调至中等灰度,然后执行渲染
8. 通过渲染漫反射及光影的渲染对比(注意左下方的明暗纹理),我们可以看到Bump贴图和Normal贴图均不接受光影,也不产生光影(光影效果由模型轮廓接受)
【法线贴图的制作】
相比ZBrush,Maya无法承受太多面数的模型,且模型雕刻工具功能不强,因此在Maya中制作法线贴图意义不大。
以下仅简单介绍流程
1.制作两个轮廓差不多的模型,target object(目标物体)大小要略小于 source object(源物体)。目标物体就是我们的低面数模型,源物体是高面数的复杂模型。
2.进入Rendering模块下,执行Lighting/Shading->TransferMaps…,弹出新的功能面板
3.选择低面数的source object(目标物体),点击SourceMeshes下的AddSelected按钮,保存目标物体的信息
4. 选择高面数的target object(目标物体),点击TargetMeshes下的AddSelected按钮,保存目标物体的信息
5.点击OutputMaps下的Normal图标,更改MayaCommonOutput下的贴图分辨率,然后点击Bake进行法线贴图的烘焙。
6.当Maya计算完毕,法线贴图已经自动连上了物体材质的Bump节点。但此时观察到,法线贴图完全不对。
7.这就是开始我们所忽略的地方了。Maya需要保证模型顶部位于同一水平线,其次是Transfer in(转换模式)的选择。默认Transfer in是World模式,这就要求模型必须是重叠一起的;否则就要选择Object物体模式;UV模式是以上两者的结合。
我打算使用World重新烘焙法线贴图,因此将模型进行简单的重合
*AdvancedOptions下可对烘焙的方式进行细调
8.成功烘焙。因为分辨率设较低,因此过渡不够平滑。
9.将法线贴图以TangentSpaceNormals的方式连接模型的Bump节点,然后启用高质量显示(毕竟模型差异较大,因此法线贴图所表现的凹凸达不到那么多细节)
10.布置好灯光,对比MayaSoftware和MayaHardware的渲染效果
如果此时将UseAs改为Bump,我们就看不到明显的凹凸效果了。由此可知,Bump需要很高的细节才能在Hardware渲染中表现出来。