P-maps o position maps (mapas de posición) son un tipo de render pass extremadamente útil. Uno de esos pases que te pueden ahorrar muchísimo tiempo, sobre todo cuanto tienes que hacer pequeños cambios. Esos cambios serían un incordio tener que hacerlos en 3D pero utilizando p-maps y técnicas 2D o 2,5D es mucho mas rápido, sencillo y eficaz.
P-maps son un tipo de mapas que viene genial tanto para compositores, como para matte painters o texture artist. Más adelante hablaré un poco más sobre ellos de forma más extendida.
Dejo aquí abajo algunos de los usos que yo le doy a este tipo de mapas.
Para posicionar cards o cualquier otro tipo de objeto 2,5D o 3D
- Este es el render que estoy utilizando para este ejemplo. Como puedes ver nada del otro mundo, un par de cubos y esferas iluminados por un par de luces directas. Esta imagen ha sido renderizada en Maya y V-Ray, pero por supuesto puedes utilizar p-maps con cualquier combinación de software 3D y motor de render.
- Como passes de render adicionales he renderizado el propio p-map y un passe de normales. Probablemente ya lo sepas, pero existen tres tipos diferentes de p-maps.
Por un lado tenemos "world position maps" (o posición basada en el centro del mundo), "camera position maps" (o posición basada en la relación con respecto a la cámara) y finalmente "object position maps" (o posición basada en el centro del objeto).
Cada uno se utiliza para diferentes propósitos, pero las técnicas que explico en este artículo son extrapolables a todos ellos. En este caso voy a utilizar solo "world position map". - Esta imagen es un .exr de 32 bits con varios aov's embebidos, así que se puede pasar de uno a otro fácilmente.
- Esta es la pinta que tienen el p-map y el pase de normales respectivamente.
- Utilizando un nodo shuffle podemos leer directamente el p-map. Si fuese necesario se puede colocar antes un nodo para un-premultiply el render.
- Con la ayuda de un nodo point to point podemos leer el p-map y ver la escena en el visor 3D.
- Ahora podemos movernos fácilmente por el viewport como si de una escena 3D se tratase. Esto es muy útil ya que nos brinda la posibilidad de posicionar elementos 2,5D o 3D con total precisión. Por ejemplo podemos posicionar "cards" que son realmente útiles para proyectar matte paintings, o efectos 2D pre-renderizados como fuego, humo, etc. Ya no es necesario colocar las cosas a ojo basado en la perspectiva de un render 2D, puedes hacerlo con total precisión.
Para re-iluminar por completo una escena
- Este es el render original de Maya.
- Como hicimos en el ejemplo anterior, shuffle el p-map.
- Utiliza un nodo re-light. Conecta el rgb al color y el shuffle al material. Después en el nodo re-light selecciona las normales y el point position.
Finalmente crea una cámara y un nodo scene. Conecta todo al nodo re-light.
- Crea una luz y conéctala al nodo scene. Juega con los parámetros de la luz para re-iluminar la escena.
- Como ya vimos anteriormente, con la vista 3D te será mucho mas fácil posicionar tu luz/luces.
Para añadir cambios sutiles de iluminación (o no tan sutiles)
- Utiliza un nodo p_matte para leer el p-map y sacar la información al canal alpha.
Ahora juega con los parámetros shape, position y scale del p_matte. Verás la información en el canal alpha.
- Utiliza un nodo grade o color correction con el p_matte conectado a la máscara, de esta forma podrás controlar la intensidad, color, etc de la luz.
- Utiliza un nodo plus para añadir tantas luces como necesites.
- Ya sabes que puedes ayudarte de la vista 3D proporcionada por los p-maps para colocar las luces.
Para proyectar a través de una cámara
- Proyectar matte paintings, texturas, elementos 2D pre-renderizados, etc, nunca ha sido tan fácil. Simplemente importa una cámara 3D desde tu software 3D, o crea una cámara en Nuke y posiciónala utilizando la vista 3D.
- Utiliza un nodo re-project3D para conectar la cámara, la imagen que quieres proyectar (en este ejemplo un grid) y el nodo shuffle con la información de posición conectada al parámetro vector.
- Finalmente utilizo un nodo merge para combinar la proyección del grid con el render original, estando enmascarado por el propio alpha embebido en el .exr
- Por supuesto, toma ventaja de la vista 3D para re-posicionar la cámara si así lo necesitas.