[Unity] unity游戏优化之ETC压缩和 Alpha通道处理,浪的飞起【NGUI篇】

查看:15445 |回复:175 | 2015-7-2 02:29:58

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 成林 于 2018-4-12 23:14 编辑

转载至小宝个人笔记。原帖地址放在最下端~
300X300封面.jpg

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


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



效果及方法
首先。我们将图片放入tp(TexturePacker)中。类型悬着tga。然后导出。如下:
7.png

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


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


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


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


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


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



最后得到如下文件


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


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



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




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


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


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

shader代码:


  1. Shader "Test/UIETC"
  2. {
  3.     Properties
  4.         {
  5.                  _MainTex ("Base (RGB)", 2D) = "white" { }
  6.                  _AlphaTex("AlphaTex",2D) = "white"{}
  7.                  }
  8.     SubShader
  9.         {

  10.                  Tags
  11.                  {
  12.                         "Queue" = "Transparent+1"
  13.                  }
  14.          Pass
  15.                  {
  16.                         Lighting Off
  17.                         ZTest Off
  18.                         Blend SrcAlpha OneMinusSrcAlpha
  19.                         Cull Off
  20.                         CGPROGRAM
  21.                         #pragma vertex vert
  22.                         #pragma fragment frag

  23.                         #include "UnityCG.cginc"

  24.                         sampler2D _MainTex;
  25.                         sampler2D _AlphaTex;

  26.                         float _AlphaFactor;
  27.                
  28.                         struct v2f
  29.                         {
  30.                                 float4  pos : SV_POSITION;
  31.                                 float2  uv : TEXCOORD0;
  32.                                 float4 color :COLOR;
  33.                         };

  34.                         half4 _MainTex_ST;
  35.                         half4 _AlphaTex_ST;

  36.                         v2f vert (appdata_full v)
  37.                         {
  38.                                 v2f o;
  39.                                 o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
  40.                                 o.uv =  v.texcoord;
  41.                                 o.color = v.color;
  42.                                 return o;
  43.                         }

  44.                         half4 frag (v2f i) : COLOR
  45.                         {
  46.                                 half4 texcol = tex2D (_MainTex, i.uv);

  47.                                 half4 result = texcol;

  48.                                 result.a = tex2D(_AlphaTex,i.uv)*i.color.a ;

  49.                                 return result;
  50.                         }
  51.                         ENDCG
  52.                  }
  53.     }
  54. }
点击此处复制文本

工程文件下载见回复:
尊敬的游客,如果您要查看本帖关注 或 回复可见内容请关注回复后刷新页面查看!



原帖地址:小宝个人笔记  http://www.xiaobao1993.com/853.html



评分

参与人数 1活跃度 +15 展开 理由
大芸彩 + 15 阅贴无数,楼主最强!

查看全部评分

2015-7-2 02:29:58  
 赞 赞 1

使用道具 登录

175个回答,把该问题分享到群,邀请大神一起回答。
2#
给力!元素有你更精彩
回复 收起回复
2015-7-2 04:49:18   回复
 赞 赞 2

使用道具 登录

3#
立刻提起了精神。
回复 收起回复
2015-7-2 06:31:37   回复
 赞 赞 2

使用道具 登录

4#
元素那么大,我想来看看!
回复 收起回复
2015-7-2 07:47:03   回复
 赞 赞 2

使用道具 登录

5#
感谢楼主分享!
回复 收起回复
2015-7-2 09:31:24   回复
 赞 赞 2

使用道具 登录

6#
想要成大触,天天上元素!
回复 收起回复
2015-7-2 09:38:11   回复
 赞 赞 2

使用道具 登录

7#
我和我的小伙伴们都惊呆了!
回复 收起回复
2015-7-2 09:59:39   回复
 赞 赞 2

使用道具 登录

8#
挺不错谢谢分享
回复 收起回复
2015-7-2 11:35:26   回复
 赞 赞 2

使用道具 登录

9#
{:1_153:}
回复 收起回复
2015-7-2 13:31:58   回复
 赞 赞 2

使用道具 登录

10#
为了元素币,拼了!
回复 收起回复
2015-7-2 13:46:34   回复
 赞 赞 2

使用道具 登录

11#
看完楼主的帖子,感觉自己萌萌哒~!
回复 收起回复
2015-7-2 18:12:42   回复
 赞 赞 2

使用道具 登录

12#
很不错啊
回复 收起回复
2015-7-3 22:34:44   回复
 赞 赞 2

使用道具 登录

13#
给力!元素有你更精彩
回复 收起回复
2015-7-6 18:03:27   回复
 赞 赞 2

使用道具 登录

14#
给力!元素有你更精彩
回复 收起回复
2015-7-6 19:33:04   回复
 赞 赞 2

使用道具 登录

15#
爱她就去优衣库,要耍就上微元素!
回复 收起回复
2015-8-9 13:48:41   回复
 赞 赞 2

使用道具 登录

16#
给大神点赞啊!!
回复 收起回复
2015-8-10 14:16:26   回复
 赞 赞 2

使用道具 登录

17#
带你赚币带你飞,元素里面有正妹!
回复 收起回复
2015-8-25 18:00:38   回复
 赞 赞 2

使用道具 登录

18#
高端大气上档次,低调奢华有内涵!
回复 收起回复
2015-9-15 17:44:44   回复
 赞 赞 2

使用道具 登录

19#
埃索镁拉唑
回复 收起回复
2015-9-16 15:18:57   回复
 赞 赞 2

使用道具 登录

20#
想要成大触,天天上元素!
回复 收起回复
2015-10-9 00:49:35   回复
 赞 赞 2

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表