分类:Unity、C#、VS2015
创建日期:2016-04-05
一、简介
Unity支持的图像文件格式非常多,包括TIF、PSD、TCA、JPC、PNG、GlF、BMP、IFF、PICT、DDS等。
另外,Unity还支持用Photoshop制作的包含多个图层的PSD格式的图片。PSD格式图片这图层导入Unity之后会自动合并显示,而且该操作还不会破坏PSD源文件的结构。
二、图片格式及尺寸要求
为了优化运行效率,在几乎所有的游戏引擎中,图片的像素尺寸都是需要特别注意的,建议图片文件里的尺寸都是2的n次幂,例如32、64、128、256、1024等,以此类推。图片的长宽则不需要—致。例如512*1024、256*64等都是合理的。
另外,要特别注意,虽然Unity也支持非2的次幂尺寸的图片,但这是以“降低加载速度并加大图片文件大小”为代价来换取的。如果再将这种图片转换为2的n次幂,由于改变了图片的原始比例,还会导致图片质量下降。所以,制作图片资源时,一定要按照2的整数幂的尺寸规格来制作,否则就是自找麻烦。
三、图片资源导入后的属性设置
Unity是一款可以跨平台发布游戏的引擎,单纯就图片资源来说,在不同的平台硬件环境中使用还是有一定区别的。如果你自己为不同平台分别手动制作或修改相应尺寸的图片资源,将是非常不方便的,也会带来很大的工作量。
为了解决跨平台的问题,Unity为用户提供了专门的解决方案。可以在工程中将同一张图片纹理依据不同的平台直接进行相关的设置,效率非常高。
这里主要介绍如何根据不同平台对图片资源进行没置。
1、导入图片资源
在Unity中,向工程中导入图片资源常用有两种办法:
办法1:直接将图片文件复制或剪切到工程文件夹下的Assets文件夹或者其子文件夹中,这种办法可以同时导入多张图片资源。
办法2:通过Unity的菜单导入图片资源,这种办法每次只能导入一张图片。
2、设置属性
单击选中某个导入后的图片资源,在检视器中,根据你准备发布的平台,进行相应的图片尺寸设置。也就是说,在最终发布时,Unity会依据设定自动调整图片的尺寸。
相关属性如下:
Default:默认设置(所有平台的默认设置)。
Maxsize:最大纹理尺寸。可调整所选择的纹理的最大尺寸。值的范围自小至大依次为32、64、128、256、512、1024、2048、4096。
Format:格式。该项用来没置图片的压缩格式,选项有:
- Compressed(压缩纹理):该项为默认选项,是最常用的纹理格式。压缩的格式会根据发布的平台自动选择。
- 16bit:RGB彩色,16位彩色图最多可以有2的16次幂种颜色(低质量的真彩色)。注意这种格式为非压缩格式,会占用较大的磁盘空间。
- True color:真彩色,是最高质量的32位真彩色(256×256的纹理大小占用空间容量为256KB)。注意这种格式为非压缩格式,会占用更大磁盘空间。
- Advanced:指定纹理的其他格式(很少用它)。
- Compression Quality:压缩质量。该项只在Override for Android及Override for FlashPlayer项下面才会出现。
- Override for Android:覆盖到Android平台。该模式下有3个选顶可供选择:Fast、Normal、Best,依次代表压缩质量由低到高。
- Override for FlashPlayer:覆盖到Flash Player。该模式靠数值来控制压缩质量,值的范围是0~100,也可以直接拖动滑块进行调整。
Revert:单击此按钮取消没定。
Apply:单击此按钮应用设定。
四、图片资源类型的设定
在Unity中,根据图片资源的不同用途,需要没定图片的类型,例如作为普通纹理、法线贴图、GUI图片、反射贴图、光照贴图等不同类型用途的图片应设定相应的格式,以便达到最佳的效果。
对于游戏制作而言,图片的类型设定是非常重要。
1、Texture
Texture Type:纹理类型。包括Texture(纹理)、Normd map(法线贴图)、GUl(图形用户界面)、Cursor(图标文件)、Reflection(反射)、Cookie(作用于光源的Cookie)、Lightmap(光照贴图)、Advanced(高级)等类型。
Alpha from Crayscale:依据灰度产生Alpha通道。勾选该项,将依据图像自身的灰度值产生一个alpha透明度通道。
Wmp Mode:循环模式。控制纹理平铺时的样式,有两种方式可供选择:
- Repeat:重复。该项为默认选项,选择该项后纹理将以重复平铺的方式映射在游戏对象上。
- Clamp:夹钳/截断。选择该顼后将以拉伸纹理的边缘的方式映射在游戏对象上。
Filter Mode:滤模式。控制纹理通过三维变换拉伸时的计算(过滤)方式,选项有:
- Point:点模式。这是一种较简单材质图像插值的处理方式,会使用包含像素最多部分的图素来贴图。简而言之,图素占到最多的像素就用此图素来贴图。这种处理方式速度较快,但是材质的品质较差,有可能会出现“马赛克”现象。
- Bilinear:双线性过滤。这是一种较好的材质图像插值的处理方式,会先找出最接近像素的四个图素,然后在它们之间做插值计算,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”。这种方式适用于有一定景深的静态影像,不过无法提供最佳品质,也不适用于移动的游戏对象。
- Trilinear:三线性过滤。这是一种更复杂材质图像插值处理方式,会用到相当多的材质贴图,而每张的大小恰好会是另—张的四分之—。例如,有—张材质影像有512×512个图素,则第二张就会是256×256个图素,以此类推。凭借这些多重解析度的材质影像,当遇到景深较大的场景时,该方式可以提供最高的贴图品质,会去除材质的“闪烁”效果。对于需要动态物体或景深很大的场景应用方面而言,选用此种方式会获得最佳的效果。
Aniso Level:各向异性级别。当以一个过小的角度观察纹理时,此数值越高观察到的纹理质量就越高,该参数对于提高地面等纹理的显示效果非常明显。
2、Normal map
法线贴图类型。选择此类型,可将图像颜色通道变成一个适台于法线映射的格式。
Create from Grayscale:依据灰度产生Alpha通道。勾选该项,依据图像自身的灰度值计算法线贴图的凹凸值。
Bumpiness:凹凸强度调节,该项用来控制贴图凹凸的量。
Filtering:过滤。控制法线贴图的凹凸的计算方式,方式有:
- smooth:平滑,这种方式产生的法线贴图比较平滑。
- sharp:锐化,这种方式产生的法线贴图更加清晰、锐利。
3、GUI
图形用户界面类型。选择此类型,纹理适用于HUD/GUI所用的纹理格式。注意,如果纹理的大小非2的整数次幂,而且纹理的类型被设定为GUI,Unity会将该纹理强制转换为True color格式。
4、Cursor
图标文件。选择此类型,纹理适用于光标所用的纹理格式。
5、Relection
反射。选择此类型,类似CubeMaps(立方体贴图),此类型适用于反射用的纹理格式。
属性有:
Mapping:映射。该项决定映射到立方体贴图上的反射贴图方式。有5种:
- sphere Mapped:球形包裹方式。图像以包裹球形的方式映射到反射贴图上。
- Cylindrical:圆柱方式。纹理以圆柱的方式映射到反射贴图上。
- Simple Sphere:简单球形。图像映射到—个简单的球形上,当旋转时反射会发生变形。
- Nice sphere:精致球形。图像映射到—个球形上,当旋转时反射会发生变形。
- 6 Frames Layout:6框架布局。这是默认的设置。可以理解为将图片包含的六个图像分别映射到一个立方体的6个面上。
Fixup edqe seams:固定边缘接缝处。当反射贴图有接缝时可尝试勾选该选项进行控制。
6、Cookie
作用于光源的Cookie,属性有:
Light Type:光源类型。该项用来指定该纹理计划作用于光源的类型,选项有:
spot light:聚光灯。如选择此类型光源,建议纹理的边缘保证为纯黑色,并将Wrap Mode模式设为Clamp。这样会获得正确的结果。
Directional:平行光源。如选择此类型光源,建议Wrap Mode模式设置为Repeat。这样会获得正确的结果。
Pont:点光源。
7、Lightmap
光照贴图。选择此类型,可将图像没定为适用于光照贴图的格式。
8、Advanced
高级。选择此类型,可对纹理进行高级没置。
Non Power of 2:图片尺寸非2的整数次幂。该项在导入并选择了2的整数次幂尺寸图像的情况下才可用。该项的主要作用是将图像尺寸缩放到2的整数次幂,选项有:
- None:无。对图像尺寸不进行处理。
- To Nearest:调整到最接近的尺寸。将图像尺寸缩放到最接近的2的整数次幂的大小。例如,513x1013像素的图像将被缩放成512x1024像素。
- To larger:调整到较大的(尺寸)。将图像尺寸放大到最接近的2的整数次幂大小。例如,257x513像素的图像将被放大成512下024像素。
- To Smaller:调整到较小的(尺寸)。将图像尺寸缩小到较小的最接近2的整数次幂大小。例如,254x511像素的图像将被缩小成256x256像素。
Cenente Cube Map:生成立方体贴图。只有Non Power of 2项中选择了除None以外的类型时才可用。使用不同的方式将图像生成一个立方体贴图,选项有:
- None:不将图像生成立方体贴图。
- sphere map:球形包裹贴图。图像以包裹球形的方式映射到立方体贴图上。
- Cylindridal:圆柱形贴图。图像以圆柱的方式映射到立方体贴图上。
- Simple sphere map:简单球形贴图。图像以简单球形的方式映射到立方体贴图上。
- Nice sphere map:精致球形贴图。图像以精致球形的方式映射到立方体贴图上。
好了,虽然这一节的内容看起来很枯燥,但是,这些基本概念非常重要。如果你不了解这些基本知识,那么你做出的游戏产品可能自己感觉很爽,但是很难让别人相信能达到最优的效果。