ExchangeMapper Material Definition Manual

Introduction

A Material Definition (FBX, GLTF, USDSurface) is represented by a series of maxon::MAXON_ATTRIBUTE and a namespace containing only maxon::MAXON_ATTRIBUTE is called a material description bundle.

Default values must be defined via the Resource Editor.

A maxon::material::MaterialExchangeData representing this series of attributes can be created to define a material definition as a single data structure.

There are two categories of data that can be stored in a maxon::material::MaterialExchangeData:

  • Constants values: POD values like int, float, vector
  • Texture values: which are more complex like a gradient, a bitmap reference.

To help build a maxon::material::MaterialExchangeData, the maxon::material::ParameterStorageInterface provides static helpers to build a complete maxon::material::MaterialExchangeData.

This maxon::material::ParameterStorageInterface can also be used to retrieve a complete material definition from an incomplete maxon::material::MaterialExchangeData by retrieving default values if needed.

Overview

A maxon::material::MaterialExchangeData is the data representation of a material definition.

A maxon::material::MaterialExchangeData may not be the complete representation of a material definition.

As an example, a maxon::material::MaterialExchangeData may have stored only information about the diffuse color, while the overall material definition supports diffuse color and reflection.

A maxon::material::MaterialExchangeData is made of:

Constant Value

A constant value can be represented by:

Both have a boolean _isConstant and UInt _dynamicTimestamp members.

The _isConstant defines whether the parameter is constant and only requires a single value for the representation.

The _dynamicTimestamp is the time stamp of the dynamic texture-driven parameter. This is used to manage the parameter dirty state, especially useful for consistent viewport representation.

Texture Value

A Texture value can be represented by:

Further Reading