BSDFs#

This section contains a list of bsdfs supported by the Ignis renderer. All number and color parameters can be connected to a shading network or texture via PExpr.

A bsdf is specified in the bsdfs block with a name and a type. The type has to be one of the bsdfs listed at this section below.

{
    // ...
    "bsdfs": [
        // ...
        {"name":"NAME", "type":"TYPE", /* DEPENDS ON TYPE */},
        // ...
    ]
    // ...
}

Diffuse (diffuse)#

Parameter

Type

Default

PExpr

Description

reflectance

color

0.8

Albedo

roughness

number

0

Isotropic roughness. If roughness > 0, the Oren-Nayar model will be used.

Dielectric (dielectric)#

Parameter

Type

Default

PExpr

Description

specular_reflectance

color

1

Reflectance factor. Should be less or equal to 1 for each component for physical correctness.

specular_transmittance

color

1

Transmittance factor. Should be less or equal to 1 for each component for physical correctness.

ext_ior int_ior

number

~vacuum, ~bk7

Specifies exterior and interior index of refraction.

ext_ior_material int_ior_material

string

None, None

Has to be one of the available presets listed here.

thin

boolean

false

true if the glass should be treated as a thin interface. int_ior will be always the inside of the thin surface, regardless of the direction of the surface normal.

roughness_u roughness_v

number

0, 0

Roughness of the dielectric. Can be specified implicitly using roughness and anisotropic instead. thin will be ignored if roughness is greater than zero.

roughness anisotropic

number

0, 0

Roughness and anisotropic terms. Can be specified explicitly using roughness_u and roughness_v instead. Anisotropic is the amount of anisotropy in the roughness distribution. thin will be ignored if roughness is greater than zero.

Conductor (conductor)#

Parameter

Type

Default

PExpr

Description

eta k

color

~Perfect mirror

Real and imaginary components of the material’s index of refraction.

material

string

None

Instead of eta, k a material name can be specified. Available presets are listed here.

specular_reflectance

color

1

Optional factor that can be used to modulate the specular reflection component. Note that for physical realism, this parameter should never be touched.

roughness_u roughness_v

number

0, 0

Roughness terms. Can be specified implicitly using roughness and anisotropic instead.

roughness anisotropic

number

0, 0

Roughness and anisotropic terms. Can be specified explicitly using roughness_u and roughness_v instead. Anisotropic is the amount of anisotropy in the roughness distribution.

Plastic (plastic)#

Parameter

Type

Default

PExpr

Description

specular_reflectance

color

1

Specular reflectance. Should be less or equal to 1 for each component for physical correctness.

diffuse_reflectance

color

0.8

Diffuse reflectance. Should be less or equal to 1 for each component for physical correctness.

ext_ior int_ior

number

~vacuum, ~bk7

Specifies exterior and interior index of refraction.

ext_ior_material int_ior_material

string

None, None

Has to be one of the available presets listed here.

roughness_u roughness_v

number

0, 0

Roughness terms. Can be specified implicitly using roughness and anisotropic instead.

roughness anisotropic

number

0, 0

Roughness and anisotropic terms. Can be specified explicitly using roughness_u and roughness_v instead. Anisotropic is the amount of anisotropy in the roughness distribution.

Phong (phong)#

Parameter

Type

Default

PExpr

Description

specular_reflectance

color

1

Reflectance factor. Should be less or equal to 1 for each component for physical correctness. See note below for PBR consideration.

exponent

number

30

Exponent of the lobe. Greater number results into a greater peak, therefore the visible peak spot will be smaller.

Note

It is not recommended to use this BSDF for new projects as it disregards some PBR principles and is only included for legacy purposes.

Principled (principled)#

Parameter

Type

Default

PExpr

Description

base_color

color

0.8

Base color of the principled bsdf. Should be less or equal to 1 for each component for physical correctness.

metallic

number

0

A number between 0 and 1. A metallic value of 1 displays a full metallic (conductor), which can not transmit via refraction.

roughness_u roughness_v

number

0.5, 0.5

Anisotropic microfacet roughness for specular, diffuse and sheen reflection terms. Can be specified implicitly using roughness and anisotropic instead. The roughness is computed via the GGX method.

roughness anisotropic

number

0.5, 0

The microfacet roughness for specular, diffuse and sheen reflection and anisotropic terms. The roughness is computed via the GGX method. Can be specified explicitly using roughness_u and roughness_v instead. Anisotropic is the amount of anisotropy in the roughness distribution.

ior reflective_ior refractive_ior

number

~bk7

Specifies index of refraction. To distinguish between the ior used for the reflective fresnel term use reflective_ior and for the actual refraction refractive_ior. If one of the latter two is specified, ior will be ignored.

ior_material reflective_ior_material refractive_ior_material

string

None

Has to be one of the available presets listed here. See above for the reflective and refractive use case.

thin

boolean

false

true if the bsdf should be treated as a thin interface, which affects the refraction and subsurface behavior.

flatness

number

0

Amount of subsurface approximation. Only available if thin is true.

specular_transmission

number

0

Amount of specular transmission. Should be less or equal to 1 for physical correctness.

specular_tint

number

0

Mix factor of white and base_color for specular reflections.

diffuse_transmission

number

0

Amount of diffuse transmission. Should be less or equal to 1 for physical correctness. This is often named translucency in other applications.

sheen

number

0

Amount of soft velvet layer resulting into a soft reflection near the edges.

sheen_tint

number

0

Mix factor of white and base_color for sheen reflections.

clearcoat

number

0

Amount of white specular layer at the top.

clearcoat_gloss

number

0

Amount of shininess of the clearcoat layer.

clearcoat_top_only

boolean

true

true if clearcoat should only be applied to the front side of the surface only.

clearcoat_roughness

number

0.1

The isotropic microfacet roughness for clearcoat. Higher values result into a rougher appearance. The roughness computed via the GGX method.

Blend (blend)#

Parameter

Type

Default

PExpr

Description

first second

bsdf

None

The two bsdfs which should be blended.

weight

number

0.5

Amount of blend between the first and second bsdf.

Mask (mask)#

Parameter

Type

Default

PExpr

Description

bsdf

bsdf

None

The bsdf which should be masked out.

weight

number

0.5

Amount of masking. This is only useful if the weight is spatially varying, else it behaves like opacity.

inverted

boolean

false

true if the weight should be inverted.

Cutoff (cutoff)#

Parameter

Type

Default

PExpr

Description

bsdf

bsdf

None

The bsdf which should be cutoff.

weight

number

0.5

Weight factor for cutoff. This is only useful if the weight or cutoff is spatially varying.

cutoff

number

0.5

Threshold for cutoff. This is only useful if cutoff or weight is spatially varying.

inverted

boolean

false

true if the weight should be inverted. Keep in mind that cutoff is not inverted.

Transparent (transparent)#

Parameter

Type

Default

PExpr

Description

color

color

1

Color tint of the transparent material.

Warning

The transparent bsdf should be used carefully, as simple techniques like Next-Event Estimation still intersect the object geometry.

Passthrough (passthrough)#

Warning

The passthrough bsdf should be used carefully, as simple techniques like Next-Event Estimation still intersect the object geometry.

Normal mapping (normalmap)#

Parameter

Type

Default

PExpr

Description

bsdf

bsdf

None

The bsdf the new normal will be forwarded to.

map

color

1

Usually a texture used for normal mapping.

strength

number

1

Interpolation factor between the old and new normal.

Bump mapping (bumpmap)#

Parameter

Type

Default

PExpr

Description

bsdf

bsdf

None

The bsdf the new normal will be forwarded to.

map

texture

None

A grayscale texture used for texture mapping.

strength

number

1

Interpolation factor between the old and new normal.

Transform (transform)#

Parameter

Type

Default

PExpr

Description

bsdf

bsdf

None

Bsdf the normal transformation will be forwarded to.

normal

vector

(0,0,1)

Normal to use instead of the callee normal (e.g., surface normal).

tangent

vector

None

Tangent to use instead of the callee tangent (e.g., surface tangent). Will be calculated from the normal parameter if not set.

Dupuy & Jakob measured materials (djmeasured)#

Parameter

Type

Default

PExpr

Description

filename

string

None

Path to a valid brdf.

tint

color

1

Tint.

Klems (klems)#

Parameter

Type

Default

PExpr

Description

filename

string

None

Path to a valid windows xml specifying a klems bsdf.

base_color

color

1

Tint.

up

vector

(0,0,1)

Up vector

TensorTree (tensortree)#

Parameter

Type

Default

PExpr

Description

filename

string

None

Path to a valid windows xml specifying a tensortree bsdf.

base_color

color

1

Tint.

up

vector

(0,0,1)

Up vector

Radiance BRTDfunc (rad_brtdfunc)#

Parameter

Type

Default

PExpr

Description

reflection_specular

color

1

Tint of the specular reflection lobe.

transmission_specular

color

0

Tint of the specular transmission lobe.

direct_diffuse

color

0

Tint of the direct diffuse lobe. In contrary to Radiance, Ignis has no special handling of direct light connections (NEE) inside materials. The lobe is simply added to the diffuse lobes below.

reflection_front_diffuse

color

0

Tint of the front-side diffuse lobe.

reflection_back_diffuse

color

0

Tint of the back-side diffuse lobe.

transmission_diffuse

color

0

Tint of the diffuse transmission lobe. This emulates translucency.

Radiance Roos model (rad_roos)#

Roos model based on the paper: Roos, A., Polato, P., Van Nijnatten, P.A., Hutchins, M.G., Olive, F. and Anderson, C. (2001), Angular-dependent optical properties of low-e and solar control windows—: Simulations versus measurements

Parameter

Type

Default

PExpr

Description

refl_w refl_p refl_q

number

0

Roos parameters for the reflection.

trns_w trns_p trns_q

number

0

Roos parameters for the transmission.

reflection_front_diffuse

color

0

Tint of the front-side diffuse lobe.

reflection_back_diffuse

color

0

Tint of the back-side diffuse lobe.

transmission_diffuse

color

0

Tint of the diffuse transmission lobe. This emulates translucency.

List of preset index of refractions#

Currently the following materials are available as presets:

  • vacuum

  • bk7

  • glass same as bk7

  • helium

  • hydrogen

  • air

  • water

  • ethanol

  • diamond

  • polypropylene

List of preset conductors#

Currently the following materials are available as presets:

  • aluminum

  • brass

  • copper

  • gold

  • iron

  • lead

  • mercury

  • platinum

  • silver

  • titanium

  • none ~ a perfect mirror