博客数据丢失,刚恢复一年前的备份!--QQ群:162541429

unity游戏优化之ETC压缩和 Alpha通道处理,让飞起来【NGUI篇】

Shader 小宝 7589℃ 16评论

前言

在unity中。带有透明通道的图片压缩后。均会出现一定的质量的下降。并且带有透明通道的图片占用内存较大。之前一直没有想到解决方案。最近看了一个游戏项目。里面有一个很好的解决方案。我研究了一下。就分享出来了。

它的具体就是将透明通道和图片内容剥离开来。在用Shader合并。这样就能减少一半的大小。

效果及方法

首先。我们将图片放入tp中。类型悬着tga。然后导出。如下:

7

 

导出后。我们得到一个tga图片和一个txt配置。我们将tga用ps打开。然后找到图片的通道处:如下:

8

如上。我们选中Alpha 1.右键。删除该透明通道。然后将图片存储为bmp图片。

然后。我们可以在菜单中后退一步。或者重新打开没有删除透明通道的图片。执行如下操作。

1.选中Alpha1. 按 ctrl + c 复制改透明通道。

2.选中 红 通道。ctrl + v 粘贴通道。绿 蓝 通道执行同样的操作。

3.删除Alpha 1 透明通道。将图片保存为bmp。

 

最后得到如下文件

9

我们将图片移到Unity中。做成图集。然后给图集的材质球赋值我们的shader(Shader代码在最下)。

4

然后我们来对比下。普通的和剥离的效果区别:

1

效果没什么变化。然后。我们在看下另一个数据:

10 11

一张只有没剥离的四分之一。然后在加一张透明通道。也只是1M。

最后。我们看下内存监察的数据图:

12

1+1 ?= 8   数学不是很好。你们算算。

Shader代码

 工程下载地址

链接:http://pan.baidu.com/s/1jGtKLMY 密码:lxhw

转载请注明:小宝个人笔记 » unity游戏优化之ETC压缩和 Alpha通道处理,让飞起来【NGUI篇】

喜欢 (9)or分享 (0)
本站所有内容如未标明转载的内容,均为原创内容。转载请注明来源!
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(16)个小伙伴在吐槽
  1. 哇,厉害
    张洁勇2015-06-14 22:47 回复
  2. 这个shader要多写一下clip的支持
    张洁勇2015-06-14 22:53 回复
    • 你能解决吗 不解决这个问题就是个玩具呀。。毕竟项目中用clip很多的。。
      高源2015-08-21 15:44 回复
  3. “首先。我们将图片放入tp中。类型悬着tga。然后导出。如下:”弱弱的问一句tp 是个什么东东
    豁口_秋天2015-06-21 20:06 回复
    • 看下新版的前四课。有讲了!
      小宝2015-06-22 09:06 回复
  4. PS方面的不是很明白,Alpha1
    小城2015-06-28 14:45 回复
    • 可以用代码的。我朋友写了这个插件。我过些天分享出来。
      小宝2015-06-28 18:33 回复
  5. 那张黑白图的做法不是这样的吧? 1.选中Alpha1. 按 ctrl + c 复制改透明通道。 2.选中 红 通道。ctrl + v 粘贴通道。绿 蓝 通道执行同样的操作。 3.删除Alpha 1 透明通道。将图片保存为bmp。 像上面的操作,它还有RGB通道,不是黑白的图
    赵青青2015-07-07 17:56 回复
  6. 你好用了你的shader一般UI都是可以的,但是UIScrollveiw方面的都出问题了,涉及到裁剪层方面的有问题,请问能再发个完整支持NGUI的吗嘿嘿~~
    高源2015-08-21 15:43 回复
    • 这个裁剪会出问题么?应该不会的吧。
      小宝2015-09-18 19:52 回复
      • UIScrollview里面使用的时候,UIPanel 里clip之后图片出问题了
        ★完美对称★2016-01-13 10:51 回复
  7. 看你的截图。内存占用少了是因为Compressed和没有Compressed的区别吧
    Kevin丶Ho2015-09-24 10:13 回复
  8. 谢谢分享
    淑梅2016-02-03 00:13 回复