Sigo con mis posts sobre Clarisse. En esta ocasión voy a hablar de layers y passes, un tópico común en cualquier software 3D, y que además en el caso de Clarisse, es especialmente importante.
Clarisse permite crear sistemas de layers y passes muy complejos, para organizar las escenas prácticamente de la forma que mejor nos convenga. Además, podemos componer todas las diferentes layers y passes dentro del propio Clarisse.
Mezclar los "context" con "layers" y "passes" hace de Clarisse una herramienta perfecta para organizar escenas.
- Para este tutorial, voy a utilizar esta simple escena. El proposito es separar cada uno de los elementos en "foreground" "midground" y "background". También crearemos un passe con las sombras de todos los elementos.
- Ahora mismo en esta image solo hay una 3DLayer con el contenido de toda la escena.
- He creado 3 context diferentes, uno para el foreground, otro para el midground y otro para el background.
- En cada context he puesto la geometría correspondiente (esfera, cubo y cilindro. El suelo de momento esta junto a la esfera.)
- En cada context tambien he creado una image.
- Dentro de cada image, he creado una 3DLayer.
- En cada 3DLayer hay que indicar que cámara y renderer utilizar.
- También hay que indicar en cada 3DLayer que luces queremos utilizar.
- En este punto seguramente ya te has dado cuenta del potencial de los layers de Clarisse. Podemos fácilmente renderizar cada layer con diferentes settings, cámaras, luces, renderes, etc.
- En el context background estoy renderizando la esfera y el suelo.
- En el context scene, he creado un nuevo image, que servirá como recipiente de los images creados anteriormente.
- Como layers en este image no voy a crear 3DLayers si no Image Layers.
- En las opciones selecciona cada una de las layers creados anteriormente, colocando el background abajo y subiendo hasta el foreground.
- Nos encontramos con el problema de que las sombras del cilindro y el cubo no están presentes en el suelo. Esto es debido a que el suelo solo está en el context de la esfera.
- Para solucionar esto he creado otro context llamado shadow_catcher y he movido el suelo a ese context.
- He creado una 3DLayer donde he seleccionado la cámara y el renderer a utilizar.
- He creado un grupo en este context con el cubo, la esfera y el cilindro.
- En las opciones de visibility de la 3DLayer he puesto el grupo en la opción shadows.
- En el image que me sirve de recipiente, he puesto el shadow catcher abajo del todo y ya está, las sombras ya funcionan.
- Aunque no tan rápido. Para ilustrar otro problema, he puesto a conciencia el cubo atravesando el suelo. Si miras la primera imagen del post lo verás. Pero en esta composición, no parece estar atravesándolo. Esto es debido a que el suelo debería actuar como matte cortando al cubo, pero no lo esta haciendo, ya que el suelo no esta en el context del cubo.
- Para solucionarlo, he creado una instancia del suelo y la he puesto en el context del cubo.
- En las opciones de shading del suelo he hecho la opción matte object y matte alpha locales (botón derecho en el parámetro -> localize).
- He activado la opción matte y puesto el alpha al 0%
- Ya está, ahora funciona a la perfección.
- En este momento tenemos las sombras junto al suelo. Si queremos, podemos también sacar las sombras por separado, para tener aún más control.
- Para ello, he creado otro context solo con el suelo.
- Después, en el context shadow_catcher, he creado un material "decal" y lo he asignado al suelo.
- En el material "decal" he activado la opción receive illumination.
- Finalmente he añadido la nueva capa en el recipiente image.
- Puedes descargar las escenas de ejemplo aquí.