Android纹理格式
Android设备的规格并非完全相同。具体而言,共有4种不同类型的渲染硬件。它们分别支持不同的压缩纹理格式。
column1 | column2 | column3 |
---|---|---|
ETC1 | 所有Android设备均支持,但无法压缩透明纹理(其保存为未压缩)。如果需要透明度来获得更好的压缩,建议使用RGB和单独的透明纹理。 | 通用,OpenGL ES图形标准的一部分,无透明 |
ETC2 | 所有OpenGL 3.x类设备均支持,并支持透明度压缩。 | |
ATC | Qualcomm Adreno GPUs支持,并支持透明度压缩。 | 高通产品,AMD 公司与 ATI 公司联合开发压缩格式 |
DXT | Nvidia Tegra GPUs支持,并支持透明度压缩。 | 其实就是DirectX的压缩格式,英伟达产品支持多,S3TC/DXTC/FXT1的计数理念差不多 |
PVRTC | PowerVR GPUs支持,并支持透明度压缩。 | 苹果手机(当然现在只讨论安卓),英特尔Atom处理器,部分安卓手机,索尼PSVR,其他汽车,智能家居等 |
ASTC | 最新的纹理压缩格式,可指定块大小来进行质量控制,支持透明度压缩。可在部分设备上使用,为Vulkan v1.0所必需。 | VR设备都支持 |
基于OpenGL ES的压缩纹理有常见的如下几种实现:
1)ETC1(Ericsson texture compression) 爱立信纹理压缩
2)PVRTC (PowerVR texture compression) PowerVR纹理压缩
3)ATITC (ATI texture compression) ATI是家公司被AMD收购
4)S3TC (S3 texture compression)
ASTC(Adaptive Scalable Texture Compression) 2021年发布的由ARM和AMD联合开发的压缩格式。
主要GPU玩家:
Qualcomm Adreno高通:
Imagination Technologies:英国芯片设计商,目前多给苹果和其他移动设备供货
Imagination PowerVR
AMD:收购了ATI才能与高通对抗
Mip(多重贴图技术)
MIP是从“multum in parvo”(拉丁语的“在小的地方放更多的东西”)中缩写而来。
在MIP不同级别过渡时,可以设置过渡方法,其中有MAG(放大)或MIN(缩小)的,方法也叫过滤器:
- 最近邻滤波: Nearest Neighbor Filtering
- 双线性滤波: Bilinear Filtering
- 四次卷积滤波(三线性): Trilinear Filtering
- 它的本质是一个三元组的插值,依次作用于纹理空间中的三个方向:u、v 和 MIP。
- 其名称的由来是与MIPmapping的过程中有一个取样纹理的过程,其中一个取样过程可能会包含四个相邻的纹理MIP级别中的颜色的加权平均,这个过程通常被称为 "四次卷积"。
- 三线性是指将最近邻过滤和双线性过滤结合使用。
抗锯齿Anti-Aliasing
SSAA超采样-Super Sampling
更高清图像渲染后缩小
- 优点:简单粗暴效果好
- 缺点:消耗性能
延伸:
AAA自适应-Adaptive
计算出边缘在边缘处抗锯齿
MSAA多重采样-MultiSampling
只对边缘采样
优点:省性能
FXAA快速近似-Fast Approximate
MFAA多帧重采样-Multi Frame
TAA时间性-Temporal
随时间多次采样计算,像渲染的感觉
- 优点:省性能,静态效果好
- 缺点:画面一动,重新采样
评论