UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MaterialValueType.h File Reference
#include "HAL/Platform.h"

Go to the source code of this file.

Enumerations

enum  EMaterialValueType : uint64 {
  MCT_Float1 = 1u << 0 , MCT_Float2 = 1u << 1 , MCT_Float3 = 1u << 2 , MCT_Float4 = 1u << 3 ,
  MCT_Texture2D = 1u << 4 , MCT_TextureCube = 1u << 5 , MCT_Texture2DArray = 1u << 6 , MCT_TextureCubeArray = 1u << 7 ,
  MCT_VolumeTexture = 1u << 8 , MCT_StaticBool = 1u << 9 , MCT_Unknown = 1u << 10 , MCT_MaterialAttributes = 1u << 11 ,
  MCT_TextureExternal = 1u << 12 , MCT_TextureVirtual = 1u << 13 , MCT_SparseVolumeTexture = 1u << 14 , MCT_VTPageTableResult = 1u << 15 ,
  MCT_ShadingModel = 1u << 16 , MCT_Substrate = 1u << 17 , MCT_LWCScalar = 1u << 18 , MCT_LWCVector2 = 1u << 19 ,
  MCT_LWCVector3 = 1u << 20 , MCT_LWCVector4 = 1u << 21 , MCT_Execution = 1u << 22 , MCT_VoidStatement = 1u << 23 ,
  MCT_Bool = 1u << 24 , MCT_UInt1 = 1u << 25 , MCT_UInt2 = 1u << 26 , MCT_UInt3 = 1u << 27 ,
  MCT_UInt4 = 1u << 28 , MCT_TextureCollection = 1u << 29 , MCT_TextureMeshPaint = 1u << 30 , MCT_TextureMaterialCache = 1u << 31 ,
  MCT_Float3x3 = 1ull << 32 , MCT_Float4x4 = 1ull << 33 , MCT_LWCMatrix = 1ull << 34 , MCT_MaterialCacheABuffer = 1ull << 35 ,
  MCT_Unexposed = 1ull << 36 , MCT_LicenseeReservedBegin = 1ull << 48 , MCT_LicenseeReservedEnd = 1ull << 63 , MCT_Texture = MCT_Texture2D | MCT_TextureCube | MCT_Texture2DArray | MCT_TextureCubeArray | MCT_VolumeTexture | MCT_TextureExternal | MCT_TextureVirtual | MCT_TextureMeshPaint | MCT_TextureMaterialCache ,
  MCT_Float = MCT_Float1 | MCT_Float2 | MCT_Float3 | MCT_Float4 , MCT_UInt = MCT_UInt1 | MCT_UInt2 | MCT_UInt3 | MCT_UInt4 , MCT_LWCType = MCT_LWCScalar | MCT_LWCVector2 | MCT_LWCVector3 | MCT_LWCVector4 , MCT_Numeric = MCT_Float | MCT_LWCType | MCT_Bool
}
 

Enumeration Type Documentation

◆ EMaterialValueType

The types which can be used by materials.

Enumerator
MCT_Float1 

A scalar float type.
Note that MCT_Float1 will not auto promote to any other float types, So use MCT_Float instead for scalar expression return types.

MCT_Float2 
MCT_Float3 
MCT_Float4 
MCT_Texture2D 

Any size float type by definition, but this is treated as a scalar which can auto convert (by replication) to any other size float vector. Use this as the type for any scalar expressions.

MCT_TextureCube 
MCT_Texture2DArray 
MCT_TextureCubeArray 
MCT_VolumeTexture 
MCT_StaticBool 
MCT_Unknown 
MCT_MaterialAttributes 
MCT_TextureExternal 
MCT_TextureVirtual 
MCT_SparseVolumeTexture 
MCT_VTPageTableResult 

Used internally when sampling from virtual textures

MCT_ShadingModel 
MCT_Substrate 
MCT_LWCScalar 
MCT_LWCVector2 
MCT_LWCVector3 
MCT_LWCVector4 
MCT_Execution 
MCT_VoidStatement 

Used for code chunks that are statements with no value, rather than expressions

MCT_Bool 

Non-static bool, only used in new HLSL translator

MCT_UInt1 

Unsigned int types

MCT_UInt2 
MCT_UInt3 
MCT_UInt4 
MCT_TextureCollection 
MCT_TextureMeshPaint 
MCT_TextureMaterialCache 
MCT_Float3x3 
MCT_Float4x4 
MCT_LWCMatrix 
MCT_MaterialCacheABuffer 

Material cache

MCT_Unexposed 

An internal type

MCT_LicenseeReservedBegin 

Reserved range for licensee modifications, any bits in the (inclusive) range is free for modifications

MCT_LicenseeReservedEnd 
MCT_Texture 

MCT_SparseVolumeTexture is intentionally not (yet) included here because it differs a lot from the other texture types and may not be supported/appropriate for all MCT_Texture use cases.

MCT_Float 
MCT_UInt 
MCT_LWCType 
MCT_Numeric