散图与图集,Image与RawImage,图片的几种格式(Sprite Texture)

 

Image与RawImage
Image比RawImage功能更加丰富。提供了四种ImageType:Simple(普通)、Sliced(切割)、Tiled(平铺)
、Filled(填充),不能使用纹理Texture,只能使用Sprite。
RawImage顾名思义,未加工的图片,轻量级的,RawImage只为我们提供了修改UV的方法。支持UV Rect(用来
设置只显示图片的某一部分),而Image不支持UV Rect。即可使用Texture纹理,也能使用Sprite。
因为Image功能更加丰富,所以用来处理一般的ui,而RawImage更单一,一般处理背景大图,所以支持
Texture。

Texture Type:纹理类型,能用在Image与RawImage身上的就只有Sprite(2D and UI)和Texture而已,其他的
其实不用现在刻意去了解。另外Advanced也可以。
  Normal map:法线贴图
  Editor GUI and Legacy GUI:UI贴图
  Sprite(2D and UI):精灵
  Cursor:鼠标指针
  Reflection:反射贴图
  Cookie:遮罩贴图
  Lightmap:烘焙贴图
  Advanced:高级(可自定义一些贴图属性)
  Texture 修改Tilling参数

散图与图集
假设有3个Image,从上到下为1,2,3:
1,如果3个Image都使用空图片,只有一个Batches,应该是当成了一个图集。如果是使用同一张图片,与使
用空图片一样,也只有一个Batches。
2,如果使用3张完全不同的散图,则会有3个Batches。
3,如果前2张Image使用同一张图,第3张使用不同的图,则只有2个Batches。但是如果第1张与第3张使用同
一张散图,而第2张使用另一张散图,则会有3个Batches,这个应该是和unity自身的算法优化有关。
4,3个Image如果都使用同一个图集的图片,在运行时,会变成1个Batches。但是如果第2张Image修改成不是
该图集的一张散图,那Batches会变成3个。
假设有3个RawImage,从上到下为1,2,3:
1,如果使用的是同一张图或者空图片,则只有一个Batches。
2,即使是同一个图集,如果不是同一张图,也依旧有3个Batches。
3,即使是同一个图集,如果前2张是同一张图,第3张不同则为2个Batches。如果第1,3张同图,第2张不同,
则依旧是3个Batches。

如何将散图打包为图集
参考该文章 http://www.cnblogs.com/hammerc/p/4778095.html Unity中2D和UGUI图集的理解与使用

使用CPU与GPU都可以渲染图片,使用CPU渲染时不存在图集这个概念(比如Flash的原生显示列表),是因为
不需要将数据从CPU拿到GPU。GPU渲染之前,有一个将数据存放到GPU显存的过程,这个过程需要CPU来操作,
被称为Draw Call,这个操作消耗很大,而GPU速度很快,所以DrawCall很高可能会导致GPU空闲,所以Draw
Call高导致卡顿是CPU的问题。
由于现在设备都有GPU且都使用GPU渲染,所以我们要减少DrawCall数量,即使用图集减少加载图片的数量。
图集是什么呢?图集是一张包含了多个小图和一份记录了每个小图id、位置、尺寸等数据的数据文件。一个
图集应该对应两个文件,当然也有人把数据集成到图片中,导致看起来只有一张图片(参考自DragonBones的
做法)。
如何打包成图集:1,Editor->Project Settings->Editor下有一个sprite packer设置,Disabled表示不打
包图集,Enabled For Builds 表示只有打包应用的时候才会打包图集(运行无法看到效果),Always Enabled
表示始终会打包图集(运行就可以看到效果)。2,选中多张图片(Sprit格式),将Packing Tag字符串值写成一
样。在Windows->Sprite Packer 里,选中多张图片点击pack在这里你就可以预览到你的图集信息,图集文件
被保存在和Assets文件夹同级的目录,Libary/AtlasCache里面。图集的大小还有图集的格式等等很多参数我
们都是可以控制的,也可以通过脚本来设置。

 

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4中的图集是一种将多个小的图片资源合并到一个大的贴图中的技术。它能够显著地提高游戏运行时的性能表现。而Texture Sprite则是用于将图集中的某个小图提取出来,在场景中以精灵的形式进行使用的功能。 使用图集的主要目的是为了减少内存占用和提高渲染性能。当我们使用多个小的图片资源时,每一个单独的图片都需要在内存中分配一定的空间。而使用图集后,所有的小图都被整合到一个较大的贴图中,并且只需占用一次内存分配,大大减少了内存占用。 在UE4中,我们可以通过使用TexturePacker等工具将多个小图合并成一个图集贴图。然后,我们可以使用这个贴图在游戏的材质中创建一个Texture Sprite节点。通过设置该节点的属性,我们可以选择要使用的小图在图集中的位置和大小,还可以进行一些其他的设置,如旋转、偏移等。 使用Texture Sprite节点,我们可以在游戏中快速地创建并使用各种不同的角色、物品和特效等元素。由于使用了图集技术,渲染时只需要绘制贴图中的那部分小图,比起单独绘制每一个小图,能够更加高效地渲染。 总结来说,UE4中的图集Texture Sprite是用于优化游戏性能的重要工具。图集可以节省内存占用,而Texture Sprite可以提高渲染性能。它们的结合使用能够使得游戏在运行时更加流畅,并且减少对硬件资源的需求,提供更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值