Composição digital
Composição digital é o processo de montagem digital de várias imagens para criar uma imagem final, geralmente para impressão, filmes ou exibição na tela. É o análogo digital da composição de filme óptico.
Matemática
A operação básica usada na composição digital é conhecida como mistura alfa, onde um valor de opacidade, 'α', é usado para controlar as proporções de dois valores de pixel de entrada que terminam em um único pixel de saída.
Como um exemplo simples, suponha que duas imagens do mesmo tamanho estejam disponíveis e devam ser compostas. As imagens de entrada são chamadas de imagem de primeiro plano e imagem de fundo. Cada imagem consiste no mesmo número de pixels. A composição é realizada combinando matematicamente as informações dos pixels correspondentes das duas imagens de entrada e registrando o resultado em uma terceira imagem, chamada de imagem composta.
Considere três pixels;
- um pixel de primeiro plano, f
- um pixel de fundo, b
- um pixel composto, c
e
- α, o valor de opacidade do pixel de primeiro plano. (α = 1 para um primeiro plano opaco, α = 0 para um primeiro plano completamente transparente). Uma imagem raster monocromática onde os valores de pixel devem ser interpretados como valores alfa é conhecida como um mate.
Então, considerando todos os três canais de cores, e assumindo que os canais de cores são expressos em um espaço de cores γ=1 (ou seja, os valores medidos são proporcionais à intensidade da luz), temos:
- cR ?R + (1 − α) b)R
- cg ?g + (1 − α) b)g
- cb) ?b) + (1 − α) b)b)
Observe que, se as operações forem executadas em um espaço de cores em que γ não é igual a 1, a operação levará a efeitos não lineares que podem ser vistos como artefatos de aliasing (ou "jaggies") ao longo de bordas afiadas no fosco. De forma mais geral, a composição não linear pode ter efeitos como "halos" em torno de objetos compostos, porque a influência do canal alfa é não linear. É possível para um artista de composição compensar os efeitos da composição em um espaço não linear.
Realizar a mistura alfa é uma operação cara se executada em uma imagem inteira ou cena 3D. Se esta operação tiver que ser feita em videogames em tempo real, existe um truque fácil para aumentar o desempenho.
- cfora ?em + (1 − α) b)em
- cfora ?em + bem - α bem
- cfora = bem + α (f)em - Bem)
Simplesmente reescrevendo a expressão matemática, pode-se economizar 50% das multiplicações necessárias.
Propriedades algébricas
Quando muitas camadas parcialmente transparentes precisam ser compostas juntas, vale a pena considerar as propriedades algébricas dos operadores de composição usados. Especificamente, a associatividade e a comutatividade determinam quando o cálculo repetido pode ou não ser evitado.
Considere o caso em que temos quatro camadas para mesclar para produzir a imagem final: F=A*(B*(C*D)) onde A, B, C, D são camadas de imagem parcialmente transparentes e " *" denota um operador de composição (com a camada esquerda sobre a camada direita). Se apenas a camada C mudar, devemos encontrar uma maneira de evitar a remistura de todas as camadas ao calcular F. Sem nenhuma consideração especial, quatro mesclagens de imagem completa precisariam ocorrer. Para operadores de composição que são comutativos, como a combinação aditiva, é seguro reordenar as operações de combinação. Nesse caso, podemos calcular T=A*(B*D) apenas uma vez e simplesmente misturar T*C para produzir F, uma única operação. Infelizmente, a maioria dos operadores não é comutativa. No entanto, muitos são associativos, sugerindo que é seguro reagrupar as operações para F=(A*B)*(C*D), ou seja, sem alterar sua ordem. Neste caso, podemos calcular S:=A*B uma vez e salvar este resultado. Para formar F com um operador associativo, precisamos apenas fazer duas operações adicionais de composição para integrar a nova camada S, calculando F:=S*(C*D). Essa expressão indica a composição de C com todas as camadas abaixo dela em uma etapa e, em seguida, a mistura de todas as camadas acima dela com o resultado anterior para produzir a imagem final na segunda etapa.
Se todas as camadas de uma imagem mudam regularmente, mas muitas camadas ainda precisam ser compostas (como na renderização distribuída), a comutatividade de um operador de composição ainda pode ser explorada para acelerar a computação por meio do paralelismo, mesmo quando não há ganho de pré-computação. Novamente, considere a imagem F=A*(B*(C*D)). Cada operação de composição nesta expressão depende da próxima, levando à computação serial. No entanto, a associatividade pode nos permitir reescrever F=(A*B)*(C*D) onde há claramente duas operações que não dependem uma da outra que podem ser executadas em paralelo. Em geral, podemos construir uma árvore de operações de composição de pares com uma altura logarítmica no número de camadas.
Software
O sistema de composição não linear historicamente mais significativo foi o Cineon, que operava em um espaço de cor logarítmico, que imita mais de perto a resposta à luz natural das emulsões de filme (o Sistema Cineon, fabricado pela Kodak, não está mais em produção). Devido às limitações de velocidade de processamento e memória, os artistas de composição geralmente não tinham o luxo de fazer com que o sistema fizesse conversões intermediárias em espaço linear para as etapas de composição. Com o tempo, as limitações se tornaram muito menos significativas e agora a maior parte da composição é feita em um espaço de cores linear, mesmo nos casos em que a imagem de origem está em um espaço de cores logarítmico.
A composição geralmente também inclui dimensionamento, retoque e correção de cores das imagens.
Composição baseada em nó e baseada em camada
Existem dois fluxos de trabalho de composição digital radicalmente diferentes: composição baseada em nós e composição baseada em camadas.
A composição baseada em nó representa uma composição inteira como um gráfico acíclico direcionado, vinculando objetos de mídia e efeitos em um mapa processual, apresentando intuitivamente a progressão da entrada de origem à saída final e é, de fato, a maneira como todos os aplicativos de composição lidam internamente compósitos. Esse tipo de interface de composição permite grande flexibilidade, incluindo a capacidade de modificar os parâmetros de uma etapa anterior de processamento de imagem "no contexto" (enquanto visualiza a composição final). Os pacotes de composição baseados em nós geralmente lidam mal com quadros-chave e efeitos de tempo, pois seu fluxo de trabalho não decorre diretamente de uma linha do tempo, como fazem os pacotes de composição baseados em camadas. O software que incorpora uma interface baseada em nó inclui Natron, Shake, Blender, Blackmagic Fusion e Nuke.
A composição baseada em camada representa cada objeto de mídia em uma composição como uma camada separada dentro de uma linha de tempo, cada uma com seus próprios limites de tempo, efeitos e quadros-chave. Todas as camadas são empilhadas, uma acima da outra, em qualquer ordem desejada; e a camada inferior geralmente é renderizada como uma base na imagem resultante, com cada camada superior sendo progressivamente renderizada no topo das camadas compostas anteriormente, movendo-se para cima até que todas as camadas tenham sido renderizadas na composição final. A composição baseada em camadas é muito adequada para efeitos 2D rápidos e 3D limitados, como em gráficos em movimento, mas torna-se complicada para composições mais complexas que envolvem várias camadas. Uma solução parcial para isso é o uso de alguns programas. capacidade de visualizar a ordem composta de elementos (como imagens, efeitos ou outros atributos) com um diagrama visual chamado fluxograma para aninhar composições ou "comps" diretamente em outras composições, adicionando complexidade à ordem de renderização, primeiro compondo as camadas na composição inicial e, em seguida, combinando o imome resultante (< imome?).