基于OpenGL ES的压缩纹理有常见的如下几种实现:
1. ETC1(Ericcson texture compression)
2. PVRTC(PowerVR texture compression)
3. ATITC(ATI texture compression)
对于使用NVIDIA Tegra2芯片的手机如Motorola XOOM,ATRIX和DRIOID BIONIC则支持如下的纹理压缩
4. S3TC(S3 texture compression)

ETC1:
ETC1格式是OpenGL ES图形标准的一部分,并且被所有的Android设备所支持。扩展名为: GL_OES_compressed_ETC1_RGB8_texture,不自持透明通道,所以仅能用于不透明纹理。

PVRTC:
被 用在Motorola的一些机器上,比如DROID系列。GPU为Imagination Technologies的PowerVR SGX 530。OpenGL ES的扩展名为: GL_IMG_texture_compression_pvrtc,支持预处理压缩。当加载压缩纹理时,<internal format>参数支持如下几种格式:
COMPRESSED_RGB_PVRTC_4BPPV1_IMG (RGB 4 bit per pixel)
COMPRESSED_RGB_PVRTC_2BPPV1_IMG (RGB 2 bit per pixel)
COMPRESSED_RGBA_PVRTC_4BPPV1_IMG (RGB 4 bit per pixel with alpha channel)
COMPRESSED_RGBA_PVRTC_2BPPV1_IMG (RGB 2 bit per pixel with alpha channel)

ATITC:
当前使用该种纹理压缩的机器有Nexus One。支持的OpenGL ES扩展名为: GL_ATI_texture_compression_atitc。当加载压缩纹理时,<internal format>参数支持如下类型的纹理:
ATC_RGB_AMD (RGB textures)
ATC_RGBA_EXPLICIT_ALPHA_AMD (RGB textures using explicit alpha encoding)
ATC_RGBA_INTERPOLATED_ALPHA_AMD (RGBA textures using interpolated alpha encoding)

S3TC
也 被称为DXTC,在PC上广泛被使用,但是在移动设备上还是属于新鲜事物。在使用NVIDA芯片的手机上被使用。OpenGL ES扩展名为: GL_EXT_texture_compression_dxt1和GL_EXT_texture_compression_s3tc。当加载压缩纹理 时,<internal format>的参数有如下几种格式:
GL_COMPRESSED_RGB_S3TC_DXT1 (RGB data is compressed, alpha is always 1.0)
GL_COMPRESSED_RGBA_S3TC_DXT1 (RGB data is compressed, alpha is either 1.0 or 0.0)
GL_COMPRESSED_RGBA_S3TC_DXT3 (RGB data is compressed, alpha is stored as 4 bits)
GL_COMPRESSED_RGBA_S3TC_DXT5 (RGB data is compressed, alpha is a weighted average of 8-bit values)

在程序在开始检测这些可用的扩展很重要。对于ETC1压缩来说,使用ETC1Util.isETC1Supported()即可。可以使用android.openGL.getString(GL10.GL_EXTENSIONS)解析字符串获取更多的可用扩展。

关于OpenGL ES中的纹理压缩相关推荐

  1. OpenGL ES之十——纹理贴图(展示一张图片)

    概述 这是一个系列的Android平台下OpenGl ES介绍,从最基本的使用最终到VR图的展示的实现,属于基础篇.(后面针对VR视频会再有几篇文章,属于进阶篇) OpenGL ES之一--概念扫盲 ...

  2. WOW渲染中的纹理压缩

    WOW渲染中的纹理压缩 一直没玩台服,国服也停留在72级. 成都的天气一天天严峻,更是不想动了,于是用NVPerfHUD挂了下WOW,看看它到底啥样. 用NVPerfHUD挂程序需要被挂的程序自身支持 ...

  3. android纹理坐标,Android OpenGL ES 7.1纹理绘制

    基本原理 与渐变色接近,但有些区别: 渐变色:光栅化过程中,计算出颜色值,然后在片段着色器的时候可以直接赋值 纹理:光栅化过程中,计算出当前片段在纹理上的坐标位置,然后在片段着色器的中,根据这个纹理上 ...

  4. android opengl es 纹理 不同设备 白色,android – OpenGL ES 2.0纹理没有在某些设备上显示...

    早上好,这是2个纹理非幂的典型例子. 由于多种原因,纹理在分辨率上需要2的幂,这是一个非常常见的错误,每个人都碰巧陷入这个陷阱:)我也是. 2个纹理的非功率在某些设备/ GPU上运行平稳的事实,仅仅取 ...

  5. OpenGL ES绘制3D纹理贴图

    最近看了<疯狂android讲义>的图形相关的内容,结合自己的理解,整理了一下. 下图是做出来的3D纹理贴图效果,手指在屏幕滑动时,图片可以随之转动. 要实现一个纹理贴图,很简单,大致需要 ...

  6. (01)OpenGL es中只在指定区域渲染view

    效果 图1 右侧显示view的内容 主要代码 (1)main_activity.java的内容 import androidx.appcompat.app.AppCompatActivity; imp ...

  7. OpenGL ES 详解纹理生成和纹理映射步骤以及函数

    通常一个纹理映射的步骤是: 创建纹理对象.就是获得一个新的纹理句柄 ID. 指定纹理.就是将数据赋值给 ID 的纹理对象,在这一步,图像数据正式加载到了 ID 的纹理对象中. 设定过滤器.定义了ope ...

  8. android 使用OPENGL ES实现三角形纹理贴图效果-纹理映射基础

    效果图:...... 编写Dad.java *在Dad构造器中创建和设置场景渲染器为主动渲染,并设置重写触屏时间回调方法以记录触控笔坐标,改变三角形坐标系的位置,使三角形能够在场景中转动 *为声明场景 ...

  9. Android OpenGL ES 应用(二) 纹理

    上一篇讲了基础入门 OpenGL (一) ,这一次主要学习OpenGL 纹理基本学习总结 要是做复杂的OpenGL应用程序,一定会用到纹理技术.纹理说白了就是把图片或者视频图像绘制到OpenGL空间中 ...

最新文章

  1. 怎样预训练GNN能实现更好的迁移效果?
  2. python神奇时钟项目_Python Tkinter 数字时钟小项目
  3. “深度学习一点也不难!”
  4. 通过Http管理Solr Core,实现索引的分类
  5. Eclipse下配置struts很让我痛苦
  6. Qt学习笔记-----信号槽
  7. C#使用Mutex实例详解
  8. python Requests登录GitHub
  9. 第十二节: EF的三种模式(二) 之 ModelFirst模式(SQLServer为例)
  10. 计算机组成原理题目题型总结)第三章:存储器
  11. linux用户详细登录日志文件,Linux登录日志
  12. VMware Esxi-5.1 简介与安装
  13. ceil函数_pyspark常用函数
  14. 考研数学一【高数】 第18讲多元函数积分学
  15. 7450清零_联想M7450F打印机加粉清零方法
  16. 扩展切比雪夫多项式(混沌映射, Chebyshev chaotic map)
  17. 计算机word公式平均数,平均值word公式怎么用?
  18. 车辆识别码VIN校验位计算方法及实现-Java
  19. Erlang程序设计笔记---(第三节 Erlang的基本概念)
  20. KBU808-ASEMI适配大功率开关电源整流桥

热门文章

  1. 8s pod 查看 的yaml_k8s之深入解剖Pod(三)
  2. android 安装卸载应用提醒_Android程序使用代码的安装和卸载!!!
  3. php sql查看本月记录,SQL Server 获取本周,本月,本年等时间内记录
  4. 3d 室内地图_微软科研人员欲通过3D点云混淆技术保护AR定位隐私
  5. java数据返回到界面,java后台获取网页ajax数据和返回数据简单源码
  6. 三层架构+ajax分页实例,ASP.NET存储过程实现分页效果(三层架构)
  7. Python学习笔记:藉由私有属性实现封装
  8. Python案例:打印杨辉三角形
  9. Spring Boot基础学习笔记07:Spring Boot整合JPA
  10. Spring Boot基础学习笔记06:Spring Boot整合MyBatis