Unity3D学习笔记之Android纹理压缩支持

发表于2017-02-22
评论0 3.4k浏览
  为什么在给Android游戏开发时要做纹理压缩,是因为这样可以减少内存消耗从而提高OpenGL的性能,为此才会有下面要给大家介绍的Unity3D中的Android 纹理压缩,一起来看看吧。
  
  首先附图:Unity3D 中Android支持的纹理压缩格式
  
  纹理压缩可以通过减少内存来显著地提高OpenGL的性能,使内存使用的效率更高。
  
  Android设备支持很多格式的纹理压缩,这些纹理压缩格式并不是在所有的设备上面都支持,根据GPU芯片和OpenGL实现的不同略有差异。
  
  一些常见的纹理压缩格式有以下几种:
  
  •DXT(Tegra)-NVDIA分为DXT1-DXT5这五个级别,Terga支持的实际上是DXT1、DXT3和DXT5。使用不是很广泛。它支持包含4位或者8位alpha通道的RGB纹理。
  
  •PVRTC(PowerVR)不失真压缩率最高的压缩格式。特别的TBDR架构,不渲染被遮挡的部分,有效节省计算资源和带宽。纹理压缩在许多设备上面都支持,支持每个像素2位或者4位的纹理,包含或者不包含alpha通道都可以。
  
  •ATC(Adreno)- 高通ATI纹理压缩在许多设备上面都支持,它支持RGB纹理压缩但不包含alpha通道。
  
  •ETC1 or RGBA16 (GLES2.0)大部分移动GPU都会支持的纹理标准。不支持Alpha通道
  
  •ETC2 (GLES3.0)补全了ETC1不支持Alpha通道,支持更高质量的RGBA(RGB+Alpha)压缩。
  
  •ASTC
  
  Open GL ES
  
  Android在framework API和NDK都提供了对OpenGL的支持  
  Android系统使用 OpenGL 的标准接口来支持3D图形功能。
  
  Android 3D 引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API。
  
  Android 目前支持下面几个版本的OpenGL ES API :
  
  •OpenGL ES 1.0 和 1.1 :Android 1.0和更高的版本支持这个API规范。
  
  •OpenGL ES 2.0 : Android 2.2(API 8)和更高的版本支持这个API规范。
  
  •OpenGL ES 3.0 : Android 4.3(API 18)和更高的版本支持这个API规范。
  
  •OpenGL ES 3.1 : Android 5.0(API 21)和更高的版本支持这个API规范。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引