Unity核心1——图片导入与图片设置

news/2024/5/7 6:43:06/文章来源:https://blog.csdn.net/weixin_53163894/article/details/131288424

一、图片导入概述

​ Unity 支持的图片格式有很多

  • BMP:是 Windows 操作系统的标准图像文件格式,特点是几乎不进行压缩,占磁盘空间大

  • TIF:基本不损失图片信息的图片格式,缺点是体积大

  • JPG:一般指 JPEG 格式,属于有损压缩格式,能够让图像压缩在很小的存储空间,一定程度上会损失图片数据,无透明通道

  • PNG:无损压缩算法的位图格式,压缩比高,生成文件小,有透明通道

  • TGA:支持压缩,使用不失真的压缩算法,还支持编码压缩。体积小,效果清晰,兼备 BMP 的图像质量和 JPG 的体积优势,有透明通道

  • PSD:是PhotoShop(PS)图形处理软件专用的格式,通过一些第三方工具或自制工具可以直接将 PSD 界面转为 UI 界面

​ 其它还支持 EXR、GIF、HDR、IFF、PICT 等等

​ 其中 Unity 最常用的图片格式是 JPG、PNG、TGA 三种格式

二、纹理类型设置 Texture Type

​ 设置纹理类型主要是为了让纹理图片有不同的主要用途,指明其是用于哪项工作的纹理

(一)Default

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

  1. sRGB(Color Texture):启用可以将纹理存储在伽马空间中(对每一个像素做一次幂函数运算)
    人眼对光强的反应不呈线性。我们在观察光时会发现一些亮度比另一些亮度更容易看到,即从黑到白的线性渐变在我们人眼中不是线性渐变的

    左:线性渐变。右:人眼对该渐变的感知情况。

    由于历史原因,监视器和显示器具有相同的特性。向监视器发送线性信号会导致看起来像上图右侧的渐变,人眼观察感觉是错误的。为了弥补这一点,需要发送经校正的信号来确保监视器能够呈现出看起来自然的图像。这种校正称为伽马校正。

    伽马和线性颜色空间同时存在的原因是,光照计算应该在线性空间中进行,以便确保数学上的正确性,但结果应该在伽马空间中呈现以便让人眼看起来正确。在帧缓冲格式限制为每通道 8 位的旧硬件上,计算光照时使用伽马曲线可在人类可感知的范围内提供更高的精度。在人眼最敏感的范围内,使用的位数最多。

    伽马空间的公认标准称为 sRGB 。该标准定义了它与线性空间之间的一个映射,使得人眼能充分利用 8 位 / 通道的精度

    线性渲染指的是渲染场景的过程,此情况下的所有输入都是线性的,也就是说,没有经过伽马校正以适合人眼观察或输出到显示器。

  2. Alpha Source:指定如何生成纹理的 Alpha 通道

    • None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
    • Input Texture Alpha:输入纹理中的 Alpha 通道
    • From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用
  3. Alpha Is Transparency:启用可以过滤边缘上的瑕疵,建议启用

(二)Normal Map

​ 法线贴图就是在原物体的凹凸表面的每个点上均作法线

​ 法线:垂直于某个点的切线方向的方向向量

  1. Create From Grayscale:启用此属性可以从灰度高度贴图创建法线贴图
    • Bumpiness:控制凹凸程度,值越大,凹凸感越强
    • Filtering:如何计算凹凸值
      • Smooth:使用标准算法生成法线贴图
      • Sharp:生成比标准模式更锐利的法线贴图

(三)Editor GUI and Legacy GUI

​ 一般在编辑器中或者 GUI 上使用的纹理

(四)Sprite(2D and UI)

​ 2D 游戏或者 UGUI 中使用的格式

  1. Sprite Mode:图像中提取精灵图形的方式

    • Single:按原样使用精灵图像
    • Multiple:瓦片模式。如果是图集,使用该选项则可在 Sprite Editor 窗口中自定义图片
    • Polygon:网格精灵模式
  2. Pixels Per Unit:世界空间中的一个距离单位对应多少像素

  3. MeshType:网格类型

    只有 Single 和 Multiple 模式才支持

    • Full Rect:创建四边形,将精灵显示在四边形上

    • Tight:基于像素 Alpha 值来生成网格,更加贴合精灵图片的形状

      任何小于 32 * 32 的精灵都会使用 Full Rect 模式,即使是设置成 Tight 也是

  4. Extrude Edges:使用滑动条确定生成的网格中精灵周围流出的区域大小

  5. Pivot:精灵图片的轴心点

    Single 模式才有此选项,对应九宫格布局中的 9 个点

  6. Generate Physics Shape:启用此选项,Unity 会自动根据精灵轮廓生成默认物理形状

    只有 Single 和 Multiple 模式才可使用

  7. Sprite Editor:编辑 Sprite,需要安装 2D Sprite 包,后续讲解

(五)Cursor

​ 自定义光标

(六)Cookie

​ 光源剪影格式

  1. Light Type:应用的光源类型

    一般点光源的剪影需要设置为立方体纹理,方向光和聚光灯的剪影设置为 2D 纹理

    • Spotlight:聚光灯类型,需要边缘纯黑色纹理,Texture Shape 会自动变为 2D
    • Directional:方向光,平铺纹理,Texture Shape 会自动变为 2D
    • Point:点光源,需要设置为立方体形状,Texture Shape 会自动变为 Cube
  2. Alpha Source:指定如何生成纹理的 Alpha 通道

    • None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
    • Input Texture Alpha:输入纹理中的 Alpha 通道
    • From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用
  3. Alpha Is Transparency:启用可以过滤边缘上的瑕疵,建议启用

(七)Lightmap

​ 光照贴图格式

(八)Single Channel

​ 纹理只需要单通道的格式

  1. Channel:希望将纹理处理为 Alpha 还是 Red 通道

    • Alpha:使用 Alpha 通道,不允许压缩
    • Red:使用 Red 通道
  2. Alpha Source:指定如何生成纹理的 Alpha 通道

    • None:无论输入纹理是否有 Alpha 通道,导入的纹理都没有 Alpha 通道
    • Input Texture Alpha:输入纹理中的 Alpha 通道
    • From Gray Scale:从输入纹理 RGB 值的平均值生成 Alpha,一般不使用
  3. Alpha Is Transparency:启用可以过滤边缘上的瑕疵

三、纹理形状设置 Texture Shape

​ 纹理不仅可以用于模型贴图,还可以用于制作天空盒和反射探针

​ 纹理形状设置主要就是用于在两种模式之间进行切换

(一)2D

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

(二)Cube

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

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

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

    • None:无过滤
    • Specular:将立方体作为反射探针
    • Diffuse:将纹理进行过滤表示辐照度,可作为光照探针
  3. Fixup Edge Seams:解决低端设备上面之间立方体贴图过滤错误

    Convolution Type 为 None 或 Diffuse 才有用

四、纹理高级设置 Advanced

​ 高级设置主要是纹理的一些尺寸规则、读写规则、以及 MipMap 相关设置

(一)MipMap

​ 在三维计算机图形的贴图渲染中有一个常用的技术被称为 Mipmapping。

​ 为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 Mipmap,Mipmap 需要占用一定的内存空间

​ Mipmap 中每一个层级的小图都是主图的一个特定比例的缩小细节的复制品,虽然在某些必要的视角,主图仍然会被使用,来渲染完整的细节。但是当贴图被缩小或者只需要从远距离观看时,Mipmap 就会转换到适当的层级

​ 因为 Mipmap 贴图需要被读取的像素远少于普通贴图,所以渲染的速度得到了提升。而且操作的时间减少了,因为 Mipmap 的图片已经是做过抗锯齿处理的,从而减少了实时渲染的负担。放大和缩小也因为 Mipmap 而变得更有效率。

​ 如果贴图的基本尺寸是 256 * 256 像素的话,它的 Mipmap 就会有 8 个层级,每个层级是上一层级的四分之一的大小

​ 依次层级大小就是:128 * 128、64 * 64、32 * 32、16 * 16、8 * 8、4 * 4、2 * 2、1 * 1(一个像素)

​ 开启 MipMap 功能后,Unity 会帮助我们根据图片信息生成 n 张不同分辨率的图片,在场景中会根据我们离该模型的距离选择合适尺寸的图片用于渲染,提升渲染效率

​ 在 Unity 中,启用选项 Generate Mip Maps 后,可以看见图片的 Mipmap:

(二)参数介绍

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

    • None:纹理尺寸大小保持不变

    • To nearest:将纹理缩放到最接近 2 的幂的大小

      (PVRTC 格式要求纹理必须为正方形)

    • To larger:将纹理缩放到最大尺寸大小值的 2 的幂的大小

    • To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小

  2. Read / Write Enabled:启用可以使用 Unity 中提供的一些方法从纹理中获取到数据,会占用额外内存

  3. Streaming Mipmaps:启用则可以使用纹理串流

    主要用于在控制加载在内存中的 Mipmap 级别,用于减少 Unity 对于纹理所需的内存总量,用性能换内存

    • Mip Map Priority:Mipmap 优先级

      Unity 根据优先级来确定分配资源时优先考虑哪些 Mipmap

  4. Generate Mip Maps:允许生成 MipMap

    2D 游戏不需要启用

    • Border Mip Map:启用可避免颜色向外渗透到较低 MIP 级别的边缘,默认启用即可

    • Mip Map Filtering:优化图像质量的过滤方法

      • Box:随着尺寸减小,级别更加平滑

      • Kaiser:随着 Mipmap 尺寸大小下降而使用的锐化算法,效果较好

        如果远处纹理太模糊,可以使用该算法

    • Mip Maps Preserve Coverage:Mipmap 的 Alpha 通道在 Alpha 测试期间保留覆盖率

      • Alpha Cutoff Value:覆盖率参考值
    • Fadeout Mip Maps:级别递减时使 Mipmap 淡化为灰色,需要保留颜色时则不勾选

五、纹理平铺拉伸设置

​ 平铺拉伸主要设置纹理的平铺规则以及拉伸规则

(一)准备工作

​ 在 Unity 2D 中创建 Quad 与 Material,Material 选择 Unlit / Texture 材质,并关联一张图片,将 Material 拖到 Quad 上

  • Tiling:平铺数量,表示在 X 轴和 Y 轴上平铺多少张图片
  • Offset:偏移位置

​ 我们将 Tiling 的 X 和 Y 都设置为 2

(二)参数介绍

  1. Wrap Mode:平铺纹理时的方式

    • Repeat:在区块中重复纹理

    • Clamp:拉伸纹理的边缘

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

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

      看上去像是直接 Clamp,但我们设置偏移位置 Offset 中 X 为 -1 后,可以看见是镜像了的

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

      这里 U 和 V 轴相当于 X 和 Y 轴

  2. Filter Mode:纹理在通过 3D 变化拉伸时如何过渡

    • Point:纹理在靠近观察时变为块状
    • Bilinear:纹理在靠近观察时变得模糊,推荐使用
    • Trilinear:与 Bilinear 类似,但纹理也在不同的 Mip 级别之间模糊
  3. Aniso Level:以大角度斜视查看纹理时提高纹理质量,性能消耗高

六、纹理平台打包设置

​ 平台设置主要设置纹理最终打包时在不同平台的尺寸、格式、压缩方式

​ 它非常的重要,因为它影响了你的包大小和读取性能方面的问题

  1. Max Size:导入纹理的最大尺寸,一般设置为 2048 即可

  2. Resize Algorithm:当纹理尺寸大于 Max Size 时,使用的缩小算法

    • Mitchell:米切尔算法,常用
    • Bilinear:双线性插值调整大小,相比 Mitchell 保留的细节会更多一些
  3. Format:纹理格式

    各个平台支持的格式不同,如果选择 Automatic,会根据平台使用默认设置

    IOS —— 选择默认的纹理压缩设置(PVRTC)可以获得更大的兼容性

    Andorid —— ASTC、ETC2 / EAC、ETC、RGBA 16 位、RGBA 32 位

  4. Compression:纹理的压缩类型

    • None:不压缩纹理
    • Low Quality:低质量格式压缩
    • Normal Quality:标准格式压缩
    • High Quality:高质量格式压缩
  5. Use Crunch Compression:启用后,使用 Crunch 压缩

    压缩时间长,但解压速度快

    • Compression Quality:压缩质量,质量越高,则纹理越大,压缩时间越长
  6. Split Alpha Channel:分离 Alpha 通道

    仅当压缩格式为 ETC 时才会出现

    会把一张图分成两张纹理,一张包含 RGB 数据,一张包含 Alpha 数据,会节约内存

  7. Override ETC2 fallback:若设备的格式不支持 ETC2,则将使用该格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_319311.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maven测试依赖的排除

1、概念 当 A 依赖 B,B 依赖 C 而且 C 可以传递到 A 的时候,A 不想要 C,需要在 A 里面把 C 排除掉。而往往这种情况都是为了避免 jar 包之间的冲突。 所以配置依赖的排除其实就是阻止某些 jar 包的传递。因为这样的 jar 包传递过来会和其他 …

青少年和成人错误监测神经源的多模态研究

导读 儿童和成人对目标导向行为的监控能力不同,这可以通过几种任务和技术来测量。此外,最近的研究表明,错误监测的个体差异在调节焦虑情绪的倾向方面具有重要作用,而且这种调节作用会随着年龄的增长而变化。本研究使用多模态方法…

【深度学习】4-3 误差反向传播法 - Affine/Softmax层的实现

Affine层 神经网络的正向传播中进行的矩阵的乘积运算(也就是Y np.dot(X, W) B)在几何学领域被称为“仿射变换”。因此,这里将进行仿射变换的处理实现为“Affine层”。 几何中,仿射变换包括一次线性变换和一次平移,分别对应神经网络的加权…

2023 最新版navicat 下载与安装 步骤及演示 (图示版)

2023 最新版navicat 下载与安装 步骤演示 -图示版 1. 下载Navicat2 .安装navicat 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请…

解读Linux常用命令使用方法

文章目录 1.前言1.1 定义1.2 特点 2.常用命令介绍2.1 ls2.2 pwd2.3 cd2.4 touch2.5 cat2.6 mkdir2.7 rm2.8 cp2.9 mv2.10 man(联机手册)2.11 vim2.12 grep2.13 ps2.14 netstat 1.前言 1.1 定义 Linux是一套免费使用和自由传播的类Unix操作系统&#xf…

C语言(14) 谈谈嵌入式 C 语言踩内存问题!

1 概述 C 语言内存问题,难在于定位,定位到了就好解决了。 这篇笔记我们来聊聊踩内存。踩内存,通过字面理解即可。本来是操作这一块内存,因为设计失误操作到了相邻内存,篡改了相邻内存的数据。 踩内存,轻则…

前端开发中遇到的小bug--解决方案

1.在 searchBox 搜索栏中,用到了多级下拉框的筛选条件,样式如下: 这样看起来是没什么问题的,但当我选择时,在框中显示的内容和筛选条件的内容就出错了: 这里其实是选择了 采矿业 -- 石油和天然气开采业 &am…

数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

🌟博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏&am…

自动化测试如何区分用例集合?你一定要知道

目录 前言 业务量和复杂度增长现状是什么? 如何区分自动化测试的用例集合? 区分用例集合的过程要注意什么? 总结: 前言 有同学在后台问到:业务比较复杂,有很多串行并行甚至组合的业务场景,执…

Opencv项目实战:23 智能计数和表单信息

目录 0、项目介绍 1、效果展示 2、项目搭建 3、项目代码展示与部分讲解 拍照脚本data_collection.py 图片检测Picdetect.py 摄像头检测Videodetect.py 主函数CountMain.py 自定义模块tally.py 4、项目资源 5、项目总结 0、项目介绍 有一段时间没有更新专栏了&#…

软件测试入门篇

软件测试含义 在规定条件下对程序进行操作,发现软件错误,衡量软件质量,对其是否能满足设计要求进行评估的过程 开发不做测试原因:测试力度,思维方式,关注度 计算机定义 一种可以自动高效进行技术操作的…

vue引入jszip下载多个图片并压缩下载

vue引入jszip下载多个图片并压缩下载 jszip官网地址 先进行jszip下载 npm install jszip然后废话不多说直接上代码 <template><div><button click"downloadImages">下载图片</button></div> </template><script> impo…

Prompt的技巧持续总结

Prompt 有很多网站已经收录了&#xff0c;比如&#xff1a;aimappro 有些直接抄上述网站的作业即可&#xff0c;不过也来看看&#xff0c; 有一些日常提问大概的咒语该怎么写。 1 三种微调下的提示写法 chatgpt时代的创新&#xff1a;LLM的应用模式比较 实际案例说明AI时代大…

《Stable Diffusion WebUI折腾实录》在Windows完成安装, 从社区下载热门模型,批量生成小姐姐图片

环境 操作系统: Windows11 显卡: RTX2060 6GB 显存 安装Python 下载 Python3.10.6 https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe安装 注意勾选 Add Python 3.10.6 to PATH &#xff0c;然后一路下一步即可 打开powershell&#xff0c; 确认安装成功 …

#10035. 「一本通 2.1 练习 1」Power Strings

Power Strings 题意简述&#xff1a; 求一个字符串由多少个重复的子串连接而成。 例如 ababab 由三个 ab 连接而成&#xff0c;abcd 由 abcd 由一个 abcd 连接而成。 输入格式 本题多组数据。 每一组数据仅有一行&#xff0c;这一行仅有一个字符串 s s s。 输入的结束标…

IT云运维技术分享

1 运维体系 1.1 市场对运维的需求 时代发展到今天&#xff0c;社会的生活方式与生产方式的全面的数字化&#xff0c;无论是传统企业还是互联网企业&#xff0c;都在全面上云&#xff0c;这也意味着企业的关键业务乃至“身家性命”都已经全部放在 IT 系统之上&#xff0c;因此…

VMware Integrated OpenStack 7.3 - 支持 vSphere 8.0U1 和 NSX 4.1 并向下兼容

VMware Integrated OpenStack 7.3 - 支持 vSphere 8.0U1 和 NSX 4.1 并向下兼容 VMware 支持的 OpenStack 发行版&#xff1a;在 VMware 虚拟化技术之上运行企业级 OpenStack 云 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vio-7/&#xff0c;查看最新版。原创…

android 如何分析应用的内存(八)——Android 7.0以后的malloc debug

android 如何分析应用的内存&#xff08;八&#xff09; 接上文&#xff0c;介绍六大板块中的第三个————malloc调试和libc回调 上一篇文章中&#xff0c;仅仅是在分配和释放的时候&#xff0c;拦截对应的操作。而不能进一步的去检查内存问题。比如&#xff1a;释放之后再…

智能单相电能表

智能单相电能表是一种基于嵌入式系统和电子技术的智能化电能表&#xff0c;具有多种功能和特点&#xff0c;下面是关于智能单相电能表的介绍。 一、工作原理 智能单相电能表采用电子技术和嵌入式系统实现电能测量的智能化和自动化。它包括电压采样装置、电流采样装置、电能计算…

B/S版医院检验科lis系统源码 云lis系统

LIS系统为实验室服务对象提供检验申请、采集标本、结果查询等功能&#xff1b;为实验室工作人员的核收标本、分送标本、传送资料、分析前处理、质量控制、单向或双向通讯、分析后处理、结果审核、打印报告、结果查询等标本检测过程提供全面的技术支持。 .Net Core LIS系统源码…