Unity2D-图片导入设置
图片导入概述
Unity 支持的图片格式 BMP: 是 Windows 操作系统的标准图像文件格式,特点是几乎不进行压缩,占磁盘空间大 TIF: 基本不损失图片信息的图片格式,缺点是体积大
JPG: 一般指 JPEG 格式,属于有损压缩格式,能够让图像压缩在很小的存储空间,一定程度上会损失图片数据,无透明通道 PNG: 无损压缩算法的位图格式,压缩比高,生成文件小,有透明通道
TGA: 支持压缩,使用不失真的压缩算法,还支持编码压缩。体积小,效果清晰,兼备 BMP 的图像质量和 JPG 的体积优势,有透明通道 PSD: 是 PhotoShop(PS)图形处理软件专用的格式,通过一些第三方工具或自制工具可以直接将 PS 界面转为 UI 界面
其它还支持 EXR、GIF、HDR、IFF、PICT 等等
其中 Unity 最常用的图片格式是 JPG、PNG、TGA 三种格式
图片设置的 6 大部分
纹理类型
纹理类型主要是为了让纹理图片有不同的主要用途,指明用于哪项工作的纹理
Default
默认纹理,大部分导入的模型贴图都是该类型
sRGB (Color Texture):启用可以将纹理存储在伽马空间中(对每一个像素做一次幂函数运算)
Alpha Source:指定如何生成纹理的 Alpha 通道
None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
Input Texture Alpha:输入纹理中的 Alpha
From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha
Alpha Is Transparency:启用可以避免边缘上的过滤瑕疵
Normal map
法线贴图格式
法线贴图就是在原物体的凹凸表面的每个点上均作法线 法线就是垂直于某个点的切线的方向向量
Create From Grayscale: 启用此属性可以从灰度高度贴图创建法线贴图
Bumpiness: 控制凹凸程度,值越大凹凸感越强
Filtering: 如何计算凹凸值
Smooth:使用标准算法生成法线贴图
Sharp:生成比标准模式更锐利的法线贴图
Editor GUI and Legacy GUI
一般在编辑器中或者 GUI 上使用的纹理
Sprite (2D and UI)
2D 游戏或者 UGUI 中使用的格式
Sprite Mode:图像中提取精灵图形的方式
Single:按原样使用精灵图像
Multiple:瓦片模式,如果是图集,使用该选项,可以在 Sprite Editor 编辑窗口自定义图片
Polygon:网格精灵模式
Packing Tag:指定要将该图打入的精灵图集,Legacy Sprite Packer 时可用
Pixels Per Unit:世界控件中的一个举例单位对应多少像素
Mesh Type:网格类型;只有 Single 和 Multiple 模式才支持
Full Rect:创建四边形,将精灵显示在四边形上
Tight:基于像素 Alpha 值来生成网格,更加贴合精灵图片的形状,任何小于 32×32 的精灵都使用 Full Rect 模式,即使设置成 Tight 模式也是
Extrude Edges:使用滑动条确定生成的网格中精灵周围流出的区域大小
Pivot:精灵图片的轴心点,Single 模式才有此选项,对应九宫格布局的九个点,还可以自定义
Generate Physics Shape:启用此选项,Unity 会自动根据精灵轮廓生成默认物理性状,只有 Single 和 Multiple 模式才可使用
Sprite Editor:编辑 Sprite,需要安装 2D Sprite 包
Cursor
自定义光标
Cookie
光源裁剪格式
Light Type:应用的光源类型 一般点光源的剪影需要设置为立方体纹理 方向光和聚光灯的剪影设置为 2D 纹理
Spotlight:聚光灯类型,需要边缘纯黑色纹理
Directional:方向光,平铺纹理
Point:点光源,需要设置为立方体形状
Lightmap
光照贴图格式
Single Channel
纹理只需要单通道的格式
Channel:希望将纹理处理为 Alpha 还是 Red 通道
Alpha:使用 Alpha 通道,不允许进行压缩
Red:使用红色通道
纹理形状
纹理不仅可以用于模型贴图,还可以用于制作天空盒和反射探针
纹理形状设置 主要用于在两种模式之间进行切换
Texture Shape:纹理形状
2D:2D 纹理,最常用设置,这些纹理将使用到模型和 GUI 元素上
Cube:立方体贴图,主要用于天空盒和反射探针
Mapping:如何将纹理投影到游戏对象上
Auto:根据纹理信息创建布局
6 Frames Layout (Cubic Environment):纹理包含标准立方体贴图布局之一排列的 六个图像
Latitude-Longitude Layout (Cylindrical):将纹理映射到 2D 维度 / 经度
Mirrored Ball (Spheremap):将纹理映射到类似球体的立方体贴图上
Convolution Type:纹理的过滤类型
None:无过滤
Specular (Glossy Reflection):将立方体作为反射探针
Diffuse (Irradiance):将纹理进行过滤表示辐照度,可作为光照探针
Fixup Edge Seams:Convolution Type 为 None 和 Diffuse 下才有用。解决低端设备上面之间 立方体贴图过滤错误
高级设置
高级设置主要是纹理的一些尺寸规则,读写规则以及MipMap相关设置
为什么纹理要设置为 2 的 N 次方? 因为图形学规则,纹理必须是 2 的幂尺寸
Non-Power of 2:如果纹理尺寸非 2 的幂如何处理
None:纹理尺寸大小保持不变
To nearest:将纹理缩放到最接近 2 的幂的大小(注意:PVRTC 格式要求纹理为正方形)
To larger:将纹理缩放到最大尺寸大小值的 2 的幂的大小
To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小
Read/Write Enabled:启用可以使用 Unity 中提供的一些方法从纹理中获取到数据(一般需要获取图片数据时才开启)
Streaming Mipmaps:启用则可以使用纹理串流,主要用于在控制加载在内存中的 Mipmap 级别,用于减少 Unity 对于纹理所需的内存总量,用性能换内存
Mip Map Priority:Mipmap 优先级,Unity 根据优先级来确定分配资源时优先考虑哪些 Mipmap
Generate Mip Maps:允许生成 MipMap
Border Mip Maps:启用可避免颜色向外渗透到较低 MIP 级别的边缘
Mip Map Filtering:优化图像质量的过滤方法
Box:随着尺寸减小,级别更加平滑
Kaiser:随着 Mipmap 尺寸大小下降而使用的锐化算法,如果远处纹理太模糊,可以使用 该算法
Mip Maps Preserve Coverage:Mipmap 的 Alpha 通道在 Alpha 测试期间保留覆盖率
Alpha Cutoff Value:覆盖率参考值
Fadeout Mip Maps:级别递减时使 Mipmap 淡化为灰色
MipMap是什么
在三维计算机图形的贴图渲染中有一个常用的技术被称为 Mipmapping 为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件 这样的贴图被称为 mipmap Mipmap 需要占用一定的内存空间
Mipmap 中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品 虽然在某些必要的视角,主图仍然会被使用,来渲染完整的细节。 但是当贴图被缩小或者只需要从远距离观看时,mipmap 就会转换到适当的层级
因为 mipmap 贴图需要被读取的像素远少于普通贴图,所以渲染的速度得到了提升。 而且操作的时间减少了,因为 mipmap 的图片已经是做过抗锯齿处理的,从而减少了实时渲染的负担。 放大和缩小也因为 mipmap 而变得更有效率。
如果贴图的基本尺寸是 256x256 像素的话,它 mipmap 就会有 8 个层级。 每个层级是上一层级的四分之一的大小 依次层级大小就是:128x128;64x64;32x32;16x16;8x8;4x4;2x2;1x1 (一个像素)
平铺拉伸
平铺拉伸主要设置纹理的平铺规则以及拉伸规则
Wrap Mode:平铺纹理时的方式
Repeat:在区块中重复纹理
Clamp:拉伸纹理的边缘
Mirror:在每个整数边界上镜像纹理以创建重复图案
Mirror Once:镜像纹理一次,然后将拉伸边缘纹理
Per-axis:单独控制如何在 U 轴和 V 轴上包裹纹理
Filter Mode:纹理在通过 3D 变化拉伸时如何进行过渡
Point:纹理在靠近时变为块状
Bilinear:纹理在靠近时变得模糊
Trilinear:与 Bilinear 类似,但纹理也在不同的 Mip 级别之间模糊
Aniso Level:以大角度查看纹理时提高纹理质量。性能消耗高
平台设置
平台设置主要设置纹理最终打包时在不同平台的尺寸,格式,压缩方式
他非常重要,应为他影响了你的包大小和读取性能方面的问题
Max Size:设置导入的纹理的最大尺寸,即使美术出的很大的图,也可以通过这里把它们限制在一定范围内
Resize Algorithm:当纹理尺寸大于指定的 Max Size 时,使用的缩小算法
Mitchell:默认米切尔算法来调整大小,该算法是常用的尺寸缩小算法
Bilinear:使用双线性插值来调整大小。如果细节很重要的图片,可以使用它,它比米切尔算法保留 的细节更多
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 APIs 部分。
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 APIs 部分。
2-3. 在列表中添加 OpenGL ES 2 并删除 OpenGL ES 3 和 Vulkan。
2-4. 构建 APK。
Compression:选择纹理的压缩类型,帮助 Unity 正确选择压缩格式;会根据平台和压缩格式的可用性进行压缩
None:不压缩纹理
Low Quality:以低质量格式压缩纹理
Normal Quality:以标准格式压缩纹理
High Quality:以高质量格式压缩纹理
Use Crunch Compression:启用后,使用 Crunch 压缩。Crunch 是一种基于 DXT 或 ETC 纹理压缩的有损压缩格式;压缩时间长,解压速度快
压缩质量,质量越高意味着纹理越大,压缩事件越长
Split Alpha Channel:Alpha 通道分离,节约内存。会把一张图分成两张纹理。一张包含 RGB 数据,一张包含 Alpha 数据,在渲染时再合并渲染。
Override ETC2 fallback:不支持 ETC2 压缩的设备上,使用的格式