Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::RPI::MaterialPropertyDescriptor Class Reference

#include <MaterialPropertyDescriptor.h>

Public Types

using OutputList = AZStd::vector< MaterialPropertyOutputId >
 

Public Member Functions

 AZ_TYPE_INFO (MaterialPropertyDescriptor, "{FC440E30-297E-4827-A28E-ED35AF1719AF}")
 
MaterialPropertyDataType GetDataType () const
 
AZ::TypeId GetAssetDataTypeId () const
 Returns the TypeId that is used within assets for this material property.
 
AZ::TypeId GetStorageDataTypeId () const
 Returns the TypeId that is used to store values for this material property.
 
uint32_t GetEnumValue (const AZ::Name &enumName) const
 
const AZ::Name & GetEnumName (uint32_t enumValue) const
 Returns the name of the enum from its index. An empty name is returned for an invalid id.
 
const Name & GetName () const
 Returns the unique name ID of this property.
 
const OutputList & GetOutputConnections () const
 Returns the list of shader setting the property is directly connected to.
 

Static Public Member Functions

static void Reflect (ReflectContext *context)
 

Static Public Attributes

static constexpr uint32_t InvalidEnumValue = std::numeric_limits<uint32_t>::max()
 Returns the value of the enum from its name. If this property is not an enum or the name is undefined, InvalidEnumValue is returned.
 

Friends

class MaterialTypeAssetCreator
 

Detailed Description

A material property is any data input to a material, like a bool, float, Vector, Image, Buffer, etc. This descriptor defines a single input property, including it's name ID, and how it maps to the shader system.

Each property can be directly connected to various outputs like ShaderResourceGroup fields, shader variant options, etc. In most cases there will be a single output connection, but multiple connections are possible. Alternatively, the property may not have any direct connections and would be processed by a custom material functor instead (see MaterialFunctor.h). Note that having direct output connections does not preclude the use of a functor; a property with a direct connection may also be processed by a material functor for additional indirect handling.


The documentation for this class was generated from the following file: