Compresión de texturas GLB: KTX2 y WebP

La conversión de texturas modifica las imágenes incorporadas en el GLB. En esta herramienta, elige KTX2 o WebP para activar los controles de calidad, escala y tamaño máximo. Mantén la misma proporción de triángulos durante la comparación para distinguir mejor el efecto de los ajustes de textura.

Elige un formato que tu visor pueda cargar

Textura de salidaUso y requisito de carga
Formato originalConserva la codificación existente. Sirve como referencia para comparar.
WebPUtiliza EXT_texture_webp. Comprueba que el visor de destino lo admita.
KTX2 / ETC1SUna codificación compacta de Basis Universal. Requiere compatibilidad con KHR_texture_basisu.
KTX2 / UASTCSuele conservar más detalle en las texturas a cambio de un archivo mayor. Utiliza el mismo mecanismo de carga KTX2.

Las dimensiones y la calidad de codificación cumplen funciones distintas

Una escala de textura del 50% reduce a la mitad tanto el ancho como el alto y deja una cuarta parte de los píxeles antes de los mipmaps. El tamaño máximo también limita las dimensiones de salida. La calidad de codificación controla el códec, no las dimensiones de la imagen; por eso una calidad 8 en WebP no equivale a una calidad 8 en ETC1S o UASTC.

Después de cambiar el tamaño, revisa las letras, los bordes con transparencia y los detalles finos de la superficie. Los mapas de normales requieren especial cuidado: pequeños cambios de valor pueden alterar el sombreado. Prueba la textura con la iluminación y el nivel de acercamiento de tu aplicación.

Comparación con una textura de 1024 × 1024

Codificación y dimensionesTamaño del GLB (bytes)
PNG original, 1024 × 10242.914.152
WebP, 1024 × 1024445.632
ETC1S, 1024 × 1024258.488
UASTC, 1024 × 10241.373.516
WebP, 512 × 512118.088

Este ejemplo usa nuestra malla ondulada CC0 con un PNG generado con degradados y ruido, codificado mediante gltfpack nativo 1.3. Todas las filas utilizan compresión Meshopt, 8.192 triángulos y calidad 8 cuando hay conversión. Los tamaños corresponden al GLB completo, no solo a la textura. La tabla mide bytes, no calidad visual ni memoria de GPU.

Compara la textura en la misma superficie

Estos primeros planos usan la misma malla, cámara, iluminación y configuración de materiales. Muestran los archivos reales de la tabla renderizados con Three.js 0.180.0. La textura generada contiene degradados y ruido fino, por lo que sirve para revisar esos detalles, pero no representa letras, transparencias ni mapas de normales.

Primer plano de la textura PNG original sobre la malla ondulada
PNG original · 1024 × 1024
La misma superficie con compresión de textura ETC1S
ETC1S · 1024 × 1024
La misma superficie con compresión de textura UASTC
UASTC · 1024 × 1024
La misma superficie con una textura WebP de dimensiones reducidas a la mitad
WebP · 512 × 512

En estas imágenes, ETC1S suaviza parte del ruido fino de la superficie rosa, mientras que UASTC conserva mejor su aspecto moteado. La versión WebP de dimensiones reducidas a la mitad difumina de forma más evidente las pequeñas variaciones. Compara esta observación con la tabla de tamaños: conservar esos detalles tiene un coste distinto con cada codificación.

Abre las imágenes a tamaño completo y compara las pequeñas variaciones de color y los detalles de la superficie. La página reduce las vistas previas, lo que puede ocultar diferencias. Estas imágenes son referencias visuales obtenidas con un navegador y una GPU concretos; no constituyen una puntuación de calidad ni garantizan un renderizado idéntico en todos los dispositivos.

Ejemplo: reducir las dimensiones a la mitad y exportar WebP

gltfpack -i input.glb -o output.glb -cc -tw -tq 8 -tj 1 -ts 0.5 -kn -km -ke

En la interfaz, selecciona «Archivo más pequeño», elige WebP, abre los ajustes avanzados y establece la escala de textura en 50%. Mantén el tamaño máximo sin cambios salvo que también necesites un límite en píxeles. Antes de usar el resultado, vuelve a abrirlo en el visor de destino.

Configurar la carga de KTX2 y Meshopt en Three.js →

Referencia del motor: gltfpack

Abrir el optimizador ↗