这是一篇偏于2D风格的MMD渲染笔记 4

大家好,我是已经一年没更新过专栏的MMDer番茄炒蛋拳。这期就来一点新手进阶的干货来当作我更新了下本系列了吧(摸鱼)。本期专栏面向比较新人的mmder,侧重于metalial.fx文件中利用材质贴图进行渲染。如果有专业软件使用经验以及绘制专业材质贴图的大佬可以忽略本期的专栏了(其实也可以看看......)。知识面更偏向使用MMD的RAY-MMD渲染,其他渲染也可将此文章作为参考。
本期就用战双帕弥什的模型来做讲解,并选择游戏中的角色深痕·比安卡的涂装拾梦白菀作为模特来进行渲染。
首先我们先粗略了解一下什么叫材质贴图。
如果要具体说材质贴图是什么,要用一堆很长的术语才能解释得了。这里简单来说就是能够更好地表现、改善渲染效果的专业贴图。其中包括法线贴图(normalmap)、环境光遮蔽贴图(ambientocclusionmap)、真实物理渲染贴图(PBRmap)等(其中真实物理渲染贴图就包含了粗糙度贴图roughnessmap、金属度贴图metallicmap、反光率贴图specularmap等)。在三渲二中我们基本上会用到其中的NMmap、AOmap以及PBRmap。由于战双模型的配布中只包含前者三种,其他贴图暂不作讲解。我们需要注意的是不同的渲染引擎或者画面设置会影响每种材质贴图的表现形式。
我们为什么要用到这些材质贴图呢?答案是为了提升画面的各种表现力,低情商说法就是为了好看啊!

下面将讲解上面三种贴图在RAY渲中的用法。
首先,先将材质文件material.fx复制多份,并分别命名赋予的材质位置。并用记事本等文本软件打开。
因为是三渲二,我们首先将108行的#define CUSTOM_ENABLE 0 改为 #define CUSTOM_ENABLE 8,开启raytoon模式。

接下来简单说明这三种贴图在本篇专栏渲染的作用:
NMmap:描绘模型材质轮廓,表现更多模型细节
AOmap:更好表现模型阴影的轮廓以及阴影变化
PBRmap:表现材质的金属性质
我们来看AO贴图在RAY-MMD三渲二中表现的效果:
事前我们需要来到材质文件中,在第9行调好基础色albedo以及第126行的阴影色customB,尽量能凸显明暗分界的程度就可以了。


接着来到第110行中的阴影面积customA,我们需要启用该模式并利用AO贴图描绘模型阴影以及材质轮廓。在使用之前我们需要使用Photoshop或者其他专业图片软件对AO贴图进行通道的查看(即RGB通道,每种AO贴图RGB通道表现的效果各不相同,甚至有可能将多种效果合为同一张AO贴图)。由于每种渲染所设定的通道效果不相同,所以若有其他游戏的该类贴图请咨询专业人士相关知识或自行尝试解惑。

回到正题。我们先在第108行将 #define CUSTOM_A_MAP_FROM 0 改为 #define CUSTOM_A_MAP_FROM 1,开启贴图模式。在第113行中的双引号里填入贴图的名称与路径。

由于战双帕弥什的AO贴图表现阴影的是绿色通道(G通道),所以我们将第111行的 #define CUSTOM_A_MAP_SWIZZLE 0 改为 #define CUSTOM_A_MAP_SWIZZLE 1 开启G通道读取(0为R,1为G,2为B,3为A),并将第110行的 #define CUSTOM_A_MAP_COLOR_FLIP 0 改为 #define CUSTOM_A_MAP_COLOR_FLIP 1,使阴影颜色反色,渲染前后如下图表现。



如果我们想要阴影变化更加平滑需要怎么做呢?
这就需要调整第73行的OCCLUSION_MAP了。如上面步骤在贴图引用行中填入贴图的名称与路径,将 #define OCCLUSION_MAP_FROM 0 改为 #define OCCLUSION_MAP_FROM 1,#define OCCLUSION_MAP_SWIZZLE 0 改为 #define OCCLUSION_MAP_SWIZZLE 1,模型方向调整后我们发现阴影太重了。

这时候需要更改环境光遮蔽的采样模式,将 #define OCCLUSION_MAP_TYPE 0 改为 #define OCCLUSION_MAP_TYPE 2,利用sRGB色彩空间来进行采样,然后将 #define OCCLUSION_MAP_APPLY_SCALE 0 改为 #define OCCLUSION_MAP_APPLY_SCALE 1,开启自定义编辑模式,再将第80行的 const float occlusion=1.0 开始赋予参数。

同时我们可以回到阴影面积#define CUSTOM_A_MAP_APPLY_SCALE 0处改为1开启自定义模式,同样对 const float customA = 1.0 开始赋予参数,直至调为理想状态。


接下来我们来看法线贴图在RAY-MMD中的表现。下图为法线贴图,注意的是不同的渲染引擎该图表现的凹凸性质在RAY-MMD里表现会相反(如原神的法线贴图)。若有这种情况请自行在Photoshop中对具体效果的颜色通道(RGB通道)中的单通道进行反相后保存使用。

回到第28行法线贴图部分,我们将 #define NORMAL_MAP_FROM 0 改为 #define NORMAL_MAP_FROM 1,填入法线贴图的名称和路径后,给 const float normalMapScale = 1.0 赋予参数后,观察材质的效果变化,并调整为理想状态。



最后我们来看看PBR贴图在RAY-MMD中的表现。下图为演示所示的PBR贴图。

首先来到第44行中的Smoothness部分里,从拆分PBR贴图的通道中我们了解到R通道在反相后才能用在RAY-MMD中,填入修改后的PBR贴图的名称与路径后,将#define SMOOTHNESS_MAP_FROM 0 改为 #define SMOOTHNESS_MAP_FROM 1。然后对 #define SMOOTHNESS_MAP_APPLY_SCALE 0 的数值改为1开启自定义模式,并在const float smoothness = 0 中赋予参数,观察效果变化,并调至理想状态。

同理来到第54行中,将金属度Metalness开启后,从拆分PBR贴图的通道中我们了解到G通道能用在RAY-MMD中。填入原来的PBR贴图的名称与路径后将 #define METALNESS_MAP_SWIZZLE 0 改为 #define METALNESS_MAP_SWIZZLE 1 使用单通道模式后并开启自定义模式和赋予参数后观察效果变化,并调整至理想状态。



好了,本期专栏主要是讲解了一下材质贴图的用处以及不同材质贴图在RAY-MMD中的使用办法。对于RAY-MMD的metalial部分,有其他疑问可参考上期专栏文章。
上期文章指路➡这是一篇偏于2D风格的MMD渲染笔记 3
到此本期专栏要收尾了,感谢大家看到最后。祝大家的渲染更上一层楼,做出更美妙的作品(不要学我当摆烂人)。
—————————————————————————————————————————————
感谢一下配布物作者:
model:战双帕弥什/白泽
MME:Rui