DwaBaseMaterial

Overview


The DwaBaseMaterial is an “uber shader” that is most useful for roughly transferring values from a third party uber shader or connecting maps from a content creation tool that uses the uber shader model. In other words, if you’re making use of metallic maps this is the material to use. The DwaSolidDielectricMaterial is still the general purpose material intended for most materials such as wood, paint, plastic, stone, clay, etc.


Attribute Reference

Advanced attributes

specular

Float bindable
default: 1.0

enables/disables specular reflections (binary 0|1 for plausibility)

specular: 0 | 1

sss_trace_set

TraceSet
default: None

Set of geometries that contribute neighboring subsurface points. By default, only the geometry associated with this material contributes to subsurface. If you want adjacent geometry with different material to contribute as well, specify all those parts here.

Clearcoat attributes

clearcoat

Float bindable
default: 1.0

enables/disables clearcoat (binary 0|1 for plausibility)

clearcoat_attenuation_color

Rgb bindable
default: [ 0.5, 0.5, 0.5 ]

the attenuation color of the clearcoat when 'cleacoat thickness' > 0

clearcoat attenuation color: Rgb(0, 0, 0) - Rgb(1, 1, 1)

clearcoat_bending

Bool
default: True

(advanced, recommended ON) bends rays based on the clearcoat-refractive-index before evaluating the lobes under clearcoat

clearcoat_model

Int enum
  0 = “Beckmann”
  1 = “GGX” (default)

sets the normal distribution function for clearcoat. GGX is currently isotropic only

clearcoat_normal_dial

Float bindable
default: 1.0

controls the amount of infuence of the alternate clearcoat normal

clearcoat normal dial: 0 - 1

clearcoat_refractive_index

Float
default: 1.5

defines the Fresnel behavior

clearcoat refractive index: 1 - 2.3

clearcoat_roughness

Float bindable
default: 0.1

the roughness of the clearcoat lobe

clearcoat roughness: 0 - 1

clearcoat_thickness

Float bindable
default: 0.0

the thickness of the virtual clearcoat layer. Values > 0 enable absorption

clearcoat thickness: 0 - 1

independent_clearcoat_normal

NormalMap
default: None

specifies an independent shading normal (normal map) for the clearcoat lobe

show_clearcoat

Bool
default: False

enables/disables clearcoat

use_independent_clearcoat_normal

Bool
default: False

specifies whether the clearcoat lobe should use an independent normal

Common attributes

casts_caustics

Bool
default: False

allows continuation of caustic light paths.

casts caustics: true | false

presence

Float bindable
default: 1.0

controls the visibility of this object. Useful for fading an object in/out, or to specify a cut-out mask on thin single-sided geometry (eg. a complex leaf texture on a simple card).

presence: 0 - 1

thin_geometry

Bool
default: False

enables proper shading of infinitely thin geometry such as paper or leaves.

Diffuse attributes

albedo

Rgb bindable
default: [ 1, 1, 1 ]

the overall surface color as seen from a distance (ie. diffuse color)

albedo: Rgb(red, orange, yellow, green, blue, purple)

bssrdf

Int enum
  0 = “normalized diffusion” (default)
  1 = “dipole”
  2 = “random walk”

0 for NormalizedDiffuse, 1 for Dipole, 2 for random walk

bssrdf: normalized diffusion vs dipole diffusion, random walk not shown

diffuse_roughness

Float bindable
default: 0.0

Roughness of the diffuse shading. If the value is zero a Lambertian model is used. If it's above zero the Oren Nayar model is used. Not compatible with subsurface scattering.

diffuse roughness: 0 - 1

diffuse_transmission

Float bindable
default: 1.0

multiplier on the amount of light that is transmitted through the surface.

diffuse transmission: 0 - 1

diffuse_transmission_blending_behavior

Int enum
  0 = “RGB”
  1 = “Monochromatic” (default)

Controls how diffuse transmission color attenuates diffuse reflection

diffuse_transmission_color

Rgb bindable
default: [ 0, 0, 0 ]

the color/amount of light that is transmitted through the surface.

diffuse transmission color: Rgb(red, orange, yellow, green, blue, purple)

enable_sss_input_normal

Bool
default: False

enables sampling the normal map for sss samples. More accurate but potentially expensive

resolve_self_intersections

Bool
default: True

tries to resolve self-intersecting geometry automatically by only evaluating 'exiting' intersections for subsurface evaluations

scattering_color

Rgb bindable
default: [ 1, 1, 1 ]

the subsurface scattering 'falloff' color

scattering color: Rgb(red, orange, yellow, green, blue, purple)

scattering_radius

Float bindable
default: 0.0

the distance the light scatters beneath the surface. When 0 surface diffuse (lambertian or toon) is used

scattering radius: 0.01 - 0.11

show_diffuse

Bool
default: True

enables/disables diffuse reflectance

Emission attributes

emission

Rgb bindable
default: [ 1, 1, 1 ]

the energy emitted from this material

emission: Rgb(0, 0, 0) - Rgb(4.76, 0.02, 0.02)

show_emission

Bool
default: False

enables/disable emission

Fuzz attributes

fuzz

Float bindable
default: 1.0

fuzz mask

fuzz: 0 - 1

fuzz_albedo

Rgb bindable
default: [ 1, 1, 1 ]

Color of the fuzz highlights.

fuzz_normal

NormalMap
default: None

specifies an independent shading normal (normal map) for the fuzz lobe

fuzz_normal_dial

Float bindable
default: 1.0

controls the amount of infuence of the alternate fuzz normal

fuzz_roughness

Float bindable
default: 0.25

Lower values result in glancing angle highlights while higher values result in a broad, uniform coverage

show_fuzz

Bool
default: False

Enables/disables fuzz lobe

use_absorbing_fuzz_fibers

Bool
default: False

Specify whether dark fuzz fibers absorb energy or transmit it to the layers below.

Glitter attributes

glitter

Float bindable
default: 1.0

enables/disables glitter model (binary 0|1 for plausibility)

glitter_LOD_quality

Float
default: 0.5

controls quality of glitter at distances where individual flakes cannot be perceived; at lower values, approximation kicks in earlier

glitter_approximate_for_secondary_rays

Bool
default: True

use an approximation to shade glitter for non-mirror secondary rays

glitter_color_A

Rgb bindable
default: [ 1, 1, 1 ]

base flake color (use physical metallic color values)

glitter_color_B

Rgb bindable
default: [ 1, 1, 1 ]

base flake color (use physical metallic color values)

glitter_color_hue_variation

Float bindable
default: 0.0

introduce hue variation in flake color centered at the base flake color's hue on the hue wheel

glitter_color_saturation_variation

Float bindable
default: 0.0

introduce saturation variation in flake color centered at the base flake color's saturation

glitter_color_value_variation

Float bindable
default: 0.0

introduce value variation in flake color centered at the base flake color's value

glitter_compensate_reference_space_deformation

Bool
default: True

(In ReferenceSpace) Compensates for stretch/compression/shear in glitter shapes resulting from animation etc

glitter_debug_mode

Int enum
  0 = “off” (default)
  1 = “blend”
  2 = “color”
  3 = “averageColor”
  4 = “footprintArea”
  5 = “radius”

developer debug visualization modes

glitter_density

Float bindable
default: 1.0

controls the number of flakes per unit length; larger density packs more flakes into same space

glitter density: 10 - 20

glitter_jitter

Float bindable
default: 1.0

Controls how much the flakes are randomly offset from a regular grid

glitter_layering_mode

Int enum
  0 = “physical” (default)
  1 = “additive”

layering mode for glitter on top of the under material. physical: conserves energy and glitter attenuates under material, additive: breaks energy conservation but glitter is never darker than the under material (eg. use case: snow)

glitter_randomness

Float
default: 0.5

randomness of flake orientation

glitter_roughness_A

Float
default: 0.14

specular roughness of individual flakes (0 makes flakes mirror-like)

glitter_roughness_B

Float
default: 0.14

specular roughness of individual flakes (0 makes flakes mirror-like)

glitter_seed

Int
default: 0

The seed for the glitter random number generator

glitter_size_A

Float bindable
default: 1.0

size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface

glitter size A: 0.02 - 0.12

glitter_size_B

Float bindable
default: 1.0

size of the flakes. Apparent flake size may vary based on how much the flake spheres intersect the surface

glitter_space

Int enum
  4 = “object”
  5 = “reference” (default)

The space to calculate the worley noise in, defaults to reference space

glitter_style_A_frequency

Float bindable
default: 1.0

0 implies none of this style, 1 implies all the flakes will get this style

glitter_style_B_frequency

Float bindable
default: 0.0

0 implies none of this style, 1 implies all the flakes will get this style

glitter_texture_A

String filename
default:

filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx).

glitter_texture_B

String filename
default:

filename that points to a texture .exr or .tx file (must be mip-mapped and tiled with maketx).

glitter_texture_orientation_randomness

Float
default: 0.15

randomly orient each texture

show_glitter

Bool
default: False

Enables/disables glitter lobes

Iridescence attributes

iridescence

Float bindable
default: 0.0

controls the strength of the iridescence effect

iridescence: 0 - 1

iridescence_apply_to

Int enum
  0 = “primary specular” (default)
  1 = “clearcoat/moisture specular”

Apply iridescence to primary specular lobe or clearcoat/moisture lobe

iridescence_at_0_incidence

Float bindable
default: 1.0

Iridescence effect at 0 degree viewing angle

iridescence at 0 incidence: 0 - 1

iridescence_at_90_incidence

Float bindable
default: 1.0

Iridescence effect at 90 degree viewing angle

iridescence_color_control

Int enum
  0 = “use hue interpolation” (default)
  1 = “use ramp”

use hue interpolation: automatically cycles through hue wheel, use ramp: user specified color ramp

iridescence_colors

RgbVector
default: [[ 1, 0, 0 ], [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ], [ 1, 0, 1 ], [ 1, 0, 0 ]]

List of colors on the ramp

iridescence_exponent

Float bindable
default: 1.0

Tightens or broadens the distribution of colors

iridescence exponent: 0 - 2.5

iridescence_flip_hue_direction

Bool
default: False

flip interpolation around the hue wheel to counter-clockwise direction

iridescence flip hue direction: true | false

iridescence_interpolations

IntVector
default: {}

None: 0 | Linear: 1 | Exponential Up: 2 | Exponential Down: 3 |
   Smooth: 4 | Catmull Rom: 5 | Monotone Cubic: 6

iridescence_positions

FloatVector
default: {}

ramp positions

iridescence_primary_color

Rgb bindable
default: [ 1, 0, 0 ]

First color to interpolate from around the hue wheel

iridescence primary color: Rgb(orange, yellow, green, blue, purple, red)

iridescence_ramp_interpolation_mode

Int enum
  0 = “RGB” (default)
  1 = “HSV”

RGB: lerp in RGB space which matches UI preview but can lose saturation, HSV: lerp in HSV space which preserves saturation

iridescence_secondary_color

Rgb bindable
default: [ 1, 0, 0 ]

Second color to interpolate to around the hue wheel

iridescence secondary color: Rgb(orange, yellow, green, blue, purple, red)

iridescence_thickness

Float bindable
default: 1.0

Controls how much the color spectrum is repeated

iridescence thickness: 0 - 5

Normal attributes

input_normal

NormalMap
default: None

specifies an alternate shading normal in the tangent frame (normal map)

input_normal_dial

Float bindable
default: 1.0

controls the amount of influence of the alternate normal

input normal dial: 0 - 1

Normal Anti-aliasing attributes

normal_AA_dial

Float
default: 1.0

Controls the amount roughness compensation from the normal map AA strategy.

normal_AA_strategy

Int enum
  0 = “none” (default)
  1 = “toksvig”

Normal map anti-aliasing strategy to use - 'none' uses regular mip-mapping, 'toksvig' increases specular roughness corresponding to the geometric details filtered out because of mip-mapping.

Specular attributes

anisotropy

Float bindable
default: 0.0

controls the shape of the primary reflection

anisotropy: -1 - 1

metallic

Float bindable
default: 0.0

enables/disables metallic model (binary 0|1 for plausibility)

metallic_color

Rgb bindable
default: [ 1, 1, 1 ]

the overall reflection color, defines Fresnel behavior

metallic color: physical values for gold, copper, silver, and alluminum

metallic_edge_color

Rgb bindable
default: [ 1, 1, 1 ]

the reflection color at grazing angles, defines Fresnel behavior

metallic edge color: Rgb(orange, yellow, green, blue, purple, red)

refractive_index

Float
default: 1.5

defines the Fresnel behavior, (affects reflection and refraction)

refractive index: 1 - 2.3

roughness

Float bindable
default: 0.5

the roughness of the surface (currently only affects reflection)

roughness: 0 - 1

shading_tangent

Vec2f bindable
default: [ 1, 0 ]

controls the orientation of anistropy

shading tangent: Vec2(1,0) - Vec2(0,1) - Vec2(-1,0) - Vec2(0,1)

show_specular

Bool
default: True

enables/disables specular reflections

specular_model

Int enum
  0 = “Beckmann”
  1 = “GGX” (default)

sets the normal distribution function for specular. GGX is currently isotropic only

Transmission attributes

dispersion_abbe_number

Float
default: 34.0

The amount of dispersion/chromatic-aberration via refractions. Lower this number to increase the effect. A value of 0 turns off dispersion. Around [25-80] makes sense for realistic glass. Lower values may look better on gemstones.

independent_transmission_refractive_index

Float
default: 1.5

defines a separate IOR for the bending of light with transmission

independent_transmission_roughness

Float bindable
default: 0.5

separate roughness for transmission

show_transmission

Bool
default: True

enables/disables refractive solid model

transmission

Float bindable
default: 0.0

enables/disables refractive solid model (binary 0|1 for plausibility)

transmission_color

Rgb bindable
default: [ 1, 1, 1 ]

the desired color of transmitted light

transmission color: Rgb(1, 1, 1) - Rgb(0.5, 0.04, 0.04)

use_dispersion

Bool
default: False

use dispersion effects in transmission

use_independent_transmission_refractive_index

Bool
default: False

use a separate IOR for transmission

use_independent_transmission_roughness

Bool
default: False

use a separate roughness for transmission

General attributes

extra_aovs

Map
default: None

Bind this attribute to a 'ListMap' that contains references to ExtraAovMaps that specify additional outputs that can be assigned to a RenderOutput "light aov" result

label

String
default:

label used in material and light aovs

priority

Int
default: 0

The material's place in an order of precedence for overlapping dielectrics. A value of 0 means the priority should be ignored. Materials with lower numbers (higher priority) "override" materials with higher numbers (lower priority). To enable automatic removal of self-overlapping geometry, a non-zero priority must be set on the geometry's material.

record_reflected_cryptomatte

Bool
default: False

Indicates whether the next reflected surface should appear in the reflected cryptomatte layers

record_refracted_cryptomatte

Bool
default: False

Indicates whether the next refracted surface should appear in the refracted cryptomatte layers