Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Class


Shader

Output

RGB

Synopsis
Multiexcerpt
MultiExcerptNamesynopsis
Center


The standard_surface shader is a physically-based shader capable of producing many types of materials. It includes a diffuse layer, a specular layer with complex Fresnel for metals, specular transmission for glass, subsurface scattering for skin, thin scattering for water and ice, a secondary specular coat, and light emission.


This shader models a material consisting of ten components that are layered and mixed hierarchically as illustrated in the diagram below. The properties of individual components can vary across the surface.

Center

Schematic illustration of the idealized material model that standard_surface emulates. Horizontal stacking of components represents statistical mixture and vertical stacking represents layering. Components marked with an asterisk are optional.

Material Types

By default, the parameters are appropriate for materials such as plastic, wood or stone. By setting a few key parameters to 1, different types of materials can be quickly created:

  • Metalness: gold, silver, iron, car paint.
  • Transmission: glass, water, honey, soap bubble.
  • Subsurface: skin, marble, wax, paper, leaves.
  • Thin Walled: paper, leaves, soap bubble.


Parameter values between 0 and 1 may be used to create more complex materials that are a mix of basic material types.

Center

Gallery
columns10
includeLabeltitle
sortdate

Examples of standard_surface material presets found within Arnold

Energy Conservation

Standard Surface is energy conserving by default. All its layers are balanced so that the amount of light leaving the surface does not exceed the amount of incoming light. For example, as a surface is made more metallic and the specular layer contribution is increased, the diffuse layer contribution is reduced accordingly to ensure energy conservation.

Center

Diffuse and rough (left) to metallic specular (right).

Note

When using layer weights or colors with values higher than 1, energy conservation is broken. It is discouraged to create such materials, as they will not behave predictably under different lighting, and may lead to increased noise and poor rendering performance.

Note
Surface Normal Direction

When rendering diffuse 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 inwards in the wrong direction (left side) versus those that are facing correctly in the outwards direction (right side).

Center
Gallery
includeLabelnormal-sphere
sortname

base_weight

Multiexcerpt
MultiExcerptNamebase

The base color weight.

Center

Gallery
includeLabelbase_weight
sortname

Note

Surface Normal Direction

When rendering diffuse 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 inwards in the wrong direction (left side) versus those that are facing correctly in the outwards direction (right side).

Center
Gallery
includeLabelnormal_sphere
sortname
base_color
Multiexcerpt
MultiExcerptNamebase_color

The base_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 does not get absorbed when light scatters beneath the surface. Metal normally has a black or very dark base color, however, rusty metal's need some base color. A base_color map is usually required.

Center

Gallery
includeLabelbase_color
sortname
reversetrue

Center

Gallery
columns10
includeLabelsynopsis

Diffuse file texture -> base_color

diffuse_roughness
Multiexcerpt
MultiExcerptNamediffuse_roughness

The base 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.

Center

Gallery
includeLabelbase_roughness
sortname

specular
Multiexcerpt
MultiExcerptNamespecular

The specular_weight. Influences the brightness of the specular highlight.

Center

Gallery
includeLabelspecular_weight
sortcomment


specular_color
Multiexcerpt
MultiExcerptNamespecular_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.

Center

Gallery
includeLabelspecular_color
sortname
reversetrue


specular_roughness
Multiexcerpt
MultiExcerptNamespecular_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, while 1.0 will create reflections that are close to a diffuse reflection. You should connect a map here to get variation in the specular highlight.

Center

Gallery
includeLabelspecular_roughness
sortcomment

The 'microscopic' features of a surface affect the diffusion and reflection of light. This 'micro surface' 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.'

Center

'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_surface 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.

Center

Gallery
includeLabelroughness-highlight2
sortname

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 its size and the sharpness of the environmental reflection.

Note

You can connect the file texture to a range shader to control the effect of the specular_roughness.


Center

Gallery
includeLabelroughness_map
sortcomment

Fingerprint texture -> specular_roughness

Note

The specular_roughness affects both specular reflection and refraction. There is also a transmission_extra_roughness parameter to add some additional roughness for refraction if required. You can, however, use coat to create a rough reflection layer over a sharp refraction.

Center

Gallery
includeLabelspecular_roughness-transparency
sortcomment



specular_IOR

Multiexcerpt
MultiExcerptNamespecular_ior

The IOR parameter (Index of Refraction) defines the material's Fresnel reflectivity and is by default the angular function used. Effectively the IOR will define the balance between reflections on surfaces facing the viewer and on surface edges. You can see the reflection intensity remains unchanged, but the reflection intensity on the front side changes a lot.

Center

Gallery
includeLabelspecular_ior
sortcomment


Info
Using a very high IOR value can look quite similar to metalness. It looks the same if you set the base_color to the specular_color and the specular_color to black. The difference is that you get an extra reflection at the edges, with the specular_color controlling the edge tint. The metal fresnel works the same as in the new complex IOR shader, with the artistic parameters.

You should normally use IOR for materials like plastic, glass, or skin (dielectric fresnel) and metalness for metals (conductive fresnel with complex_IOR). The other reason is that metalness is easier to texture since it's in the 0..1 range, and using textures from applications like Substance painter works best when using metalness rather than IOR.
Specular IOR with Transmission

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_surface shader assumes that any geometry has outward-facing normals, that objects are embedded in the air (IOR 1.0) and that there are no overlapping surfaces. 

Center

Gallery
columns6
includeLabelior
sortname

Gallery
columns2
includeLabelior_pool
sortname

Note
Normals

When rendering refractive surfaces, it is very important that the normals of the geometry face in the right direction. In the example below (left), 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 glass. Normal direction is equally important when rendering single-sided surfaces such as a car windscreen (right).

Center

Image rollover
0glass-normals-correct.jpg
1glass-normals-incorrect.jpg

Normals pointing outward (correct). Rollover image to view normals pointing inward (incorrect).

Image rollover
0car-normals-correct.jpg
1car-normals-incorrect.jpg

Windscreen model (single-sided). Rollover image to view normals pointing inward (incorrect).

Tip

If you see any black where there should be refraction, you may not have a high enough transmission_ray_depth value (found in the ray_depth section in the render settings). The default value is eight, which is sufficient for most cases.

specular_anisotropy
Multiexcerpt
MultiExcerptNamespecular_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, which means 'isotropic.' As you move the control towards 1.0, the surface is made more anisotropic in the U axis.

Center

Gallery
includeLabelspecular_anisotropy
sortname

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.

Center

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

Center

Gallery
columns3
includeLabelanisotropy_can
sortname


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

Center

Texture assigned to anisotropic_rotation



Multiexcerpt
MultiExcerptNamesubdiv_smooth_derivs
You may notice faceting appears in 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.
Center

Gallery
columns3
includeLabelanisotropy_faceting
sortname

Tip

Increase subdivision_iterations to remove anisotropic faceting.

specular_rotation
Multiexcerpt
MultiExcerptNamespecular_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 with 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.

Center

Gallery
columns5
includeLabelspecular_rotation
sortname

It is possible to assign textures to the 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".

Center

Gallery
columns3
includeLabelrotation_texture
sortname


metalness

Multiexcerpt
MultiExcerptNamemetalness

With metalness 1.0 the surface behaves like a metal, using fully specular reflection and complex fresnel.

Center

Gallery
includeLabelmetalness
sortname

Tip

For a perfectly sharp and mirror-like reflection, increase metalness to 1, and reduce specular_roughness to 0. The base_weight should also be set to 1.

Info

When metalness is enabled, the specular_weight and specular_color only control the edge tint, while the base is still affected by roughness.

The metal appearance is controlled using the base_color (facing) and specular_color (edge tint) parameters. These are automatically translated to physical η and κ values, to achieve the same look but with easily tweakable and texturable colors. Some examples of real-world values for metals can be found below.



Base Color
Specular Color
Aluminium (Al)
0.912 0.914 0.920
0.970 0.979 0.988
Copper (Cu)
0.926 0.721 0.504
0.996 0.957 0.823
Gold (Au)
0.944 0.776 0.373
0.998 0.981 0.751
Iron (Fe)
0.531 0.512 0.496
0.571 0.540 0.586
Lead (Pb)
0.632 0.626 0.641
0.803 0.808 0.862
Mercury (Hg)
0.781 0.779 0.779
0.879 0.910 0.941
Nickel (Ni)
0.649 0.610 0.541
0.797 0.801 0.789
Platinum (Pt)
0.679 0.642 0.588
0.785 0.789 0.784
Silver (Ag)
0.962 0.949 0.922
0.999 0.998 0.998
Center

Gallery
columns3
includeLabelmetalness-samples
sortname


Metalness values between 0.0 and 1.0 can be used to texture surfaces like rusted iron, where different areas of the surface can have more reflective clean metal and more diffuse rust. PBR metalness maps from applications like Substance Painter can be connected to this parameter.

Center

Gallery
includeLabelmetalness-sphere
sortcomment

Rusted iron texture -> metalness

 

Center

Gallery
columns10
includeLabelpbr-metalness

Shaders using metalness textures


transmission

Multiexcerpt
MultiExcerptNametransmission

The transmission allows light to scatter through the surface, for materials such as glass or water.

Center

Gallery
columns3
includeLabeltransparency
sortname


transmission_color

Multiexcerpt
MultiExcerptNametransmission_color

This 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 transmission_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.

Center

transmission_color: red (transmission_depth: 1 to 10)

Note

If you use a fully saturated color like (1, 0, 0), the way that is interpreted is that all red light is allowed to pass through, and no green and blue light. transmission_color values near 0 make the interior of the mesh very dense to block all light, and then set the depth multiplier to a small value like 0.001 might not make much of a difference because the depth is large anyway. 

Center

Gallery
includeLabeltransparent_color
sortdate

Fully saturated colors for transmission_color are not recommended


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_surface shader. 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 transmission_color, thereby creating the effect of colored shadows. 

Center

Gallery
columns2
includeLabelcolor_opaque
sortname
reversetrue

Note

Note that transmission_color will not work for single-sided geometry unless thin_walled is enabled.

Center

Gallery
includeLabelthin_walled_windscreen
sortname

transmission_depth
Multiexcerpt
MultiExcerptNametransmission_depth

Controls the depth into the volume at which the transmission_color is realized. Increasing this value makes the volume thinner, which means less absorption and scattering. It is a scale factor so that you can set a transmission_color and then tweak the depth to be appropriate for the size of your object.

Center

Gallery
includeLabeldepth
sortdate
reversetrue


The effect of increasing transmission_depth can be seen in the animation below. Note that a transmission_scatter color has also been used in this case.

Center

Info

Depth is scene scale-dependent and can have a dramatic effect on its appearance. The transmission_color and depth control transmittance/absorption, and that depends on the object scale. So for a small object to see anything you might need to set a quite low depth, or for a big object a high one. If you cannot see the effect of depth, then you may need to check the size of your scene.


When the scene scale is too small, the transmission_color (orange) appears incorrect (left image) with a transmission_depth of 1. Lowering the transmission_depth fixes it (right image). It is recommended to model to real-world scale to avoid these situations.

Center

Gallery
includeLabeltransparent_depth
sortname
reversetrue

transmission_scatter

Multiexcerpt
MultiExcerptNametransmission_scatter

Transmission_scatter is suitable for any liquid that is fairly thick or where there is enough of it for scattering to be visible, such as a deep body of water or honey. If you have a glass of water, there is not that much scattering, however, for an ocean, it is required. Other examples include materials like ice, opalescent glass, or milky glass.

Center

Gallery
includeLabeltransparent_scatter_honey
sortname

Info

For scattering to work, ensure that opaque is enabled for the mesh that has been assigned the standard_surface shader. 

Center

Gallery
includeLabelmarbles
sortname

Marble look using a file texture → transmission_scatter 

transmission_scatter_anisotropy

Multiexcerpt
MultiExcerptNametransmission_scatter_anisotropy

The directional bias, or anisotropy, of the scattering. The default value of zero gives isotropic scattering so that light is scattered evenly in all directions. Positive values bias the scattering effect forwards, in the direction of the light, while negative values bias the scattering backward, toward the light.

Center

Gallery
includeLabeltransparent_scatter_anisotropy
sortdate


transmission_dispersion

Multiexcerpt
MultiExcerptNametransmission_dispersion

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.

Center

Gallery
includeLabeltransparent_dispersion
sortname

Center

transmission_dispersion is ideal for gemstone materials like a diamond

transmission_extra_roughness

Multiexcerpt
MultiExcerptNametransmission_extra_roughness

Adds some additional blurriness of refraction computed with an isotropic microfacet BTDF. The range goes from -1 to 1, where 0 means no roughness. It is computed as 

transmission_roughness = specular_roughness + transmission_extra_roughness.

Center

Gallery
includeLabeltransparent_extra_roughness
sortname


Negative values result in a lower roughness for transmission than for reflection.

Center

Gallery
includeLabelnegative_extra_roughness

specular_roughness: 0.3

transmit_aovs
Multiexcerpt
MultiExcerptNametransmit_aovs

When enabled, transmission will pass through AOVs. If the background is transparent, then the transmissive surface will become transparent so that it can be composited over another background. Light path expression AOVs will be passed through so that for example a diffuse surface seen through a transmissive surface will end up in the diffuse AOV. Other AOVs can also be passed straight through (without any opacity blending), which can be used for creating masks for example. 

Center

Image rollover
0transmit_aovs-alpha.jpg
1transmit_aovs-beauty.jpg

Alpha masks (rollover for beauty)



sss_synopsis
Multiexcerpt
MultiExcerptNamesss_synopsis
Center

Gallery
columns7
includeLabelsss
sortdate


Sub-Surface Scattering (SSS) simulates the effect of light entering an object and scattering beneath its surface. Not all light reflects from a surface. Some of it will penetrate below the surface of an illuminated object. There it will be absorbed by the material and scattered internally. Some of this scattered light will make its way back out of the surface and become visible to the camera. This is known as 'sub-surface scattering' or 'SSS'. SSS is necessary for the realistic rendering of materials such as marble, skin, leaves, wax, and milk. The SSS component in this shader is calculated using a brute-force raytracing method.

Center

Note

You must ensure that the geometry normals are pointing in the correct direction, otherwise, SSS will not render correctly.

Center

Gallery
includeLabelsss-normals


SSS is important when replicating realistic materials such as plastics, for example:

Center

Gallery
includeLabellego
sortname

subsurface
Multiexcerpt
MultiExcerptNamesubsurface

The 'blend' between diffuse and subsurface scattering. When set to 1.0, there is only SSS, and when set to 0 it is only Lambert. In most cases, you want this to be 1.0 (full SSS).

Center

Gallery
columns3
includeLabelsubsurface_weight
sortname

subsurface_color
Multiexcerpt
MultiExcerptNamesubsurface_color

The color used to determine the subsurface scattering effect. For example, replicating a skin material would mean setting this to a fleshy color.

Center

Gallery
columns5
includeLabelsubsurface_color_presets
sortname

 

Info
Skin Color
Generally, you would connect a color texture map to the subsurface_color, and set the subsurface radius to a value appropriate for skin (mostly a higher value for the red channel assuming red mostly comes from blood). The radius can also be textured if desired. Veins would be part of the color texture map, and that not only affects the color but also how the subsurface scattering behaves.
standard_surface has a mix between base and SSS. It is your choice if you want to use diffuse with skin. It can be used to e.g. mix in a different texture with a mask for e.g. face paint, or to vary sharpness by connecting the same texture to both the base_color and subsurface_color and changing the blend factor.


subsurface_radius
Multiexcerpt
MultiExcerptNamesubsurface_radius

The approximate distance up to which light can scatter below the surface, also known as “mean free path” (MFP). This parameter affects the average distance that light might propagate below the surface before scattering back out. This effect on the distance can be specified for each color component separately. Higher values will smooth the appearance of the subsurface scattering, while lower values will result in a more opaque look.

Center

Gallery
columns5
includeLabelsss_radius_cube
sortname

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

Center

Gallery
columns5
includeLabelradius-lego-wheel
sortcomment

Increasing the radius value can radically change the appearance of the material, from looking like leather to marble. SSS is very scale-dependent. You will need to adjust the radius multiplier depending on the size of your model. If you were to render using the default SSS settings, you might get something that does not look correct. Alternatively, adjusting the scene scale can have similar results.

Center

Gallery
columns5
includeLabelemily_radius
sortname

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.

Tip

When rendering skin, you should use a value like 1.0, 0.35, 0.2, indicating that red should scatter deepest and green and blue less. This would replace the three-layer workflow (deep, mid, and shallow layers) for skin where you would make the deep layer red to indicate that deep should scatter with a larger radius. Setting scatter_radius.R to a larger value would correspond to that.

Center

Gallery
includeLabelemily-sss-radius-color
sortcomment
reversetrue

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.

Center

Gallery
includeLabelcircle-radius
sortname

subsurface_scale
Multiexcerpt
MultiExcerptNamesubsurface_scale

Controls the distance that the light is likely to travel under the surface before reflecting back out. It scales the scattering radius and multiplies the sss_radius_color.

Center

Gallery
includeLabelsubsurface_scale
sortname

Info

If the scene is in meters, then SSS Scale can be set to 0.01 to specify the sss_radius in centimeters. For example for skin, the sss_radius could be 0.37cm, 0.14cm, 0.07cm.

Center

Gallery
includeLabelskin_subsurface_scale
sortcomment

subsurface_anisotropy
Multiexcerpt
MultiExcerptNamesubsurface_anisotropy

Henyey-Greenstein Anisotropy coefficient between -1 (full back-scatter) and 1 (full forward-scatter). The default is 0 for an isotropic medium, which scatters the light evenly in all directions, giving a uniform effect. Positive values bias the scattering effect forwards, in the direction of the light, while negative values bias the scattering backward, toward the light.

Note

This parameter only works with the randomwalk SSS method.

Center

Gallery
includeLabelsubsurface_anisotropy
sortsize

subsurface_type
Multiexcerpt
MultiExcerptNamesubsurface_type
Diffusion

With a single layer, it can capture both surface detail and deep scattering. Designed to closely match the characteristics of the full Monte-Carlo simulation, while remaining an approximation that's much cheaper to evaluate than a full randomwalk.

Randomwalk (default)

Unlike the empirical BSSRDF method based on diffusion theory, the randomwalk method actually traces below the surface with a real random walk and makes no assumptions about the geometry being locally flat. This means it can take into account anisotropic scattering like brute-force volume rendering and produces much better results around concavities and small details. It can also be substantially faster for large scattering radius (i.e. large mean free path) compared to diffusion. On the other hand, randomwalk can be slower in dense media (i.e. small mfp), may require redialing materials to achieve a similar look, and is more sensitive to non-closed meshes, "mouth bags", and internal geometry potentially casting shadows.

Randomwalk v2

This method scatters more accurately and deeply through highly-transparent/optically-thin objects, which produces SSS with more saturated colors around fine surface detail and heavily backlit regions of an object. Note that renders will be more costly and noisier than with the original method since randomwalk will be on average longer and more random.

Center

Gallery
includeLabelsubsurface_type2
sortname


thin_walled

Multiexcerpt
MultiExcerptNamethin_walled

Thin_walled can also provide 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.  

Center

Gallery
includeLabelthin_walled_shaderball
sortcomment


Thin_walled is ideal for thin (single-sided) objects, like bubbles for example.

Center

Gallery
includeLabelbubbles-thin_walled
sortname

Thin Walled Translucency

The appearance of this effect is like a thin sheet of paper letting some light through to the backside.

Info

For diffuse surfaces such as paper, enable thin_walled and set subsurface_weight to, for example, 0.5 to have half the light reflected and half transmitted.

Center

Gallery
includeLabelthin_walled_plane


In certain situations, thin_walled may work fine with thickness. However, you should ensure that the diffuse_ray_depth level is above 1 when using thin_walled with objects that have thickness.

Center

Gallery
includeLabelthin_walled-raydepth
sortname


normal

Multiexcerpt
MultiExcerptNamenormal

Connect a normal map here (usually exported from Mudbox or ZBrush).

Multiexcerpt include
MultiExcerptNamesynopsis
nopaneltrue
PageWithExcerptnormal_map

tangent

Multiexcerpt
MultiExcerptNametangent

The tangent map. Together with the shading normal, it defines the tangent coordinate system that the input vector applies to. If available from your sculpting tool, you should connect here the tangent map that the normal map relies on. If 0, the shader attempts the following actions to build the frame:

  1. Look for vector user data named "tangent" and "bitangent."
  2. Use the UV derivatives.
  3. Build its own local frame.

The shader works in tangent space only. If your tangent map was exported in either world or object space, you could instead use the more generic space_transform shader.

coat

Multiexcerpt
MultiExcerptNamecoat

This attribute is used to coat the material. It acts as a clear-coat layer on top of all other shading effects. The coating is always reflective (with the given roughness) and is assumed to be dielectric. Examples would be the clear-coat layer for car paint or the sheen layer for a skin material. For example, for an extra oily layer or wet skin. Other examples would be objects that have been laminated or a protective film over an aluminum cell phone.

Center

Gallery
includeLabelcoat-hulkbuster
sortname
reversetrue

Tip

The coat layer simulates a dielectric (think plastic, glass, resin/enamel, many liquids) which absorbs light and so tints all of the transmitted light (save maybe some very minor polarization effects), while metals, on the other hand, tend to filter the color of whatever it is they are reflecting, even at grazing angles. Therefore, if you want to render a bare metal, the coat_weight should be 0.

Center

Gallery
includeLabelcoat
sortname

(Coat Color: Gold)


Coat can be used for materials such as metallic car paint, the reflective coating on a balloon, or a bubble for example.

Center
HTML Table
border0
classthinTable
Table Row (tr)
Table Cell (td)
width10px
Center

Image rollover
0car-coat.jpg
1car-specular.jpg

Table Cell (td)
width10px
Center

Image rollover
0logo-coat-300.jpg
1logo-no-coat-300.jpg

Table Cell (td)
width10px
Center

Image rollover
0bubble-coat_weight-1.jpeg
1bubble-coat_weight-0.jpeg

Table Cell (td)
width10px
Center

Image rollover
0balloon-coating.jpg
1balloon.gif

Rollover images

Info

When combining a coat (low roughness) on top of a specular (high roughness), the sharp coat disappears at the center due to fresnel.

Center

coat_color

Multiexcerpt
MultiExcerptNamecoat_color

This is the color of the coating layer's transparency.

Note

In typical real-world cases, the coat_color should always be white and is there mostly for artistic control.

In the example below, the red coat_color acts as a clear coat layer, tinting the specular reflection underneath.

Center

Gallery
includeLabelcoat-and-specular
sortname

Texturing Example

In the example below, a blue and white checker texture has been applied to the base_color and the coat_color has been changed to yellow. When combined, the yellow clear-coat layer on top of the base color gives a green tint similar to a semi-transparent layer of paint or lacquer.

Center

You can also define how the coating affects the underlying base_color by connecting a texture map to the coat_weight.

Center

Gallery
includeLabelcoat_weight-color
sortname
reversetrue


Coat_color can also be used to layer a stencil texture. In the example below, a type image has been connected to the coat_color, and the coat_roughness has been increased. Notice how it appears unaffected by the specular highlight that appears to 'sit' underneath it.

Center

Image rollover
0pills-coating.jpg
1pills-no-coating.jpg

Rollover image (without coating)

Center

Gallery
includeLabelcoat_weight-textures
sortname

Texture maps -> coat_color

coat_roughness

Multiexcerpt
MultiExcerptNamecoat_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, while 1.0 will create reflections that are close to a diffuse reflection. You should connect a map here to get variation in the coat highlight.

Center

Gallery
includeLabelcoat_roughness
sortdate

coat_IOR

Multiexcerpt
MultiExcerptNamecoat_ior

The IOR parameter (Index of Refraction) defines the material's Fresnel reflectivity and is by default the angular function used. Effectively the IOR will define the balance between reflections on surfaces facing the viewer and on surface edges. You can see the reflection intensity remains unchanged, but the reflection intensity on the front side changes a lot.

Center

Gallery
includeLabelcoat_ior
sortname


coat_anisotropy

Multiexcerpt
MultiExcerptNamecoat_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, which means 'isotropic.' As you move the control towards 1.0, the surface is made more anisotropic in the U axis.

Center

Gallery
includeLabelspecular_anisotropy
sortname

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.

Center

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

Center

Gallery
columns3
includeLabelanisotropy_can
sortname


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

Center

Texture assigned to anisotropic_rotation



Multiexcerpt
MultiExcerptNamesubdiv_smooth_derivs
You may notice faceting appears in 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.
Center

Gallery
columns3
includeLabelanisotropy_faceting
sortname

Tip

Increase subdivision_iterations to remove anisotropic faceting.

coat_rotation

Multiexcerpt
MultiExcerptNamecoat_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.

Center

Gallery
columns5
includeLabelspecular_rotation
sortname

It is possible to assign textures to the 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".

Center

Gallery
columns3
includeLabelrotation_texture
sortname

coat_normal

Multiexcerpt
MultiExcerptNamecoat_normal

The coat_normal affects the fresnel blending of the coat over the base, so depending on the normal, the base will be more or less visible from particular angles. Uses for coat_normal could be a bumpy coat layer over a smoother base. This could include a rain effect, a carbon fiber shader, or a car paint shader where you could use different normals (using e.g. flakes) for the coat layer and base layers. 

Center

Gallery
includeLabelcoat_normal-shaders
sortname
reversetrue


Coat_normal is suited to situations where the layer may be uneven, for example, an oily or wet layer, rain on streets or glazing on food.

Center

Image rollover
0mud-coat_normal.jpg
1mud-no-coat_normal.jpg

Rollover image (left). Puddles are created with a glossy texture map connected to coat_normal via bump shader (right).

 

When you specify a coat_normal, it affects just the coat, and none of the layers below it (diffuse, specular, transmission). In the example below right, the rock material appears to have a clear coat layer, when a bump texture is connected to the coat_normal.

Center

Gallery
includeLabelcoat_normal
sortsize
reversetrue

 

Center

Gallery
includeLabelcoat_normal-paint
sortdate

Textures -> Coat Normal

coat_affect_color

Multiexcerpt
MultiExcerptNamecoat_affect_color

In the real world, when a material is coated there is a certain amount of internal reflections on the inside of the coating. This causes light to bounce onto the surface multiple times before escaping, allowing the material's color to have an enhanced effect. An example of this is varnished wood. This effect can be achieved by using coat_affect_color.

Center

Image rollover
0Affect_Color_0.jpg
1Affect_Color_1.jpg

Rollover image

coat_affect_roughness

Multiexcerpt
MultiExcerptNamecoat_affect_roughness

This causes the coating's roughness to have an effect on the underlying layer's roughness, simulating the blurring effect of being seen through the top layer. In the example below, a checker texture has been connected to the coat _roughness with Metalness set to 1.0. When set to 0, the coating is unaffected, whereas at 1 the coating_roughness is apparent.

Center

Gallery
includeLabelcoat_affect_roughness
sortcomment

emission

Multiexcerpt
MultiExcerptNameemission

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).

Center

Gallery
includeLabelemission
sortname

Info

Note that a mesh_light may work better in a situation where you need an object to emit light that casts realistic ray-traced shadows.

Center

Image rollover
0standard_emission_weight_1.jpg
1standard_emission_weight_0.jpg

Bulb with emissive shader assigned to it (rollover image)

Tip

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

Center

Gallery
includeLabelemission-cube
sortname

emission_color
Multiexcerpt
MultiExcerptNameemission_color

The emitted light color.

Center

Texture map representing hot lava connected to emission_color

opacity
Multiexcerpt
MultiExcerptNameopacity

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

Info

You must ensure that opaque is disabled for the mesh that the standard_surface shader is assigned to when using opacity.


Center

Gallery
includeLabelopacity

Center

Checker map -> opacity


caustics
Multiexcerpt
MultiExcerptNamecaustics

This switch in the standard_surface shader specifies whether specular or transmission bounces behind diffuse bounces are enabled or not. As caustics can be noisy, these are disabled by default.

To control noise from caustics, the global indirect_specular_blur setting may be increased, which blurs out caustics to reduce noise at the cost of accuracy.

Note

Arnold will require a high number of diffuse samples to achieve a clean image when using caustics. Care should be taken when enabling this feature.

Center

Image rollover
0gold-caustics.jpg
1gold-no-caustics.jpg
Image rollover
0refractive-caustics.jpg
1no-refractive-caustics.jpg

Reflective caustics (left), refractive caustics (right). Rollover images to view without Caustics.


Notice that the areas in the scenes below are darker inside the glass. This is because the illumination inside the glass is essentially all caustics. Enabling caustics for the glass shader fixes this issue. 

Center

Image rollover
0vase-no-caustic.jpg
1vase-caustics.jpg
Image rollover
0Lego-caustics-off.jpg
1Lego-caustics-on.jpg

Rollover images to view with caustics enabled


Info

You may experience fireflies when using high specular_weight, and low Specular Roughness with Caustics enabled. To reduce this type of noise, increase the specular_roughness of the shader or indirect_specular_blur globally.

Center
Gallery
includeLabelglossy
sortcomment
Tip

Enabling caustics can add more believability when rendering eyes.

Center

Image rollover
0eyes-no-caustics.jpg
1eyes-caustics.jpg

Rollover image to view caustics enabled for outer cornea shader

internal_reflections
Multiexcerpt
MultiExcerptNameinternal_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).

Center

Gallery
includeLabelinternal
sortname
reversetrue

In the right image below, the sphere appears black because internal_reflections is disabled in the standard_surface shader assigned to the sphere.

Center

Gallery
includeLabelinternal-reflections-sphere
sortname
reversetrue

exit_to_background
Multiexcerpt
MultiExcerptNameexit_to_background

This will cause the standard_surface shader to trace a ray against the background/environment when the maximum GI reflection/refraction depth is met and return the color that is visible in the background/environment in that direction. When the option is disabled, the path is terminated instead and returns black when the maximum depth is reached.

Center

Gallery
includeLabelexit_to_background
sortcomment

indirect_diffuse
Multiexcerpt
MultiExcerptNameindirect_diffuse

The amount of diffuse light received from indirect sources only. 

Center

Gallery
columns3
includeLabelindirect_diffuse
sortcomment


indirect_specular
Multiexcerpt
MultiExcerptNameindirect_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.

Center

Gallery
columns3
includeLabelindirect_specular
sortcomment

dielectric_priority 

Multiexcerpt
MultiExcerptNamedielectric_priority

Specifies how to resolve overlapping dielectrics into a well-defined medium, so that higher priority (higher number) dielectrics override lower priority ones which are effectively removed. This is used to correctly set up cases with adjacent dielectric media such as a glass of water with ice.

Info

dielectric_priority is an integer (default 0) which can be positive or negative, where higher priority numbers override lower priorities. So for example, if glass with priority 2 overlaps water with priority 1, then in the overlap region, only the glass survives. Negative priorities are allowed, so, for example, a priority 0 object would override priority -1 (as it may be convenient to use negative priorities sometimes to specify a lower priority medium than the default 0).

Multiexcerpt include
MultiExcerptNamecoke
nopaneltrue
PageWithExcerptA5ARP:Nested Dielectrics

Note

Nested dielectrics is enabled by default and can be found in the render settings -> Sampling -> Advanced (dielectric_priorities). You will notice changes to the look of old scenes. Disable this option if you wish to revert to previous non-physical results.

Info

More information about nested dielectrics can be found here.


sss_set_name

Multiexcerpt
MultiExcerptNamesss_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.

Center

Gallery
columns2
includeLabelsss_set
sortname

anisotropy_tangent
Multiexcerpt
MultiExcerptNameanisotropy_tangent

Lets you specify a custom tangent for specular anisotropic shading. For example, if the mesh has tangent user data, that could be linked here.


thin_film_thickness

Multiexcerpt
MultiExcerptNamethin_film_thickness

Defines the actual thickness of the film between the specified min and max thickness (0 to 2000 (soft min/max)). This affects the specular, transmission and coat components. Normally this would be something like a noise map to give some variation to the interference effect. If the thickness becomes large like 3000 [nm], the iridescence effect will disappear, which is physically correct behavior.

Center

Gallery
columns6
includeLabelthickness
sortname

thin_film_IOR

Multiexcerpt
MultiExcerptNamethin_film_ior

The refractive index of the medium surrounding the material. Normally this is set to 1.0 for air.  

Center

Gallery
columns6
includeLabelthin_film_ior
sortname

Info

The IOR for water is 1.33 and soap is about 1.5. Therefore the IOR for a soap bubble should be in the 1.33-1.4 range.



aov_id(1-8)

Multiexcerpt
MultiExcerptNameaov_id(1-8)

The color used to be output in AOV id (1-8). Connect a shader or texture here and it will be saved to the similarly named id AOV. AOV ids are useful for creating mattes to be used in compositing.


sheen_weight

Multiexcerpt
MultiExcerptNamesheen_weight

An energy-conserving sheen layer that can be used to approximate microfiber, cloth-like surfaces such as velvet and satin of varying roughness. Sheen is layered onto the diffuse component and its weight is determined with this attribute. Sheen can be thought of as the density or the combination of the density and length of the fibers. 

Center

Gallery
includeLabelsheen_weight
sortname


As well as fabric, sheen can be used to simulate leaves, fruit, or the peach fuzz on a face (best when viewed from a distance).

Center

Image rollover
0leaves-sheen_200.jpg
1leaves-no-sheen_200.jpg
Image rollover
0sheen-peach-200.jpg
1peach-no-sheen.jpg
Image rollover
0emily-sheen.jpg
1emily-no-sheen.jpg

Rollover images to view without sheen


sheen_color

Multiexcerpt
MultiExcerptNamesheen_color

The color of the fibers. Tints the color of the sheen contribution.

Center

Gallery
includeLabelsheen_color
sortname

(Base Color: dark purple used with above images)


sheen_roughness

Multiexcerpt
MultiExcerptNamesheen_roughness

This modulates how much the microfibers diverge from the surface normal direction.

Center

Gallery
includeLabelsheen_roughness
sortname

Center

sheen_roughness randomizes the fiber direction


Privacy settings / Do not sell my personal information / Privacy/Cookies