standard

Class

Shader

Output

RGB

Synopsis

 

The Standard shader is a multi-purpose shader capable of producing all types of materials, from simple plastic, to car paint or skin, with effects like sub-surface scattering or transmittance.

The Standard shader is very powerful, and allows a large number of different sorts of materials to be created, but can be somewhat daunting at first. It's often best to start with a material which has been pre-defined using the Standard shader and make incremental changes to it to get the effect you want, rather than starting from scratch. The Arnold Tutorials manual contains a section of preset material values, with common materials like car paints, chrome, glossy and matte plastic, and others.

Physically Correct Shading

Artists need to create materials that not only 'look good', but are more physically plausible and pay more attention to the physical laws of energy conservation. That is not to say these are hard and fast rules. The key to achieving a believable material is still observation, and being able to convincingly translate what you see into the final shader. However, adhering to these simple rules will give more consistently realistic and believable lighting and shading because a physically based shading model reacts much more like real world lighting.

Energy Conservation

A surface should not return more energy than is being contributed by the incoming light, otherwise the material will no longer be physically accurate. When such overly bright materials bounce too much light it can also lead to 'fireflies'. When light hits an object, the energy is reflected as either the specular (highlight) or diffuse (color) component. The relationship between specular and diffuse is what defines what type of material it is. If 50% of it is diffuse energy then the remaining specular energy must be 50%. If the specularity value increases, then the diffuse value must drop and vice versa. For example, chalk has a high diffuse value, with little specularity, whereas glass is highly reflective with almost no diffuse. To achieve a photo-realistic render, the net value of the shaders attributes should not exceed 1. The total energy of reflected light is less than or equal to the energy of the incident light. You should use energy conserving BRDFs and take care to enforce these energy conservation rules when creating materials with the Standard shader. 

The term albedo, or reflection coefficient, refers to the diffuse reflectivity or reflecting power of a surface. Albedos (Kd, Ks, Kr, etc.) summing to values above 1 is a bad idea. This means that the Standard shader will not conserve energy, but will instead gain energy with every GI Diffuse bounce. They should not sum above 1 EXCEPT if you are using a Fresnel value that affects both Specular and Diffuse because when set to affect Specular and Diffuse, it scales the Specular effect by a value between 0 and 1 that depends on the viewing angle.

 

For energy conservation with Diffuse and SSS, you must have Diffuse + SSS <= 1

With Specular, it depends on whether or not Fresnel is enabled:

  • If Fresnel is disabled, then you must have SSS + Specular + Diffuse <= 1
  • If Fresnel is enabled, then you must only have Diffuse + SSS <= 1. The shader will mix specular with diffuse and SSS in a way that is energy conserving.

Ok, that is the simple case (without diffuse backlighting and refraction). Now let us add diffuse backlighting and refraction:

 

For energy conservation with diffuse and SSS, you must have Diffuse + SSS + Backlighting <= 1

With Specular, it depends on whether or not Fresnel is enabled:

  • If Fresnel is disabled, then you must have Specular + (SSS + Diffuse + Backlighting) <= 1
  • If Fresnel is enabled, then you must only have Diffuse + SSS + Backlighting<= 1. The specular and refraction weights can be anywhere between 0 and 1, and the shader will mix everything in a way that is energy conserving.

 

The example below shows the difference when rendering using physically correct values (left) compared to a shader that uses physically incorrect values above 1 (right image. The light leaving the surface is brighter than the light which originally fell upon it). No material bounces back light at 100%, except for a perfect spotless mirror. 

 

A Standard shader with a high Diffuse Roughness will reflect dimmer and broader highlights, while smoother and more reflective materials will reflect brighter and tighter highlights.

Diffuse and rough (left) to reflective and glossy (right).

Kd

The diffuse weight.

Diffuse 0-1

Kd_color
The diffuse color sets how bright the surface is when lit directly with a white light source (intensity at 100%). It defines which percentage for each component of the RGB spectrum which does not get absorbed when light scatters beneath the surface. Metal's normally have a black or very dark diffuse color, however, rusty metal's need some diffuse color. A diffuse map is usually required.
diffuse_roughness

The diffuse component follows an Oren-Nayar reflection model with surface roughness. A value of 0.0 is comparable to a Lambert reflection. Higher values will result in a rougher surface look more suitable for materials like concrete, plaster or sand.

Roughness 0-1

Ks
The specular weight. Influences the brightness of the specular highlight.

Specular Weight 0 to 1


Ks_color
The color the specular reflection will be modulated with. Use this color to 'tint' the specular highlight. You should only use colored specular for certain metals, whereas non-metallic surfaces usually have a monochromatic specular color. Non-metallic surfaces normally do not have a colored specular.


specular_roughness
Controls the glossiness of the specular reflections. The lower the value, the sharper the reflection. In the limit, a value of 0 will give you a perfectly sharp mirror reflection, whilst 1.0 will create reflections that are close to a diffuse reflection. You should connect a map here in order to get variation in the specular highlight.

Specular Roughness 0-1

The 'microscopic' features of a surface affect the diffusion and reflection of light. This 'microsurface' detail has the most noticeable effect on specular reflections. In the diagram below, you can view parallel lines of incoming light commence to diverge when reflected from rougher surfaces, when each ray hits a part of the surface with a different orientation. In summary, the rougher the surface becomes, the more the reflected light will diverge or appear 'blurred'.

The diagram above shows 'microsurface' detail represented as a general measure of roughness (this surface would have a high Specular Roughness value).

The brightness of the Specular highlight is automatically linked to its size due to the Standard shader's energy conserving nature. In the example below, all of the materials are reflecting the same amount of light, but the rougher surface is spreading it out in multiple directions. However, with low amounts of roughness the surface is reflecting a more concentrated amount of light.

To get variation in the highlights of the surface, a map should be connected to the Specular Roughness. This will influence not only the brightness of the highlight but also it's size and the sharpness of the environmental reflection.

'Scratches' texture connected to Roughness


 

specular_anisotropy
Anisotropy reflects and transmits light with a directional bias and causes materials to appear rougher or glossier in certain directions. The default value for Anisotropy is 0.5, which means 'isotropic'. As you move this control towards 0.0, the surface is made more anisotropic in the U axis, and as you move the control towards 1.0 the surface is made more anisotropic in the the V axis.

Anisotropy 0-1

Anisotropy is suitable for materials that have a clear brush direction such as brushed metal which has tiny grooves in which form a 'stretched' anisotropic reflection.

Many small discs form together to create an effect which is the anisotropic highlight

Anisotropic reflections are suitable for brushed metal effects such as in the example below: 

Texture assigned to Specular Anisotropic Rotation

You may notice faceting appear in specular highlights when using anisotropy. It is possible to remove the faceted appearance by enabling smooth subdivision tangents (via Arnold subdiv_smooth_derivs parameter). Take into account this requires a subdivision iteration of at least one in the polymesh to work.

 

specular_rotation

The rotation value changes the orientation of the anisotropic reflectance in UV space. At 0.0, there is no rotation, while at 1.0 the effect is rotated by 180 degrees. For a surface of brushed metal, this controls the angle at which the material was brushed. For metallic surfaces, the anisotropic highlight should stretch out in a direction perpendicular to the brushing direction.

Specular Rotation 0-1

It is possible to to assign textures to specular rotation. When doing so it is advisable to avoid texture filtering. This means disabling MIP-mapping and disabling the magnification filter, which by default is set to "smart bicubic". One way is to set the mipmap_bias of the image node to a strong negative value, like -8, which means "use 8 MIP levels higher resolution than usual".

specular_distribution

Choose between GGX microfacet distribution or Beckmann (default). GGX is a microfacet distribution. It has a sharper peak and a larger tail than Beckmann. GGX is suitable for modeling light reflection from surfaces more realistically.


Phong_exponent
Legacy parameter for the deprecated Stretched Phong BRDF, not used.
Kr

The contribution from reflection rays (the amount of light that the surface reflects).

Reflection 0-1

 

You will notice in the image below, that the light source is not visible in the reflection. This is because reflectivity does not sample light sources (direct light). Therefore, it is recommended that you use Specularity with glossy materials, unless a pure 'mirror' reflection is required.

In the chrome sphere below you can see the difference between the Specular and Reflection attributes when using a SkyDome light. Notice the difference between the Specular and Reflective highlights of the window in the chrome sphere and wood surface.

Kr_color
The color of the reflection ray at the current point. 

Reflection Color 0-1


reflection_exit_color
The color returned when a ray has reached its maximum reflection depth value. 


 

reflection_exit_use_environment
Specify whether to use the environment color for reflection rays where there was insufficient ray depth (true), or the color specified by reflection_exit_color (false).
Kt

Transparency allows light to pass through the material.

Kt_color

Transparency color multiplies the refracted result by a color. For tinted glass it is best to control the tint color via the Transmittance color since it actually filters the refraction according to the distance traveled by the refracted ray.

Refraction Color Hue 0-1


If this value has a color and shadows tinted with that color are required then disable 'opaque' for the mesh that has been assigned the Standard material. In the example below, you can see that with Opaque enabled the rays cannot pass through the sphere. Whereas with Opaque disabled, the rays can pass through the sphere and absorb the color set by the transmittance, thereby creating the effect of colored shadows. 

transmittance

Transmittance filters the refraction according to the distance traveled by the refracted ray. The longer light travels inside a mesh, the more it is affected by the Transmittance color. Therefore green glass gets a deeper green as rays travel through thicker parts. The effect is exponential and computed with Beer's Law. It is recommended to use light, subtle color values.

In the example below, you can see this difference in the bottom of the glass. The glass with Transmittance color appears more physically accurate than the glass that uses Refraction color. 

The effect of Transmittance color is even more obvious in the example below. You can see that the white shapes become darker as they go deeper below the surface when using Transmittance.

The images below show the effect of transmittance between a color value range of 0.8 and 1 (with a green tint).

Transmittance color is scene scale dependent which can have a dramatic effect on its appearance. If you cannot see the effect of Transmittance color then you may need to check the size of your scene.

Transmittance effect is more noticeable when cube is scaled up


refraction_roughness

Controls the blurriness of a refraction computed with an isotropic microfacet BTDF. The range goes from 0 (no roughness) to 1.

refraction_exit_color
The color returned when a ray has reached its maximum refraction depth value. 


refraction_exit_use_environment
Specify whether to use the environment color for refraction rays where there was insufficient ray depth (true), or the color specified by refraction_exit_color (false). 


IOR

The index of refraction used. The default value of 1.0 is the refractive index of a vacuum, i.e., an object with IOR of 1.0 in empty space will not refract any rays. In simple terms, 1.0 means 'no refraction'. The Standard shader assumes that any geometry has outward facing normals, that objects are embedded in air (IOR 1.0) and that there are no overlapping surfaces. 

When rendering transparent and refractive surfaces it is very important that the normals of the geometry face in the right direction. In the example below you can see the difference between normals that are facing in the right direction (outward) versus those that are facing inwards (incorrect). This is especially important when rendering surfaces with double sided thickness, such as a glass.

The direction of the normals is equally important when rendering single sided surfaces. The windscreen model below is single sided. The difference is clearly visible when the normal direction is facing in the wrong direction. 

If you can only see black where there should be refraction, you may not have a high enough refraction ray depth value (found in the Ray Depth section in the Render Settings). The default value is two.

Kb

Backlight provides the effect of a translucent object being lit from behind (the shading point is 'lit' by the specified fraction of the light hitting the reverse of the object at that point). It is recommended that this only be used with thin objects (single sided geometry) as objects with thickness may render incorrectly.  


In certain situations backlighting may work fine with thickness (ensure that the diffuse ray depth level is above 1).

Fresnel
Fresnel refers to reflectivity levels that occurs at different angles. Light that hits a surface at a grazing angle will reflect more than light that hits a surface face-on. The reflection level will be dependent on the viewing angle of the surface following the Fresnel equations (which depends on the IOR value). The Fresnel effect's reflection increase as the viewer's angle of incidence with respect to the surface approaches 90º. This means that surfaces rendered with a correct Fresnel effect will have brighter reflections near the edges. All types of materials become 100% reflective at grazing angles.
Krn

The Fresnel effect is more noticeable when using lower values. Increasing this value gives the material a more metallic-like specular reflection. Metals have a more uniform reflectance across all angles compared to plastics or dielectrics, which have very little normal reflectance. Note that the Fresnel effect is less evident when a surface becomes rougher (the unpredictable nature of a rough surface 'scatters' the Fresnel effect, preventing the viewer from being able to clearly see it). As visible in the images below, objects rendered with a correct Fresnel effect will appear to have brighter specular reflections near the edges. 

All types of materials tend to have full reflectivity at grazing angles, as evident in the diagram below:

 

The examples below show various materials which require Reflectance at Normal:

For realistic materials, reflectance at normal must be lower than the specular/reflection scale (which controls the reflectance at grazing). Otherwise, you will get a darker reflection at the edges, which is exactly the opposite of the effect seen in nature. It is also not advisable to tint speculars when using Fresnel as this is not physically correct.


Note that it is also possible to map a texture to Reflectance at Normal in order to control the intensity of the Fresnel effect:


V ramp texture connected to 'Reflectance at Normal' (1 to 0). Rollover image.

specular_fresnel
Specular reflection level will be dependent on the viewing angle of the surface following the Fresnel equations (which depends on the IOR value). The Fresnel effect's reflection increase as the viewer's angle of incidence with respect to the surface approaches 0.
Ksn

The Fresnel effect is more noticeable when using lower values. Increasing this value gives the material a more metallic-like specular reflection. Metals have a more uniform reflectance across all angles compared to plastics or dielectrics, which have very little normal reflectance. Note that the Fresnel effect is less evident when a surface become rougher (the unpredictable nature of a rough surface 'scatters' the Fresnel effect, preventing the viewer from being able to clearly see it). As visible in the images below, objects rendered with a correct Fresnel effect will appear to have brighter specular reflections near the edges. 

All types of materials become 100% reflective at grazing angles, as evident in the diagram below:

 

The examples below show various materials which require Reflectance at Normal:

For realistic materials, reflectance at normal must be lower than the specular/reflection scale (which controls the reflectance at grazing). Otherwise, you will get a darker reflection at the edges, which is exactly the opposite of the effect seen in nature. It is also not advisable to tint speculars when using Fresnel as this is not physically correct.

Fresnel_use_IOR

Calculates Fresnel reflectance based on the IOR parameter, ignoring the values set in Krn and Ksn.

The images below show the effect that increasing the Index of Refraction has on the Fresnel reflectance.

Fresnel_affect_diff
Specify whether Fresnel affects the diffuse component.


emission

Controls the amount of emitted light. It can create noise, especially if the source of indirect illumination is very small (e.g. light bulb geometry).

Increasing the number of Diffuse samples will help to reduce any noise in dark, indirectly lit areas of a scene when using emission.

emission_color

The emitted light color.

Texture map representing hot lava connected to Emission Color

direct_specular
The amount of specularity received from direct sources only. Values other than 1.0 will cause the materials to not preserve energy and global illumination may not converge. 


indirect_specular

The amount of specularity received from indirect sources only. Values other than 1.0 will cause the materials to not preserve energy and global illumination may not converge.

direct_diffuse
The amount of diffuse light received from direct sources only. 


indirect_diffuse
The amount of diffuse light received from indirect sources only. 


enable_glossy_caustics
This switch in the Standard shader specifies whether Indirect Diffuse rays will compute Direct Specular and Indirect Specular light components.


enable_reflective_caustics
This switch in the standard shader specifies whether Indirect Diffuse rays will compute the mirror reflection component.


enable_refractive_caustics
This switch in the standard shader specifies whether Indirect Diffuse rays will compute the refraction component.


enable_internal_reflections

Unchecking internal reflections will disable indirect specular and mirror perfect reflection computations when ray refraction depth is bigger than zero (when there has been at least one refraction ray traced in the current ray tree).

In the right image below, the sphere appears black because Enable Internal Reflections is disabled in the Standard shader assigned to the sphere.

enable_fresnel
When checked, the reflection level will be dependent on the viewing angle of the surface following the Fresnel equations (which depends on the IOR value). The visual effect is that the reflection increases as the viewer's angle of incidence, with respect to the surface normal, approaches 0. Fresnel has a large effect on almost all materials such as glass, water and smooth coated surfaces, however Fresnel is just as visually important with less shiny materials.

 

Ksss

The amount of sub-surface scattering. Multiplies the SSS Color. Below you can see the effect of adding SSS Weight:

Ksss_color
The color used to determine the sub-surface scattering effect. For example, replicating a skin material, would mean setting this to a fleshy color.
sss_radius

The radius of the area each sample affects. Higher values will smooth the appearance of the sub-surface scattering. Results will vary depending on the scale of the object in your scene. Arnold will take into account the shape and thickness of the object being lit. If it is thin enough, the object will often see light scattering out the back side, depending on the radius value (see example images below):

The lighter the color, the more light is scattered. A value of 0 will produce no scattering effect: 

Increasing the radius value can radically change the appearance of the material, from looking like leather to marble.


Instead of distributing all of the colors with the same amount, you can also choose different radius values for each of the RGB colors. For example, a material like clay or skin should have a higher red radius than green and blue.

The images below show the effect when increasing the red color of the radius. Notice the colored 'fringing' effect around the edges of the circles. The same effect occurs when gaussian blurring the red channel of the source image in a compositing package.

 

sss_profile

Choose between empirical or cubic (default). If set to empirical, Arnold uses a more physically accurate subsurface scattering profile, that, with a single layer, can capture both surface detail and deep scattering.

 

sss_set_name

It is possible to tag multiple objects as belonging to the same SSS 'set' so that illumination will blur across object boundaries. A common use case might be blurring between teeth and gum geometry. It is enabled by adding the constant STRING userdata sss_setname to the same value on the objects in the set.

bounce_factor

The relative energy loss (or gain) at each bounce. This should be left at its default value of 1.0, which is the only value with meaningful physical sense. Values bigger than 1.0 will make it impossible for GI algorithms to converge to a stable solution, and values smaller than 1.0 will have a reduction in the color bleeding effect.

 

Bounce Factor gives more control over GI bounces on a per shader basis rather than on a global basis via the render settings. In the following example the Bounce Factor has been changed for the shader assigned to the red sphere. When the Bounce Factor of the red sphere has been set to zero, the GI rays traced from the white floor to the sphere will not see it and therefore will not receive any color bleeding.

 

opacity
Controls the degree to which light is not allowed to travel through it. Unlike transparency, whereby the material still considers diffuse, specular etc, opacity will affect the entire shader. Useful for retaining the shadow definition of an object, whilst making the object itself invisible to the camera.

You must ensure that 'Opaque' is disabled for the mesh that the Standard shader is assigned to when using 'Opacity'.



aov_emission
Creates a separate aov render pass for emission only. It must also be enabled in the render settings.
aov_direct_diffuse
Creates a separate aov render pass for direct diffuse only. It must also be enabled in the render settings.
aov_direct_specular
Creates a separate aov render pass for direct specular only. It must also be enabled in the render settings.
aov_indirect_diffuse
Creates a separate aov render pass for indirect diffuse only. It must also be enabled in the render settings.
aov_indirect_specular
Creates a separate aov render pass for indirect specular only. It must also be enabled in the render settings.
aov_reflection
Creates a separate aov render pass for reflection only. It must also be enabled in the render settings.
aov_refraction
Creates a separate aov render pass for refraction only. It must also be enabled in the render settings.
aov_sss
Creates a separate aov render pass for sub-surface scattering only. It must also be enabled in the render settings.
dispersion_abbe_number
Specifies the Abbe number of the material, which describes how much the index of refraction varies across wavelengths. For glass and diamonds this is typically in the range of 10 to 70, with lower numbers giving more dispersion. The default value is 0, which turns off dispersion. The chromatic noise can be reduced by either increasing the global Camera (AA) samples, or the Refraction samples.

Animation here.


 

 

  • No labels