纹理压缩

PVRIC:降低内存带宽

作者:Robin Britton

由于屏幕分辨率的提高以及越来越复杂的渲染管道,使得游戏和其他应用对于带宽的要求也越来越高,大量的数据需要从内存拷贝或者写入。现在用户普遍认为在无其他特殊情况下设备应该能够支持2K的屏幕分辨率,高端游戏则具有更大的几何复杂性,真正在屏幕上显示图像之前渲染管道通常要涉及多个中间渲染目标。即使一些休闲类游戏也可能具有一些全屏后的处理效果,需要帧缓存数据从片外存储器中读取和写入。内存访问是非常消耗功率的,占用带宽越大功耗则越高,这对于功率预算紧张的嵌入式系统尤其是个棘手的问题。

PowerVR GPU采用 PVR3C三重压缩技术来解决这个问题,这三重压缩解决方案包括纹理压缩(涉及PVRTC和ASTC)、几何压缩(PVRGC)和本文的主题图像压缩(PVRIC)。

PVRIC:降低内存带宽

深入探讨游戏开发中的纹理压缩

CCImage作为cocos2dx texture的核心处理函数包含了丰富的底层API调用和纹理格式操作,以CCImage来作为切入点发散性地去做扩展既可以了解到纹理层丰富的处理技术,也更加容易加深我们对cocos2dx引擎的理解。

#define CC_GL_ATC_RGB_AMD 0x8C92
#define CC_GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
#define CC_GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE

CCImage的开始是这个3个宏定义,这3个宏定义其实是对于ATITC格式纹理的类型:

1、 ATC_RGB_AMD (RGB textures)
2、 ATC_RGBA_EXPLICIT_ALPHA_AMD (RGB textures using explicit alphaencoding)
3、 ATC_RGBA_INTERPOLATED_ALPHA_AMD (RGBA textures using interpolatedalpha encoding)

视频: PowerVR SDK工具介绍--PVRTexTool

PVRTexTool概述视频介绍了PVRTexTool的主要特性:PowerVR的纹理压缩实用程序,其支持OpenGL,OpenGL ES以及DirectX格式以及PowerVR压缩格式(PVRTC)。除了解释PVRTexTool核心组件的接口。该视频还描述了执行纹理编码中的效果所需的基本步骤。

小讲堂:PowerVR图形架构纹理压缩介绍

纹理压缩可减少应用文件的大小并缩短下载时间;它还能将带宽消耗保持在绝对的最低水平,从而显著改善智能手机等移动平台的运行性能和功耗。

备受赞誉的PVRTC有损纹理压缩 (TC) 格式是当今移动行业中使用最广泛的纹理压缩格式之一,已部署于超过十亿台设备。它在所有PowerVR SGX和PowerVR Rogue GPU上的硬件中全面加速。PVRTC可将RGB和RGBA格式压缩为每像素2位或4位,而标准32未格式只能达到8:1至16:1的压缩比。

PVRTC2是一项重要的压缩技术升级,以PVRTC的多项优势为基础,为Series5XT和Series6设备增添了广泛丰富的新特性,包括:

● 显著改进的画质,尤其针对高对比度纹理、大面积的明显色彩分离或不规则纹理边界
● 为预乘纹理提供更好的支持
● 支持任意大小的NPOT (非二次幂) 纹理
● 子纹理

ASTC是一种高效的纹理压缩技术,可以每像素8位到每像素1位的比特率对一系列广泛的纹理格式进行编码。ASTC正由Khronos进行合作性开发,支持单色、alpha亮度、RGB和RGBA格式以及用于表面法线的X+Y和XY+Z格式,能够灵活地在任意比特率下进行任意格式的编码。与众不同的是,它可为图像中的每个像素块单独选择编码方法,以便使编码进行动态适配,以最高效的方式逐片展示图像。

移动设备的纹理压缩方案

一、纹理压缩的必要性

1、无须CPU解压即可被GPU读取,节省CPU时间和带宽。
2、节省大量内存,极限时可以减少16倍消耗。
3、部分压缩格式可以节省图片体积。

二、常用的压缩格式与其内存消耗

常用的压缩格式与其内存消耗

三、业界常用的压缩方案

Android:
目前android上虽然支持ETC1,ETC2,ATITC,S3TC(DXTC),PVRTC这五种压缩格式,但是考虑到适配问题,业界一般选择ETC1,因为它是OpenGL ES图形标准的一部分,并且被所有使用opengl2.0的Android设备所支持。

由于ETC1不带alpha通道,因此遇到半透明的图时, 需要将原贴图的alpha抽离,一分为二并别压缩,最后在渲染时再合并计算。该种方式R、G、B、A的在压缩中的占位是相等的。

IOS:

Imagination 移动GPU介绍

作者:借你一秒

《谁能笑傲江湖?移动处理器门派那些事儿》一文中我们把2012年的移动处理器的厂商做了一番介绍,并按照各自的属性给划分了门派。既然把他们称为江湖门派,那么每一个门派总要有自己的绝活。移动处理器厂商中CPU基本都是源自ARM,同架构下各家厂商的表现都差不多,能成为镇派之宝的绝学都是在GPU上。超能网近日奉上续作,对五大移动GPU厂商进行了逐一点评。本文重点介绍Imagination GPU相关内容,其他的移动GPU厂商可查阅原文了解。

做能移动处理器的厂商可以洋洋洒洒列出几十家,我们精挑细选了近年出过风头的依然有13家,但是说到设计GPU核心,这个名单就短多了,主要的厂商甚至不到5家。

2012年的移动GPU份额调查

2012年的移动GPU份额调查

Unity3D for Android 纹理压缩支持

首先附图:Unity3D for Android支持的纹理压缩格式

纹理压缩可以通过减少内存来显著地提高OpenGL的性能,使内存使用的效率更高。

Android设备支持很多格式的纹理压缩,这些纹理压缩格式并不是在所有的设备上面都支持,根据GPU芯片和OpenGL实现的不同略有差异。

Unity3D for Android支持的纹理压缩格式

一些常见的纹理压缩格式有以下几种:
l DXT(Tegra)-NVDIA分为DXT1-DXT5这五个级别,Terga支持的实际上是DXT1、DXT3和DXT5。使用不是很广泛。它支持包含4位或者8位alpha通道的RGB纹理。
l PVRTC(PowerVR)不失真压缩率最高的压缩格式。特别的TBDR架构,不渲染被遮挡的部分,有效节省计算资源和带宽。纹理压缩在许多设备上面都支持,支持每个像素2位或者4位的纹理,包含或者不包含alpha通道都可以。

用低频信号调制纹理压缩

Texture Compression using Low-Frequency Signal Modulation

自通过Catmull1推出以来,纹理映射已成为无处不在的计算机图形。今天,即使是低成本 消费电子设备,如游戏机,预计 支持实时纹理硬件。在任何这样的系统, 两个相关的问题必须得到解决。第一种是简单地 在存储器中存储这些纹理的成本。尽管减少 RAM的成本,消费者对3D系统仍然只有 一个可用于存储相对少量的内存 纹理和这个资源可以迅速成为填充。 这是特别通过使用真彩色纹理加剧 通常有每个纹理像素24位或32位 - 8bits每个红,绿,蓝,和可选的阿尔法 (半透明)组件.

同步内容
--电子创新网--
粤ICP备12070055号