Houdini plugin - Maxwell Material (SHOP)

The Maxwell Material shader operator stands for the layered material system used by Maxwell Render. Maxwell Render’s materials are made up of different “components” such as BSDF (Bidirectional Scattering Distribution Function) and Coating, Emitter or Displacement. These components are organized into layers which are stacked one on top of the other. This special hierarchy is represented by tabs and multilist controls on the interface of the Maxwell Material node.

 Material properties

The main tab of the Maxwell Material node contains the following global properties.

  • Load...: opens a file browser dialog and loads material description from the specified .mxm file. The SHOP node is renamed to the name of the loaded material.
  • Save...: saves the material to an MXM file.
  • Edit: opens the Material Editor (MXED) with the current material which provides a user-friendly interface to edit the material. After the material is saved and the editor is closed, the plug-in updates the material node in Houdini.
  • Preview: opens MXED to calculate preview of the material by the current settings. The preview image is displayed in MPlay.

 

  • Dispersion: enables / disables the dispersion calculations. Dispersion is the effect which can be seen when different wavelengths of light are refracted at slightly different angles as they pass through a material. The amount of dispersion can be controlled with the Abbe parameter of the BSDF component.
  • Shadow: enables / disables the shadow catcher, used for compositing purposes.
  • Matte: enables / disables matte properties for this material.
  • Material ID Color: specifies color identifier for the material, useful for compositing.

 

  • Global Bump Mapping: enables using global bump map which will affect the whole material, alongside the bump of each individual BSDF.
  • Bump Strength: specifies the strength of the bumps.
  • Bump Texture: specifies a bump texture where brighter values will create bumps on the surface and darker values will create indents. A color map can be used as a bump map but only the grayscale information of the map will be used.
  • Use Bump Texture As Normal Map: if checked, the given bump texture will be used as a global normal map. A normal map has the advantage specifying an angle, or the direction of the bumps while bump map can simulate only the up / down direction.

Layer properties

Material layers are displayed on the Layers tab. Each layer represents a complete material, which contains several BSDF, coatings, displacement or emitter components. The different layers in a material are stacked from bottom to top. The top layers conceal the bottom layers which means that the order of the layers in the material arrangement can change the material’s look and behavior. The order of the layers can be controlled with the Move Front and Move Back buttons.

  • Enabled: enables / disables visibility of the layer.
  • Name: name of the layer component.
  • Opacity: specifies the value of the opacity.
  • Mask: specifies a grayscale texture mask to control the visibility of the layer. Black stands for zero opacity, and white stands for full opacity.
  • Blend Mode: specifies how to blend the current layer with the layers below.
    • Normal: the layer will act like a „solid” layer, and it will be stacked as a real material on top of another layer. For example if the opacity is set to 100, no layers underneath this layer will be visible.
    • Additive: multiplies the properties of the layer components (such as color, reflectance of any BSDFs, etc.) with the layers underneath. This means that even if the layer’s opacity is set to 100, the layers underneath will still be visible.

BSDF

The BSDF component is the main component in the Maxwell material system. It contains all the parameters needed to create lots of different types of materials, ranging from clear glass to sandblasted glass, plastics, metals and translucent materials such as skin, porcelain, and wax.

You can add as many BSDF components to a layer as you like with a multilist control of the layer interface.

  • Enabled: enables / disables visibility of the component.
  • Name: name of the BSDF component.

The BSDF properties are divided into 3 distinct areas:

  1. BSDF Properties: handles all settings related to the material as a whole.
  2. Surface Properties: handles all settings related to the surface of the material, such as the surface roughness and bump.
  3. Subsurface Properties: controls the effect of translucency or light that is scattered beneath the surface.

BSDF Properties

The BSDF properties tab contains the following parameters.

  • Weight: specifies blending weight of the BSDF component.
  • Texture: greyscale map to specify visibility of the BSDF component.
  • Use IOR: allows users to set the value of the index of refraction (Nd) manually.
  • IOR File: specifies an .ior file which provides Maxwell Render with the exact index or refraction for each wavelength of a material. These materials have the advantage of being extremely realistic, but complex IOR data requires more complex mathematical functions.
  • Reflectance (0°): specifies the light reflected by the material, when the object is seen at 0° degrees (frontal view), in other words the main color of the material. Also a texture can be specified as the reflectance. The reflectance color describes the amount of light the object reflects back, but not how that light is reflected back (in a diffuse way, or a specular way for shiny objects). This is instead controlled by the Roughness parameter.
  • Reflectance (90°): specifies the light reflected by the material when the object is seen at 90° degrees (glancing angle), in other words the Fresnel color. Also a texture can be specified.
  • Transmittance: specifies the color of the light when it passes through a transparent material.
  • Attenuation Distance: specifies the distance how far the light can move through an object before losing half its energy. For example, if you have a 2cm thick glass window and you set the attenuation distance to 2cm, the light shining through the glass on the other side will be half as bright.
  • Install troubleshootingNd: specifies the overall reflectivity of the object (IOR: index of refraction). With transparent materials the Nd also controls the amount of refraction.
  • Force Fresnel: the “Fresnel effect” states that the strength of reflections on a surface is dependent on the viewing angle. When Force Fresnel is checked, the reflectance between 0° and 90° (the Fresnel curve) is maintained according to the Nd, and only the hue of a given reflectance color is taken in consideration. When Force Fresnel is unchecked the reflectance value of a surface is derived both from the Nd and the luminance of the reflectance 0° color.
  • K (extinction coefficient): specifies the amount of absorption loss when an electromagnetic wave propagates through a material. This coefficient plays role in the calculation of the refraction at a particular wavelength.
  • Abbe: specifies the amount of dispersion. Dispersion is the effect seen when the light is split up into different wavelengths of light (for example when passes through a prism). The higher the Abbe number, the less dispersion will be visible in the render. An Abbe number higher than 60-70 will render as if dispersion was not activated.
  • Use R2: gives controls over the falloff between the 0° and the 90° color which is generally controlled by the Nd and roughness parameters. The first parameter of R2 controls the falloff angle between the 0° and 90° colors. The second parameter controls how much influence the roughness has.

Surface Properties

The Surface properties tab contains the following parameters.

  • Roughness Value: controls the reflection of the light. Roughness allows users to add tiny imperfections and miniscule details on a surface to make it reflect light in a more diffuse way. 0 means perfectly smooth surface, while 100 means pure diffuse surface. A grayscale texture can be specified where brighter values create a higher roughness.
  • Bump: allows users to simulate grooves and imperfections on a surface (similar to Roughness), but at a much larger scale. A greyscale texture can be specified where brighter values create bumps on the surface and darker values create indents.
  • Normal map: specifies an angle, or the direction of the bumps while bump map can simulate only the up / down direction of the grooves. A Normal map gives the impression of very strong bumps on a surface. An RGB texture can be specified where each channel represents an angle and the strength for the bump.
  • Anisotropy: controls the directional sensibility of the surface reflection. A grayscale texture can be specified where brighter values specify higher anisotropy.
  • Angle: specifies the main direction of the reflected light. A grayscale texture can be specified where brighter values specify larger angles.

Subsurface Scattering

Subsurface Scattering (SSS) simulates the effect of light entering a translucent object and scattering inside it. Some of this light is absorbed and some is scattered back to the surface.

SSS is a crucial component that allows users to accurately simulate many kinds of materials including plastics, marble, milk, skin etc.

  • Scattering Color: specifies the reflectance of inner particles causing subsurface scattering. The incoming light will be reflected / scattered in this color.
  • Coefficient: specifies the amount of particles inside the medium. 0 means no subsurface scattering. The higher the coefficient value, the more opaque / less translucent the medium is.
  • Asymmetry: defines the isotropy of scattering. 0 means that light rays will be scattered equally in all directions. A negative value will let the light rays go through resulting in a more translucent look, while a positive value will send the rays backwards resulting in a more solid look.
  • Single Sided: enables / disables using virtual thickness instead of the real volume of the object. This mode is useful when simulating thin translucent materials like paper, leaves, and lampshades. A thickness map can be used for more complicated effects.
  • Min / Max: specifies the minimum and maximum virtual thickness and are only available when a thickness map is used. The thickness map will be treated as a grayscale map using the given range.

Coating properties

Coatings are very thin layers that are placed on top of a BSDF. Because coatings are so thin, they produce an effect called thin film interference, which breaks up the light and can cause a rainbow-like pattern. Think for example of spilling a drop of oil on a surface of water. The very thin layer of oil will create interference patterns on the water. Coatings can also be used to create rough materials with a clear coating. For example, a glossy white plastic can be made combining a diffuse BSDF with a coating. Only one coating component is allowed per BSDF.

Only one coating is allowed per BSDF. It’s possible to make a material using just a coating and no BSDF, for example to create a bubble material.

  • Enabled: enables / disables visibility of the component.
  • Name: name of the Coating component.
  • Thickness: specifies the thickness of the coating component. Can be specified by a numerical value or through a weight map. To avoid interference coloring, higher thickness values (such as 1 mm = 1000000 nm) should be used.
  • Min / Max: specifies the minimum and maximum value of the thickness used with a thickness map only. The thickness map will be treated as a grayscale map using the given range.
  • Use IOR: allows users to set the value of the index of refraction (Nd) manually.
  • IOR File: specifies an .ior file which provides Maxwell Render with the exact index or refraction for each wavelength of a material. These materials have the advantage of being extremely realistic, but complex IOR data requires more complex mathematical functions.
  • Reflectance (0°): specifies the light reflected by the material, when the object is seen at 0° degrees (frontal view).
  • Reflectance (90°): specifies the light reflected by the material when the object is seen at 90° degrees (glancing angle).
  • Nd: specifies the overall reflectivity of the object (IOR: index of refraction). With transparent materials the Nd also controls the amount of refraction.
  • Force Fresnel: specifies behaviour of the reflectance between 0° and 90° (the Fresnel curve).
  • K (extinction coefficient): specifies the amount of absorption loss when an electromagnetic wave propagates through a material. This coefficient plays role in the calculation of the refraction at a particular wavelength.
  • Use R2: gives controls over the falloff between the 0° and the 90° color.