#pragma once #include <stdafx.h> #include "Texture.h" #include "ConstrainedMap.h" namespace fpr { enum class ETextureType { ETT_Diffuse, ETT_Unlit, ETT_AmbientOcclusion, ETT_BaseColor, ETT_DiffuseRoughness, ETT_Displacement, ETT_EmissionColor, ETT_Emissive, ETT_Height, ETT_Lightmap, ETT_Metalness, ETT_Normals, ETT_NormalCamera, ETT_Opacity, ETT_Reflection, ETT_Shininess, ETT_Specular, ETT_Unknown, ETT_MetallicRoughness }; enum class EAlphaMode { EAM_MASK, EAM_OPAQUE }; class Material { std::string m_name; public: ConstrainedMap<ETextureType, std::shared_ptr<fpr::Texture>> Textures; Material(); }; class gltfPBRMaterial : public fpr::Material { EAlphaMode m_alpha_mode; float m_base_color_factor; }; } // namespace fpr