You may have noticed that Shaderlight 2018 includes a new transparent material feature, which delivers greatly enhanced realism when rendering transparent materials such as large bodies of water and thick, solid glass objects.
How it works
The new physically-based model of light transmission is able to calculate the absorption of light as it travels through a body of transparent material, taking into account the amount of material that it passes through. The apparent transparency of an object now depends on the thickness of the object, with thicker objects absorbing more light.
The amount of light transmitted by a material can be controlled for each of the three primary colours, thus allowing the material to tint the light that passes through, as some colours are absorbed more than others.
How to get the best results
In keeping with Shaderlight’s philosophy of making sophisticated renders easy to achieve without requiring arcane knowledge of rendering technology, a wide range of materials can be realised simply by adjusting the SketchUp material colour and opacity.
The SketchUp material colour is used to specify the transmittance for each primary colour, which is further modulated by the SketchUp opacity slider, providing both fine–grained and wide range control. This is a change from previous versions of Shaderlight, which ignored the SketchUp opacity slider when rendering Transparent materials. Low opacity values permit fine control for materials that absorb very little light, such as water and clear glass, while high opacity values allow high absorption rates for materials like heavily tinted glass. Do note, however, that a value of 0% opacity on the SketchUp slider will not generally result in a completely transparent object, and a value of 100% will not necessarily be completely opaque – Shaderlight’s physically-based model means that very thick objects may always be ‘opaque’ and very thin objects may never be opaque.
The new transparent model is applied to the Transparent Solid Glass, Solid Frosted Glass, Liquid and Diamond material presets. The new model is not applicable to the Transparent Thin Glass material, as that represents objects with infinitesimal thickness and hence absorbs a fixed amount of light. We anticipate extending the new model to other material types in future releases.
The scene below demonstrates the new material model with a pair of wedge-shaped glass blocks. The green block on the left has RGB colour values of (32, 154, 84) and an opacity setting of 73%. The blue block has a colour of (1, 13, 201) and an opacity of 21%.
The darker green colour and its higher opacity setting make the left block much less transparent than the right one. Also, you can see that the narrow end of the green wedge is more transparent than the wide end, because the light is travelling through less material and has less chance to be absorbed. This effect is not as apparent on the blue block because its orientation means that complex reflections and refractions are interacting on the sloping face and obscuring the impact of absorption.
The image posted by Shaderlight user Andrew Waddington at https://www.artvps.com/index.php/discuss/viewthread/3076/ illustrates how the new model affects water.
The rocks just below the surface of the water are clearly visible, but as they get deeper in the water, they appear darker. The water material uses RGB values of 214, 216, 194 and an opacity of 30%. A subtle wave texture is used on the transparent->liquid material and a Bump setting of -1.5 gives the water a rippled surface.
Texture Image: Andrew used the texture image below which was created using the Solid noise filter in GIMP
Other things to consider when rendering transparent materials
It has always been important to fully model transparent solids so that the volume is fully enclosed, otherwise rays that only pass through one transparent face will be overly refracted, because they never exit the transparent medium. The new model makes this even more important, because the distance-based absorption means that any rays that don’t exit the medium will continue to be attenuated, making objects behind the transparent surface very dark, or black. This doesn’t apply to the Thin Glass material, because that is used for surfaces with no thickness.
The viewpoint is assumed to be located in air, so if you position the viewpoint within a transparent medium, the ‘inside’ and ‘outside’ will become flipped.
Full saturation of any one or two of the colour channels (red, green or blue) is not recommended. This would represent ‘no absorption’ for the fully saturated colour(s) and is probably not physically plausible. Having one or two fully saturated colours can result in over-saturation of objects seen through the transparent material, as only that colour will be transmitted and all other colours will be absorbed, if the object is thick enough. Having all three colour channels fully saturated (i.e. white) won’t result in colouring anomalies, but also won’t result in any attenuation, so again is probably not physically plausible.
The appearance of transparent objects created in previous versions of Shaderlight may change when rendered in Shaderlight 2018. Adjusting the opacity and/or colour should enable the old appearance to be approximated, but an exact match may not be possible, because the distance that light travels through an object is now taken into account.