1.2 材质与贴图

来自Infinitipedia
跳转至: 导航搜索
Bbsm.png 小提醒:假如你需要更多资讯,可以参考此页面的中英对照版本

此版本为班班校订的简化版,完全版请点我查看

上一页
下一页
Pro warn.png
以下文章含有许多未注解专业内容,可能包含比较多的相关领域专业知识,对于刚接触的阅读者可能将不是一篇客观易懂的文章,为了更加掌握此文章所传达之内容,建议你可以透过搜寻引擎或者Infinitipedia中类似领域比较入门的文章做参考。我们未来尽可能会为此文章多补充更多资讯,让这篇文章更加平易近人,简单易懂。

同时若你对这方面领域有所研究,我们也欢迎你参与编辑更多内容来达到此一目的。


基本

由于Infinity的游戏引擎主要模型美工架构是由3DS MAX的环境去开发的,所以以下我们会以3D MAX为主要的说明导向。

材质大小

  • 所有小于100米的的飞船使用:2048x2048(即使这艘飞船只有10米)
  • 所有大于100米的飞船使用平铺材质。

关于贴图制作的一些简单解释:by Kickman

1.高模(5万面以上)
由于INF的特殊规则导致INF的舰船模型在高模的情况下UV会非常碎,要比正常的模型要碎的非常多的多的多,所以在这种情况下,通常是无法像展开低模一样的去展开的INF的高模的,所以必须使用平铺贴图,也就是我们给模型一个UNMAP UVW,在其中选择BOX模式,并且将长宽高都设置成一样的,你会发现所有面被堆叠起来,而且完全看不清楚,但这并不要紧,这只是为了给不需要处理的面附加正确的材质的动作,比如大型飞船的主材质,你可以调整长宽高使之看起来重复,但是又不过度的重复
在这样的动作之后,我们塌陷UNMAP UVW堆栈,然后选择部分需要仔细分UV的面去单独分UV,比如圆形的部分(大的曲面部分),推进器等,此时我们可以将这些需要重新分UV的面单独出来,一般的方法是将这些需要细分的面直接DEATTACH出主体,然后挑选需要分UV的部分处理,那样我们可以避免大量复杂需要分UV的主体面 (适合几乎所有复杂模型)

2.中模(2-5万面)
你可以参杂着用,因为面不再那么复杂,而且曲面多的情况下,你依然必须手动的去分UV,所以大可以按照低模的方式去处理,但是也许你会觉得很多面还是很复杂,而且没有必要的去手动分,那么你也可以参看方法1去做自动的UV区分
(不适合人马那些曲面特别多的模型)

3.低模(这里说的低模其实不是那种小于100米的,面数会在5000-2万之间)
这里我建议为了保持UV质量,还是以手动区分为主,因为很多时候,我们大多数人在这类船周围转悠的时间最多
那么我们可以摒弃一些太小的细节部分(比如说突起物的侧面),我的选择是先把他按照方法1给予一个整体的,但是没有细节的材质,就像标准的水泥地平铺材质,之后选择材质时则以与这些接近的为主,此时我们只去手动区分大的整体面就可以了
(最好都这么做,但是船太大会很花时间)

地面载具和武器使用稍低分辨率的材质:

  • MK1-: 512
  • MK2: 1024
  • MK3+: 2048


Tranlate warn.png
以下文章含有许多翻译的中文文体,这些文章是由英文或者其他语文所翻译过来的,可能有部分未完成,且一些文句可能带有翻译误差,或者专有名词翻译错误,也有可能带有一些地方性的特殊用语,所以文章的文句可能不是非常通顺的中国文体,对于其文章原文时期的原先意义,因为翻译文章文字传达上的不同,可能因此会有差异。

不过我们依然欢迎你,编辑或者修订部分内容来让此文章更加适于中文阅读。


复合材质

    • 简单来说:一个对象(object)必须使用相同的材质分配;换句话说:每个材质需要相同的贴图类型和数量。详细请浏览这里

在3D MAX中,当你准备要给你的模型贴上材质或者贴图的时候,往往会打开如下的视窗,叫做材质编辑器。如图中所示,其实Infinity引擎所呈现效果的概念,类似于3D MAX,其中作用相同如下面,我们会一一解释。这是关于在I-Novae引擎上的多数着色方式所使用材质类型的摘要,对于Infinity的美工流程而言,是相当重要的必备知识。

3dsmax中材质通道的选择

  • 漫反射贴图(Diffuse map)(在官方材质包中贴图名称后简写为d)放在Diffuse Color通道中
  • 高光贴图(Specular map)(简写为s)放在Specular Level通道中
  • 自发光贴图(Self-illumination map)(简写为i)放在Self-illumination通道中
  • 凹凸贴图(Bump Map)(简写为b)或法线贴图(Normals Map)放在Bump通道中
  • 混色贴图(Miscellaneous map)(简写为m)放在Reflection通道中
  • 环境光贴图(Ambient map)(简写为a)放在Ambient Color通道中

漫反射贴图(Diffuse map)

含有RGB(红绿蓝)颜色的材质,也就是负责为模型单纯着色的贴图。没经过其他滤净效果或者其他贴图通道改变模型所呈现的表面贴图,一般而言,你往往需要下比较多工夫制作的是这个材质通道。

凹凸贴图与法线贴图

凹凸贴图(Bump Map)

主要是显现模型的的表面凹凸纹理,比如说石头表面粗糙感,金属物件上的焊接线,他们运作的原理并不复杂,主要是以黑白深浅不同最为深高度衡量,分为0-255不同的阶层,对应着255个不同的平面Z轴高度值。

主条目:凹凸贴图

法线贴图(Normals Map)

可以解释为凹凸贴图的加强版,对于光影和凹凸的表现有更精确的表现,主要是RGB色码,对应( X, Y, Z )不同的偏移值。

主条目:法线贴图

须知

值得一提的是,在I-Novae引擎中,两种纹理贴图的使用是处于同一个通道,也就是两者不能共存,你放入凹凸贴图作为深度的纹理滤镜(Shader),那么你就不需要再去制作一个法线(normal)贴图,反之亦然。

高光贴图(Specular map)

也可以称为光泽度贴图(gloss map)。这是一种灰度贴图(grayscale map),决定着各个像素(texel)的反射强度。黑色意味着完全没有反射,相反白色意味着最大反射。反射光照用于金属和塑料表面的最亮区。运作原理类似于凹凸贴图。

主条目:亮光反射贴图

自发光贴图(Self-illumination map)

基本

同样的,也是看灰度,越黑的地方越暗,越白的地方越亮。

这种贴图也属于灰度贴图(grayscale map),决定着上色材质的固有发光属性。例如:一艘船的外壳材质可能包含一些小窗户。自发光贴图在属于窗户的上会是白色的,而其他地方都是黑色。自发光贴图不会包括任何高光(bloom)效果(模糊边缘),因为这种效果是引擎加入的实时特色。

同样注意,自发光效果也不适应用在像素(texel)的动态效果(比如推进器)。推进器如果在游戏中使用时,才会加入其效果;如果你把自发光效果加到推进器上,那推进器在处于停机状态时还会发光。

须知

通常自发光贴图是选择性的,若你没有特别指定,那么引擎在生成时会自动指定一张全黑的,也就是完全没有自发光的材质。

主条目:自发光贴图

不透明度贴图(Opacity map)

这种贴图属于灰度贴图,用于决定哪个是不透明的(白色)或透明的(黑色)。取中间值(灰色)是可以的,I-N引擎可以支援非常复杂的透明度设定,不过透明请斟酌使用,因在不同显示卡对于透明贴图的处里有不同的结果,有是会出现比较异常的结果,特别是在两个带有透明的物体或者面重叠的时候。

主条目:透明度贴图

环境贴图( Ambient occlusion map)

这种贴图在Infinity中,通常我们不需要去对他去做额外的更动,这一层贴图,是自动生成的,一般而言我们不需要去刻意修改他。

主条目:环境贴图

混色贴图(Miscellaneous map)

混色贴图的运作结果,红和绿是对应两种船舰颜色,蓝色则是对应脏蚀贴图

混色贴图主要是做为贴图色阶变化时使用,比如说,同一型号的船舰,玩家可以自行决定他的船壳颜色,变色的区域通常便是以该贴图通道当作参考。

须知

这个贴图是选择性的,若玩家不做特别安排,系统会自动生成,也就是说你的船舰不会特别变色。在Infinity中,混色贴图主要由二个部分构成,这二个通道分别对应的是(R,G,B)值,值越高,对应的效果越强,若为黑色,代表为0,这个部份的贴图就不需要做混色处理。

混色通道

混色通道的结果跟对应效果可以参照右图,在Infinity中,玩家可以自订两种船舰的颜色,红色R和绿色G的数值来决定。红色是主要的船舰颜色,绿色则是次要的船舰颜色,蓝色则是脏蚀贴图。

自定义颜色

在游戏中,玩家可以去选择一个第一和一个第二自定义颜色。材质的不同部分(诸如涂装)应该接着彩化那些第一和第二颜色。

为了达到那种效果,材质中的涂装和其他自定义颜色(other-customizable)像素应该在上色贴图中留在白色(或灰度光亮(gray gradiant))。至于另外类型的贴图(自发光、反射、凹凸)则不变。第一颜色遮罩(color mask)应该复制/粘贴进混合(misc)材质的红色通道(red channel):反之,第二颜色遮罩应该复制/粘贴进混合(misc)材质的绿色通道(green channel)。

如果你的整个材质全部没用自定义颜色,那就把两个遮罩都保持黑色(混合(misc)材质的红色和绿色通道会是黑色的)。所有材质的像素应该可用灰度遮罩(grayscale mask)自定义上色——原上色色彩零表现(黑色),另一个(白色)显示玩家自定义颜色。当有两种自定义色彩时(主色和副色),它们两个的灰度遮罩(grayscale mask)都应自定义。

脏蚀贴图(Dirt Map)

而在混色贴图中,蓝色B就是做为脏蚀贴图使用,如果飞船/空间站因此老化变得陈旧,损坏(和很多刮痕)。在游戏中,游戏引擎会基于飞船/空间站的年龄决定是否应用“干净的”材质设定,或“老旧的”,他主要在游戏所呈现的效果,随着船舰的越“老旧”,贴图影响的区域会渐渐变成灰色或者反映出一些黑色等等的颜色变化,造成一些旧化的感觉。

脏蚀效果会弄暗上色贴图,和在变脏的像素(dirtied pixel)上减少反射效果。这是一种完全的着色(in-shader)效果,因此你无需担心要怎样才能在其他贴图上应用或混合它。

脏蚀贴图不意味着取代旧化(aging)材质。如果飞船/空间站因此老化变得陈旧,损坏(和很多刮痕);你应该使用一个完全不同的材质设定。在游戏中,引擎会基于飞船/空间站的年龄决定是否应用“干净的”材质设定,或“陈旧的”

主条目:脏蚀贴图

材质文件类型

大多数图象格式是支持的。最好提供无损(lossless)格式,或高质量有损(lossy)格式。那些材质会被ASEToBin工具再处理或重压缩,因此我们必须尽量避免压缩一项材质两次。

首选无损的压缩格式为TGAPNG,这样子档案大小适中,且所有图案的细节都完美保留。

或者只使用未压缩的TGA,PNG,也就是100%保存所有色彩资讯,不进行特别的压缩处理,不过这样子相关档案大小会非常巨大。

如果你不面那些格式,可以用最大的BMP格式。

最后,使用非常高品质的JPG,不得不的情况下,选择利用422扫描线的格式来压缩,而不是411且不要选择渐进式。

当然,在你送交档案给我们之前,建议你先压缩这些贴图档案成为RAR或者ZIP来减小档案体积。

临时文件

可以使用较低品质,但是在最终版本中要尽可能的发送高品质。 之后3DS文件格式使用一个8.3格式,试着使用不超过8字符的材质文件名(and 3 for the extension,但是那更容易些)。如果你未能遵照这种规则,材料通道/位图名称就不得不人工修复,因为3DS格式在生成时,将会重新命名你的材质。

材质坐标/UV贴图

引擎支持多重UV坐标设置,但是考虑到他们的特殊用法,着色方式就必须重写。如果你需要使用多重UV坐标设置,也许你没有使用标准材质/着色方式,请联系我。

  • 如果你的模型是对称的,你可以保留50%的贴图使用(或增加100%贴图分辨率)以共享贴图坐标的一半跟另一半。记住,如果你的贴图含有文字(比如数字,说明,名称),它就会出现高光反射。在对称物体上共享贴图坐标得慎重考虑。注:你可以在一个物体的某部分重复使用...想象一辆汽车有 4个轮子。你可以只在一个轮子上使用UV贴图——并使其余3个轮子共享这个贴图。
  • 不要浪费过多材质空间。“islands”(在材质贴图中的三角组)应该尽可能的紧紧捆扎(pack)在一起。不要在它们的边有数十像素的裂口。它们每个边之间应该是近乎接触的!如果一个“island”有一个洞,你可以试着把其他island填补到这个洞中。
  • 如果你的船是模块化的,试着将所有的模块(翼、鳍、起落架等)放在同一张材质贴图内。贴图转换会牺牲很多渲染性能,所以尽可能将所有材质都放到一张贴图内,尽管这些对象是分离的。
  • 避免变形/拉伸材质坐标!你的整个对象/物体必须使用相同的分辨率。要测试是否达到要求,分配一个棋盘格贴图(checkerboard texture)到你的对象/物体上,然后验证全部黑、白方块有相同的视觉尺寸。确认它们成正方形出现,而不是菱形或其他形状。
  • 当心接缝。一个弯曲/光滑表面应是无缝的。
  • 不要生成太多"island"(三角形组)。那样似乎会致使更多的接缝出现,使得绘制贴图更加困难。
上一页
下一页