MaterialExchangeData Struct Reference

#include <materialparameter.h>

Inheritance diagram for MaterialExchangeData:

Detailed Description

Defines a collection of material parameters. The data independent of an embedding into a BaseMaterial or BaseDocument and can be freely passed around.

Public Attributes

Id _materialTypeId
 
DataDictionary _parameters
 
HashMap< Id, Data_textures
 

Member Data Documentation

◆ _materialTypeId

Id _materialTypeId

Defines the type of material. Each material type is associated with a set of parameters. These types are usually defined by, but not limited to, port bundles in the resource editor. Common types include: maxon::MATERIAL::PORTBUNDLE::FBXSURFACELAMBERT (older material type in FBX files), maxon::MATERIAL::PORTBUNDLE::FBXSURFACEPHONG (older material type FBX files), maxon::MATERIAL::PORTBUNDLE::GLTF, maxon::MATERIAL::PORTBUNDLE::STANDARDSURFACE (modeled after open standard, WIP w.r.t. constituents of shading normal, e.g. bump and displacement), maxon::MATERIAL::PORTBUNDLE::USDPREVIEWSURFACE (connects node materials with usd preview material). maxon::MATERIAL::PORTBUNDLE::VIEWPORTMATERIAL (connects node materials with the viewport).

◆ _parameters

DataDictionary _parameters

Contains the constant values for the material. It is expected that every entry is defined as a (key = maxon::InternedId, value = maxon::material::PackedConstantParameter) tuple. We refer to the methods Insert() and Extract() of maxon::material::ParameterStorageInterface for convenient access.

◆ _textures

HashMap<Id, Data> _textures

Contains the non-constant values for the material. In addition to the constant value, every parameter maybe driven by a more complex data set, such as a texture buffer or a reference to an image or a substance, i.e. maxon::material::TextureBuffer, maxon::material::ImageReference, maxon::material::SubstanceReference.