什么是图集?

在使用3D技术开发2D游戏或制作UI时(即使用GPU绘制),都会使用到图集,而使用CPU渲染的2D游戏和UI则不存在图集这个概念(比如Flash的原生显示列表),那么什么是图集呢?准确的说法图集是一张包含了多个小图的大图和一份记录了每个小图id、位置、尺寸等数据的数据文件,一个图集应该对应两个文件,当然也有人把数据集成到图片中,导致看起来只有一张图片(参考自DragonBones的做法)。

为什么要用图集?

使用图集可以说是多加了一个步骤 但是这个步骤不是没有意义的

他可以有效的减少drawcall的数量,多张图片需要多个drawcall,而如果我们合成一个大图 只需要一个drawcall.

减少内存占用:OpenGL ES中每张贴图都需要设置成2的n次方才能使用。比如你有一张宽高为100x100和一张宽高为10x10的图片,如果不合成大贴图,那么需要使用128x128和16x16的两张图片(分别是2的7次方和2的4次方),但如果使用一张大图的话,可以把100x100和10x10的图片放到128x128的大图中,这样就用一张图片。

在GPU已经成为PC、手机等设备的必备组件的现在,把所有显示的绘制操作交给专门处理图像的GPU显然比交给CPU更合适,这样空闲下来的CPU可以集中力量处理游戏的逻辑运算。

而GPU处理图像的做法和CPU是不一样的,在GPU中,我们要绘制一个图像需要提交图片(即纹理)到显存,然后在进行绘制(这个过程称为一次DrawCall),那么如果我们一帧要绘制100个就需要提交100次图片,如果使用包含了这100图片的图集,只需要一次提交即可,即一次DrawCall就搞定,处理效率上会有很大的提升。

另外使用图集也方便管理和归类各个模块的图片,可以通过一次加载和一次卸载完成多个图片的处理,同理,加载次数也下来了,可以提升运行效率。

总结:

  1. 减少DrawCall
  2. 图集将图片打包为2的幂次方的素材大小,减少内存的占用, 一次加载和一次卸载完成多个图片的处理
  3. 减小包体大小

Unity2D中的图集

其实用过NGUI的同学都知道在拼界面之前都必须先制作好对应的图集才行,然而在Unity2D或UGUI中,Unity却自己集成了图集的操作,目的是让我们忘掉图集的存在,更加关注设计这个层面。

NGUI是必须先打出图集然后才能开始做界面。因为始终都要去考虑你的UI图集。比如图集会不会超1024 ,图集该如何来规划

UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。然而这一切一切都是自动完成的,开发者不需要去care它。

打包图集

Editor->Project Settings 下面有sprite packer的模式。

Disabled表示不启用它,

Enabled For Builds 表示只有打包的时候才会启用它,

Always Enabled 表示永远启用它。

这里的启用它就表示是否将小图自动打成图集。

Sprite Atlas与Sprite Mask详解_Peter_Gao_的博客-CSDN博客

Unity中的Frame Debug中的渲染顺序以及数量和Profiler中看到的Draw Call数量,以及在高通的调试工具里看到的DrawCall 数,到底什么关系?哪个数值是影响渲染的重要指标? -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

UGUI图集的理解与使用相关推荐

  1. Unity打包AssetBundle自动分析资源依赖关系(包括UGUI图集打包)

    https://blog.csdn.net/u012740992/article/details/79371986 怎么分析资源的依赖关系呢,并设置AssetBundleName呢? 我们检测资源之间 ...

  2. Unity UGUI图集专题

    一:图集介绍 什么是图集:我们可以将其理解为将一系列小图合并为一张大图.使用图集可以减少drawcall,提升效率. ​ 游戏中的图片模型最终是要给到显卡去渲染的,然后CPU通知GPU要开始渲染,这一 ...

  3. Unity UGUI图集打包与动态使用(TexturePacker)

    TexturePacker 在用UGUI时,我们需要将一个个小图打包成图集,然后将图集一次性加载以内存换取图片读取效率,即减小Drawcall. UGUI打包并使用图集有两种方法:一种是使用系统自带的 ...

  4. Unity3d之UGUI图集打包与动态使用(TexturePacker)

    前言 在用UGUI时,我们也需要将一个个小图打包成图集,以减小Drawcall(类似coco2d-x一样,打包成图集一次性加载以内存换取图片读取效率),UGUI打包并使用图集有两种方法:一种是使用系统 ...

  5. UGUI 图集打包工具Sprite Packer

    一.设计的目的:让开发者忘记图集的概念,使用小图去开发UI,unity自动会将这些小图按照tag名字打到图集里面去. 二.启用的方式:在Edit->Project Settings->Ed ...

  6. 图集打包算法_UGUI打包图集工具-插件Simple Sprite Packer详解

    做过NGUI或者Unity2D[更熟悉]游戏的的人,应该记得,比如要做一个角色的动画,美术给的一张大图[里面包含很多的小图,是角色的各个部位].这张大图就可以理解为一张图集! NGUI也是类似. 那么 ...

  7. 从CPU和GPU出发的UGUI优化

    UGUI优化 就在前几天去B站面试实习岗位,发现学习的方向出现了一些小问题 对UGUI的优化理解出现了不小问题,面试之后,查询了不少的文章,并吸取他们的知识,对UGUI有了一定的理解,希望可以避免再出 ...

  8. Unity之UGUI详解

    UGUI 文章目录 UGUI 六大基础组件概述 Canvas对象上依附的: Canvas Canvas Scaler Graphic Raycaster RectTransform EventSyst ...

  9. NGUI PK UGUI

    功能 图集方面 NGUI:是必须先打出图集然后才能开始做界面.这一点很烦,因为始终都要去考虑你的UI图集.比如图集会不会超1024,图集该如何来规划等等.在制作的时候需要将图片打入图集后才能进行制作. ...

最新文章

  1. 利用WinRAR命令行压缩文件或文件夹
  2. Angular依赖注入机制的一个错误消息:Error Cannot instantiate cyclic dependency!
  3. Leetcode--17.电话号码的字母组合
  4. 【BZOJ4514】数字配对,费用流
  5. sql server 加密_SQL Server机密–第II部分– SQL Server加密功能
  6. 将文件复制到FTP服务器时发生错误的解决办法
  7. HCIE-RS面试--交换机工作原理
  8. mall商城 -小程序,h5和pc vue前后端分离
  9. 软件测试项目案例.pdf,最经典软件测试案例.pdf
  10. 2021年全国大学生网络安全邀请赛暨第七届“东华杯“上海市大学生网络安全大赛Writeup
  11. 16周。项目三,吃饭睡觉打豆豆
  12. android蓝牙同步拨打电话状态,还不会用华为Watch打电话?这六个步骤要记清!
  13. 安防摄像头无法接入国标GB28181视频平台EasyGBS问题排查与解决方案
  14. win7怎么用Win10计算机,win7升至win10的电脑,使用半年多后出现各种系统问题,重装还是升级一周年版?...
  15. Jzoj5542 董先生的钦点
  16. CreateCompatibleDC CreateCompatibleBitmap SelectObject详解
  17. VC6.0MFC下使用GDI++编译链接通不过的解决方案之一(syntax error : identifier 'Count')
  18. 达人评测 索尼8K电视Z9J、4K电视X95J和83英寸A90J 怎么样
  19. 新版个人所得税计算python_个税起征点上调至5000,用Python算一算少交多少税
  20. 小米打印机显示服务器错误是怎么回事,小米打印机出现不再接受此打印加密是什么意思?...

热门文章

  1. 康有为《公车上书》纯属虚构? - 转自《爱野史网》
  2. 简历被公司浏览分布图-来自前程无忧
  3. java实习生简历模板
  4. WDF VIOLATION 你的电脑遇到问题,需要重新启动
  5. 使用Hexo搭建个人博客-保姆级教程
  6. ps绘制android手机界面界面,教程·Photoshop | 手机界面效果图展示设计
  7. 米兔机器人自主编程_米兔积木机器人编程指南.pdf
  8. Git小白教程3---远程仓库克隆到本地
  9. idea在mapper的xml文件中打不出‘.‘,idea在mapper的xml文件中打不出.,idea在mapper的xml文件中打不出小数点的问题
  10. 萤石开放平台二次开发——摄像头取流至抖音直播平台