首先要知道我们为什么要将一个个精灵打包成图集呢?打包图集有什么好处呢?
Unity3D图集打包,也称为纹理图集打包或精灵图集打包,是一种将多个小纹理合并成一个大纹理的过程。
优点:
a.减少渲染调用次数、b.减少内存开销、c.提高游戏性能、d.提升载入速度、e.提升载入速度减小包体,合成的大图会比之前所有的散图所占用的物理存储更小
概念:
图集打包是将游戏中使用到的小纹理(如角色、背景、道具等)合并成一个大纹理的过程。这样做的好处是减少了渲染调用次数和纹理切换次数,提高了渲染性能和内存利用效率。
图集打包优化原理:
减少批次调用:游戏引擎在绘制物体时,会根据纹理进行批次调用。如果每个物体都使用不同的纹理,那么就会产生大量的批次调用,导致性能下降。而通过图集打包,可以将多个小纹理合并成一个大纹理,减少批次调用次数,提高性能。
减少纹理切换:纹理切换是指从一个纹理切换到另一个纹理的过程。纹理切换会导致GPU状态的切换,影响渲染性能。通过图集打包,可以将多个小纹理合并成一个大纹理,减少纹理切换次数,提高性能。
内存利用效率:每张纹理都需要占用一定的内存空间,而通过图集打包,可以将多个小纹理合并到一个大纹理中,节约了内存空间。此外,图集打包还可以使用压缩算法对纹理进行压缩,减少内存占用。
UV优化:在进行图集打包时,需要调整小纹理的UV坐标。通过优化UV坐标,可以避免纹理重复采样,从而提高渲染性能。
打包后的图集不管代码动态使用的次数多少,它都不会因为渲染再次复制渲染而浪费内存,这样它在内存中始终只有一份。同时大大减少绘制调用的次数,从而减少DrawCall的开销;
DrawCall(绘制调用):在计算机图形学中,指向图形处理器发送指令以绘制图形的过程。
使用图集有这么多优点,那么它有没有缺点呢?
当然有,使用图集首先得将各小纹理(精灵)先打包好图集。然后再将其加载进来,才能使用图集中的各各小精灵。那么打包图集unity又能用什么工具打包呢?
一,第三方工具:
TexturePacker图集打包工具
TexturePacker图集工具下载地址:
TexturePacker - Create Sprite Sheets for your game! (codeandweb.com)
这款工具它支持多个平台,安装很简单就不介绍了。
我们来了解一下TexturePacker工具的具体使用流程
在游戏开发过程中,图片的使用是必不可少的,尤其是在UI部分,往往会使用大量的图片。如果每一张图片都是单独使用的话,实际上会对性能造成很大的损耗的。这时候我们往往是把需要的图片资源进行分类,然后按照需要打包成对应的图集。这样会方便管理和更新迭代,同时也减少了很多的性能开销。
就比如说假如你一个UI界面使用了10张不同的图片,那么加载这个界面的时候,就会同时对10个图片资源进行渲染,而如果这10张图片是在同一个图集里面的话,那么就相当于同时只进行了1张相对较大的图片的渲染,这样实时渲染的性能开销会更少,这是一种用空间换时间的一种办法。
大家在学习过程中有可能见过类似这样的一张图片(下图),这其实就是打包图集后图片,接下来我将教大家如何使用TexturePacker工具制作这样图片,并用在Unity3D中。
导入纹理
打开TexturePacker软件,点击菜单栏的"文件",选择"新建项目"或者"添加精灵"来导入纹理文件。你可以一次性导入多个纹理文件、(当然也可以直接拖拽对应精灵资源文件夹到软件中)
此工具已有博主详细说明了。我们可以点击下面的链接查看详细内容,再次就部做过多的介绍了,本文主要介绍unity内置的图集打包工具和使用方法;
TexturePacker图集打包工具在Unity3D中的介绍以及使用流程-CSDN博客ee
二,Unity内自带的图集打包工具:
很简单首先先导入2dSprite工具
然后再设置sprite Packer-->Meod
鼠标在Preject栏中点击右键弹出Create-->2D-->spriteAtlas生成图集文件
以后将要创建图集的精灵文件夹指定到ObjectsOfr Packing的列表中;
以后点击packPreview生成即可;
文章来源:https://www.toymoban.com/news/detail-858529.html
代码的大致调用方法文章来源地址https://www.toymoban.com/news/detail-858529.html
到了这里,关于Unity中图集打包的全过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!