Skin Layers

Skin Layers

SkinLayers material is a three layers SSS dipole implementation in the style of the old alSurface material with added features like ‘peach fuzz’ reflections and ad-hoc params to better control overall sss appearance. Works great for anything releated to subsurface scattering and remains super easy and intuitive to use. Here for this Judge Dredd’s caricature[…]

Smooth Diffuse aka Lambert-Sphere BRDF

Smooth Diffuse aka Lambert-Sphere BRDF

In our journey on diffuse shading we have seen how a diffuse principled implementation better suites modern workflows than the classical Oren-Nayar implementation. The main offender on the Oren-Nayar implementation (rombo DiffuseGeneralized, Arnold Std Material) is that it is based on single scattering and so it leaks energy (diffuse gets too dark with increasing roughness).[…]

Interfaced Lambertians

Interfaced Lambertians

Generally diffuse and specular lobes are layered making use of the Fresnel reflectance at the interface. This simply means that the diffuse lobe is multiplied by 1-Fresnel while the specular lobe is added on top. Practically it means that when Fresnel is at max (at grazing angles) we have only reflections showing up. This ensure[…]

Refractions

Refractions

This shading node does refractions at boundary and then continue the ray into a volumetric medium with single scattering until it hits the back of the surface and it’s finalized into a new direction. This model is generally applicable to materials with low indices of refraction so that their translucent nature implies that a high[…]

Diffraction Lobe

Diffraction Lobe

Turns out that most computer graphics conductor materials (metals) don’t fit well with their measured real life counterparts. Looks like microfacet models (any reflection node you ever used..) can’t fully address the appearance of this kind of materials. Microfaceting theory models the appearance of a material at macroscopic level based on surface micro details. Situation[…]

SSS Refract

SSS Refract

This node basically does multiple scattering refractions. When with romboRefract (or Standard Material) we do engage Scatter in the Refract (transmission) rollout we are doing instead volumetric single scattering. Multiple scattering is slower but more expressive. We can’t really render a resin statuette like this one below with single scattering. Let’s see its main parameters[…]

Walk the Walk

Walk the Walk

The SSS Random Walk node is a state-of-the-art subsurface scattering shader. We employ a new sampling strategy for random walks that takes all previouses approaches and put them together for a more effective sampling with reduced render times and great solution quality. Basically what lately did put pathtraced SSS into production is the understanding that[…]

Dipole for SSS

Dipole for SSS

The SSS Dipole shader implements all the relevant dipole models for subsurface scattering available in computer graphics.. namely Standard, Better and Directional dipoles. They are of particular interest because they are better (at matching real life reference materials) than diffusion SSS and way faster than raytraced (random walk) SSS. Let’s see its GUI and main[…]

Microfacet-based Normal Mapping

Microfacet-based Normal Mapping

Microfacet-based normal mapping is an alternative way of faking geometric details without corrupting Monte Carlo based path tracing light transport and it’s available in ReflectMultiScatter and ReflectGeneralized. Theoretically it is well-defined, symmetric and fully energy conserving. On the other side it means that classic normal mapping has none of the properties above resulting in a[…]

Hazy Reflections

Hazy Reflections

Reflection hazying is actually an artifact. It happens due to micro imperfections which widen the actual reflection lobe making reflections appear less vivid and radiant, more milky and less contrasted. Hazing generally is due to poor industrial processes so that metals and other reflective surfaces have an inferior finish quality because of bad drying or[…]

Wave Optics Glints

Wave Optics Glints

This reflection node is a powerfull shader that supports both geometrical optics and wave optics glints, flakes, brushed patterns and scratches. Unlike in geometric optics, the contributions from different parts of the surface can sum non-linearly due to interference effects, to create the characteristic diffraction effects of wave optics.. ie. those colored patterns we see[…]

Improved Fabric Woven

Improved Fabric Woven

The yarn-based material has been updated with: sheen and reflection lobes build-in patterns with HSV controls an all new phase function for better controllable fiber scattering a roughness patch size to better control fiber roughness and specular pattern variations an indirect glossy versus indirect diffuse parameter to better approach some kind of textiles better overall[…]

Multiple-scattering BRDF

Multiple-scattering BRDF

With rombo Reflect shaders, – we’re introducing microfacet multiple-scattering in two forms: approximated and true random walk multiple scattering. The true multiple scattering is available only with the ReflectMultipleScatter node while the approximated stuff comes with any specular additional lobe attached to the Diffuse nodes; it is an option with the MultipleScatter node itself and[…]

Fabric Shader Overview

Fabric Shader Overview

Yarn-based Cloth Shader : (aka) micro-fiber based BRDF : micro-fibers orientation returns correct physically-based macro specular highlights, suitable for both close-ups and distant views. Automagic color shifting, normal/bumps simulated with specular roughness for improved detail and consistency. Here we see also fiber fuzziness in action. Procedural weaving pattern support via WIFs (Weaving Information Files) files.[…]

Maya

Maya

First check you have the following Arnold core : >7.1.1.0 or 6.2.1.0 (tested on maya 2019, 2020 and 2022 both Win/Linux). Then with Maya we have to edit the Maya.env file for both Windows and Linux installations. MTOA_TEMPLATES_PATH = xxx\rtoa\DCCs\Maya\ae MAYA_CUSTOM_TEMPLATE_PATH = xxx\rtoa\DCCs\Maya\aexml ARNOLD_PLUGIN_PATH = xxx\rtoa\bin Just let the above maya vars point to the[…]

Cinema 4D

Cinema 4D

First check you have the following Arnold core : >7.1.1.0 or 6.2.1.0 (we tested rombo materials on R21, R25 and R26). Then simply set the ARNOLD_PLUGIN_PATH environment variable on Windows. macOS is not supported at the moment but it might be at some point if enough interest. On Windows 10/11 click the win button and[…]

Houdini

Houdini

With Houdini the installation is pretty simple and standard for Arnold custom shaders. All we have to do is to set the ARNOLD_PLUGIN_PATH environment variable on both Windows or Linux to rtoa/bin path. Before that however check you have the following Arnold core : >7.1.1.0 or 6.2.1.0 (tested on Houdini 19.0 build 531 with arn[…]

3dsMax

3dsMax

First check you have the following Arnold core : >7.1.1.0 or 6.2.1.0 (tested on 3dsMax 2022). Then simply set the ARNOLD_PLUGIN_PATH environment variable to rtoa/bin path. In Windows 10/11 click the win button and start typing ‘env’ you should get an hint like ‘Edit the system environment variables’, clicking on that it will open ‘System Properties’ .. at[…]

Katana

Katana

First check you have the following Arnold core : >7.1.1.0 or 6.2.1.1 (tested on Katana 5.0v.1) Then simply set the ARNOLD_PLUGIN_PATH environment variable to rtoa/bin path. In Windows 10/11 click the win button and start typing ‘env’ you should get an hint like ‘Edit the system environment variables’, clicking on that it will open ‘System Properties’ .. at[…]