SoPathTracerMaterial

InventorModule
author Florian Link
package MeVisLab/Standard
dll SoPathTracer
definition SoPathTracer.def

Purpose

The SoPathTracerMaterial module provides the material properties for geometry and volumes of a SoPathTracer scene. It is typically either used inside the input scene of e.g. SoPathTracerMesh or as direct input of modules that have a "inMaterial" input.

The material parameters are intentionally mapped to the range 0-1 to make it easier for the user to specify meaningful parameters. It also allows to specify the parameters in LUTs.

Windows

Default Panel

../../../Projects/MeVisPathTracer/SoPathTracer/Modules/mhelp/Images/Screenshots/SoPathTracerMaterial._default.png

Input Fields

inDiffuseTexture

name: inDiffuseTexture, type: Image

Parameter Fields

Field Index

Alpha: Float Enable Volume Shader: Bool Sheen: Float
Alpha Mode: Enum Exponent: Float Sheen Tint: Float
Back Scattering: Float Gradient Factor: Float Shininess: Float
Boundary Bias: Float Horizon Color: Color Silhouette: Bool
Boundary Enhancement: Bool Horizon Scattering: Float Specular: Float
Boundary Exponent: Float Material: Enum Specular Intensity: Float
Boundary Weight: Float Metallic: Float Specular Tint: Float
Clearcoat: Float Offset: Float sRGB: Bool
Clearcoat Gloss: Float Phase Function: Enum Subsurface: Float
Diffuse: Color Phase Function Param: Float Visible: Bool
Diffuse Mode: Enum Roughness: Float Weight: Float
Emissive: Color Shader Type: Enum  

Visible Fields

Visible

name: visible, type: Bool, default: TRUE

If enabled, the meshes that use this material are visible. This can be used to show/hide meshes in the scene of a SoPathTracerMesh without complete scene re-computation.

Material

name: material, type: Enum, default: Material_Microfacet

The type of the material.

Values:

Title Name Description
Matte Material_Matte A matte material with lambertian diffuse shading (without any fresnel effects)
Velvet Material_Velvet A material the mimicks velvet/cloth (experimental).
Microfacet Material_Microfacet A material that offers a microfacet BRDF with lambertian diffuse and blinn/fresnel specular.
Principled Material_Principled The multi-purpose material that offers various parameters. See https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf for details.

Alpha Mode

name: alphaMode, type: Enum, default: Multiply

The alpha combination mode (only applied for meshes).

Values:

Title Name
Overwrite Overwrite
Multiply Multiply
Ignore Ignore

Diffuse Mode

name: diffuseMode, type: Enum, default: Multiply

The diffuse combination mode.

Values:

Title Name
Overwrite Overwrite
Multiply Multiply
Ignore Ignore

Specular

name: specular, type: Float, default: 0.5, minimum: 0, maximum: 1

The specular parameter of the microfacet model (0 - matte/rough material, 1 - very specular/glossy material).

Shininess

name: shininess, type: Float, default: 0.5, minimum: 0, maximum: 1

The shininess (mapped to Blinn exponent of microfacet BRDF).

Specular Intensity

name: specularIntensity, type: Float, default: 0.2, minimum: 0, maximum: 1

The intensity of the specular contribution.

Horizon Scattering

name: horizonScattering, type: Float, default: 0.5, minimum: 0, maximum: 1

Velvet material property.

Back Scattering

name: backScattering, type: Float, default: 0.5, minimum: 0, maximum: 1

Velvet material property.

Horizon Color

name: horizonColor, type: Color, default: 1 1 1

Velvet horizon color.

Metallic

name: metallic, type: Float, default: 0, minimum: 0, maximum: 1

Roughness

name: roughness, type: Float, default: 0.5, minimum: 0, maximum: 1

Specular Tint

name: specularTint, type: Float, default: 0, minimum: 0, maximum: 1

Sheen Tint

name: sheenTint, type: Float, default: 0, minimum: 0, maximum: 1

Sheen

name: sheen, type: Float, default: 0, minimum: 0, maximum: 1

Clearcoat Gloss

name: clearcoatGloss, type: Float, default: 0, minimum: 0, maximum: 1

Clearcoat

name: clearcoat, type: Float, default: 0, minimum: 0, maximum: 1

Subsurface

name: subsurface, type: Float, default: 0, minimum: 0, maximum: 1

Alpha

name: alpha, type: Float, default: 1, minimum: 0, maximum: 1

The alpha value of the geometry (not used for volumes).

Diffuse

name: diffuse, type: Color, default: 1 1 1

The diffuse color. Depending on the Diffuse Mode it overwrites or it combined with the geometry diffuse color.

Emissive

name: emissive, type: Color, default: 0 0 0

Sets the emissive color.

Enable Volume Shader

name: enableVolumeShader, type: Bool, default: FALSE

Enabled overwriting of the volume shader settings if the material is used on a volume.

Shader Type

name: volumeShaderType, type: Enum, default: Shader_Hybrid

Selects the volume shader type.

Values:

Title Name Description
Phase Shader_Phase Uses the phase function for shading the volume (the gradients of the volume are not used for rendering)
Brdf Shader_Brdf Uses the material BRDF for shading, the gradients of the volume are used.
Hybrid Shader_Hybrid Selects between Phase and BRDF shading depending on the gradient magnitude. The gradient magnitude is scaled by Gradient Factor.

Phase Function

name: volumePhaseFunction, type: Enum, default: Phase_Isotropic

Selects the phase function to use.

Values:

Title Name Description
Isotropic Phase_Isotropic Use the isotropic phase function (all directions on the unit sphere have the same probability)
Henyey Greenstein Phase_HenyeyGreenstein Use the Henyey-Greenstein phase function. The Phase Function Param specifies the "g" parameter of the phase function, with meaningful values between 0.5 and -0.5.

Gradient Factor

name: volumeGradientFactor, type: Float, default: 3, minimum: 0, maximum: 200

The gradient factor.

Phase Function Param

name: volumePhaseFunctionParam, type: Float, default: 0

Extra parameter for volume phase functions.

Silhouette

name: silhouette, type: Bool, default: FALSE

This enables the silhouette effect, which changes the transparency of a surface depending on the angle between the view/ray direction and the normal of the surface, so that faces whose normals are parallel to the view direction get transparent, while faces that are perpendicular to the ray get fully opaque.

The formula for this alpha factor is:

alpha = pow(dot(normal, rayDirection), exponent) * weight + offset

The silhouette effect is currently supported by SoPathTracerIsoSurface, SoPathTracerMesh and SoPathTracerVolume.

Exponent

name: silhouetteExponent, type: Float, default: 4

see Silhouette

Weight

name: silhouetteWeight, type: Float, default: 1.5

see Silhouette

Offset

name: silhouetteOffset, type: Float, default: 0

see Silhouette

Boundary Enhancement

name: boundaryEnhancement, type: Bool, default: FALSE

The boundary enhancement can be applied to a volume shader to modulate the opacity of the dataset based on the gradient strength. It calculates the following alpha, which is multiplied with the voxel's alpha:

alphaFactor = pow(gradientStrength + bias, exponent) * weight

Boundary Exponent

name: boundaryExponent, type: Float, default: 2

see Boundary Enhancement

Boundary Weight

name: boundaryWeight, type: Float, default: 1

see Boundary Enhancement

Boundary Bias

name: boundaryBias, type: Float, default: 0

see Boundary Enhancement

Hidden Fields

sRGB

name: sRGB, type: Bool, default: TRUE