Unity中图集打包的全过程

首先要知道我们为什么要将一个个精灵打包成图集呢?打包图集有什么好处呢?

 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生成即可;

代码的大致调用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值