How do I properly combine Transparency and Raytracing?

Raytracing nodes like reflection, refraction and Fresnel work well for fully non-transparent surfaces. Refraction and Fresnel bring in full transparency on their own. As a consequence, those materials behave opaque to direct lighting, and produce dark shadows and block specularity as well. I might not want that.

Throwing in transparency however does have serious pitfalls, especially when combined with raytracing. Pitfalls and some ways to climb out of them are discussed here. Before doing so, it’s worthwhile pointing out that in Poser, transparency might mean:

  • Lace-like transparency. The surface has holes where the light shines through completely, and opaque areas with full diffuse, specular, reflective etc. properties. This kind of transparency is not discussed here, just set Poser transparency to 1 and use image maps to define the present and absent areas of the surface; then all will be fine.
  • Surface transparency. Imagine the object made of clear glass covered with a layer that absorbs light to a limited extend. This is what Poser has in mind when the material transparency value is reduced. 90% means that 10% of the light is blocked by that surface layer, so 90% x 90% = 81% of the light will pass the object (first object in, then out).
  • Volume transparency, the object is made from non-clear glass and light is dimmed and colored when it passes through, making the final result depend on object thickness and shape as well. This is not what Poser has in mind but one can mimic the dimming effect, for instance by translating an object transparency of 81% to a Poser surface transparency value of 90%. That assumes that the object has equal thickness all over. And when that’s not the case, Poser offers Transparency_Edge and Transparency_Falloff to mimic the effects of that.

Advanced

Transparency and Reflection

Poser raytracing does a fine and efficient job, when the scene presents a limited amount of bounces between objects. Parallel mirrors, fields loaded with mutually reflecting Christmas balls and more like that might either take large amounts of render time, or might produce artefacts when the rays are killed too early.

Exactly that happens when an object becomes both transparent and reflective. Light passes the object at the front, bounces at the back, bounces at the front and so on resulting in an infinite amount of internal reflections. This can prolong render times considerably, while reducing those with low(er) values of Raytrace Bounces in Render Settings might cripple the results somewhat. This means that I’ve got a challenge in finding the proper balance between time and quality.

Because light not only bounces from the surface at the first hit, but also gets light added from the bounces following on that, the final brightness of the reflection increases. This is according to real life, but unfortunately the dimming of the light during those internal bounces is not. Transparency in Poser is a surface effect, while it’s something volumetric in nature. The thicker the object, or the more bounces have taken place, the more light is absorbed on the way and the more the light is dimmed.

In math:

  • the Poser surface has a transparency T, which means that each time a ray hits the surface, that percentage of the light (say T=30%) will pass through. Then only 1-T (say 1-30% = 70%) remains for initial reflection, and reflectivity R can’t get larger than that. So if the surface is covered with a thin metallic foil which lets 30% of the light pass through, and that metal has a reflectivity by itself of 80%, then the surface will reflect 70% x 80% = 56% of the light initially. Sounds simple, but I have to adjust the reflectivity from 80% down to 56% to cater for the transparency, as Poser is not doing that when I use the Reflection component I in PoserSurface. Plugging the Reflect nod into Alternate_Diffuse however handles this for me, as (only!) Diffuse and Alternate_Diffuse are affected by the Transparency setting. In that case, I can simply use the 80% reflectivity as well.
  • Due to the internal reflections, the amount of light that will come out at the front, the final reflection, will be R (1+ T2/(1- R2)) like 0.56 * (1+ 0.32/(1-0.562)) = 0.633 which is a serious increase over the initial 0.56. This implies that there are no simple relationships between lighting levels measured in real life, and the Transparency settings for Poser.
  • In real life, the output would have been R (1+ T2/(1-(RT)2)) like 0.56*(1+0,32/(1-(0.56*0.3)2)) = 0.611 which is slightly less. So despite the large render time due to internal reflections, Poser is not doing so bad at all, the difference between the volume-model and the surface-model is something I can live with. Or I could just use a slightly less reflectivity instead (55% instead of 56% might do).

Note: Poser, from version 10 up and in all Pro versions, offers a Gamma Correction mechanism to enhance the photorealism of render results. Very recommended. As reflected light is considered an independent component in the surface definitions, the gamma mechanism should be applied to the Reflect settings. That is: all Values should remain at 1.0 (or 0.0, but no intermediate values), any reduction or coloring in reflectivity should be embedded in color swatches, and any image map involved should have set its Gamma set to Render Gamma or alike. However, Transparency itself is considered a ‘blender’: more of one component (say foreground reflecting) implies less of the other (background shining through). For those elements, the Gamma mechanism should be avoided or bypassed whenever possible. That is: Color swatches should remain white (or black), all intermediate values should be in a Value slot, and any images involved should have their Gamma value set to 1.0 if applicable. See this article for details.

Transparency and Refraction

All raytracing, including the Refraction node does work on indirect light from objects only. Direct light, whether diffuse or specular, is not reflected nor refracted. Such light, passing a refractive object, makes deep shadows and can’t make any highlights behind the object anymore. When I want the proper bright shadows of transparent objects, I need to use Transparency instead.

But now the scene behind the object will shine through twice: once due to transparency and one due to refraction, while I want the latter only since glasseous objects and liquids to refract (bend and shift the scene behind the object), while transparency does not. So I have to take the Indirect Light portion out of the Transparency, and this is the way to do it:

By using an IoR of 1.0 refraction is transparent only, no bending involved, and applies to indirect light only. The transparency itself applies to direct and indirect light, and so the subtraction results in the direct light portion only. The amount of refraction to be used here is proportional to the amount of transparency, but unfortunately the transparency slot turns into Opacity the moment a node gets plugged in. Then, black or low values make transparent and the value 0.3 shown above indicates a 70% transparency.

Now I can add in the required refraction (additional Refract node), with an IoR related to the material at hand, say 1.5. Again, the refraction is proportional to the amount of transparency so I can re-use that function outcome:

Transparency and Fresnel

In real life, at skew angles it gets harder for light waves to enter a material. So transparency decreases, and since the energy has to go somewhere, reflectivity increases. This is understood as the Fresnel principle.

The Fresnel node itself, or any simple combination of refraction with Fresnel_Blend, has the same (dis)advantages as a straightforward refraction: it assumes a full transparent clear object, which then behaves as opaque for direct light and produces far too hard shadows. So I’ll elaborate on the previous way of work instead.

First, the fixed value for opacity can be replaced by a Fresnel_Blend node. This node has to represent opacity too, and so it has to produce high (white) values at skew angles and low (black) ones at the inside of the object.

Second, I add Reflect, and I’ll do so in the Alternate_Diffuse slot which gets adjusted for transparency automatically (like regular Diffuse).And since reflection caters for indirect light only I’ll add its equivalent for direct light: specular. In which case the Blinn node provides the best way forward.

So now I’ve got the definition for homogeneous glass or a liquid, uncolored but with a limited transparency, as presented by Bagginsbill (Renderosity forum, March 20, 2014):

For colored glass or liquid, the Refraction_Color can be adjusted. No other swatches need adjustment, as reflection and specularity go uncolored (except for metals, which are non-transparent) and Transparency goes uncolored as well, so the first Refract (added into Ambient) for compensation should stay uncolored as well: Ambient_Color remains white.

Next >

What’s the Raytrace > Fresnel node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Fresnel is the elaborated combination of reflection with refraction (transparency included), as shown in nature by transparent materials like glass and liquid. Those materials show low reflection and high transparency at angles perpendicular to the surface, towards the camera, and high reflection and low transparency at skew angles towards the camera. The higher the (Index of) Refraction of the material, the stronger this effect. On the other hand: the less reflective a material, the more noticeable the effect as an object will become completely reflective at the edges, whatever its IOR.

Reflection makes light rays bounce from an object surface, to show scene elements between the object and the camera, and behind the camera as well. Transparency makes light rays pass through the object surface, showing scene elements behind the object (from the cameras point of view). Refraction then makes those latter light rays bend when passing the surface, and color them too.  Do note however that refraction brings its own transparency, and like refraction and reflection, Fresnel is supposed to work with fully non-transparent surfaces. If not, numerous issues have to be dealt with to get any believable result within feasible render times.

The Fresnel effect itself is supported by the Fresnel node (discussed here) and the Fresnel_Blend node. Like Refraction, Fresnel does require raytracing to be switched ON in Render Settings. The quality of the result depends on the ‘Number of Bounces’ set in Render Settings as well. This number is a maximum value, when Poser does not need them it won’t use them, but if the number of bounces for a light ray exceeds this limit, this light ray is killed. This might speed up the rendering while it also might introduce artifacts (black spots) in the result. The tradeoff is mine, but as nature has an infinite number of bounces, the max value is the best when I can afford it.

Do note that Fresnel – like Refraction – only handles the light from objects in the surrounding scene. It does not cater for the rays from direct light sources (spot, point, etc. lights), these will not get bend at all. Fresnel does not let light pass through an object shining onto another object, the object will be opaque for direct light, and shadows will be dark as a result. But Transparency behaves as expected, as described elsewhere in a basic and advanced way.


The right pawn still shows refraction as before, the left pawn shows Fresnel. Especially the upper edge of the left pawn clearly shows that Fresnel is not only transmitting the wall at its back, but also is reflecting it. These reflections are missing on the right pawn.

About the Fresnel node parameters:

The Index Of Refraction is mentioned above. Values for various materials can be found here.

Quality offers a tradeoff between speed and result; high values require longer render times but present crispier results. Softness increases the blur of the refracted image, representing irregularities, impurities and even minor movements and vibrations in the refracting surface.

Background is meant to fill in the pixels where no scene elements are around to be reflected, but it should be used with care because this idea is pretty meaningless for transparency / refraction. Otherwise I’m looking through a transparent surface, seeing things which are not there at all.

Refraction Color (in the PoserSurface column) gives color to the material, like red to wine or sapphire. But do note that this is a surface effect only, like a colored plastic cover around the object. Poser cannot do volumetrics, the wine will be equally red whatever way I look at it, and glass will be equally red whatever the thickness.

The final amount of refraction will be made up from the combination of Refraction_Color * Refraction_Value. This holds for the surface color as well as for the refractive and reflective effects themselves. To represent a dark colored material, I can either use a dark color in the swatch, or a low value. The Color will be affected by Gamma Correction, the Value will not so 80% White and 100% Value will behave different from 100% White and 80% Value under GC render conditions.

Rendering

Although reflection and refraction themselves do have another parameter, RayBias, in common, that one is missing here. This RayBias is introduced to avoid undesired optical effects from tiny surface irregularities, induced by displacement maps. Think of scars etc. on skin. Using RayBias speeds up the rendering but might introduce artifacts when set too high. So… Fresnel is more accurate at the tiny surface details, will not have the artifacts, but certainly will suffer from low render speeds when applied to a displacement-mapped surface.

Raytraced refractions and reflections are (sort of) realistic, detailed, and therefore time and resource consuming at render time. As a consequence, one should be careful not to put too many raytracing intensive challenges into one scene, otherwise the rendering will take forever. InDirect Lighting (IDL) is such a challenge, Fresnel – combining reflection and refraction is such a challenge, having a lot of reflective and/or refractive surfaces in one scene is a challenge, having reflections, refraction (and especially Fresnel) on a complex surface is a challenge, and having Max Bounces (and the IDL Quality options) set high in Render Settings make a challenge as well.

Take the Refraction vs Fresnel image shown above. It’s IDL, and reflective wall and floor, and quite high values in Render Settings. Rendering took 3.5 hours on quite a fast PC. Poser does have its limitations.

On top of all those things, raytracing is designed to work with a completely non-transparent surface; refraction caters for (full) transparency on its own. While doing so, raytracing works for objects in the scene only, it cannot handle direct light, nor the shadows or specularity thereof. Mixing raytracing with transparency however might produce unexpected or even erroneous results, while also taking render time to infinity.

Next >

What’s the Raytrace > Gather node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

While Ambient Occlusion was introduced to handle the softening of shadows due to environmental lighting levels, Gather was introduced to handle radiosity or color bleeding which resulted from being positioned next to a colorful object. It’s the red shine a white wall picks up from a bright red ball close to it.

Later on, Indirect Lighting (IDL) took care of this as well. So Gather is meant to support scenes with IBL and direct lighting only, and should be dropped when IDL is switched ON in Render Settings.

In the image below, the left pawn shows regular diffuse while the right pawn offers Gather as well, in an exaggerated way to illustrate the effects. The surface tries to attract light from surrounding objects and wants to bleed their color onto its own surface.

The surface having Gather shoots out rays to scan the neighborhood. Samples determines the ray-density (quality), MaxDist the maximum length of them. So colors from surfaces further away are not dealt with. When the surface has displacement maps, RayBias will make the first portion of them ignored to avoid time-consuming raytracing on the tiny details. Both MaxWidth and RayBias are in the units I’ve set in Global Preferences (which is Meters in my case). Altering my preferences will affect the values shown, but of course not the effect itself. When taking values from other sources, I might have to convert for unit differences.

In finding surfaces to pick up colors from, each surface element of the object looks around in outward direction (following its surface normal). Angle limits the directions in which it’s doing so, 180 means all outward directions.

Next >

What’s the Raytrace > Ambient Occlusion node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

When a direct light shines on an object, the light will get diffused, reflected and transmitted from that object surface. The object will cast a shadow to another object, or to parts of the same object, behind it. Shadow maps are a fast but limited way to derive such direct shadows at rendering, raytraced shadows are slower to derive but more accurate. Those shadows can be blurred somewhat to represent the size of the light source. And they can get a reduced shadow intensity to represent the ambient lighting levels from the environment. But the latter is just a trick to compensate for Posers inabilities to handle such effects from direct lighting only.

In the meantime, the industry developed an approach to resolve the issue: IBL or Image Based Lighting. A point source in the scene radiates light according to an image map, but in an inverse way: the light rays are not leaving the light to the outside, but travel from the outside towards the light as if a huge sky dome surrounding the scene emits this environmental light. Using a dome object with the image onto it enhanced the illusion of such a surrounding environment, whether it’s a sky or a shop interior.

Although that increased the quality of the lighting it did not answer a similar requirement for shadowing. As a result, Ambient Occlusion (AO for short) was born to get better shadows as well. Better as in: reduced by environmental lighting. That was at least some step forward from the (ab)use of Ambient for adjusting the lighting levels in an object specific way.

First, AO was implemented in Poser as a surface property which made the response to light dedicated to specific objects in the scene. Again, as an improvement over the use of Ambient for this. Then AO was implemented as a property of the light itself, effectively making the surface property obsolete. And after all, the entire IBL+AO concept was replaced by Indirect Lighting.

So, the Ambient Occlusion surface node is meant for scenes without IDL, without IBL, lit by direct point- spot- or infinite lights only, without AO enabled for those lights. When the scene gets lit by IBL (which has no shadows and no highlights) and some direct lights as well, AO should be enabled for those lights and the AO materials node should be dropped. When the scene gets lit by IDL, it should not have IBL lights or any AO materials nodes. Direct lights can give some support (like flashing outdoors, or representing a sun shining in) and their AO properties can help to improve on their shadows even more but should be used with care.

For short: the AO node can be considered outdated, and is available for compatibility only. Use the AO properties of lights instead.


The left pawn shows regular diffuse, the right pawn has a (very limited) amount of AO assigned to the surface. It behaves like it glows a bit, and it hardly picks up shadows when an object blocks the light.

The surface having Ambient Occlusion shoots out rays to scan the neighborhood. Samples determines the ray-density (quality), MaxDist the maximum length of them. So shadows from surfaces further away are not dealt with. When the surface has displacement maps, RayBias will make the first portion of them ignored to avoid time-consuming raytracing on the tiny details. Both MaxWidth and RayBias are in the units I’ve set in Global Preferences (which is Meters in my case). Altering my preferences will affect the values shown, but of course not the effect itself. When taking values from other sources, I might have to convert for unit differences.

By default, AO is dealing with direct light only which is exactly what it’s made for, but by ticking the Evaluate in IDL, that can be changed.

As said, instead of using the node on a surface, the use of the light property is preferred.

 

 

When clicking the [ Scene AO Options ] button the generic AO settings unfold in which I recognize all the other AO options from the node. Except that Strength is a per light setting, and the other options are the same for all. Like in IDL lighting which replaces all IBL, AO and more, the effects are the same for all objects in the scene now, as it should be.

Next >

What’s the Raytrace > Refract node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Abstractly spoken, any object surface is the separation of two volumes: the ‘inside’ part and the ‘outside’ part relative to the object. When both parts are transparent to some extent, a light ray can pass through the surface. And when both parts consist of different stuff, with a different ‘optical density’ (like air and water, water and glass, …) then the light ray gets bend at the surface because the speed of light is different at both sides.

This is ‘refraction’, and by inventing an Index of Refraction (IOR), being 1.0 for vacuum, each material can have its own value defining its optical properties. In other words, the IOR defines the amount of refraction, the extent of light ray-bending, at the surface.

The image below illustrates transparency without refraction (left pawn) and refraction without transparency (right pawn). Without refraction the background image passes through undeformed, with refraction the pawn shows a glass-like behavior. As I can see, Poser refraction takes care of transparency all by itself (*).

This Refract node adds accurate (*), raytraced refraction to the PoserSurface material definition. It requires Raytracing in Render Settings to be switched ON. The quality of the result depends on the ‘Number of Bounces’ set in Render Settings as well. Passing through a surfaces counts as a bounce, so entering and leaving a transparent object requires two bounces. The number set is a maximum value, when Poser does not need them it won’t use them, but if the number of bounces for a light ray exceeds this limit, the light ray is killed. This might speed up the rendering while it also might introduce artifacts (black spots) in the result. The tradeoff is mine, but as nature has an infinite number of bounces, the max value is the best when I can afford it.


Left: Raytrace bounces set to 4, while 4 objects require 8 bounces. Right: When the value is increased to 8 or more, all objects and surfaces can be passed.

(*) Notes:

  • Refraction only handles the light from objects in the surrounding scene. It does not cater for the rays from direct light sources (spot, point, etc. lights), these will not get bend at all. Refraction does not work for light passing through an object shining onto another object: refractive objects behave opaque to direct light and make deep shadows accordingly. But Transparency behaves as expected, as discussed in other basic and advanced articles. In other words: basically Poser transparency and refraction are supposed NOT to be mixed, but in various cases you’ll need to. Mixing them will introduce a lot of issues, including a serious slowdown of rendering.
  • At the moment (Poser versions up till Poser 10 / Pro 2014 SR3) raytraced refraction is in error, as the ray leaving the object towards the camera is bend the wrong way. In real life, a light ray should bent ‘forward’ when entering the object, ‘backward’ again when leaving he object, and as a result it should continue its journey parallel to its original path but just shifted in space. Currently in Poser the ray bends in the same direction twice. It’s said to be repaired in Service Release SR4.

Practical use

I want to use refraction when a material represents liquid or glass, but in real life such transparent materials are reflective as well. And actually, those two phenomena are in a complex balance: the more refractive a material, the more reflective it will be too. On top of that, real life transparency and reflectivity both depend on the angle the camera looks at the surface. The skewer the angle, the more reflective the surface becomes, and the less light is left to pass through. That makes the surface less transparent (and not: less refractive, the bends will be the same). These combined issues are knows as the “Fresnel effect”, and supported in Poser by the Fresnel node and the Fresnel_Blend node.


The right pawn still shows refraction as before, the left pawn shows Fresnel. Especially the upper edge of the left pawn clearly shows that Fresnel is not only transmitting the wall at its back, but also is reflecting it. Those reflections are missing on the right pawn.

About the Refract node parameters:

The Index Of Refraction is discussed above. Values for various materials can be found here.

Quality offers a tradeoff between speed and result; high values require longer render times but present crispier results. Softness increases the blur of the refracted image, representing irregularities, impurities and even minor movements and vibrations in the refracting surface.

RayBias is a special feature to address a special issue, regarding the refraction on image-based displaced surfaces. RayBias is a distance, in the Poser units as set in my User Interface preferences. The default is 0.3 inch or 0.007620 meters as in the screen grab above. Poser takes the refracting surface, moves it for this distance outwards from the object, then it calculates the refractions, and then it projects those refractions onto the surface of the object itself. This way, all irregularities of the refracting surface which are smaller than this distance are disregarded, usually these are caused by the details of displacement maps. It speeds up refraction calculations considerably, but it does introduce artifacts and less accurate refractions as a downside. For that reason, one should not have this value larger than the amount of displacement in the same PoserSurface material definition. The 0.3” (0.76cm) default value is quite a lot, actually.

Refraction Color (in the PoserSurface column) gives color to the material, like red to wine or sapphire. But do note that this is a surface effect only, like a colored plastic cover around the object. Poser cannot do volumetrics, the wine will be equally red whatever way I look at it, and the glass will be equally red whatever the thickness.

The contribution of refraction to the total surface definition will be made up from the combination of Refraction_Color * Refraction_Value. This does not hold for the refractive effect itself, which is determined by the IoR. To represent a dark colored material, I can either use a dark color in the swatch, or a low value. Note that Color will be affected by Gamma Correction, the Value will not so 80% White and 100% Value will behave different from 100% White and 80% Value under GC render conditions. For that reason, it’s recommended to leave Value at 1.0 and put all adjustments into the color swatch.

Rendering

Raytraced refractions and reflections are realistic, detailed, and although Poser performs them quite efficient they are time and resource consuming at render time. As a consequence, one should be careful not to put too many raytracing intensive challenges into one scene. InDirect Lighting (IDL) is such a challenge, having a lot of reflective and/or refractive surfaces in one scene is a challenge, having reflections and refraction (and especially Fresnel) on a complex surface is a challenge, and having Max Bounces (and the IDL Quality options) set high in Render Settings make a challenge as well. Take the Refraction vs Fresnel image shown above. It’s IDL, and reflective wall and floor, and quite high values in Render Settings. Rendering on a fast machine took 3.5 hours. Poser does have its limitations. There are no meaningful fast alternatives for refraction, like we have image-maps or environmental maps for reflections. Sorry for that.

On top of all those things, Poser raytracing is designed to work with a completely non-transparent surface; refraction caters for (full) transparency on its own. While doing so, raytracing works for objects in the scene only, it cannot handle direct light, nor the shadows or specularity thereof. Mixing raytracing with transparency however might produce unexpected or even erroneous results, while also taking render time to infinity.

Next >

What’s the Raytrace > Reflect node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

This Reflect node adds accurate, raytraced reflections to the PoserSurface material definition. It requires Raytracing in Render Settings to be switched ON. The quality of the result depends on the ‘Number of Bounces’ set in Render Settings as well. This number is a maximum value, when Poser does not need them it won’t use them, but if the number of bounces for a light ray exceeds this limit, this light ray is killed. This might speed up the rendering while it also might introduce artifacts (black spots) in the result.

Do note that Reflection only handles the light from objects in the surrounding scene. It does not cater for the rays from direct light sources (spot, point, etc. lights). This part is dealt with by Specularity. Reflection and Specularity are two portions of the same natural phenomenon: reflectivity. These two material properties should be balanced with respect to that, but since they have no parameters in common, that’s mainly a matter of taste and intuition. Effectively, I’m balancing the intensities a) of the direct lights and b) of the light bouncing from the objects, with respect to reflection.

Of course there must be something to reflect in the scene at the first place, and this sort of requires that my scene is build out far beyond and behind the scope of the camera. I probably don’t want to do that, and Background offers to possibility to supply an additional background color or image or texture node instead. In the screen grab above nothing is supplied, but turn the color swatch to white or grey and plug in the appropriate node instead, and the job is done.


The left pawn shows regular diffuse and specularity, the right pawn has reflection added to this.

The Quality parameter offers a tradeoff between speed and result; high values require longer render times but present crispier results. Softness increases the blur of the reflected image, representing irregularities, impurities and even minor movements and vibrations in the reflecting surface.

RayBias is a feature to address a special issue, regarding the reflections on image-based displaced surfaces. RayBias is a distance, in the Poser units as set in my User Interface preferences. The default is 0.3 inches or 0.007620 meters as in the screen grab above. Poser takes the reflecting surface, moves it for this distance outwards from the object, then it calculates the reflections, and then it projects those reflections onto the surface of the object itself.

This way, all irregularities of the reflecting surface which are smaller than this RayBias distance are disregarded; usually these are caused by the details of displacement maps. It speeds up reflection calculations considerably, but it does introduce artifacts and less accurate reflections as a downside. For that reason, one should not have this value larger than the amount of displacement in the same PoserSurface material definition. The 0.3” (0.76cm) default value is quite a lot, actually.

Reflection Color (in the PoserSurface column) usually works with white, unless I’m representing a metal. Metals have colored reflections, like Gold is yellow and Copper is red. The Reflection Value (PoserSurface as well) represents the reflectivity of the surface, and despite my experiences in nature, this value is quite low for most materials, except metals. Other articles on this include detailed colors and reflectivity values for various kinds of real-life stuff.

One note of caution: the final amount of reflectivity will be made up from the combination of Reflection_Color * Reflection_Value. To represent low reflectivity, I can either use a dark color, or a low value. But I should not do both! This is especially relevant for colored metals, where reflectivity becomes somewhat reduced simply but not using white in the color swatch.

Raytraced reflections are realistic, detailed, and therefore time and resource consuming. When I don’t need this level of accuracy, reflections can use a simple image map, or as a compromise, a Spherical Environment Reflection Map.

The raytraced reflections as presented by the Reflect node are not extremely photo-realistically accurate however. In real life, the amount of reflection depends somewhat on the angle the surface is looked at by the camera. Skew angles increase reflectivity. This is known as the “Fresnel effect”. It’s mainly visible for fluids and glasses.

Next >

What’s the difference between all those Scatter nodes?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Poser Material Room offers the following nodes

addressing scattering of light within an object surface (skin) layer.

From these, CustomScatter is the most generic, does require the SubSurface Scattering (SSS) option in the Render Settings, and provides direct access to all parameters of the mechanism. Which, by the way, are nice words telling that I’m on my own finding the appropriate values for them. As it actually deals with the light rays scattering within the surface layer, it takes the most resources and render time. And gives the ‘best’, most manageable results in return.

Subsurface Skin then is a derivative of CustomScatter, dedicated to (human) skin.

Scatter on the other hand offers the possibility to pick a preset, based on something similar to what I want to accomplish. It does not use the SubSurface Scattering option in the Render Settings, and so it takes (far) less time and resources for rendering, but the results might be somewhat less realistic. They are less manageable anyway, but is does resemble scattering to some extent.

The ones just mentioned above are available in Poser 8 / Pro 2012 and up. The ones mentioned below are available in earlier versions as well.

Skin itself is just a combination of regular material properties, dedicated to (human) skin. It presents the diffuse, specular and ambient properties of a Poser material in a balanced way and mimics the waxiness of skin in a classical way, as used in the earlier versions of Poser. It does not use the subsurface scattering as referred to in the Render Options.

FastScatter is an early, and simple – and according to the manual outdated – way of representing SubSurface Scattering. It does not use the subsurface scattering as referred to in the Render Options.

Next >

What’s the Special > FastScatter node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Like all special nodes, the FastScatter node also provides diffuse, specular and eventually more as an all-in-one offer. Just black-out (or nullify) the regular Diffuse, Specular and other properties of the PoserSurface, and plug the node into Alternate Diffuse.

FastScatter is an early, simple – and according to the manual outdated – way of representing SubSurface Scattering. It does not use the subsurface scattering as referred to in the Render Options.

Besides a single Color entry, the choice is for None (demonstrated in the right pawn base in the image below), Light (pawn column) or Strong (pawn head) material. The left pawn in the render shows regular diffuse and specular, for comparison.

This article presents a comparison of the various skin and scattering nodes.

Next >

What’s the Special >CustomScatter node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Like all special nodes, the CustomScatter node also provides diffuse, specular and eventually more as an all-in-one offer. Just black-out (or nullify) the regular Diffuse, Specular and other properties of the PoserSurface, and plug the node into Alternate Diffuse.

This CustomScatter node provides the raw parameters for Subsurface Scattering, as are addressed indirectly by all presets from the dedicated nodes. It does use the subsurface scattering as referred to in the Render Options. It’s offered from Poser 8 / Pro 2012 on.

The node takes the Pre-Scatter texture (might be an image map) and eventually some Pre-Scatter Ambient as well, scatters that around within the object surface layer while filtering it with the Scatter Color (white is: no additional coloring), and then the light leaves the surface layer while being filtered by the Surface Color parameter, So the Pre-Scatter Texture will get blurred while the Surface Color texture will remain sharp.

MaxError is a speed vs quality setting, large values (up till 1.0) give high speed and lower quality, low settings give higher quality (more scatter bounces within the layer, I guess), at the cost of longer render times.

The scattering itself is defined by

  • Main Free Path, in mm, the distance a scattered light ray can travel before being scattered again. In a cellular structure like skin, the cell-size might be a good start. This is about 0.15 mm for human skin, and say twice as much for some plant leaves. For suspension fluids (milk, ketchup) smaller values will apply. This value is also a measure for the skin layer thickness, and as milk and ketchup don’t have any in real life it’s my artistic taste only which really counts in the end.
  • IOR or: Index of Refraction, is determined by the stuff the skin layer is made of. The default 1.4 is fine for troubled water, while 1.8 is the value for glassy stones (as marble). I tend to stay in the 1.2 … 2.0 range to keep a sense of realism.


In the following render, the left pawn shows regular diffuse and specular. The right pawn shows Custom_Scatter with the settings as above, while having the object color in the Pre_Scatter_Color swatch.

By assigning the object color to the Surface Color swatch too, the color filtering will be done again when the scattered ray leaves the object. This intensifies the colors significantly:

Next to all this, this article presents a comparison of the various skin and scattering nodes.

Next >

What’s the Special >Scatter node used for?

Nodes are the essential building blocks in the Advanced interface to the Poser Material Room. They are the graphical representation of mathematical function calls, that is: calculation procedures which turn parameters (inputs) to a result (output).

Intermediate

Like all special nodes, the Scatter node also provides diffuse, specular and eventually more as an all-in-one offer. Just black-out (or nullify) the regular Diffuse, Specular and other properties of the PoserSurface, and plug the node into Alternate Diffuse. This Scatter node does not use the subsurface scattering as referred to in the Render Options. It’s offered from Poser 8 / Pro 2012 on.

The node represents the scattering of light within the outer layer of a real-life material. It takes the thickness, the internal structure as well as the natural color of the material into account, like ketchup is darker red, apple is pale green and skin is pinkish.

The internal structure of the scattering layer can be altered by picking a different Material from the list. The thickness of the layer can be altered by changing the Scale parameter, so when Apple (waterish in a cellular structure) is the substance of choice, but the surface layer of my stuff is twice as thick as a real-life apple (or the object is an apple, but at twice the regular size) then Scale should be set to 2.

MaxError is a speed vs quality setting, large values (up till 1.0) give high speed and lower quality, low settings give higher quality (more scatter bounces within the layer, I guess), at the cost of longer render times.

As in the regular (diffuse) case, the object surface can be tinted with color, image map, another texture node, and etcetera. This surface color is multiplied (filtered) by the color of the scattering. If I don’t want this latter effect, switch OFF the Use_Material_Color option. I might want the structure of Ketchup, the layer thickness of Ketchup but not the reddening from Ketchup.

In the example below the right pawn has the Scatter surface, with the Use_Material_Color option OFF except for the base where the pinkish skin color is merged into the main color.

The second issue is: do I want the surface texture on top / at the outside of the object, or at the inner part of the skin layer. In the first (outside) case, details will be crisp but are not scattered themselves, in the second (inside) case the details are scattered as well, but the texture is blurred because of that. This is handled by the Texture_Detail option: 1.0 means “outside” (all details available), 0.0 means “inside” and the default setting is halfway 0.5.

When the surface texture already offers an object color (as is usual the case), and I want to make use of the scatter color as well to improve skin tones etc., then some portion of the skincolor should be removed from the surface texture to avoid “double counting” of the coloring. The Poser Manual, chapter Material Room Nodes, sector Scatter tells in detail how to accomplish this.

This article presents a comparison of the various skin and scattering nodes.

Next >