城市天际线资产制作完全入门教程:贴图篇

这是本系列教程的第二篇。本来是想把我手头上的做完了再发,但是今天发现即便是大神也有完全不了解贴图运作机制的时候。。这意味着再鸽下去鬼知道会发生什么!

Texture(贴图)
为建模定义的空间结构赋予颜色和材料属性,使其变为逼真的物体。
贴图大小的单位为px(像素)
贴图大小与你要做的物体大小和细节程度相关。大尺寸的贴图可以提供更多的细节,但也会导致玩家的内存占用爆炸(内存是CSL的主要性能瓶颈之一),因此需要做出取舍。通常而言2K(2048*2048)以内的大小就足以满足大多数时候的需求。

贴图的长宽应且只应该为2的幂,如128、512、2048等等。长宽比不用定死为1:1,只要都是2的幂即可,如128*512或是2048*256等等。虽然理论上2的倍数就行,但这么做会令游戏导入时不能正确地压缩,造成渲染错误。因此,不要试图这么做。
游戏对贴图大小有最小下限限制:32*32
同一个建模使用的不同类型的贴图都必须是同一分辨率!
如果使用了高质量的贴图,导入游戏后至少需要将游戏图形画质设为高,否则你看见的贴图将只能是降采样得到的低质量版本。

UV mapping(纹理贴图坐标)
UV并不是一个词组的简称,而是贴图特有的 U V W 坐标系的简写。(因为XYZ定义了建模的坐标系,贴图需要另一套来区分二者。)UV定义了贴图上哪个部位对应建模的哪个部分,从而使平面的图片在建模的正确位置显示。

做UV时,为防止bleeding(出血现象,指不是该面的贴图颜色渗入了这个面的边缘),应保证每个面的UV边缘相距间隔10px以上,如果是贴图的边缘则为5px,且要用内容识别填充或是类似功能填满UV间的空隙以杜绝出血。如果是颜色和材料属性相似的面则可以缩小这个间距。

UV储存在建模文件里,因此LOD的UV与主建模UV不同。

LOD贴图
同建模与LOD建模的关系一样,贴图也有LOD版本。

你在主建模上有哪些类型的贴图,就需要准备那个贴图的LOD版本,即使某类贴图在LOD上不起作用也一样需要。(唯一的例外是法线贴图。)对于这种情况,在LOD上无效的贴图应当填满该贴图对应的占位色(即在该类贴图中,定义为空或默认的颜色)。
如果主贴图导入时没有附带LOD贴图文件,游戏会试图以主建模的UV为基础,bake(烘焙,将光照信息渲染到贴图上的操作)一张LOD贴图。同样这个功能经常出问题,因此最好自己烘焙一张,或是索性从头做一套LOD贴图。
游戏中所有LOD贴图都要共享内存中的LOD贴图池,如果有一个尺寸过大的LOD被放进来,其余的LOD将全部不得不被压缩,导致你本就不咋地的远景变得一塌糊涂!因此绝对不要试图直接把主贴图改个名就当做LOD贴图导入!

下面的章节是所有你要接触到的贴图类型。做好笔记,尤其是他们的首字母!因为你导入贴图时,游戏依赖文件名中的这些首字母来识别贴图的类型!

Diffuse(固有色贴图)
最重要的贴图类型,它定义物体的基本颜色。
由于渲染这一过程的原理,(无关游戏,任何渲染过程都存在这种现象)底色贴图进到游戏里就会变得更明亮饱满。因此在绘制底色贴图时要降低饱和度,不能出现过亮(RGB>140)的部分。

如果你不导入该贴图,游戏会默认为全白色。(问题在于,为什么你要这么做?)

Alpha(透明度贴图)
定义贴图的某部分是不透明的还是透明的。黑色代表透明,白色代表不透明,灰色则可能会影响特定距离和角度的效果。
游戏原生不支持半透明!游戏原生不支持半透明!游戏原生不支持半透明!Alpha 贴图只能是独立文件,在Diffuse贴图中附带alpha通道或是颜色设为透明的行为是不起作用的。

如果你不导入该贴图,游戏会默认为全白色(全部都是不透明的)。

Color(颜色贴图,不是所有游戏都有的一种贴图。)
定义资产可以被游戏上色的部分(例如公交车色带随着线路设定变化,或是建筑物的随机外墙颜色)。黑色代表完全无影响,白色代表会被影响。
底色贴图和颜色贴图重合的部分会显示为二者的混合色。因此通常底色可以被上色的部分应涂成银灰色。


如果你不导入该贴图,游戏会默认为全白色(即整个贴图都能被上色)。要使上色功能完全无效,在资产编辑器里去掉“use color variations”选项。

Illumination(照明贴图)
定义资产夜间可以发光的部分(如窗户灯;车的前灯会变白,但是大灯的光柱效果(丁达尔效应)与此无关,需要在资产编辑器里设置)
该贴图的定义在建筑物上,或是不同类型的载具上都有所不同。具体定义请另行参考。

如果你不导入该贴图,游戏会默认为全黑色。(黑色在部分资产中是有有效定义的!)


Specular(高光贴图)
定义物体的反光程度。黑色代表哑光(完全不反光),白色代表完全反光。非哑光的反光面将会显示出cubemap(立方体贴图,如建筑物的Specular会显示出类似于木地板一样的内部效果)。

如果你不导入该贴图,游戏会默认为全黑色(完全不反光)。

Normal(法线贴图)
通过RGB颜色通道来标记法线的方向,产生与原有平面不一致的光影效果。该贴图用于产生假的凸凹效果,从而省去不必要的三角面。合理使用该贴图可极大程度提高资产的逼真度。

直接绘制法线贴图会让你脑袋爆炸。用height map(高度贴图)转法线贴图是更好的方法。高度贴图在CSL中不被识别,但在其他的一些渲染器中可以用于定义高度。高度贴图中黑色代表最低(凹陷),白色代表最高(凸起)。(想到黄色的同学,请自觉切掉。)完成高度贴图后,可以使用在线网站、软件或软件插件等多种方式转为法线贴图。

CSL的法线贴图转换时不需要翻转X或Y。
由于游戏导入压缩的问题,法线贴图不适合和高光贴图混用。
如果你不导入该贴图,游戏会默认为法线默认色(128,128,255,代表平面)。由于这个特性,法线贴图是唯一不需要LOD空贴图的贴图。

以上即是贴图篇的全部课程。
复习前一节的建模课程的传送门:
