miércoles, 27 de noviembre de 2013

Blender Cycles: How to make an Infinite Plane Effect

Hi all. Today I'm going to explain how to make an infinte plane effect, similar to Pocoyo's style. I'm going to make a simple scene with my blog name:

Hola a todos. Hoy voy a explicar como hacer un efecto de plano infinito, similar al estilo de Pocoyo. Voy a  hacer una escena simple con el nombre de mi blog:



This technique also can be used to include rendered objects in real pictures or hdri environments. I will explain it in a later article.

Esta técnica se puede usar para incluir objetos renderizados en fotos reales o en ambientes hdri. Lo explicaré en un artículo posterior.

Basically we need to create two render layers:
- One render layer for the objects we want to show, in my example some letters.
- One render layer with the floor, which will catch the shadows of your objects.

Básicamente necesitamos crear dos capas de renderizado:
- Una capa de renderizado para los objetos que queremos mostrar, en mi ejemplo algunas letras.
- Una capa de renderizado con el suelo, que recogerá las sombras de los objetos.

We will render both layers with transparent world and mix them in compositing.

Renderizaremos ambas capas con el universo transparente y las mezclaremos con postproducción.


Note that Spot lamps or mesh lights can not produce shadows in the Shadow pass. You can use Sun, Point or Area lamps.

Observa que las lámparas de tipo foco (Spot) o las mayas de emisión no producen sombras en el pase de sombras (Shadow Pass). Puedes usar lámparas sol (Sun), punto (Point) o área (Area). 

The Letters Layer / La Capa de Letras

This is the setup of the first layer, the Letters layer. This layer includes the objects without the floor. Remember the environment is transparent.

Esta es la configuración de la primera capa, la capa de letras. Esta capa incluye los objetos sin el suelo. Recuerda que el entorno es transparente.



This is a normal render layer. I have only placed the letters in one scene layer and the lamp in another scene layer. Remember you have visible layers (behind Scene label) and scene layers (behind Layer label). If you check one layer in visible layers but not in scene layers, this means that the objects in that layer won't be rendered but affect to the rest of objects which are rendered. If you want that layer don't affect the rendered objects, you would need to check the layer in Exclude layers. In this case we won't do that.

Esta es una capa de renderizado (render layer) habitual. Yo sólo he colocado las letras en una capa de escena y la lámpara en otra capa. Recuerda que tienes las capas visibles (bajo la etiqueta Scene) y las capas de escena (bajo la etiqueta Layer). Si marcas una capa en las capas visibles pero no en las capas de escena, significa que los objetos en esa capa no serán renderizados, pero si afectarán en el resto de objetos que sí son renderizados. Si quieres que una capa no afecte al renderizado de los otros objetos, necesitarías marcar dicha capa en las capas de exclusión (Exclude). En este caso no haremos eso.

This is the output for this render layer:

Este es el resultado para esta capa de renderizado:


The green color is the alpha channel. Only the objects are rendered without the floor or their shadows.

El color verde es el canal alfa o la transparencia. Sólo se han renderizado los objetos sin el suelo ni sus sombras.

The Shadows Layer / La Capa de Sombras

And this is the setup for the floor / shadows layer. This layer only includes the floor which catches the shadows of the objects.

Y esta es la configuración para la capa de suelo / sombras. Esta capa sólo incluye el suelo que captura las sombras de los objetos.


In this render layer I have only checked the layer of the floor in scene layers. Besides I have checked the Object Index and Shadow Passes.

En esta capa de renderizado sólo he marcado la capa del suelo entre las capas de escena. Además he marcado los pases de índice de objetos (Object Index) y de sombra (Shadow).


The green color is the alpha channel. Only the floor rendered without the objects, in this case the letters. But the important information in this layer is not the reder, it is the shadow pass:

El color  verde es el canal alfa. Sólo se renderiza el suelo sin los objetos, en este caso las letras. Pero la información importante no está en el render, es el pase de sombra:



This is the final output without compositing, only mixing the two layers explained:

Y este es el resultado  sin postproducción, sólo mezclando las dos capas anteriores:

 
We need compositing to mix these layers and create the infinite plane effect.

Se necesita postproducción para mezclar estas capas y crear el efecto de plano infinito.

Compositing / Postproducción

This is the compositing setup of the scene:

Esta es la configuración de postproducción de la escena:


Firstly, it is needed to tweak the Shadow pass. If you don't want to see the border of the floor you can make something like this:

En primer lugar, es necesario ajustar el pase de sombra. Si no quieres ver el borde del suelo puedes hacer lago como ésto:



These nodes let you to obtain a clear shadow pass without artifacts in the border of the plane due to antialiasing problems. With respect to the objects index, in my example the floor has index 1, "El Brujo" letters index 2 and "De La Tribu" index 3. Index 0 gets the world background (see the Viewer node). I determine the pixels of the background and add them to the floor with its shadows with the "Greater Than" node .

Estos nodos te permiten obtener un pase de sombra claro sin artefactos en el borde del plano debido a problemas de antialiasing. Respecto a los índices de los objetos, en mi ejemplo he usado 1 para el suelo, 2 para las letras de "El Brujo" y 3 para las letras de "De La Tribu". El índice 0 obtiene el fondo del universo (vea el nodo Viewer). Con el node mayor que (Greater Than) determino los píxeles del fondo y los añado al suelo con sus sombras.

Now it is needed to add the shadows to a flat color background:

Ahora se necesita añadir las sombras a un color de fondo plano:



I will make this with a Mix node. The white color of my shadow pass means one and the black color means zero when it is used as mix factor. So I would put the color of the shadow in the first Image input of the Mix node and the color of the background (red) in the second Image input. Beside the blend type (Mix in this case) there is a button which let you to use the alpha channel of the second slot. If I use the alpha channel of the first slot, all the output will become transparent. So if I change the order of the backgournd/shadow colors I can use that button to get only the shadows transparent, leaving the background without transparence. So I have used an Invert node before the Mix node to use the shadow pass properly.

Haré ésto con un nodo Mix. El color blanco de mi pase de sombra significa uno y el color negro significa cero a la hora de usarlo como factor de mezcla. Así pondría el color de la sombra en el primer conector de entrada imagen del nodo Mix y el color del fondo (el rojo) en el segundo conector imagen. Junto al tipo de mezcla (Mix en este caso) hay un botón que permite usar el canal alfa del segundo conector de entrada. Si uso el canal alfa del primer conector, todo la mezcla obtenida será transparente. Así si cambio el orden de los colores de fondo / sombra puedo usar ese botón para que sólo las sombras sean transparentes, dejando el fondo sin transparencia. Así he usado el nodo invertir (Invert) antes del nodo mezcla (Mix) para usar el pase de sombra de manera apropiada.

Finally I mix the background - shadows image with the letters image with a simple Alpha Over node:

Finalmente  mezclo la imagen con el fondo y las sombras con la imagen de las letras con un simple nodo sobre alfa (Alpha Over):



That's all. I will write a later article to explain other tweaks and uses of this technique.

Eso es todo. Escribiré un artículo posterior para explicar otros ajustes y usos de esta técnica.

Bye

Hasta la vista

No hay comentarios:

Este sitio emplea cookies de Google para prestar sus servicios, para personalizar anuncios y para analizar el tráfico. Google recibe información sobre tu uso de este sitio web. Si utilizas este sitio web, se sobreentiende que aceptas el uso de cookies. Más información Entendido