---
tags: salle, iluminación, color
---
# Blender Compositor
[TOC]
# Introducción. [📙](https://docs.blender.org/manual/en/latest/compositing/introduction.html)
Los nodos de composición nos permiten mezclar o modificar imágenes (o videos) para cambiarlas. Se pueden unir secuencias de imágenes y cambiar sus propiedades de color. Los cambios que se aplican a través de los nodos pueden ser estáticos, esto es que no cambien a lo largo del tiempo, o dinámicos.

Para utlizar el compositor vamos a la pestaña de **_Compositing_** y encendemos la opción _**Use Nodes**_. Esto nos dará ul set básico para empezar a utilizar el compositor: un nodo de input llamado _Render Layers_ y un nodo de output _Composite_.

Además nos tenemos que asegurar que la opción de _**Compositing**_ esté encendida, normalmente está encendida por defecto.

Al mezclar imágenes es importante poner atención a las resoluciones y las profundidades de color, los detalles de como se comporta blender cuando tienes diferentes tamaños los puedes encontrar en el [manual](https://docs.blender.org/manual/en/2.82/compositing/introduction.html#image-size)
# La ventana de Compositing [📙](https://docs.blender.org/manual/en/2.82/compositing/properties.html)
En la barra superior de la ventana de compositing tenemos el botón _Backdrop_, al activarlo podremos ver en el fondo de la ventana la imagen que llegue al nodo _Viewer_ que tengamos seleccionado.

El nodo _Viewer_ **tiene que ser agregado por nosotros previamente** y podemos conectar cualquier salida de imagen proveniente de otro nodo para visualizarla en el _Backdrop_. Se pueden tener varios nodos de _Preview_, se mostrará el último que hayamos seleccionado.
Para quién tenga una tarjeta gráfica poderosa en el [manual](https://docs.blender.org/manual/en/latest/compositing/properties.html#performance) se explican las opciones con las cuales se puede obtener un mejor desempeño.
Al lado derecho de la ventana de _compositing_ (se activa con la tecla _N_ o clickando la pequeña flechita) tenemos una ventana que nos permite **editar todas las propiedades del nodo seleccionado**, hay que tener en cuenta que en algunos nodos hay propiedades que sólo se pueden editar en esta ventana y no en el nodo mismo.

## Node Mute
Para ver el effecto que tiene un nodo en el resultado final es muy util la capacidad de hacerle _mute_, seleccionando el nodo y picando la tecla _m_ cambiamos el estado de mute de el nodo.

## Minimizando nodos
Los nodos permiten esconder elementos para mostrarse mas pequeños, el icono de arriba a la derecha  esconde el _preview_, _Ctrl-H_ esconde los sockets que no se están utilizando, la flechita de arriba colapsa el nodo y una vez colapsado se puede arastrar de un lado para hacerlo todavía mas pequeño.

## Agregando nodos
Agregar nodos se hace a través de el menu _Add_ o con la tecla _Shift-A_ después de seleccionado el nodo que queremos agregar lo podemos posicionar con el mouse y al hacer click se integrará en la ventana. Si dejamos caer el nodo enmedio de una conexión automáticamente se pondrá entre los dos nodos que lo rodean. Para quitarlo sin perder la conexión previa picamos _Shift-X_ a diferencia de _X_ que lo elimina sin reconectar los demás nodos.

# Tipos de nodos
En el proceso de composición podemos utilizar todo tipo de nodos, empezamos con algún nodo de **input** que nos provee la información con la que trabajaremos, después nodos intermedios que **modifican esa información** y al final nodo(s) de **output** con el cual obtenemos el producto final.
Cada nodo tiene diferentes _sockets_ que funcionan como entradas, salidas o ambas, que se muestran en forma de unos pequeños puntos de color a través de los cuales podemos conectar los nodos.

Los _sockets_ tienen diferentes colores dependiendo de el tipo de información que manejan:
* Socket **amarillo:** Información de color, puede contener canal alpha o no dependiendo de su origen.
* Socket **gris:** Contiene información de valores numéricos. Puede contener un sólo valor o un mapa de muchos valores.
* Socket **Azul:** Indica información de vectores, coordenanas y normales.
* Socket **Verde:** Se usa en los nodos de shaders (no aparecen en el compositor).
## Input Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/input/index.html#input-nodes) (básicos)
Presentan la información con la que trabajaremos, pueden obtener esta información de diferentes fuentes como el render de nuestra escena 3d, imágenes o videos externos, texturas, colores.
### Render Layers Node
Este nodo provee la información que proviene de nuestra escena 3d.
Ouputs:
* **Image** Se explica por si solo.
* **Alpha** El canal Alpha de la imagen (transparencia)

Las salidas que se muestran después de las dos mencionadas arriba dependen de cuales _Render passes_ estén habilitados. Por defecto solo está disponible _Depth_.


### Image node
Este nodo carga imágenes externas, provee la información de color, alpha y depth (profundidad) si existen.

### RGB node
Este nodo nos da la información RGBA de el color que seleccionemos

### Texture node
Nos da acceso a las texturas procedurales de blender (debemos crearlas previamente).

### Value node
Con este nodo podemos generar valores numéricos.

## Output Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/output/index.html) (básicos)
Nos permiten sacar la información generada en nuestro arbol de nodos a un archivo por ejemplo.
### Composite Node
Con este nodo regresamos la imagen procesada a blender para que la utilize en el resto del procesamiento (que puede terminar en un archivo de imagen guardado).

### File output node
Este nodo escribe una archivo con la información que le proveemos

### Viewer node

Este es un nodo que nos sirve para **visualizar las imágenes** que provienen de otros nodos, cuando lo seleccionamos la imagen que tenga conectada se mostrará en el fondo de la ventana (tenemos que habilitar el _backdrop_ como se explica más arriba). Este nodo es muy útil para entender como afecta cada etapa a nuestra imagen ya que podemos muy fácilmente (haciendo Ctr-Shift-click en el nodo que queremos conectar al viewer) conectar el output de cualquier nodo a él e ir viendo que sucede.

## Color Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/color/index.html#color-nodes)(básicos)
### Alpha Over Node
Este nodo nos sirve para poner una imagen sobre la otra usando el canal alpha, según la transparencia de la imagen que pongamos encima se vrá la de abajo.

La Opción _Convert Premul_ convierte la imagen de encima a alpha premultiplicado (comunmente hace falta cuando la imagen no es generada por blender, puedes leer más sobre esto en el [manual](https://docs.blender.org/manual/en/latest/glossary/index.html#term-alpha-channel)).
El Slider _Fac_ regula la transparencia global de la imagen superior, también puede ser controlado por un mapa de pixels a rtavés del socket.
## Converter Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/converter/index.html)(básicos)
### Color Ramp Node
Este nodo nos sirve para mapear valores a colores (o para modificar el mapeo de los valores) utilizando un degradado.

## Filter Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/filter/index.html)(básicos)
### Directional Blur Node
Nos permite hacer un blur en una dirección específica, se puede usar para simular un _motion blur._

El número de iteraciones ontrola cuantas veces se duplica la imagen para generar el blur, más iteraciones -> un blur más suave.
_Distance_ regula que tan largo es el efecto y _Angle_ su dirección. Además podemos hacer _zoom_ y rotar (_spin_) el blur con base en el centro definido en _X_ y _Y_
### Defocus Node
Nos permita hacer un blur en areas de la imágen de acuerdo a un mapa de valores, comúnmente se utiliza para hacer el blur producto del efecto de profundidad de campo en las cámaras.

Para que este nodo funcione en el _socket Z_ debemos conectar el mapa de valores de profundidad de nuestra escena.
El parámetro de _Focus disstance_ (de la cámara en nuestra escena 3d) se toma en cuenta para saber donde aplicar el blur.

## Vector Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/vector/index.html)(básicos)
Estos nodos se usan para manipular información geométrica representada en forma de vectores, esta información puede ser relativa a normales, o velocidad por ejemplo.
### Normal Node
Nos permite cambiar visualmente la dirección de una normal.

### Normalize Node
Este nodo mapea el rango de los valores que recibe a un nuevo rango entre 0 y 1. Es muy útil para trabajar con los valores de profundidad.

## Matte Nodes [📙](https://docs.blender.org/manual/en/latest/compositing/types/matte/index.html) (básicos)
## Distort Nodes[📙](https://docs.blender.org/manual/en/latest/compositing/types/distort/index.html) (básicos)
Estos nodos distorsionan la imagen de alguna manera, operan de manera uniforme sobre toda la imagen o usando una máscara para variar el effecto sobre la imagen.
### Crop Node
Nos permite recortar la imagen por cualquiera de sus lados y hacerla más pequeña que la original.

### Flip Node
Este nodo aplica un _mirror_ a la imagen.

### Lens Distortion Node
Simula distorsiones y effectos producidos por lentes en el mundo real.

### Transform Node
Este nodo nos permite cambiar la escala, la posición o rotar la imagen que pase a través de él.

# Ajuste color
# Filtros básicos
# Usando CryptoMatte [📙](https://docs.blender.org/manual/en/latest/compositing/types/matte/cryptomatte.html)




# Animación
Algunas de las propiedades de los nodos, _como casi todo en blender_ se pueden animar, para ello utilizamos el procedimiento normal de **insertar keyframes** en la propiedad que queremos animar y luego retocamos nuestra animación modificando los tiempos y las curvas de nuestros keyframes.

:::info
**Tip:** Podemos hacer el render 3D sin pasarlo por los nodos de el compositor y guardarlo como una **secuencia de imágenes**, las cuales luego podemos cargar en el compositor y hacerles modificaciones sin necesidad de volver a calcular el render 3d (que normalmente se lleva mucho más tiempo)
:::

:::info
**Referencias**
[Blender manual](https://docs.blender.org/manual/en/latest/render/layers/denoising.html?highlight=denoise)
[Blender fundamentals video](https://invidio.us/playlist?list=PLa1F2ddGya_-UvuAqHAksYnB0qL9yWDO6)
:::