#ifndef HGL_GRAPH_MATERIAL_INCLUDE #define HGL_GRAPH_MATERIAL_INCLUDE #include namespace hgl { namespace graph { class Material { };// enum class MaterialBlendMode { Opaque=0, Mask, Alpha, Additive, Modulate, PreMultiAlpha, //预计算好一半的Alpha BEGIN_RANGE =Opaque, END_RANGE =PreMultiAlpha, RANGE_SIZE =END_RANGE-BEGIN_RANGE+1 };// enum class MaterialComponent { Color=0, Normal, Tangent, Metallic, Roughness, Emissive, Specular, Anisotropy, Opacity, SubsurfaceColor, AmbientOcclusion, Refraction, Rotation, IOR, ShadingModel, BEGIN_RANGE =Opaque, END_RANGE =ShadingModel, RANGE_SIZE =END_RANGE-BEGIN_RANGE+1, };// enum class MaterialComponentBit { #define MC_BIT_DEFINE(name) name=1<