卢鹏

角色美术:Evil 3D 引擎材质设置流程


概述

本文将通过讲解一个次时代角色(模型贴图由秦时项目组提供)的材质设置流程,来介绍Evil 3D引擎材质面板各个参数的意义。
image

3D模型输出

打开3ds max文件,确认模型没有问题(参看《3D模型导入规范》),该角色模型分为5个部分,共5个材质球每个材质都包含颜色贴图,高光/glossy贴图,法线贴图,分别放入相应的贴图通道,导出设置如下,然后点击导出awd文件。
image
image

灯光以及材质粗调

1.打开awd文件,如图,右上角按钮有闪动,提示xx没有切线,是因为我们模型使用了法线贴图,因此需要记录切线,一般来说如果不使用法线贴图则不需要勾选切线。
image
2.如图,选择左侧Geometry选项卡,选择所有Geometry,勾选切线。
image

3.调整材质之前,先打灯光,如图,选择左侧Lihgts选项卡,新建直射光directionalLight1,设置如图,其中环境光颜色设置为RGB(118,124,127),颜色偏冷,灯光颜色设置为RGB(255,237,188)(这里灯光颜色以及环境光颜色可以根据实际需要设置),然后新建一个灯光拾取器LightPicker1,并将灯光拖到LightPicker1下面,勾选影响所有模型 :
image
image

4.如图,打开材质选项卡,选择所有材质,统一初步调整参数,Ambient Level:1.0 ;Ambient color(255,255,255);Diffuse Level:1.0;diffuse color(255,255,255);Diffuse Accumulation:0.2;Specular Level:1.5;Specular Gloss:30;Specular Color (255,255,255)。材质粗效果如图所示:
image
image

材质细节调整

BRDF光照模型

1.完成材质初步调整之后,需要进一步调节材质细节质感,这里以身体衣服部分材质为例讲解,讲解两种不同光照模型下的材质调整,选择衣服,进入材质调节面板,对应的diffuse 贴图,高光贴图,和法线贴图已经贴好,这里需要将法线贴图设置下,如下图所示勾选,标记为法线贴图。在调整材质之前,需要先选择光照模型,这里选择BRDF光照模型,并选择GGX类型,此时模型材质发生变化,高光变平了,需要进一步调整。
image
image

2.打开Color&Textures选项卡,我们需要针对高光部分进行调整,高光主要由4个部分控制,其中Specular level ,specular Color和SpecularTexture的RGB通道控制高光的颜色以及强度,而Specular Gloss和Specular Texture 的Alpha通道控制高光的聚集度(也就是gloss贴图放在高光贴图的alpha通道),因此在制作高光贴图的时候我们通常需要处理高光的RGB颜色和Alpha通道。通常如果一张贴图上面有不同质感的材质时,才需要用到alpha来区分不同材质的质感,如本例,贴图上面有金属,皮革和丝绸质感的部分,高光的强度以及聚集度是有所不同,如下图,金属的gloss颜色比较白,布料和皮革的gloss颜色相对较黑;需要注意的是高光贴图的alpha通道不能有颜色为全黑的像素,否则在dx11模式下会有bug产生。
image
3.先将diffuse颜色临时设置为黑色,排除漫反射影响,然后调节高光的各个参数,达到理想的高光效果,具体参数如下图所示:
image
4.然后将diffuse color调节至合适的亮度,如下图所示,衣服材质已经有了不错的效果。
image
5.按相同的流程调整其他材质,最终效果如图所示
image

Phong光照模型

1.Phong是一种比较常用的光照模型,在引擎中高光部分的调节参数流程基本一样,不同的只是参数数值的不同,先将光照模型切换成PhongSpecularMethod,衣服材质高光部分的参数设置如下:
image
image
2.将diffuse color设置回来之后,效果如图所示
image
3.phong光照模型最终角色效果如下图所示:
image

##材质面板参数详解
如图材质,材质面板分为5个选项卡:General,Colors&Textures,Lighting,Shading,Effects;
1.General选项卡
image
Repeat选项
贴图重复,如取消勾选,贴图的取值范围限制在[0,1]的空间
Smooth选项
贴图平滑,可减少压缩贴图的噪点
Anisotropic选项
各项异性抗锯齿,共有2,4,6,8,16倍级别抗锯齿,可是贴图更为清晰。
Mipmap选项
贴图层级显示,勾选后,贴图会根据离镜头远近匹配贴图尺寸,会增加一部分内存开销,但是会减少不少显存开销,并可以减少远景贴图尺寸过大带来的闪烁问题
Bias选项
偏移,配合mipmap使用,默认值为0,调节mipmap贴图的层级显示,在相同距离下,偏移值为负值的贴图显示更清晰,反之更模糊。
Alpha Threshold选项
简单透明阈值,用来制作镂空材质,alpha值小于这个阀值时,alpha test后,像素被剔除,从而实现镂空效果,非黑即白,没有半透明过渡,但是由于写入深度,不会出现排序问题。默认值为0,即不做任何剔除操作
Render blend pass选项
渲染混合pass,当alpha Threshold不为0时激活,用来做双pass材质。一般用来制作头发,用来弥补alpha test无法半透明过渡,而alpha blend无法写入深度进行准确排序的缺陷。具体原理就是一个pass用alpha test写入深度保证大体排序正确,另外一个pass用alpha blend保证半透明过渡。
Blend mode选项
混合模式,共有normal ,layer,add,Multiply,alpha ,screen几个选项,normal即为正常模式,不进行alphablend操作,layer 为透明混合,和alpha test类似,但是有过渡,默认不写入深度,其他几种混合模式同样默认不写入深度
Write depth选项
写入深度,默认值为auto,一般不做修改,true为强制写入深度,false为强制不写入深度。
Depth compare mode选项
深度比较模式,默认值为lessEqual小于等于,像素值深度小于等于当前缓冲区像素深度,则该像素被写入,表现效果为离摄影机近的物体被显示。这个选项一般不做修改。
AnimateUVs 选项
控制UV1的动画。
Animate SecondUVs
控制UV2的动画
Accept Shadows
控制使用该材质的模型是否接受阴影
Pure color id
一般用于标记地表类型,比如用来控制不同材质地表的脚步声。

2.Colors &Textures选项卡
image
 Ambient level 和Ambient Color
环境光级别和环境光颜色,两者是乘法的关系,一般来说这个值建议修改为1.0和(255,255,255),因为环境光还可以通过灯光设置,一般一个场景的环境光是相对统一的,通过灯光统一控制相对比较合理,当灯光切换后,材质依然可以保证相对正确,当然这两个值根据情况稍作微调。
Diffuse Accumulation
这个值是Evil3D引擎特有的,用来控制材质受灯光影响的程度,但这个值越大,材质光影会越平,在制作构成中,角色可能会处于不同的光照条件下,一些场景灯光比较昏暗,会导致角色材质会变得很暗,虽然符合物理常识,但是不符合审美需求,因此可以将调整这个值到一个合适的强度,保证角色不会变得很暗。类似于Emission。
Diffuse level、diffuse color 和Diffuse Texture
三者是乘法的关系,控制漫反射颜色,和普通3d软件一样。
Specular Level 、Specular Gloss、Specular Color和Specular Texture
这些参数是控制高光强度以及高光的聚集度(高光范围或者光泽度),specular level、specular color和specular texture的RGB通道,三者乘法关系,共同控制高光强度和高光颜色,specular gloss和specular texture的Alpha通道,两者乘法关系,共同控制高光的聚集度。
Specular 2nd Level 、Specular 2nd Gloss、Specular 2nd Color和Specular 2nd Texture;Invert Normal
主要用来制作第二层高光,使高光层次更为丰富,相当于max中的Multi-Layer,用来做一些特殊材质,一般不轻易使用;Invert Normal 针对第二层高光使用,相当于把法线贴图反转,这里使用场合基本仅限于眼球材质。
Normal texture
法线贴图,这里记得给法线贴图勾选法线类型

3.Lighting选项卡
image
选择lightpicker,确认材质受哪盏灯光影响
4.Shading选项卡
这个选项卡,用来选择一些不同光照模型,这里不做细节介绍了。
image
5.Effect选项卡
这里用来添加一些特殊的方法,常用的有VertexColorMehtod(顶点色方法),RimLightMethod(边缘光方法),lightmapMethod(光照贴图)
image

PS:

① 材质设置的一个基本流程就是,先确认灯光,然后调整光照模型,粗调材质,最后细调,最重要的部分是高光的调整。
② 引擎中控制材质环境光的位置有两个地方,一个是材质本身的环境光属性,另外一个是灯光上的环境光属性,在实际操作中建议固定材质上的环境光属性,把灯光上的环境光属性作为变量,这是因为不同的场景的主光源肯定是不一样的。这样当角色材质在不同光照条件下,才会有一个合理的让人信服的效果。
③ 本文为Evil 3D引擎材质设置流程。如果有疑问或者错误不足之处,请和TA组联系!欢迎交流!