Contents

图片导入和相关参数

Unity支持的图片格式

  • BMP 是Windows操作系统的标准图像文件格式,特点是几乎不进行压缩,占用磁盘控件较大
  • TIF 基本不损失图片信息的图片格式 缺点是体积较大
  • JPG 一般用JPEG格式 是损压缩 能够让图像压缩在很小的存储控件 一定程度上会损失图片数据 无透明通道
  • PNG 无损压缩算法的位图格式 压缩比高 生成的文件小 有透明通道
  • TGA 支持压缩 使用不失真的压缩算法 还支持编码压缩 体积小 效果清晰 兼备BMP的图像质量和JPG的体积优势 有透明通道
  • PSD 是Photoshop的专用格式 可以通过一些第三方工具或者自制工具 将PSD界面转为UI界面

其他还支持EXR、GIF、HDR、IFF、PICT等格式,一般常用的格式是JPG、PNG、TGA三种格式。


图片参数相关

Texture Type纹理类型


**Default ** 默认纹理 大部分导入的模型贴图都是该类型

  • sRGB(Color Texture) 启用可以将纹理存储在伽马空间中(对每一个像素做一次幂函数运算)
  • Alpha Source 指定如何生成纹理的Alpha通道
    • None 无论输入纹理是否有Alpha通道 导入的纹理都没有Alpha通道
    • Input Texture Alpha 输入纹理中的Alpha
    • From Gray Scale 从输入纹理RGB值的平均值生成Alpha
  • Alpha is Transprency 启用可以避免边缘上的过滤瑕疵

Normal map 法线贴图格式

  • Create From Grayscale 启用此属性可以从灰度高度贴图创建法线贴图
  • Bumpiness 控制凹凸程度 值越大凹凸感越强
  • Filtering 如何计算凹凸值
  • Editor GUI and Legacy GUI 一般在编辑器中或者GUI上使用的纹理

Sprite(2D and UI) 在2D游戏中或者UGUI中使用的格式

  • Sprite Mode 图像中提取精灵图形的方式
    • Sprite按原样使用精灵图像
    • Multple瓦片模式 如果是图集 使用此选项 可以在Sprite Editor编辑窗口自定义图片
    • Polygon网络精灵模式
  • Pixels Per Unit 世界空间中的一个距离单位 对应多少像素
  • MeshType 网络类型 只有Single和Multiple模式才支持
    • Full Rect 创建四边形 将精灵显示在四边形上
    • Tight 基于像素Alpha值来生成网络 更加贴合精灵图片的形状 小于32*32的精灵会使用Full Rect模式
  • Extrude Edges 使用滑动条确定生成的网络中 精灵周围流出的区域大小
  • Pivot 精灵图片的轴心点 Single模式才有此选项
  • Generte Physics Shape 启用此选项 Unity会自动根据精灵轮廓生成默认的物理形状 只适用于Single和Multiple模式
  • Sprite Editor 编辑Sprite 需要安装2D Sprite包

Cursor 自定义光标


Cookie 光源剪影格式

  • Light Type 应用的光源类型 一般点光源的剪影需要设置为立方体纹理 方向光和聚光灯设置为2D纹理
    • Spotlight 聚光灯类型 需要边缘纯黑色纹理
    • Directional 方向光 平铺纹理
    • Point 点光源 需要设置为立方体性状
  • Alpha Source 指定如何生成纹理的Alpha通道
    • None 无论输入纹理是否有Alpha通道 导入的纹理都没有Alpha通道
    • Input Texture Alpha 输入纹理中的Alpha
    • From Gray Scale 从输入纹理RGB值的平均值生成Alpha
  • Alpha is Transprency 启用可以避免边缘上的过滤瑕疵

Lightmap 光照贴图格式


Single Channel 纹理只需要单通道的格式

  • Channel 希望将纹理处理为Alpha还是Red通道
    • Alpha 试用Alpha通道 不允许进行压缩
    • Red 试用红色通道

纹理形状设置(Texture Shape)

2D:2D纹理 最常用的设置 这些纹理将使用到模型和GUI元素上

Cube:立方体贴图 主要用于天空盒和反射探针

Mapping:如何将纹理投影到游戏对象上

  • Auto:根据纹理信息创建布局
  • 6 Frams Layout 纹理包含标准立方体贴图布局之一排列的留个图像
  • Latitude-Longitude Layout 将纹理映射到2D维度/经度
  • Mirrored Ball 将纹理映射到类似球体的立方体贴图上

Convolution Type:纹理的过滤类型

  • None 无过滤
  • Specular 将立方体作为反射探针
  • Diffuse将纹理进行过滤表示辐照度 可作为光照探针

Fixup Edge Seams:Convolution Type 为None和Diffuse下才有效 用于解决低端设备上面之间立方体贴图过滤错误


纹理高级设置(Advanced)

Non-Power of 2:如果纹理尺寸非2的幂如何处理

  • None:纹理尺寸大小保持不变
  • To nearest 将纹理缩放到最接近2的幂的大小(注意:PVRTC格式要求纹理为正方形)
  • To larger 将纹理缩放到最大尺寸大小值的2的幂的大小
  • To smaller 将纹理缩放到最小尺寸大小值的2的幂的大小

Read/Write Enabled 启用可以试用Unity体哦那个的一些方法 从纹理中获取数据(一般在需要获取图片数据时才开启)

Streaming Mipmaps 启用则可以使用纹理串流 主要用于控制加载在内存中的Mipmap级别 用于减少Unity对于纹理所需的内存总量 用性能换内存

Generate Mip Maps 允许生成MipMap

  • Border Mip Maps 启用可避免颜色向外渗透到较低Mip级别的边缘
  • Border Mip Filtering 优化图像质量的过滤方法
    • Box:随着尺寸减小 级别更加平滑
    • Kaiser 随着Mipmap尺寸大小下降而使用的锐化算法
  • Mip Mpas Preserve Coverage:Mipmap的Alpha通道在Alpha测试期间保留覆盖率
    • Alpha Cutoff Value:覆盖率参考值
  • Fadeout Mip Maps 级别递减时使Mipmap淡化为灰色

纹理平铺拉伸设置

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会根据平台使用默认设置

都支持的格式:

/usr/uploads/2024/06/1ed52ff5cf58f0e4fe46cbe05749eb31395c463ca57dd1759809529395820448.png

/usr/uploads/2024/06/2f43b67cc62597e05c51b92a1748202bd9e76366aed228ede59604d5439ef8f2.png

移动端和网页端的特有格式

/usr/uploads/2024/06/32d2f187d49347f01e20968b0a53cba8cd5fa3a1b588d87d178111a4f725face.png

关于格式选择的注意事项 根据不同平台单独进行设置

  • IOS

    • 选择默认的纹理压缩设置 (PVRTC) 可获得更大的兼容性。 如果您的应用程序不包含 OpenGL ES 2 支持,则可以选择一种 ASTC 格式。这些格式提供更好的质量和灵活性,并且压缩速度比 PVRTC 快。
  • Andorid

    • 由于安卓设备众多,设备标准都不同意,一般会根据不同的设备标准制作多个安装包

构建一个以 OpenGL ES 3 为目标的 APK

  • 访问 Android 的 Player Settings(菜单:Edit > Project Settings >Player Settings,然后选择 Android类别)。
  • 向下滚动到 Graphics APIs 部分。
  • 确保 OpenGL ES 2 不在列表中。
  • 构建 APK(菜单:File > Build Settings,然后单击 Build)。

构建一个以 OpenGL ES 2 为目标的单独 APK

  • 访问 Android Player Settings。
  • 向下滚动到 Graphics APIs 部分。
  • 在列表中添加 OpenGL ES 2 并删除 OpenGL ES 3 和 Vulkan。
  • 构建 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压缩的设备上,使用的格式