Compositing es el proceso de combinar múltiples capas visuales (layers) en una sola imagen final. Según la Documentación de Apple Core Animation, 2025, en el desarrollo móvil el compositing se utiliza para superponer capas de UI, combinar renderizados 3D con la interfaz y crear animaciones. Compositing controla el orden de dibujo, la transparencia y la mezcla de colores entre capas.
Puntos clave
Compositing es la etapa final del pipeline gráfico donde todas las capas renderizadas por separado (escenas 3D, elementos de UI, video, interfaz del sistema) se combinan en una sola imagen para mostrarla en pantalla. Cada capa puede tener su propio color, transparencia (alpha), posición y orden de apilamiento.
En el contexto del desarrollo móvil, el compositing es importante para la interfaz de usuario: ventanas, botones, texto, iconos — todos estos elementos se compositan en una sola escena. El sistema de compositing gestiona el orden de dibujo (z-order), la superposición correcta de elementos semitransparentes y la animación de transición entre estados de la UI.
En el pipeline gráfico, el compositing ocurre después de completar todos los pases de shaders y la rasterización. La GPU toma las capas terminadas de los framebuffers, aplica operaciones de blending y escribe el resultado en el framebuffer principal (front buffer) para enviarlo a la pantalla.
Compositing utiliza la mezcla píxel por píxel (blending) de colores de diferentes capas. Cada píxel de la imagen de salida se calcula en función de los colores de los píxeles de las capas superpuestas, teniendo en cuenta la transparencia (canal alpha) y el modo de mezcla seleccionado.
Cada capa contiene un canal alpha (el cuarto componente de color RGBA) que determina su opacidad. Alpha = 1.0 — completamente opaco, alpha = 0.0 — completamente transparente. Alpha blending calcula el color del píxel como una suma ponderada de los colores de las capas frontal (source) y trasera (destination): resultado = source * alpha + dest * (1 - alpha).
El compositing se realiza desde la capa más lejana hasta la más cercana (back-to-front). Primero se renderiza la capa de fondo, luego cada capa siguiente se superpone sobre la anterior teniendo en cuenta su transparencia. Z-order determina qué capa está arriba y cubrirá las inferiores.
Compositing admite varios modos de mezcla (blend modes) que determinan cómo se combinan los colores de las capas. Cada modo produce un efecto visual diferente y tiene sus propios costos computacionales.
| Modo | Fórmula | Aplicación |
|---|---|---|
| Normal (Alpha) | src * a + dst * (1 - a) | Superposición estándar con transparencia |
| Additive | src + dst | Efectos de brillo, partículas |
| Multiply | src * dst | Sombreado, sombras |
| Screen | 1 - (1 - src) * (1 - dst) | Aclarado, reflejos |
| Premultiplied Alpha | (src.rgb * a) + dst * (1 - a) | Rendimiento (sin multiplicación en tiempo real) |
En el modo premultiplied alpha, los canales de color se almacenan ya multiplicados por el canal alpha (RGB × A). Esto elimina la necesidad de multiplicar en cada operación de blending, acelerando el compositing. Premultiplied alpha es el formato estándar para el compositing por GPU en iOS Core Animation y Android HWUI.
Cada sistema operativo móvil tiene su propio sistema de compositing optimizado para sus plataformas hardware. Compositing en sistemas operativos móviles se encarga de renderizar toda la interfaz de usuario.
En iOS, el compositing es gestionado por Core Animation — un sistema de alto nivel que funciona sobre Metal u OpenGL ES. Core Animation crea un layer tree (árbol de capas) que luego se compone en la imagen final. Core Animation determina automáticamente qué capas han cambiado y redibuja solo esas (compositing incremental), minimizando la carga de la GPU.
En Android, el compositing lo realiza SurfaceFlinger — un servicio del sistema que combina superficies (surfaces) de varias aplicaciones y la UI del sistema. SurfaceFlinger utiliza HWC (Hardware Composer) para delegar parte del trabajo de compositing al hardware dedicado del controlador de pantalla.
El rendimiento del compositing es un cuello de botella común en aplicaciones móviles, especialmente con animaciones complejas y múltiples capas semitransparentes. Cada capa adicional requiere lectura, mezcla y escritura de píxeles en memoria.
Los dispositivos móviles modernos realizan el compositing en la GPU mediante unidades de blending especializadas. GPU compositing utiliza unidades ROP paralelas y filtros de textura para la mezcla rápida de píxeles. El CPU compositing se usa solo en casos excepcionales (dispositivos antiguos, pruebas).
La optimización del compositing es una de las tareas clave en el desarrollo de interfaces móviles. La fluidez de la UI (60 FPS) depende directamente de la eficiencia de la combinación de capas.
Para analizar el rendimiento del compositing, use: Core Animation Profiler (Xcode Instruments) — muestra el número de capas y la frecuencia de compositing; GPU Debugger (Android Studio) — muestra la carga de la GPU y el overdraw; Overdraw Visualization — herramienta de depuración que muestra áreas de redibujado múltiple de píxeles.
Preguntas frecuentes
Compositing es como apilar varias láminas transparentes con dibujos en una sola imagen. Cada lámina es una capa (botón, fondo, texto), y la transparencia determina cómo las capas se ven a través unas de otras.
Renderizado — creación del contenido de cada capa (dibujar un botón, texturizar un modelo 3D). Compositing — combinación de las capas terminadas en la imagen final teniendo en cuenta la transparencia y el orden de apilamiento.
Core Animation compone las capas en la GPU a través de Metal. Los problemas surgen con una gran cantidad de capas semitransparentes (overdraw) o con CPU compositing (renderizado fuera de pantalla). Use Core Animation Profiler para el diagnóstico.
Hardware Composer (HWC) es un módulo hardware del controlador de pantalla que realiza el compositing sin cargar la GPU. HWC puede combinar hasta 4-8 capas por hardware, lo que reduce el consumo de energía y libera la GPU para otras tareas.
Combine capas estáticas (layer flattening), use colores opacos cuando sea posible, reduzca el tamaño de los búferes fuera de pantalla y evite animaciones innecesarias que provoquen recomposición de toda la escena.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también