实现图片ETC+Alpha分离
来源:互联网 发布:vip视频解析源码php 编辑:程序博客网 时间:2024/06/07 23:27
目录
- 目录
- 原理
- 步骤
- 完整Shader代码
ETC纹理压缩格式
ETC1:它是一种为感知质量设计的有损算法,其依据是人眼对亮度改变的反应要高于色度改变,遗憾的是ETC1不支持透明。
ETC2:ETC2是ETC1的扩张,向后兼容ETC1,对RGB的压缩质量更好,并且支持透明通道。
原理
- 目前ETC2压缩格式在OpenGL ES 3.0和OpenGL 4.3上才要求支持,然而目前很多设备只支持OpenGL ES 2.0,所以为了兼容大部分Android设备,并且实现图片压缩,减少包资源大小,所以采用将ARGB格式Texture分离成RGB Texture和Alpha Texture,并均进行ETC压缩。(边长需要POT,2的幂),通过运行时刻进行合并。
步骤
- 将Texture丢进TexturePacker中,设置好参数后输出,分别得到tga文件和txt文件。
将Tga文件丢进PS中。
选择通道,删除Alpha 1通道,保存命名为后缀_RGB文件,此为RGB Texture。
回滚之前Tga文件,选择‘分离通道’,保存分离后的Alpha通道为后缀_Alpha文件,此为Alpha Texture。
- 新建Material,使用(Unlit/Transparent Colored Combine) Shader,将RGB Texture和Alpha Texture丢入对应Texture位置
完整Shader代码
Shader "Unlit/Transparent Colored Combine"{ Properties { _MainTex("Base (RGB)", 2D) = "white" {} _AlphaTex("AlphaTex", 2D) = "white" {} } SubShader { Tags { "Queue" = "Transparent+1" } Pass { Lighting Off ZTest Off Blend SrcAlpha OneMinusSrcAlpha Cull Off CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" sampler2D _MainTex; sampler2D _AlphaTex; float _AlphaFactor; struct v2f { float4 pos : SV_POSITION; float2 uv : TEXCOORD0; float4 color : COLOR; }; half4 _MainTex_ST; half4 _AlphaTex_ST; v2f vert(appdata_full v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = v.texcoord; o.color = v.color; return o; } half4 frag(v2f i) : COLOR { half4 texcol = tex2D(_MainTex, i.uv); half4 result = texcol; result.a = tex2D(_AlphaTex, i.uv); return result; } ENDCG } }}
0 0
- 实现图片ETC+Alpha分离
- UIAltas贴图 RGB+Alpha图片分离方法
- Unity工程里图片的RGB和Alpha通道的分离,以及显示所有带有Alpha通道贴图的Material
- Unity工程里图片的RGB和Alpha通道的分离,以及显示所有带有Alpha通道贴图的Material
- 【改进版】Unity工程里图片的RGB和Alpha通道的分离
- Unity工程里图片的RGB和Alpha通道的分离
- python实现word图片文字分离
- tomcat配置虚拟目录实现服务器图片分离
- 利用Apache实现图片服务器的分离
- Android设置Alpha值实现图片渐变效果
- ETC 纹理压缩和 Alpha 通道处理
- ETC 纹理压缩和 Alpha 通道处理
- ETC 纹理压缩和 Alpha 通道处理
- alpha:图片的透明度
- 图片的alpha 通道
- iOS:获取图片Alpha图片
- WINCE实现图片加载绘制类,支持ALPHA运算绘制PNG透明图片
- 使用Jersey实现应用服务器和图片服务器分离
- JSP概述(一)
- jQuery学习之属性选择
- Maven 项目关联上 本地maven 仓库
- HTML5中常用meta解析
- Linux监控命令
- 实现图片ETC+Alpha分离
- CM 11.0 13.0 源码编译过程
- 表单验证后提交 两种方式 2016/07/10
- ThreadPoolExecutor详解-FixedThreadPool
- Web前端 - React 还是 AngularJS 持续更新中
- 1106. Lowest Price in Supply Chain (25)
- Plinq
- C++ Redis服务端搭建与客户端开发
- Git