La composición digital es el proceso de ensamblar digitalmente varias imágenes para crear una imagen final, generalmente para imprimir, filmar o proyectar en pantalla. Es el análogo digital de la composición óptica de películas . Es parte del procesamiento de efectos visuales .
La operación básica utilizada en la composición digital se conoce como combinación alfa , donde se utiliza un valor de opacidad , "α", para controlar las proporciones de dos valores de píxeles de entrada que terminan en un solo píxel de salida.
Como ejemplo sencillo, supongamos que hay dos imágenes del mismo tamaño disponibles y que se van a componer. Las imágenes de entrada se denominan imagen de primer plano e imagen de fondo. Cada imagen consta de la misma cantidad de píxeles. La composición se realiza combinando matemáticamente la información de los píxeles correspondientes de las dos imágenes de entrada y registrando el resultado en una tercera imagen, que se denomina imagen compuesta.
Considere tres píxeles;
y
Entonces, considerando los tres canales de color , y asumiendo que los canales de color se expresan en un espacio de color γ=1 (es decir, los valores medidos son proporcionales a la intensidad de la luz), tenemos:
Tenga en cuenta que si las operaciones se realizan en un espacio de color donde γ no es igual a 1, la operación generará efectos no lineales que pueden verse como artefactos de aliasing (o " dientes de sierra ") a lo largo de los bordes afilados del mate. En términos más generales, la composición no lineal puede tener efectos como "halos" alrededor de los objetos compuestos, porque la influencia del canal alfa no es lineal. Es posible que un artista de composición compense los efectos de la composición en un espacio no lineal.
Realizar la combinación alfa es una operación costosa si se realiza en una imagen completa o una escena 3D. Si esta operación se debe realizar en videojuegos en tiempo real, existe un truco fácil para mejorar el rendimiento.
Con solo reescribir la expresión matemática, se puede ahorrar el 50% de las multiplicaciones necesarias.
Cuando es necesario combinar muchas capas parcialmente transparentes, conviene tener en cuenta las propiedades algebraicas de los operadores de composición utilizados. En concreto, la asociatividad y la conmutatividad determinan cuándo se puede o no evitar la repetición de cálculos.
Consideremos el caso en el que tenemos cuatro capas para combinar para producir la imagen final: F=A*(B*(C*D)) donde A, B, C, D son capas de imagen parcialmente transparentes y "*" denota un operador de composición (con la capa izquierda sobre la capa derecha). Si solo cambia la capa C, deberíamos encontrar una forma de evitar volver a combinar todas las capas al calcular F. Sin ninguna consideración especial, se necesitarían producir cuatro combinaciones de imágenes completas. Para los operadores de composición que son conmutativos , como la combinación aditiva , es seguro reordenar las operaciones de combinación. En este caso, podríamos calcular T=A*(B*D) solo una vez y simplemente combinar T*C para producir F, una sola operación. Desafortunadamente, la mayoría de los operadores no son conmutativos. Sin embargo, muchos son asociativos , lo que sugiere que es seguro reagrupar las operaciones en F=(A*B)*(C*D), es decir, sin cambiar su orden. En este caso, podemos calcular S:=A*B una vez y guardar este resultado. Para formar F con un operador asociativo, solo necesitamos hacer dos operaciones de composición adicionales para integrar la nueva capa S, calculando F:=S*(C*D). Esta expresión indica que se compone C con todas las capas que se encuentran debajo en un solo paso y luego se combinan todas las capas que se encuentran sobre ella con el resultado anterior para producir la imagen final en el segundo paso.
Si todas las capas de una imagen cambian regularmente pero aún es necesario componer muchas capas (como en la representación distribuida ), la conmutatividad de un operador de composición aún se puede explotar para acelerar el cálculo a través del paralelismo incluso cuando no hay ganancia por el cálculo previo. Nuevamente, considere la imagen F=A*(B*(C*D)). Cada operación de composición en esta expresión depende de la siguiente, lo que lleva a un cálculo en serie. Sin embargo, la asociatividad puede permitirnos reescribir F=(A*B)*(C*D) donde claramente hay dos operaciones que no dependen una de la otra y que se pueden ejecutar en paralelo. En general, podemos construir un árbol de operaciones de composición por pares con una altura que es logarítmica en el número de capas.
El sistema de composición no lineal más significativo históricamente fue el Cineon , que operaba en un espacio de color logarítmico, que imita más de cerca la respuesta de luz natural de las emulsiones de película (el sistema Cineon, fabricado por Kodak , ya no se produce). Debido a las limitaciones de la velocidad de procesamiento y la memoria, los artistas de composición no solían tener el lujo de que el sistema hiciera conversiones intermedias al espacio lineal para los pasos de composición. Con el tiempo, las limitaciones se han vuelto mucho menos significativas y ahora la mayoría de las composiciones se realizan en un espacio de color lineal, incluso en los casos en que las imágenes de origen están en un espacio de color logarítmico.
La composición a menudo también incluye el escalado , el retoque y la corrección del color de las imágenes.
Hay dos flujos de trabajo de composición digital radicalmente diferentes: la composición basada en nodos y la composición basada en capas.
La composición basada en nodos representa un compuesto completo como un gráfico acíclico dirigido , que vincula objetos de medios y efectos en un mapa procedimental, que presenta intuitivamente la progresión desde la entrada de la fuente hasta la salida final y, de hecho, es la forma en que todas las aplicaciones de composición manejan internamente los compuestos. Este tipo de interfaz de composición permite una gran flexibilidad, incluida la capacidad de modificar los parámetros de un paso de procesamiento de imagen anterior "en contexto" (mientras se ve el compuesto final ). Los paquetes de composición basados en nodos a menudo manejan mal los fotogramas clave y los efectos de tiempo, ya que su flujo de trabajo no se deriva directamente de una línea de tiempo, como lo hacen los paquetes de composición basados en capas. El software que incorpora una interfaz basada en nodos incluye Natron , Shake , Blender , Blackmagic Fusion y Nuke . Los nodos son una excelente manera de organizar los efectos en una toma compleja mientras se mantiene el control de los detalles más pequeños.
La composición basada en capas representa cada objeto multimedia de una composición como una capa independiente dentro de una línea de tiempo, cada una con sus propios límites de tiempo, efectos y fotogramas clave. Todas las capas se apilan, una encima de la otra, en cualquier orden deseado; y la capa inferior suele renderizarse como base en la imagen resultante, y cada capa superior se renderiza progresivamente sobre la capa compuesta previamente, moviéndose hacia arriba hasta que todas las capas se hayan renderizado en la composición final. La composición basada en capas es muy adecuada para efectos 2D rápidos y 3D limitados , como en gráficos en movimiento, pero resulta incómoda para composiciones más complejas que implican numerosas capas. Una solución parcial a esto es la capacidad de algunos programas de ver el orden de composición de elementos (como imágenes, efectos u otros atributos) con un diagrama visual llamado diagrama de flujo para anidar composiciones, o "composiciones", directamente en otras composiciones, agregando así complejidad al orden de renderizado al componer primero las capas en la composición inicial, luego combinar esa imagen resultante con las imágenes en capas de la composición anterior, y así sucesivamente.