Compositing é o processo de combinar múltiplas camadas visuais (layers) em uma única imagem final. De acordo com a Documentação Apple Core Animation, 2025, no desenvolvimento mobile o compositing é usado para sobrepor camadas de UI, combinar renderização 3D com a interface e criar animações. Compositing controla a ordem de desenho, a transparência e a mistura de cores entre as camadas.
Principais pontos
Compositing é o estágio final do pipeline gráfico onde todas as camadas renderizadas separadamente (cenas 3D, elementos de UI, vídeo, interface do sistema) são combinadas em uma única imagem para exibição na tela. Cada camada pode ter sua própria cor, transparência (alpha), posição e ordem de empilhamento.
No contexto do desenvolvimento mobile, o compositing é importante para a interface do usuário: janelas, botões, texto, ícones — todos esses elementos são compostos em uma única cena. O sistema de compositing gerencia a ordem de desenho (z-order), a sobreposição correta de elementos semitransparentes e a animação de transição entre estados da UI.
No pipeline gráfico, o compositing ocorre após a conclusão de todas as passagens de shader e rasterização. A GPU pega as camadas prontas dos framebuffers, aplica operações de blending e escreve o resultado no framebuffer principal (front buffer) para envio ao display.
Compositing usa a mistura pixel a pixel (blending) de cores de diferentes camadas. Cada pixel da imagem de saída é calculado com base nas cores dos pixels das camadas sobrepostas, levando em conta a transparência (canal alpha) e o modo de mistura selecionado.
Cada camada contém um canal alpha (o quarto componente de cor RGBA) que determina sua opacidade. Alpha = 1.0 — completamente opaco, alpha = 0.0 — completamente transparente. Alpha blending calcula a cor do pixel como uma soma ponderada das cores das camadas frontal (source) e traseira (destination): resultado = source * alpha + dest * (1 - alpha).
O compositing é realizado da camada mais distante para a mais próxima (back-to-front). Primeiro, a camada de fundo é renderizada, então cada camada subsequente é sobreposta à anterior levando em conta sua transparência. Z-order determina qual camada está acima e cobrirá as inferiores.
Compositing suporta vários modos de mistura (blend modes) que determinam como as cores das camadas são combinadas. Cada modo produz um efeito visual diferente e tem seus próprios custos computacionais.
| Modo | Fórmula | Aplicação |
|---|---|---|
| Normal (Alpha) | src * a + dst * (1 - a) | Sobreposição padrão com transparência |
| Additive | src + dst | Efeitos de brilho, partículas |
| Multiply | src * dst | Sombreado, sombras |
| Screen | 1 - (1 - src) * (1 - dst) | Clareamento, realces |
| Premultiplied Alpha | (src.rgb * a) + dst * (1 - a) | Desempenho (sem multiplicação em tempo real) |
No modo premultiplied alpha, os canais de cor são armazenados já multiplicados pelo canal alpha (RGB × A). Isso elimina a necessidade de multiplicação em cada operação de blending, acelerando o compositing. Premultiplied alpha é o formato padrão para compositing por GPU no iOS Core Animation e Android HWUI.
Cada sistema operacional móvel tem seu próprio sistema de compositing otimizado para suas plataformas de hardware. Compositing em SOs móveis é responsável por renderizar toda a interface do usuário.
No iOS, o compositing é gerenciado pelo Core Animation — um sistema de alto nível que funciona sobre Metal ou OpenGL ES. O Core Animation cria uma layer tree (árvore de camadas) que é então composta na imagem final. Core Animation determina automaticamente quais camadas mudaram e redesenha apenas essas (compositing incremental), minimizando a carga na GPU.
No Android, o compositing é realizado pelo SurfaceFlinger — um serviço do sistema que combina superfícies (surfaces) de vários aplicativos e da UI do sistema. SurfaceFlinger usa HWC (Hardware Composer) para delegar parte do trabalho de compositing ao hardware dedicado do controlador de display.
O desempenho do compositing é um gargalo comum em aplicativos móveis, especialmente com animações complexas e múltiplas camadas semitransparentes. Cada camada adicional requer leitura, mistura e escrita de pixels na memória.
Dispositivos móveis modernos realizam compositing na GPU através de unidades de blending especializadas. GPU compositing usa unidades ROP paralelas e filtros de textura para mistura rápida de pixels. O CPU compositing é usado apenas em casos raros (dispositivos antigos, testes).
A otimização do compositing é uma das tarefas principais no desenvolvimento de interfaces mobile. A suavidade da UI (60 FPS) depende diretamente da eficiência da combinação de camadas.
Para analisar o desempenho do compositing, use: Core Animation Profiler (Xcode Instruments) — mostra o número de camadas e a frequência de compositing; GPU Debugger (Android Studio) — exibe a carga da GPU e overdraw; Overdraw Visualization — ferramenta de depuração que mostra áreas de redesenho múltiplo de pixels.
Perguntas frequentes
Compositing é como empilhar várias folhas transparentes com desenhos em uma imagem. Cada folha é uma camada (botão, fundo, texto), e a transparência determina como as camadas aparecem umas através das outras.
Renderização — criação do conteúdo de cada camada (desenhar um botão, texturizar um modelo 3D). Compositing — combinação das camadas prontas na imagem final considerando transparência e ordem de empilhamento.
O Core Animation compõe as camadas na GPU via Metal. Problemas surgem com um grande número de camadas semitransparentes (overdraw) ou com CPU compositing (renderização off-screen). Use o Core Animation Profiler para diagnóstico.
Hardware Composer (HWC) é um módulo de hardware do controlador de display que realiza compositing sem carregar a GPU. O HWC pode combinar até 4-8 camadas em hardware, reduzindo o consumo de energia e liberando a GPU para outras tarefas.
Combine camadas estáticas (layer flattening), use cores opacas quando possível, reduza o tamanho dos buffers offscreen e evite animações desnecessárias que causam recomposição de toda a cena.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também