Archivos TGA: El Formato Truevision TARGA para Videojuegos y Efectos Visuales
TGA (Truevision Advanced Raster Graphics Adapter), también conocido como TARGA, es uno de los formatos de imagen raster más antiguos que sigue en uso activo. Creado por Truevision (AT&T) en 1984 para sus tarjetas de captura de fotogramas, TGA fue uno de los primeros formatos en soportar color de 24 bits completo (color verdadero) y transparencia de canal alfa. Aunque PNG y EXR lo han desplazado en muchos flujos de trabajo, TGA sigue integrado en los pipelines de motores de juegos, software de animación 3D y herramientas de gráficos de difusión.
Estructura del Archivo TGA
TGA es un formato binario directo con una sobrecarga mínima:
Cabecera de 18 bytes: longitud del ID de imagen, tipo de mapa de color, tipo de imagen, especificación del mapa de color, especificación de imagen (x/y de origen, ancho, alto, bits por píxel, descriptor de imagen).
Datos de imagen: Datos de píxeles crudos, opcionalmente comprimidos con RLE (Run-Length Encoding).
Pie de página (solo TGA 2.0, 26 bytes): Con la firma TRUEVISION-XFILE.
Opciones de Profundidad de Color
- 8 bits en escala de grises: Canal único, 256 tonos de gris
- 8 bits indexado: Paleta de 256 colores, común en texturas de juegos antiguos
- 16 bits: RGB 5-5-5 (32.768 colores) o RGBA 5-5-5-1 (con alfa de 1 bit)
- 24 bits: 8 bits por canal (RGB), 16,7 millones de colores — la variante TGA más común
- 32 bits: 8 bits por canal (RGBA), canal alfa completo — la variante más común en pipelines de juegos y VFX
Nota: TGA almacena los canales en orden BGR (azul-verde-rojo), no en el orden RGB estándar. El software debe tener en cuenta este orden de bytes al leer datos TGA crudos.
Por Qué TGA Sigue en Uso en el Desarrollo de Videojuegos
Sin sobrecarga de compresión: TGA sin comprimir se lee linealmente desde el disco sin ningún paso de descompresión. Para la carga de texturas en tiempo de ejecución, esto puede ser más rápido que PNG (que requiere descompresión zlib) en hardware donde la E/S es rápida pero el tiempo de CPU es valioso.
Canal alfa fiable: El modo de 32 bits de TGA ha soportado canales alfa desde los años 80. Motores de juegos como el motor Quake, las primeras versiones de Unreal y el motor GoldSrc de Valve usaban TGA para texturas.
Parser simple: El formato TGA es lo suficientemente simple como para implementarlo en unas 200 líneas de código C. Para sistemas embebidos, motores de juegos personalizados o herramientas con dependencias mínimas, la simplicidad de TGA es una ventaja.
Inercia de la industria VFX: Autodesk Flame, Shake y las primeras versiones de Nuke usaban TGA extensamente para secuencias de fotogramas.
Conversión de Archivos TGA
TGA a PNG (recomendado — PNG soporta alfa, sin pérdidas, ampliamente soportado):
# Archivo único con FFmpeg
ffmpeg -i entrada.tga salida.png
# O usando ImageMagick
convert entrada.tga salida.png
# Conversión por lotes
for f in *.tga; do convert "$f" "${f%.tga}.png"; done
TGA a JPEG (sin canal alfa — pierde transparencia):
convert entrada.tga -background white -flatten salida.jpg
TGA a OpenEXR (para pipelines VFX que requieren alto rango dinámico):
oiiotool entrada.tga -o salida.exr
Secuencia TGA a vídeo (renderizar secuencias de imágenes):
# Secuencia de fotogramas TGA (0001.tga, 0002.tga...) a MP4
ffmpeg -framerate 24 -i %04d.tga -c:v libx264 -pix_fmt yuv420p salida.mp4
TGA vs. PNG para Texturas
| Característica | TGA (sin comprimir) | PNG |
|---|---|---|
| Canal alfa | ✅ 8 bits | ✅ 8 bits |
| Sin pérdidas | ✅ | ✅ |
| Compresión | RLE opcional | LZ77 siempre |
| Tamaño de archivo (foto) | Mayor | Menor |
| Velocidad de decodificación | Más rápida (sin descompresión) | Algo más lenta |
| Soporte en navegadores | ❌ | ✅ |
| Soporte HDR | ❌ | Limitado (16 bits) |
Para uso web, PNG siempre es mejor — los navegadores no pueden mostrar TGA. Para texturas de juegos en tiempo real donde importa la velocidad de decodificación, TGA sin comprimir sigue teniendo un caso de uso. Para pipelines modernos de juegos, DDS (DirectDraw Surface) con formatos comprimidos por GPU (DXT1/5, BC7) ha reemplazado en gran medida tanto a TGA como a PNG para texturas en tiempo de ejecución.
Soporte de Software
Lectura de TGA: Prácticamente todas las aplicaciones de edición de imágenes soportan TGA. Adobe Photoshop, GIMP, Krita, Affinity Photo y Paint.NET abren TGA de forma nativa.
Motores de juegos: Unity, Unreal Engine y Godot importan TGA como texturas y las convierten a formatos internos comprimidos (BC7, DXT5, ASTC) durante la compilación.
Software 3D: Blender, Maya, 3ds Max, Cinema 4D y ZBrush leen y escriben TGA. Muchos tienen TGA como predeterminado para exportaciones de mapas UV.
Tamaño de Archivo TGA
Un TGA RGBA de 32 bits sin comprimir a 4096×4096 (una textura estándar de alta resolución para juegos) = 4096 × 4096 × 4 bytes = 64 MB. Esto hace que TGA sea impráctico para entrega web pero aceptable para pipelines de activos locales donde la E/S de disco maneja archivos grandes rápidamente.
En comparación, la misma imagen como PNG se comprime a 5–20 MB dependiendo de la complejidad del contenido. DDS con compresión BC7 (nativa de GPU) logra 16 MB con una pérdida de calidad mínima.