Update v1.4

Update v1.4

Update v1.4 is fully dedicated to random walk subsurface scattering. We added many new features with an overall speedup and a dedicated workflow for indirect rays. Briefly :  Rayleigh scattering Mie Scattering Similarity theory Albedo remapping Diffuse contrast Indirect sampling Continuation rays Overall speedup Added new demo scenes to test updated features and subsurface scattering.[…]

Improved SSS

Improved SSS

We’ve implemented new exciting features for the SSS random walk shaders. In the while there have also been many optimizations on how sampling is used regard direct vs indirect lighting. We’ve discovered that for the majority of cases we don’t need the extra complexity we introduce with guided (Dwivedi) sampling for indirect sampling/lighting, resulting in[…]

Update v1.3

Update v1.3

With v1.3 update, we’ve refined rombo reflection shaders : added a new bump mode to romboReflectGeneralized we called ‘Symmetrical’ previous ‘Analitycal’ bump mode has been renamed ‘Tangent’ added a new param ‘Rough IOR’ to romboReflectGeneralized fixed some rare NANs with romboReflect shaders sped up some internal computations Added a new utility node, romboWIFLoader. Added romboTonemapper,[…]

WIF Loader

WIF Loader

WIF loader is a companion shader for our romboFabricWoven material. Because sometimes we may want to use external nodes to further model things, we’ve added a romboWIFLoader utility that matches romboFabricWoven patterns for increased flexibility in modeling bumps and displacements for example. It can also be used standalone for pattern modelling and general WIF (Weaving[…]

Tonemappers

Tonemappers

We implemented various tonemap operators for the shader graph so they can be used for color correction or any other task that involves colors, textures and procedurals where they can be applied selectively to single image textures or a bunch of procedural nodes. They work great with HDR inputs like sunsky and environment maps and[…]

Update v1.2

Update v1.2

With v1.2 update, we are introducing a first batch of exciting new utility shaders :  romboTileBlender romboTriplanarMapper romboTextureBlurrer romboThickness All with a single point update ! 😉 These new utilities are under Texture/Utilities folders in your DCC apz of choice. Minor updates for C4D shader structure: romboTransparency is now in the Refract folder (was before in[…]

Update v1.1

Update v1.1

With latest v1.1 update, we added : a full new shading node, romboReflectRetro full PBR support to the Glints node custom map support for the Glints node automatic fix for bad inverted normals for SSS-RW a new multiple scattering mode to ReflectMultiScatter a re-work of some internal code to be overally faster a new batch[…]

Retro-reflections

Retro-reflections

Retroreflection is an optical phenomenon where light scatters back to its source along the inverted incident direction. Materials with retroreflection properties are used for safety garments to help enhance visibility in low-light conditions like roads at night when illuminated by car headlights. Traffic signs and pavement markings also use materials with such properties to ensure[…]

Rough Diffuse

Rough Diffuse

In our quest for an improved diffuse model we already seen a principled implementation and a super smooth lambertian sphere model. We’ll briefly see here a ‘microfacet’ lambertian model that comes with the DiffuseRough shading node. As before we don’t really need to fully understand all of this but a general understading is still better[…]

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[…]

Lambert-Sphere BRDF

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[…]

Rombo Denoiser

Rombo Denoiser

Here we use a non-local sample-based approach together with feature-based filtering and adaptive sampling. A proof of concept on latest denoising tech plus some creative engineering that makes it working consistently for production. For example, with a little help from the camera and with Arnold in kinda ‘pathtrace’ mode (AA samples 4×4 while all others[…]

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.2.1.0 (tested on maya 2022, 2023 and 2024 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 correct[…]

Cinema 4D

Cinema 4D

First check you have the following Arnold core : >= 7.2.1.0 (we tested rombotools on R25, R26, 2023 and 2024). Then simply set the ARNOLD_PLUGIN_PATH environment variable on Windows. On 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[…]

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.2.1.0 (tested with Houdini 19.5.xxx). In Windows 10/11 click the[…]

3dsMax

3dsMax

First check you have the following Arnold core : >= 7.2.1.0 (tested on 3dsMax 2022 and 2023). 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’ ..[…]

Katana

Katana

First check you have the following Arnold core : >= 7.2.1.0 (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 the[…]