Nuke VectorBlur.. añadiendo desenfoque de movimiento en post. / by Mauricio Ricaldi

Una de las herramientas en Nuke es el nodo para generar el desenfoque de movimiento o MotionBlur a los elementos que tenemos rendeados desde cualquier aplicacion 3D, sea Maya, 3dsMax, etc.

 

Una de las mas comunes preguntas  es como generar ese efecto en Nuke, ya que es algo bastante simple pero puede llegar a complicarse segun lo que uno quiere obtener.

Si rendeamos nuestro personaje en 3D con el pase llamado velocity obtendremos una imagen parecida a la de color rojo y amarillo, donde cada canal RBG contiene informacion como los pixeles se desplazan (R=x, B=y).

Usando un nodo de VectorBlur de Nuke podemos crear el desenfoque de movimiento, solo conectamos nuestro nodo a la imagen

En este ejemplo he usado una imagen en EXR que contiene varios pases incluyendo el de velocidad, tambien contiene pases de luz que es parte de otro tutorial de iluminacion (Iluminacion de personajes usando Vray).

 

Debemos asignar el canal de velocidad al UV channels, en este caso VrayVelocity.

Si subimos el valor de Multiply en las propiedades del VectorBlur, aumentamos el efecto, para que el movimiento sea mas suave cambiamos el method a forward.

Pero como veremos al primer intento las cosas se veran horribles. Esto es porque necesitamos añadir el canal alpha.

 

 

Una vez q el canal alpha este asignado podemos elejir el method entre Forward o Backward, aunque la mayoria de las veces forward funciona mejor.

El problema ahora es que en algunos casos nuestra imagen se pixela en los bordes, esto es porque vectorblur empuja los pixels segun la direccion de la velocidad, si revisamos bien la lengua del geko esta pixelado de una manera rara.

Lo que podemos hacer es sacar el canal de Velocidad y copiarlo al RGB con un nodo Shuffle, sumar sus valores de R+G y sacar un valor absoluto porque en la velocidad hay negativos, para luego pasarlo al canal Alpha, asi podremos usarlo de mascara luego.

Nuestra expresion sera asi: abs(r+b) usamos esta suma para decile a Nuke que solo cuando el personaje se mueva aplique un flitro de suavidad en los bordes llamado EdgeBlur.

En el nodo Shuffle pasamos la velocidad a RGBA con el A en negro

En el nodo Shuffle pasamos la velocidad a RGBA con el A en negro

Añadimos una Expresion y asignamos al final un canal alpha donde escribimos la expresion.

Añadimos una Expresion y asignamos al final un canal alpha donde escribimos la expresion.

En el nodo Dilate le damos un valor: 2 para que haya un mayor rango de efecto de suavidad, esto es ajustable a gusto.

En el nodo Dilate le damos un valor: 2 para que haya un mayor rango de efecto de suavidad, esto es ajustable a gusto.

Finalmente ponemos un nodo EdgeBlur para que suavize los bordes y conectamos su mascara al Dilate asi solo afectara cuando el personaje se mueva.

vblur13.JPG

Un ajuste final es poder dirigir el movimiento en X o Y, asi darle mas efecto horizontal o verticalmente, hacemos esto añadiendo valores al Add U para X y V para Y.

Ejemplo con valores U= 2 y V= 0, el efecto de desenfoque es mayor horizontalmente.

Ejemplo con valores U= 2 y V= 0, el efecto de desenfoque es mayor horizontalmente.

Espero que este corto tutorial les ayude al trabajar con el VectorBlur. Suerte,

 

M.R.