Pizza!

Render based on the illustration done by my friend raeioul

Render hecho basado en la ilustración de mi amigo raeioul

Pizza2Pizza3

Advertisements

Trapped

Lo que empezó como una prueba de iluminación y settings de cámara terminó convirtiéndose en esta imagen. Un poco con vibra de película de terror, puede funcionar para hacer un pequeño teaser a partir de la imagen 🙂

What started as a simple test for camera en lighting setting morphed into this. I liked the horror movie vibe it has, maybe a little animated teaser can be done with this 🙂

Render en Cycles, post en Krita y Photoshop

Trapped_paintover_V1
Render final
Trapped_paintover_V2
Filmstock LUT
Viewport_capture
Captura de viewport

Santa Claus

Had an old base sculpt lying around and decided to do something with it for the holidays, so here’s a portrait of Santa, and an interview 🙂

Five Questions with Santa
By Melissa Muñoz

So Santa, tell us. Have things changed since you first started giving out gifts during Christmas?

Well of course they have, it’s been a very long time. There were not many presents at first. I think I miss Yule the most. Then I did not have to do everything in one night. It’s a logistical nightmare, you can’t even imagine. Even more so now, with so many planes flying all over the place. In yule we could relax, have some beer, and eat a feast… for days… Humanity has gotten a bit dull with their dinners, now they only leave cookies out for me, why do you think I’m getting so fat? But well, you must follow the times. I blame Victoria, with her obsession with family and propriety. That has taken out the best parts of the whole thing, at least party-wise. I did like the tree idea, though.

Why do you use chimneys?

The whole chimney thing started because I kept hoping there were still some yule fires around… with some ale, some roast… by the time I gave up the search, I was already used to using the chimney. Some don’t have them, of course, but well, I never say no to a challenge.

With the population growth, how do you get time to go through the list?

Well, things improved a lot the year the elves gave me a computer for midsummer’s eve. That’s our Christmas, as you can imagine, actual Christmas time is our busiest time so we celebrate in the South Pole in summer. Anyway, they set the whole thing up, so now I get automatic behavior analysis reports.

What do you mean by reports?

Well, for a while I was pretty addicted to gaming, from there I got into programming, and then I made the behavioral algorithm, it works well with google to follow people’s behavior online as well. It was eye opening. In any case, it cut my workload in half. Too bad it also gave me more time to spend on the internet… I cannot tell you how many times I ended up in the weird side of 4chan, and in mid-November! All of this new distractions had me using Adderall for five years in a row to manage to get the job done… I had to stop, though, when I found myself rearranging the toy making inventory for the last thousand years in alphabetical order.

Do you think it’s ok to give out coal to naughty kids now, when global warming is such a threat to our survival?

I stopped giving out coal decades ago. Besides, you misinterpret my gift of coal. Winter is cold, you know, it was supposed to be a punishment in its practicality. Like when they give you socks for Christmas… very useful, but so boring… No, now I jam their Wi-Fi. Make it super slow, it drives them crazy. Well, I’d love to chat some more, but the show is tomorrow. Do remember to not bother the elves, they hate reporters, and the internet… with all the body shaming that goes on there, they don´t feel they’d be well received… Anyway, no more interruptions, or no Wi-Fi for you this year. Bye!

Merry Christmas and a happy and successful 2018!

Santa_2017_1Santa_2017_2

Reducción de ruido en Cycles (Denoiser)

Esta vez vamos a hablar de otra de las grandes y muy bienvenidas adiciones a Cycles en Blender 2.79, el Denoiser!

Denoise o Noise reduction es el proceso de reducción/eliminación de ruido, que permite lograr imágenes completamente limpias en una fracción del tiempo que toma regularmente un render en Cycles.

En términos simples, el denoiser analiza y filtra la imagen un tile a la vez, lo compara con los tiles terminados alrededor y hace un promedio de los pixeles de la zona quitando la información que se determina como ruido, tratando de mantener tanto detalle como sea posible.

Los settings por defecto funcionan bien para la mayoría de los casos, pero vamos a revisarlos uno por uno para entender mejor cómo usarlo y que valores cambiar dependiendo de la escena en particular:

render_cycles_settings_scene_render-layers_denoising

Estos conceptos son sacados directamente del manual oficial

Radius: es el tamaño del área de la imagen que se usa para reducir el ruido de un pixel. Valores más altos logran una imagen más suavizada, pero puede reducir significativamente el detalle y toma más tiempo.

Strength: Es la fuerza, o la intensidad con la que se “limpia” el ruido. De manera más técnica, permite definir qué tan diferente (en términos de color) puede ser el área alrededor del pixel central de la zona que se está limpiando. Valores más bajos mantienen más detalle, pero el resultado final puede dejar algo de ruido.

Feature Strength: controla la eliminación de las partes de la imagen más ruidosas y redundantes antes de hacer el proceso de denoising. Puede ser necesario en algunos casos como motion blur o profundidad de campo (DOF) extremos, para evitar que la imagen se vea “manchada”. Puede causar que detalles pequeños en texturas o geometría sean borrados. Valores más bajos mantienen más detalle, pero el resultado final puede dejar algo de ruido.

Relative Filter: cuando se remueven características que no contienen información relevante para el denoiser, esta opción decide cuáles características se mantienen basada en la cantidad total de información visual. Puede limpiar rápidamente la imagen y evitar artefactos, pero puede causar pérdida de detalle sobre todo en los bordes de los objetos.

Passes: permite que seleccionemos cuáles passes van a ser limpiados de ruido y cuáles no. Muy útil si usamos posteriormente los render passes para componer la imagen final.
Se pueden seleccionar los passes directo e indirecto para: Diffuse, Glossy, Transmission y Subsurface Scattering.

Notas de los desarrolladores (fuente):

El denoiser cambiará en el futuro y algunas de las funciones no han sido implementadas aún. Si el proceso no producce buenos resultados, generalmente la solución está en aumentar el número de samples o usar clamping para reducir las posibilidades de pixeles muy brillantes en la imagen.

  • No se recomienda que el valor en Radius se use muy alto. Además de aumentar el tiempo de render significativamente, el resultado puede ser más suave pero no va a ser más exacto, ya que no hay información extra en la imagen. Si en un valor de 15 todavía no hay buenos resultados, probablemente sea mejor aumentar la cantidad de samples.
  • El denoiser todavía no puede ser usado para quemar texturas (Texture baking).
  • Puede ser usado para animación, sin embargo todavía es necesario usar muchos samples para tener buenos resultados. Con pocos samples es posible que se presente ruido de baja frecuencia (borroso) en la animación, incluso si no es aparente en imágenes estáticas. En un futuro, el denoiser podrá comparar entre frames, lo que facilitará el proceso para animación.
  • Si usas GPU para el render, el proceso puede consumir una gran cantidad de vRAM. Si la tarjeta de video se queda sin memoria pero funciona normal sin el denoiser, trata reduciendo el tamaño de los tiles, o hacer el render con CPU.

Antes de ver un ejemplo práctico, es necesario aclarar que el denoiser por si solo no hace milagros y, como cualquier otra herramienta de Cycles es una que debe ser usada en conjunto con las demás para mejorar los tiempos de render y lograr imágenes más limpias.

En la práctica, si una imagen necesita 2500 samples y aún tiene algo de ruido, puede limpiarse completamente con 1000 o 1500 samples usando el denoiser. No es para nada práctico tratar de hacer un render interior con 10 fuentes de luz usando sólo 100 samples + el denoiser… Ese caso puede sonar exagerado pero es un buen ejemplo, para que la eliminación de ruido funcione bien es necesario que la imagen tenga suficiente información visual, es decir, que se haya renderizado lo suficiente como para que el algoritmo pueda diferenciar entre el ruido y los detalles pequeños en las texturas o en la geometría.

Ejemplo:

Este es un ejemplo un tanto extremo, para mostrar claramente los resultados y los artefactos que pueden generarse con el denoiser. Es una escena interior, con una sola fuente de luz externa (HDRI), y muchas superficies reflectivas.

Normalmente una escena como esta debería apoyarse en el uso de luces interiores o aperturas en las paredes fuera de cámara para reducir el ruido, pero en este caso, como prueba para el denoiser usamos sólo el HDRI para la iluminación.

Descarga la escena

Render settings:

Render_settings

Denoising: settings por defecto, no se modificó nada.
Sampling: 900.
Clamp direct e indirect: 100, un valor muy alto pero que funciona si se usa Filmic y se quieren evitar pixeles muy brillantes en la escena.
Light Paths: Max bounces 2

Bano5_filmic_noise
Sin denoiser
Bano5_filmic
Con denoiser – Radius: 8
Bano6_filmic
Con denoiser – Radius: 5
Bano7_filmic
Con denoiser – Radius: 10
Bano8_filmic.png
Con denoiser – Radius: 8 – Relative filter: activado

A primera vista no parece haber mucha diferencia, así que veamos las zonas con más ruido comparadas lado a lado:

Comparacion.jpg
Abre la imagen en otra pestaña para ver las diferencias claramente

En esta comparación se hacen más evidentes los problemas que puede causar el uso de denoiser en situaciones complejas o con pocos samples. Muchas veces el ruido se suaviza por partes, lo que genera parches de ruido más grandes y suavizados que parecen manchas.

Para este ejemplo el mejor resultado lo da un radius de 8 y Relative filter activado, pero CUIDADO! esto no quiere decir que se deben usar estos settings como una fórmula mágica todo el tiempo. Para cada escena hay que testear las opciones hasta encontrar la mejor combinación. Además en esta prueba no hice ningún cambio a otros settings como Strenght o Feature Strenght, que también pueden afectar mucho el resultado final.

Y otra prueba debería hacerse usando los render passes en composición…

Como lo mencioné antes, generalmente la mejor opción es aumentar el número de samples; por ejemplo la imagen de abajo usa también un radius de 8 pero en vez de 900 usé 1500 samples. Repito, un render más claro en primer lugar asegura un mejor resultado del denoiser (Al menos por ahora, faltan muchas cosas por implementar).

Bano9_filmic.png
Con denoiser – Radius: 8 – Relative filter: activado – Samples: 1500

Ahora, aquí está la misma escena pero usando algunas luces interiores; este sería un caso más realista, en el que primero trato de reducir tanto ruido como sea posible y luego, como detalle final uso el denoiser sólo para reducir un poco el tiempo de render.

Con la nueva iluminación volví a 900 samples, y sin embargo en algunas zonas aparece mucho más limpia que la versión de 1500 samples.

Bano10_filmic.png
Luces de área internas + HDRI – Denoiser radius: 8 – Relative filter: activado – Samples: 900

Ok, espero que este nuevo artículo haya sido de ayuda y sobre todo sea claro acerca del uso del denoiser. Habría que hacer más pruebas, explorar todas las opciones detalladamente y hacer una tabla de relaciones para cada setting que existe, pero por ahora esta introducción debería ser suficiente.

Por favor, no duden en comentar y hacerme saber si cometí algún error o pasé por alto algún pedazo de información importante para este tema, con gusto lo corregiré para que no confundamos otros usuarios 🙂

Pueden descargar el archivo aquí.

Reel 2017

ESP: Hace algún tiempo que no actualizo el portafolio, así que hice una pequeña recopilación del trabajo realizado principalmente durante el último año.

ENG: It’s been a while since I did a reel, so here’s a recap of the work I’ve been doing for the past year.

Principled shader (o Disney shader) en Blender Cycles

A partir de la versión 2.79 de Blender, próxima a lanzarse, o para quienes usen los daily builds disponibles desde builder.blender.org entre las mejoras y adiciones está el nuevo shader llamado Principled BSDF. Este nuevo shader está basado en el modelo de Disney también conocido como “PBR” shader, haciéndolo compatible con otros motores de render que usan el mismo modelo, lo que significa que traducir materiales entre un programa y otro es mucho más fácil.

Este “uber” shader, como se les llama normalmente incluye varias capas que permiten crear una amplia variedad de materiales. La base del shader es una mezcla controlable por el usuario entre diffuse, metal, subsurface scattering y transmisión. Y encima de esta, 3 capas reflectivas: specular, sheen y clearcoat.

A excepción de algunos materiales complejos como plásticos traslúcidos, piel avanzada, vidrios “rápidos” para arquitectura, entre otros, este nuevo shader permite la creación de casi cualquier material imaginable.

Ahora una explicación de sus características principales:

1b

Los inputs subrayados en la imagen superior son los que controlan las características principales del material.

Nota: si bien sólo hay 2 inputs de imagen (o de información RGB) en este shader, es posible conectar imágenes en blanco y negro y en escala de grises en cualquiera de los inputs. Estas imágenes serán interpretadas por blender como información numérica que va de 0 a 1.
0 = Negro
1 = Blanco

CAPA BASE:

Base color: Como su nombre lo indica, es el color del material. Diffuse, color y/o albedo maps van a este input.

Subsurface: Determina la si la luz pasa a través del objeto o no. (Piel, mármol, cera, etc.). El slider va de 0 a 1. Donde 0 equivale a un material difuso, mientras que 1 sería el equivalente a un material como la cera. Nota: la escala del objeto en la escena puede afectar el efecto del Subsurface scattering, es buena práctica trabajar en lo posible con medidas reales.

Metallic: Determina si el objeto es metálico. Igual que con la opción anterior, 0 equivale a difuso (o dielectrico, para ser más exactos) y 1 equivale a metálico. El shader permite que haya puntos intermedios entre 0 y 1, pero si se quiere realismo en el material, esta opción debería pensarse siempre en términos de 0 ó 1 exclusivamente (blanco o negro). Los mapas de “metalness” que se exportan desde programas como substance painter por ejemplo son siempre en blanco y negro, nunca vienen en escala de grises.

Transmission o Transparency: Determina la transparencia del material. 0 equivale a difuso, 1 equivale a transparente (o vidrio).

CAPAS REFLECTIVAS:

  1. Specular: Controla la capacidad para reflejar el ambiente que tiene el objeto. Permite hacer una interpretación “artística” de los valores IOR para el reflejo. Por ejemplo, en un material de color base negro, 10 (se pueden ingresar valores por encima de 1) equivale casi a un espejo, mientras que 0 significa que el objeto es 100% difuso.
  2. Sheen: Es un reflejo (difuso) que se genera en los bordes del objeto, muy útil para simular efectos como tela, terciopelo, o pelaje en animales.
  3. ClearCoat: Es un reflejo extra que se agrega encima del specular, común en los materiales de pintura de vehículos. Muy útil para materiales como madera pulida, mármol y cerámica. Como es una capa reflectiva adicional, tiene su propio normal input, para controlar de manera independiente.

2

COMPLEMENTARIOS:

Los demás inputs presentes en este shader son complementarios y permiten más control sobre los 7 mencionados hasta ahora:

Subsurface radius: permite controlar la cantidad de luz que pasa a través del objeto en cada canal RGB por separado; para un material como la piel por ejemplo, el efecto es más pronunciado en el canal R (rojo) que en G y B (verde y azul). Texturas y colores pueden conectarse en este input para controlar el efecto.

Subsurface color: es el color base que va a verse cuando la luz pase a través del objeto. Combinado con Subsurface radius permite controlar detalladamente el efecto de traslucidez deseado.

Specular tint: permite “manchar” el reflejo con el color del objeto en los bordes. En términos estrictos el reflejo de un material que no sea metal siempre va a ser blanco, así que este input no es físicamente correcto, sin embargo permite controlar el material desde un punto de vista más artístico.

Roughness: (Rugosidad o dureza) Controla la dureza del reflejo specular, simulando las imperfecciones microscópicas de la superficie. 0 es un reflejo perfecto, como espejo. 1 equivale a un reflejo difuso, como cartón.

Anisotropic: controla la cantidad de reflejo anisotrópico. El ejemplo más claro de este efecto es el metal cepillado. Suele usarse sólo en materiales metálicos (Metallic input=1).

Anisotropic rotation: controla la rotación del reflejo anisotrópico, va de 0 a 1.
0= 0°
1= 360°

Sheen tint: Igual que con el specular tint, este input permite que el reflejo tenga el color del objeto.

Clearcoat gloss: controla la dureza del reflejo clearcoat, y no es afectado por el input Roughness. 0 equivale a un reflejo difuso, 1 equivale a un reflejo perfecto.

IOR: Es el índice de refracción para la transmisión, es decir, tiene un efecto sobre el material sólo cuando el input transmission (transparente) está en 1. Si el IOR se deja en 1, el material será simplemente transparente, pero no habrá refracción de ningún tipo.
Para el agua el IOR es 1.33 aprox, para vidrio regular el IOR es de 1.5 aprox.
Aquí hay un recurso bastante útil para usar el índice de refracción correcto de acuerdo al material: https://pixelandpoly.com/ior.html

Normal: controla las normales del objeto.

Clearcoat Normal:  controla las normales del reflejo clearcoat. Si el input clearcoat está en 0 cualquier mapa conectado a clearcoat normal no tendrá ningún efecto sobre el material.

Tangent: controla la tangente para el reflejo anisotrópico.

Esta tabla ayuda a ejemplificar mejor lo que es posible con este nuevo shader:

20131117001743

Vamos a usar el modelo de Matt (Substance designer) para demostrar la forma de usar el shader, conectando todos los mapas exportados desde Substance Painter en sus respectivos inputs (color, metallic, roughness, normal), sin cambiar nada más en el shader:

Sample1b

Sample2
Mapa de color base
Sample3
Mapa metal
Sample4
Mapa de rugosidad (o dureza)
Sample5
Mapa normal

Comparación entre el render nativo de Substance Painter (IRay) y Blender (Cycles):

Comparacion

Hay diferencias obvias entre ambas imágenes, debido a varios factores como cámara, iluminación, render y efectos de post-producción; sin embargo es claro que el nuevo shader facilita muchísimo la transición de materiales (especialmente PBR) entre Blender y otros programas. No hay necesidad de usar complejos grupos de nodos y materiales personalizados ya que para la gran mayoría de materiales es posible usar sólo este shader. Cabe aclarar, como lo mencioné al principio, que habrá algunos materiales más complejos que necesiten soluciones personalizadas, ya sea para lograr efectos que no necesariamente son realistas, o para reducir tiempos de render en transparencias y/o vidrios por ejemplo.

El paso a seguir, luego de entender las características principales del Principled Shader, será la creación de diferentes tipos de materiales, pero eso será tema para otro artículo en el blog.
Por lo pronto, espero que este artículo sea lo suficientemente claro y sirva de referencia para la creación de materiales PBR simples. 🙂

Edit: olvidé compartir el archivo para quienes quieran ensayarlo directamente, aquí está el link de descarga: https://drive.google.com/open?id=0B7ECfNWJoP-ONnhZNTJkTFBOQUk.

Espero les sirva.

 

Power Rangers – Cardiatron

This fanart/redesign was made for the tribute of the Power Rangers enemies in season 1, started by Edgar Gomez (https://www.artstation.com/artist/edgargomez).

I spent about 15 hours total in the making, from modeling to post. Done in Blender, rendered in Cycles, post in Photoshop.

comparison
Comparison

The Clown

Another speed sculpt sketch I got carried away with. It was a good exercise, on the hair specially, which took a long time to set up properly.

I may come back to this later and make another render, with better lighting and higher resolution. I couldn’t decide on which one looked better, so I’ll post both color and b&w versions.

clown_byn Clown_color_correction

 

Test renders:

Blender, Cycles and Photoshop for some minor fixes and color correction.

 

 

Animated head loop

Polyhead2.gif

While experimenting with the Animation Nodes addon for Blender (and trying to understand how it works), I came up with this simple loop, and decided to make a gif out of it. Crappy quality and lots of noise because I didn’t wanted to spend a whole day rendering this…

For anyone wanting to create procedural animation and/or motion graphics in Blender, I heavily recommend this addon, doing animation with nodes is really cool 🙂

Links:

Animation Nodes thread on Blenderartists.org

Examples and tutorials

Download

Tutorials by Jimmy Gunawan