Raymarcher Technical & APi Documentation
RM Core Render Master Materials
Namespace: Raymarcher.RendererData
The Raymarcher Render Master Materials is a regular class responsible for managing all material instances in the current Raymarcher session.
It plays a core role in dispatching and handling all registered material instances in the Raymarcher pipeline.

Raymarcher has its own material pipeline, where each material type represents a unique shader containing specific shading models.
The term for the material type or material shader in Raymarcher is Material Data Buffer.

Each material data buffer comes with properties and fields that can be utilized to manipulate the material type, as documented in the Materials category.

While it is strongly advised not to manipulate methods within the RM Render Master Materials class manually, as this is automatically handled internally,
you have the possibility to access all existing material instances and material types using properties and fields.

To access Raymarcher's materials data, obtain a reference to RMRenderMaster and get the class reference with the name MasterMaterials:
myRenderMasterReference . MasterMaterials . (field/property);
Properties & Fields
// Current render master reference
public RMRenderMaster RenderMaster { get; }

// List of currently compiled material types (Each material data buffer holds a list of used material instances of the same type)
public IReadOnlyList<RMMaterialDataBuffer> MaterialDataBuffers { get; }
// List of *global* material instances
public IReadOnlyList<RMMaterialBase> GlobalMaterialInstances { get; }
// List of currently registered and compiled *global* material instances
public IReadOnlyList<RMMaterialBase> RegisteredGlobalMaterialInstances { get; }

// Does the Raymarcher have some materials?
public bool HasMaterialDataBuffers { get; }
// Does the Raymarcher have some global materials? (Uncompiled)
public bool HasGlobalMaterialInstances { get; }
// Does the Raymarcher have some global materials? (Compiled)
public bool HasRegisteredGlobalMaterialInstances { get; }
// Returns a list of filtered common material types
public List<string> FilteredCommonMaterialTypes { get; }