ETC 纹理压缩和 Alpha 通道处理

游客

标题:ETC 纹理压缩和 Alpha 通道处理
正文:
简介就如压缩 JPEG 图像可以让更多图像装入磁盘一样，纹理压缩也可让更多纹理装入图形硬件中，这在移动平台上尤其重要。 Mali GPU 内建了硬件纹理压缩，允许纹理在图形硬件中保持压缩状态，在所需的样本上实时解压缩。 通过在应用程序中利用压缩纹理，可以大幅减少所需的内存带宽量，因而能提高应用程序性能，降低功耗。ETCEricsson 纹理压缩或 ETC 是由 Khronos 支持的开放标准，在移动平台中广泛采用。 它是一种为感知质量设计的有损算法，其依据是人眼对亮度改变的反应要高于色度改变。ETC v1 具有一个小缺陷，以这种格式压缩的纹理会丢失任何 Alpha 通道信息，而且也没有透明区域。 由于在纹理中使用 Alpha 通道可以实现许多更聪明、更有趣的做法，许多开发人员因此采用其他纹理压缩算法，其中很多为硬件支持有限的专有格式。支持 ALPHA 通道下文阐述的所有方法和技巧都可在 OpenGL ES SDK for Linux on ARM 和 OpenGL ES SDK for Android 中找到，其中提供了完整的源代码。有许多技巧可供选用，以便在应用程序中支持透明并且依然采用 ETC 压缩。 本页阐述这些技巧。提取 ALPHA 通道这些方法中的第一步是从纹理中提取 Alpha 通道。 由于 Alpha 通道并不包装在压缩纹理中，因此必须与压缩纹理一起交付。 虽然大部分图形程序都可用于提取 Alpha 通道，但由于执行该任务比较费力，因此Mali GPU Texture Compression Tool 中提供了相应的支持。 您可以通过在&ldquo;压缩选项&rdquo;对话框中选择 Alpha 处理选项，来选择是否提取 Alpha 通道和如何进行提取。Mali GPU Texture Compression Tool 方法 1： 纹理拼图Alpha 通道转换为可见的灰度图像，然后串联到原始纹理上，使得总体纹理图形更高。纹理拼图益处只有一个文件（对纹理加载代码的更改最少）着色器代码改动需要较少（缩放）缺点纹理样本只能在一个方向上正确包裹。缩放会减慢着色器执行方法这是最容易实施的方法，因为在纹理拼图图像压缩后，代码中唯一需要的更改是在着色器中重新映射纹理坐标，例如：
[<<][[1]][2][3][>>]

查看评论(0)
发表评论

首页