Newer
Older
ForwardPlusRenderer / include / Material.h
#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