Acabado del formato de compresión Unity

1. GPU de plataforma móvil

Documentos de referencia:

Cómo utilizar varias texturas comprimidas de GPU móvil - LuMing - Blog Park www.cnblogs.com

1. Serie PowerVR SGX de Imagination Technologies

Modelos representativos: serie Apple iPhone, serie iPad, etc.

2. Serie PowerVR Rogue de Imagination Technologies

3. Serie Adreno de Qualcomm (Qualcomm)

4. Serie Mali de ARM

5. Serie Tegra de nVIDIA

2. El tamaño que ocupan los formatos de textura más utilizados.

Cada píxel de R8G8B8 ocupa 3 bytes y cada píxel de A8R8G8B8 ocupa 4 bytes. Se puede calcular una textura RGB de 24 bits de 1024 * 1024. El tamaño ocupado por la textura sin compresión es 3M, RGBA 32 bits El tamaño de la textura ocupado por la textura es 4M sin compresión. Entonces necesitamos comprimir la textura.

3. Formato de compresión de textura ETC (compresión de textura Ericsson)

  • ETC (ETC1)

El formato ETC1 original de ETC es parte del estándar de gráficos OpenGL ES y es compatible con todos los dispositivos Android.

El formato de compresión ETC de 4 bits ocupa 0,5 bytes por píxel. El formato de compresión comúnmente utilizado es RGB Compressed ETC de 4 bits. El tamaño comprimido de una textura de 1024 * 1024 es 0,5 M, pero ETC no admite el canal de transparencia. En los primeros días, la compresión RGBA16 generalmente se usaba para texturas con RGBA de 32 bits. La textura de tamaño 1024*1024 se comprime de 4M a 2M, o se divide en dos texturas RGB y luego se comprime en formato ETC, de 4M a 20,5M.

  • ETC2

Desde el lanzamiento de OpenGL ES 3.0, el formato de compresión ETC2 se ha convertido en un estándar. Después de Unity5.2, el formato de compresión predeterminado es ETC2. ETC2 admite canales transparentes. Para texturas RGB de 24 bits, puede elegir comprimirlas como ETC2 comprimido RGB de 4 bits. Un tamaño comprimido de texturas de 1024*1024 es 0,5 M; texturas RGBA de 32 bits. Elija comprimir a RGBA Compressed ETC de 8 bits, y el tamaño comprimido de una textura de 1024 * 1024 es 1M.

La limitación de ETC2 es que la GPU del dispositivo Android debe admitir OpenGL ES 3.0. Si la GPU no es compatible con OpenGL ES 3.0, la textura de este formato se descomprimirá, lo que ocupará más memoria de video y memoria.

  • Comparación de calidad de compresión

La calidad de compresión de ETC2 de 4 bits es mayor que la de ETC de 4 bits.

La calidad de compresión de RGBA ETC2 de 8 bits es mayor que la de dividir dos RGB ETC de 4 bits.

Para texturas con canales transparentes utilice 2 ETC 4bits, 2 ETC2 4bits y 1 ETC2 8bits, la calidad de compresión de ETC2 8bits es mayor que la de 2 ETC2 4bits que la de 2 ETC 4bits.

De izquierda a derecha: dos ETC1, dos ETC2, un ETC2

4. Formato de compresión de textura PVRTC (compresión de textura PowerVR)

  • PVRTC

La GPU que admite el formato PVRTC es la serie PowerVR SGX de Imagination Technologies. Es decir, todos los dispositivos Apple pueden utilizar el formato de compresión PVRTC.

El formato PVRTC de 4 bits ocupa 0,5 bytes por píxel. Para la textura de RGB de 24 bits, puede elegir comprimirla a RGB PVRTC comprimido de 4 bits; para la textura de RGBA de 32 bits, puede elegir comprimirla a RGBA PVRTC comprimido de 4 bits y el tamaño comprimido de una textura de 1024*1024. es 0,5 M. Se puede ver que la calidad de compresión de las texturas con canales transparentes será muy pobre, puedes optar por dividirlas en dos texturas RGB y luego comprimirlas en formato RGB Comprimido PVRTC de 4 bits.

El formato PVRTC requiere que las texturas sean iguales en largo y ancho, y ambos son potencias de 2 (POT). Al comprimir, las texturas con una relación de aspecto que no sea 1:1 se comprimirán a 1:1, y una textura con un tamaño Se comprimirá un tamaño de 1024*512. El tamaño es 1024*1024.

5. Formato de compresión de texturas ASTC

  • ASTC

Documentos de referencia:

Uso de la compresión de texturas ASTC para recursos de juegos​developer.nvidia.com

 

ASTC es un formato de compresión líder en la industria producido a mediados de 2012 después de la aparición de OpenGL ES3.0. Sus bloques de compresión varían de 4x4 a 12x12 y se pueden comprimir a menos de 1 bit por píxel. Hay muchas opciones para las relaciones de compresión. . Es muy importante admitir RGBA y es adecuado para texturas de tamaño NPOT cuadrado y no cuadrado.

Tomando como ejemplo el formato de compresión de bloques ASTC 4x4, cada píxel ocupa 1 byte, 8 bits. El tamaño comprimido de una textura de 1024*1024 es 1M.

6. Otros formatos de compresión de texturas

  • ATITC (compresión de textura ATI)

La GPU que admite el formato ATITC es la serie Adreno de Qualcomm.

  • DXTC (compresión de textura Directx)

S3TC (compresión de textura S3), también conocida como DXTC, se usa ampliamente en PC y las GPU compatibles son la serie NVIDIA Tegra. Los dispositivos móviles utilizan muy pocas GPU como nVIDIA.

7. Resumen

1. Se requiere que la plataforma operativa del dispositivo Android sea compatible con OpenGL ES 3.0 para usar ETC2, la compresión RGB es RGB Compressed ETC24bits y la compresión RGBA es RGBA Compressed ETC2 8bits.

2. La plataforma operativa del dispositivo Android debe ser compatible con OpenGL ES 2.0 para usar ETC, la compresión RGB es RGB ETC comprimido de 4 bits y la compresión RGBA es RGBA de 16 bits. (Si el tamaño comprimido es inaceptable, se comprimirá en 2 RGB comprimidos ETC de 4 bits)

3. Se requiere que la plataforma operativa de los dispositivos Apple sea compatible con OpenGL ES 3.0 usando ASTC, la compresión RGB es el bloque RGB CompressedASTC 6x6 y la compresión RGBA es el bloque RGBA Compressed ASTC 4x4. Para una mayor precisión de compresión de mapas normales, se puede seleccionar el bloque RGB CompressedASTC 5x5.

4. La plataforma operativa de los dispositivos Apple debe ser compatible con OpenGLES 2.0 para usar PVRTC, la compresión RGB es PVRTC de 4 bits y la compresión RGBA es RGBA de 16 bits. (Si el tamaño comprimido es inaceptable, se comprimirá en 2 PVRTC RGB comprimido de 4 bits)

Supongo que te gusta

Origin blog.csdn.net/qq_40833062/article/details/129276709
Recomendado
Clasificación