Class SoMaterialBinding

All Implemented Interfaces:
SafeDisposable

public class SoMaterialBinding extends SoNode
Node that specifies how multiple materials are bound to shapes. This node specifies how the current materials are bound to shapes that follow in the scene graph. Each shape node may interpret bindings differently. The current material always has a base value, which is defined by the first value of all material fields. Since material fields may have multiple values, the binding determines how these values are distributed over a shape.

The bindings for faces and vertices are meaningful only for shapes that are made from faces and vertices. Similarly, the indexed bindings are only used by the shapes that allow indexing.

The bindings apply only to diffuse colors and transparency. Other materials (emissive, specular, ambient, shininess) will have the first value applied to the entire shape, regardless of the material binding or the number provided.

If the number of transparencies is less than the number of diffuse colors, only the first transparency value will be used, regardless of the material binding. If the number of diffuse colors in the state is less than the number required for the given binding, a debug warning will be printed and unpredictable colors will result.

File format/default:

MaterialBinding {

    value OVERALL
    face FRONT_AND_BACK
}

Action behavior:

SoGLRenderAction, SoCallbackAction
Sets the current material binding type. Sets: SoMaterialBindingElement

See Also:
  • Field Details Link icon

    • value Link icon

      public final SoSFEnum<SoMaterialBinding.Bindings> value
      Specifies how to bind materials to shapes. . Default is OVERALL.
    • face Link icon

      public final SoSFEnum<SoMaterialBinding.Faces> face
      Applies materials to different faces of an object. This enum specifies whether to apply the material to the front faces, the back faces, or both. It is particularly useful for applying different materials to each side of a non-closed surface, allowing for distinct appearances on either side.

      For closed surfaces, the use of FRONT_AND_BACK is generally sufficient, except where a SoClipPlane is used. This ensures that the material is applied to both the front and back faces, providing a consistent appearance.

      Notes:

      • If you specify a material for one side only, the other side uses the default material values (see SoMaterial).
      • If you enable face culling, only the front faces are rendered (see SoShapeHints), even if a material is specified for the back faces. The same applies to front face culling.
      • If you disable two-sided lighting (see SoShapeHints), the front material is applied to both front and back faces.
      • If you specify colors using SoVertexProperty.orderedRGBA or SoBufferedShape.colorBuffer, you can only specify one set of colors. The current value of face on state determines which faces the color buffer impacts.
      • To visualize only the front or back faces, use the SoShapeHints.shapeType field. The enum SOLID activates back face culling and INNER_SOLID activates front face culling.

        . Default is FRONT_AND_BACK.

      Since:
      Open Inventor 2025.1

  • Constructor Details Link icon

    • SoMaterialBinding Link icon

      public SoMaterialBinding()
      Creates a material binding node with default settings.