纹理图片设置
一、纹理图片的 6 大部分
- 纹理类型
- 纹理形状
- 高级设置
- 平铺拉伸
- 平台设置
- 预览窗口
1.纹理类型
1.)作用
主要是为了让纹理图片有不同的用途,指明是用于哪项工作的纹理
2.)相关参数
A、Default 类型
Default 默认纹理,大部分导入的模型贴图都是该类型 
a.)SRGB(Color Texture)
启用可以将纹理存储在伽马空间中(对每一个像素做一次幕函数运算)
伽马空间官方解释
b.)Alpha Source
指走如何生成纹理的 Alpha 通道
- None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
- Input Texture Alpha:输入纹理中的 Alpha
- From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha
c.)Alphals Transparency
启用可以避免边缘上的过滤瑕疵
B、Normal 类型
Normal 法线贴图类型 就是在原物体的凹凸表面的每个点上均作法线法线就是垂直于某个点的切线的方向向量 
a.)create From Grayscale
启用此属性可以从灰度高度贴图创建法线贴图
b.)Bumpiness
控制凹凸程度,情越大凹凸感越理
c.)Filtering
如何计算凹凸值
- Smooth:使用标准育法生成法线贴图
- Sharp:生成比标准模式更锐利的法线贴图
C、Editor GUl and Legacy GUl
一般在编辑器中或者 GUI 上使用的纹理
D、Sprite (2D and ul)
2D 游戏或者 UGUI 中使用的格式
a.)Sprite Mode
图像中提取精灵图形的方式
- Single:按原样使用精灵图像
- Multiple:瓦片模式,如果是图集,使用该选项,可以在 Sprite Editor 编辑窗口自定义图片
- Polygon:网格精灵模式
b.)Pixels Per Unit
世界控件中的一个举例单位对应多少像素
c.)Pixels Per UnitMeshType 网格类型(只有 Single 和 Multiple 模式才支持)
- Full Rect:创建四边形,将精灵显示在四边形上
- Tight:基于像素 Alpha 值来生成网格,更加贴合精灵图片的形状任何小于 32*32 的精灵都使用 FulRect 模式,即使设置成 Tight 模式也是
d.)Extrude Edges
使用滑动条确定生成的网格中精灵周围流出的区域大小
e.)Pivot
精灵图片的轴心点 Single 模式才有此选项对应九宫格布局的九个点,还可以自定义 
f.)Generate Physics Shape(只有 Single 和 Multiple 模式才可使用)
启用此选项,Unity 会自动根据精灵轮廓生成默认物理性状
g.)Sprite Editor
编辑 Sprite,需要安装 2D Sprite 包,之后单独讲解,见具体章节
E、Cursor
自定义光标
F、Cookie
光源剪影格式 
a.)Light Type
应用的光源类型
- Spotlight:聚光灯类型,需要边缘纯黑色纹理
- Directional:方向光,平铺纹理
- Point:点光源,需要设置为立方体形状
注意:
- 一般点光源的剪影,需要设置为立方体纹理
- 方向光和聚光灯的剪影,设置为 2D 纹理
b.)Alpha Source
指走如何生成纹理的 Alpha 通道
- None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
- Input Texture Alpha:输入纹理中的 Alpha
- From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha
c.)Alphals Transparency
启用可以避免边缘上的过滤瑕疵
E、Lightmap
光照贴图格式
F、Single Channel
纹理只需要单通道的格式 
a.)Channel
希望将纹理处理为 Alpha 还是 Red 通道 
- Alpha:使用 Alpha 通道,不允许进行压缩
- Red:使用红色通道
b.)Alpha Source
指走如何生成纹理的 Alpha 通道
- None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
- Input Texture Alpha:输入纹理中的 Alpha
- From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha
c.)Alphals Transparency
启用可以避免边缘上的过滤瑕疵
2.纹理形状
1.)作用
纹理不仅可以用于模型贴图,还可以用于制作天空盒和反射探针 主要就是用于在两种模式之间进行切换
2.)相关参数
A、2D
2D 纹理,最常用设置,这些纹理将使用到模型和 GUI 元素上
B、Cube
立方体贴图,主要用于天空盒和反射探针
a.)Mapping
如何将纹理投影到游戏对象上 
- Auto:根据纹理信息创建布局
- 6 Frames Layout:纹理包含标准立方体贴图布局之一排列的六个图像
- Latitude-Longitude Layout:将纹理映射到 2D 维度/经度
- Mirrored Bal:将纹理映射到类似球体的立方体贴图上
b.)Convolution Type
纹理的过滤类型
- None:无过滤
- Specular:将立方体作为反射探针
- Diffuse:将纹理进行过滤表示辐照度,可作为光照探针
b.)Fixup Edge Seams
Convolution Type 为 None 和 Diffuse 下才有用。解决低端设备上面之间立方体贴图过滤错误
3.高级设置
1.)作用
Advanced 主要是纹理的一些尺寸规则、读特规则、以及 MipMap 相关设置 
2.)相关参数
注意: 这里只有某些之前没有出现过的参数,如果有未写参数,参考上面的参数
A、Non-Power of 2
如果纹理尺寸非 2 的幕如何处理
为什么纹理要设置为 2 的 N 次方?因为图形学规则,纹理必须是 2 的幕尺寸
- None:纹理尺寸大小保持不变
- To nearest:将纹理缩放到最接近 2 的幂的大小(注意:PVRTC 格式要求纹理为正方形)
- To larger:将纹理缩放到最大尺寸大小值的 2 的幕的大小
- To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小
B、Read/Write Enabled
启用可以使用 Unity 中提供的一些方法从纹理中获取到数据(一般需要获取图片数据时才开启)
C、Streaming Mipmaps
启用则可以使用纹理串流,主要用于在控制加载在内存中的 Mipmap 级别,用于减少 Unity 对于纹理所需的内存总量,用性能换内存
什么是 Minmap?
在三维计算机图形的贴图渲染中有一个常用的技术被称为 Mipmapping,为了加快渲梁速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 Mipmap Mipmap 需要占用一定的内存空间 Mipmap 中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品,虽然在某些必要的视角,主图仍然会被使用,来染完整的细节。但是当贴图被缩小或者只需要从远距离观看时,Mipmap 就会转换到适当的层级 因为 Mipmap 贴图需要被读取的像素远少于普通贴图,所以渲染的速度得到了提升。 而且操作的时间减少了,因为 Mipmap 的图片已经是做过抗锯齿处理的,从而减少了实时渲染的负担。 放大和缩小也因为 Mipmap 而变得更有效率。 如果贴图的基本尺寸是 256x256 像素的话,它 Mipmap 就会有 8 个层级。每个层级是上一层级的四分之一的大小依次层级大小为:128x128;64x64;32x32;16x16;8x8;4x4;2x2;1x1(一个像素) 说人话,开启 MipMap 功能后,Unity 会帮助我们根据图片信息生成 n 张不同分辨率的图片
D、Generate Mip Maps
允许生成 MipMap
开启后的参数
4.平铺拉伸
1.)作用
平铺拉伸主要设置纹理的平铺规则以及拉伸规则 
2.)相关参数
A、Wrap Mode
平铺纹理时的方式

- Repeat:在区块中重复纹理

- Clamp:拉伸纹理的边缘

- Mirror:在每个整数边界上镜像纹理以创建重复图案

- Mirror Once:镜像纹理一次,然后将拉伸边缘纹理

- Per-axis:单独控制如何在 V 轴和 V 轴上包裹纹理

B、Filter Mode
纹理在通过 3D 变化拉伸时如何进行过度
- Point:纹理在靠近时变为块状
- Bilinear:纹理在靠近时变得模糊
- Trilinear:与 Bilinear 类似,但纹理也在不同的 Mip 级别之间模糊
C、Aniso Level
以大角度查看纹理时提高纹理质量。性能消耗高
5.平台设置
1.)相关参数
A、Max size
设置导入的纹理的最大尺寸,即使美术出的很大的图,也可以通过这里把它们限制在一定范围内
B、Resize Algorithm
当纹理尺寸大于指定的 Max size 时,使用的缩小算法
- Mitchel:默认米切尔算法来调整大小,该算法是常用的尺寸缩小算法
- Bilinear:使用双线性插值来调整大小。如果细节很重要的图片,可以使用它,它比米切尔算法保留的细节更多
C、Format
纹理格式 各平台支持的格式有所不同如果选择 Automatic 会根据平台使用默认设置
都支持的格式
移动端和网页端特有格式
关于格式选择的注意事项根据不同平台单独进行设置
IOS > 选择默认的纹理压缩设置(PVRTC) 可获得更大的兼容性。如果您的应用程序不包含 OpenGL Es 2 支持,则可以选择一种 ASTC 格式。这些格式提供更好的质量和灵活性,并且压缩速度比 PVRTC 快。
Andorid
由于安卓设备众多,设备标准都不统一,一般会根据不同的设备标准制作多个安装包
1.构建一个以 OpenGL ES 3 为目标的 APK
1-1 访问 Android 的 Player Settings(菜单:Edit >Project Settings >Player Settings 然后选择 Android 类别) 1-2 向下滚动到 Graphics APls 部分 1-3 确保 OpenGL ES 2 不在列表中。 1-4 构建 APK (菜单:File > Build Settings,然后单击 Build)
2.构建一个以 OpenGL ES 2 为目标的单独 APK
2-1 访问 Android Player Settings. 2-2.向下滚动到 Graphics APls 部分 2-3.在列表中添加 OpenGL ES 2 并删除 OpenGL ES 3 和 Vulkan. 2-4.构建 APK。
D、Compression
选择纹理的压缩类型,帮助 Unity 正确选择压缩格式会根据平台和压缩格式的可用性进行压缩
- None:不压缩纹理
- Low Quality:以低质量格式压缩纹理
- Normal Quality:以标准格式压缩纹理
- High Quality:以高质量格式压缩纹理
E、Use Crunch Compression
启用后,使用 Crunch 压缩。Crunch 是一种基于 DXT 或 ETC 纹理压缩的有损压缩格式。压缩时间长,解压速度快。 
F、Split Alpha Channel
Alpha 通道分离,节约内存。会把一张图分成两张纹理。一张包含 RGB 数据,一张包含 Alpha 数据,在染时再合并染。
G、Override ETc2 fallback
不支持 ETC2 压缩的设备上,使用的格式
