-
Notifications
You must be signed in to change notification settings - Fork 4
Description
游戏开发中许多地方都会用到图片(又叫贴图、纹理)资源,比如模型的贴图、UI界面图片、粒子特效的图片等等。
对于大部分图片来说,导入设置只需要保持默认值即可。但是你需要了解各个参数,在遇到问题的时候有线索去解决。
一、图片要求
- 格式
- BMP
- EXR
- GIF
- HDR
- IFF
- JPG
- PICT
- PNG
- PSD
- TGA
- TIFF
一般建议使用png格式。
- 尺寸大小
理想情况下,贴图的宽高应该是2的n次幂(如2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048等),可以加快纹理取样的速度,减少内存占用,提高性能。在可能的情况下,尽可能使用2的n次幂大小的贴图。不一定需要是正方形的,例如可以是64*128的分辨率。
如果贴图出现加载不出来的情况,可以看一下是否贴图尺寸过大。
二、导入设置
设置并不会改变图片源文件,只是Unity引擎在使用这个图片时,会使用设置后的图片数据。
1. Texture Type
贴图有多种用途,在导入的时候也需要进行不同的设置。
Texture Type属性的可选项有:
• Default:最常用的设置,可以设置贴图导入的大部分属性
• Normal Map:用于法线贴图(法线贴图是模型常用的一种贴图类型)
• Editor GUI and Legacy:用于编辑器GUI或者旧的OnGUI
• Sprite (2D and UI):用于2D游戏和UI
• Cursor:用于自定义光标
• Cookie:用于灯光的Cookie属性的贴图
• Lightmap:用于光照贴图(在max或maya中烘焙过的模型的光照贴图导入后使用此选项)
• Single Channel:用于只需要一个通道的情况
2. Texture Shape
• 2D:默认,大部分的图片都会使用2D设置,例如模型贴图、UI等
• Cube:贴图会被设置为cubemap,一般用于天空盒、反射等情况。这种帖图需要按照特定的格式制作,在Unity中会被展开为立方体或球体 。
3. sRGB(Color Texture)
默认选中。选中此选项可以让贴图的颜色存储在伽马空间中。非HDR颜色的纹理应该选中此属性(如反射和高光贴图)。如果贴图存储了特定含义的信息,并且在shader中需要使用对应值(例如平滑度或金属度)则不要选中此属性。
4. Alpha Source
设置alpha通道的生成方式,默认是 Input Texture Alpha
• None:不管图片本身是否有alpha通道,该贴图将没有alpha通道
• Input Texture Alpha:如果图片有alpha通道,使用这个alpha通道;如果没有,则该贴图也没有alpha通道
• From Gray Scale:从图片的RGB值的平均值生成alpha通道
5. Alpha is Transparency
默认选中。
是否将alpha通道作为图片的透明度,一般情况都会选中;某些情况下可能仅在代码中使用alpha通道中的数据,但是图片本身是非透明的,则不选中。
6. Advanced(高级设置)
6.1 Non Power of 2(非2的N次幂)
上文中介绍了贴图尺寸是2的n次幂会对提高性能,在可能的情况下应该尽可能使用2的n次幂大小。但是有些情况可能需要用到非2的n次幂的情况,就需要设置这个属性。这个属性的默认值是To nearest。
6.2 Read/Write Enabled
默认禁用。
有时候需要在代码中获取贴图中的数据(如Texture2D.SetPixels,Texture2D.GetPixels和其他Texture2D函数),需要启用此功能才能操作。
注意
启用此选项后,会创建该Texture的副本,该贴图占用的内存会加倍。如果不是一定需要读写贴图数据,不要选中此选项。
该选项仅适用于未压缩和DXT压缩类型的贴图纹理,其他压缩类型的贴图无法使用。
6.3 Gnerate Mip Maps
Mipmap是一组逐渐缩小的图片,用于提高3D实时渲染的性能。远离相机的物体会使用更小尺寸的贴图。使用Mipmap会提高33%的内存占用,但是不用mipmap会导致更大的性能损失。对于游戏内的贴图,基本上都应该使用mipmap,例外的情况有:UI图片、天空盒、光标、Cookie贴图。Mipmap也可以避免很多种贴图失真和闪烁的情况。
6.4 mipmap预览
贴图的preview窗口中,可以通过右上角的滚动条查看mipmap不同级别的情况。
6.5.Wrap Mode
默认值是Clamp。这个属性设置贴图在平铺时的不同形式。
Wrap Mode需要同时设置材质球中的Tiling属性,才能看出效果。

6.5.1 Repeat平铺时自身重复。

6.5.2 Clamp贴图的边缘会被拉伸。

6.5.3 Mirror 贴图在重复时会呈现镜像的效果。

6.5.4 Mirror Once只镜像一次,然后边缘拉伸。

6.5.5 Per-axis每个轴上可以单独设置平铺的模式。


6.6 Filter Mode
默认是bilinear。选择纹理在被3D变换拉伸时如何被过滤。
6.7Aniso Level
以陡峭的角度查看纹理时提高纹理质量。对于地板和地面纹理来说,使用这个参数很有用,但是相应的也会占用显卡的资源。
7. 压缩设置
压缩设置中,可以设置一个整体的参数,也可以对不同平台进行单独设置。

7.1Max Size
设置贴图的最大尺寸
7.2 Resize Algorithm
缩放算法
Mitchell 默认的高质量缩放算法
Bilinear 对于噪波贴图,这个算法可能有更锐利的细节
7.3 Compression
压缩的质量设置。压缩质量越高,图片的保真度越高,导入Unity编辑器时所花的时间越多。
7.4 Format
在Default中,Unity会根据你选择的压缩质量,自动选择Format。
也可以对不同的平台单独设置。
7.5 Use Crunch Compress
这是一种有损的压缩格式。这种算法能最大程度降低贴图占用的空间。Crunch Textures可能需要很长时间才能进行压缩,但运行时的解压缩速度非常快。
8. Label设置
Project中可以通过label搜索资源,一个资源可以设置多个label。