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 |
|
Albedo |
|
roughness |
number |
|
Isotropic roughness. If roughness > 0, the Oren-Nayar model will be used. |
Dielectric (dielectric)#
Parameter |
Type |
Default |
PExpr |
Description |
---|---|---|---|---|
specular_reflectance |
color |
|
Reflectance factor. Should be less or equal to 1 for each component for physical correctness. |
|
specular_transmittance |
color |
|
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 |
|
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 |
|
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 |
|
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 |
|
Roughness terms. Can be specified implicitly using roughness and anisotropic instead. |
|
roughness anisotropic |
number |
|
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 |
|
Specular reflectance. Should be less or equal to 1 for each component for physical correctness. |
|
diffuse_reflectance |
color |
|
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 |
|
Roughness terms. Can be specified implicitly using roughness and anisotropic instead. |
|
roughness anisotropic |
number |
|
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 |
|
Reflectance factor. Should be less or equal to 1 for each component for physical correctness. See note below for PBR consideration. |
|
exponent |
number |
|
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 |
|
Base color of the principled bsdf. Should be less or equal to 1 for each component for physical correctness. |
|
metallic |
number |
|
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 |
|
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 |
|
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 |
|
Amount of subsurface approximation. Only available if thin is true. |
|
specular_transmission |
number |
|
Amount of specular transmission. Should be less or equal to 1 for physical correctness. |
|
specular_tint |
number |
|
Mix factor of white and base_color for specular reflections. |
|
diffuse_transmission |
number |
|
Amount of diffuse transmission. Should be less or equal to 1 for physical correctness. This is often named translucency in other applications. |
|
sheen |
number |
|
Amount of soft velvet layer resulting into a soft reflection near the edges. |
|
sheen_tint |
number |
|
Mix factor of white and base_color for sheen reflections. |
|
clearcoat |
number |
|
Amount of white specular layer at the top. |
|
clearcoat_gloss |
number |
|
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 |
|
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 |
|
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 |
|
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 |
|
Weight factor for cutoff. This is only useful if the weight or cutoff is spatially varying. |
|
cutoff |
number |
|
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 |
|
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 |
|
Usually a texture used for normal mapping. |
|
strength |
number |
|
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 |
|
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 |
|
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 |
|
Tint. |
Klems (klems)#
Parameter |
Type |
Default |
PExpr |
Description |
---|---|---|---|---|
filename |
string |
None |
Path to a valid windows xml specifying a klems bsdf. |
|
base_color |
color |
|
Tint. |
|
up |
vector |
|
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 |
|
Tint. |
|
up |
vector |
|
Up vector |
Radiance BRTDfunc (rad_brtdfunc)#
Parameter |
Type |
Default |
PExpr |
Description |
---|---|---|---|---|
reflection_specular |
color |
|
Tint of the specular reflection lobe. |
|
transmission_specular |
color |
|
Tint of the specular transmission lobe. |
|
direct_diffuse |
color |
|
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 |
|
Tint of the front-side diffuse lobe. |
|
reflection_back_diffuse |
color |
|
Tint of the back-side diffuse lobe. |
|
transmission_diffuse |
color |
|
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 |
|
Roos parameters for the reflection. |
|
trns_w trns_p trns_q |
number |
|
Roos parameters for the transmission. |
|
reflection_front_diffuse |
color |
|
Tint of the front-side diffuse lobe. |
|
reflection_back_diffuse |
color |
|
Tint of the back-side diffuse lobe. |
|
transmission_diffuse |
color |
|
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