Transmission roughness en Blender. Perdido y encontrado

Cuando hacemos dibujos en 3D con Blender, a veces se nos perdía misteriosamente la propiedad "Transmission roughness" en el nodo "Principled BDSF" de los materiales de Cycles. Esto se usa básicamente para conseguir que un material con apariencia de cristal -propiedad Transmission mayor que cero- pueda tener una transparencia difusa, pero sin tener que aplicar rugosidad a su superficie.

Blender cycles roughness y transmission roughness

En la anterior imagen podemos ver que las dos primeras esferas tienen Roughness a 0, por lo que reflejan perfectamente el suelo, el cielo, y todo lo que tienen alrededor. La primera de ellas tiene también el Transmission roughness a 0, por lo que es perfectamente transparente, mientras que la segunda ya aparece borrosa, pero conservando su superficie perfectamente lisa. Esto es lo que se espera conseguir. En las esferas tercera y cuarta, con Roughness en su superficie, ya son ásperas y no reflejan nada. El valor de Transmission rougness es menos importante.

El problema es que muchas veces no encontrábamos el valor de Transmission roughness en el panel del nodo del material. Viendo la documentación de Blender descubrimos que esto es debido al valor del primer control de la parte superior del panel. Si está establecido como Multiscatter GGX, no tendremos disponible la propiedad "Transmission roughness", mientras que si se cambia a GGX, entonces sí se presentará esta propiedad.

Nodo de material Principled BDSF en Blender cycles

Puede ocurrir que estemos abriendo un proyecto anterior o descargado de internet donde los nodos de material venían como Multiscatter GGX, y no echemos en falta el "Transmission Roughness" hasta que no lo vayamos a usar en materiales lisos transparentes y no lo encontremos. Por el contrario en un proyecto nuevo de Blender con la configuración actual los nuevos nodos que se agregan por defecto sí vienen configurados como GGX y traen esta posibilidad de rugosidad en la transparencia.

Cambiar el valor de esta propiedad no tiene implicación para el resto de valores, colores, conexiones, etc. Se puede hacer fácilmente en el panel derecho de opciones del material o en la ventana del editor de nodos.

Blender Cycles Multiscatter GGX

Esta diferencia entre GGX y Multiscatter GGX tiene otras implicaciones en el aspecto de materiales con superficie muy rugosa. Multiscatter GGX es más sofisticado y evita que el material se oscurezca o presente brillos extraños, pero es un poco -muy poco- más lento de renderizar.

En resumen:

  • Si quieres poder controlar el Transmission Roughness en materiales transparentes: Hay que usar GGX
  • Si tienes materiales con superficie muy rugosa, da igual si son transparentes o no, y quieres evitar que se oscurezcan: Hay que usar Multiscatter GGX

La siguiente propiedad, la segunda en el nodo Principled BDSF tiene implicaciones similares, pero esta vez con la transluminiscencia de Cycles: Christensen-Burley o dos Random Walk son algoritmos diferentes para calcular la forma como entra la luz en objetos con piel, velas o mármol. Si elegimos Random Walk tendremos propiedades extra de refracción y anisotropía que pueden variar un poco la apariencia de los materiales con Subsurface activados. Esto no afecta a nuestro tan buscado "Transmission roughness" para los cristales.

Todo esto se aprende leyéndose la documentación. Blender es un programa con muchísimas opciones y unas afectan a otras. Todo está perfectamente calculado y su funcionamiento lejos de ser caótico es perfectamente preciso y estable. Pero hay que saber cual botón tocar.

Comentarios

Entradas populares de este blog

Cómo ganar siempre al buscaminas

Cómo cambiar el color del modo lectura de Firefox

Comprobando el sucio secreto de las impresoras Epson