天降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行指乱其所为,所以动心忍性,曾益其所不能。
——《孟子》
1,ETC纹理。
opengl2.0的所有android机器支持ETC纹理,但是在opengl1.0中,并不是所有的android机器都支持,所以使用前请检查,机器是否支持etc1纹理。etc1纹理压缩时,抛弃了alpha,所以etc1纹理没有通道。但是人类最大的优点是变通,总会有办法实现的。
etc2纹理压缩格式,是基于opengl3.0以上。并且带alpha通道。
2,转换etc纹理的工具和纹理生成的库。
一个可视化的转换工具: Mali GPU Texture Compression Tool
etc1生成的纹理有两种文件格式,PKM和KTX,给出一个链接关于android的纹理以及PKM和KTX的区别: Android textureCompression:
etc1中的KTX文件有一个现成的开源库,可以直接生成纹理: 链接和下载地址
3,绘制带alpha通道的图片。

1,)实现原理

在opengl2.0中的实现原理是:将一个图片生成两个纹理,一个是rgb,一个rgb中的r存储着图片的alpha数据。在绘制的时候使用纹理单元,将带有alpha数据的rgb做为另个带rgb纹理的alpha。

在opengl1.0中的实现原理:也是生成两个纹理一个是压缩的 rgb,一个是不压缩的纹理,纹理格式是GL_ALHPA.

2,)实现代码部分

opengl2.0,上面的工具有直接的例子,

opengl1.0,纹理混合的代码为:

glActiveTexture(GL_TEXTURE0);glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D, m_pobTexture->getName());glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);//------------------------glActiveTexture(GL_TEXTURE1);glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D, m_pobTexture->getAlphaName());glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);   glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_PREVIOUS);glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE);glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);

其中getName返回的是rgb的压缩纹理,getAlphaName返回的是没有压缩的纹理。

其中需要注意的是:使用完多重纹理之后需要将其他的纹理单元关闭,以及要多每个纹理单元上传纹理坐标

3,《完》

android,ETC1压缩纹理带alpha通道相关推荐

  1. ETC1压缩纹理格式详解

    本来以为,ETC1作为Android 设备的OpenGL标准,开源且最常用的的一种压缩纹理格式,总会有人去翻译一下khronos的文档,读一下代码,给大家作个普及的,不料就是搜不到.没办法,尽管英文不 ...

  2. 使用IconWorkshop制作带alpha通道的位图

    使用IconWorkshop制作带alpha通道的位图 引自:http://www.cnblogs.com/liqilei/archive/2011/01/26/1945787.html 最近在项目中 ...

  3. UE4带Alpha通道透明效果贴图的相关问题

    镂空效果(黑色部分透明):UE4中,一张贴图同时显示color与opacity, 问题一:最初贴图只呈现颜色,应该透明的区域是黑色的 修改步骤如下: ps中魔棒选中黑色区域-反选-右键存储选区-生成a ...

  4. 带alpha通道的图像合成(Python语言)

    我先放代码和结果,再分析过程. 1.实现代码 # coding=utf-8 import numpy as np import cv2 as cv def paste_ROI_to_image(ima ...

  5. opencv-python读取透明图片(既带alpha通道)

    opencv-python读取透明图片 透明图(alpha图) cv2 cv2.imread() 透明图(alpha图) 透明图是PS抠图中常用到的图片形式,能保存为png以及gif格式,相比于普通的 ...

  6. Unity播放带Alpha通道的视频【WebM+Video Player】(替代播放GIF方案)

    在Unity中播放GIF或者动态效果,可以通过Video Player播放带透明通道的WebM视频来实现. 制作带Alpha的MOV视频 制作带Alpha通道的MOV视频有多重方式,如AE.PR.PS ...

  7. 带alpha通道四通道的图片转成rgb三通道

    查看第四通道数值范围,若最大值为255,则归一化到1,再与前三通道相乘,得到叠加透明度的结果

  8. ETC1压缩纹理图片格式

    参考: https://www.khronos.org/registry/DataFormat/specs/1.1/dataformat.1.1.html#ETC1 https://www.khron ...

  9. 留个档,C# AlphaBlend,带Alpha通道的图片的叠加

    网上大部分的算法,都写的太文本化,看起来贼累 留个档,核心算法 bg是 被盖的图层, add是上层的图层 private Color AlphaBlend(Color bg, Color add) { ...

最新文章

  1. SqlSessionFactoryBean的构建流程
  2. numpy 打乱 numpy 数组
  3. java中用字节流读取文本时中文乱码
  4. kill命令---Linux学习笔记
  5. Star sky CodeForces - 835C
  6. Blender建模与游戏换装(转载文)
  7. php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件_javascript技巧
  8. HDU 3062 Party(2-sat题模板+tarjan )
  9. JAVA HASHMAP 用法
  10. Python数模笔记-NetworkX(3)条件最短路径
  11. linux pxe 博客,pxe无人值守linux系统安装
  12. 重置系统_开课了,如何重置电脑系统?1分钟教会你!
  13. 利用ros3djs接收pointcloud2在web端显示
  14. html字体打印效果,基于jQuery实现文字打印动态效果
  15. Ms Sql Server 2000 个人绿色版 5.62
  16. ​stp文件转ply
  17. Revit中项目特别大如何将项目完整的体现在图纸中?
  18. html打印图片不显示不全,Word里图片显示全打印不全是怎么回事
  19. 浙江大学软件学院2020年保研上机真题练习
  20. C语言基础入门48篇_13_关系运算符与关系表达式(等于(==)、不等于(叹=)、大于(>)、小于(<)、小于等于(<=)、大于等于(>=),5==nValue方式避免bug,==不可比较浮点型数据)

热门文章

  1. 使用 poi 通过浏览器方式导出Excel表格(导出字段与表格字段不一样且取值逻辑改变)
  2. lle算法c 语言,LLE算法示意图.ppt
  3. 所谓AVL树的平衡因子怎么回事?
  4. 基因集富集分析(GSEA)
  5. Notepad++回车换行替换
  6. 关于HTC Touch Diamond 2的ROM和WM软件开发高手看过来…
  7. 程序员表白代码来了,太秀了。。
  8. MES退料管理:优化生产流程的重要环节
  9. Echarts使用心得
  10. echarts取消选中图例,echarts图例判断点击超过4个,提示并取消选中