Refactor Mesh serialization and model system.

This commit is contained in:
antopilo
2022-06-28 19:56:16 -04:00
parent 6b827e9db7
commit 407ff89df7
21 changed files with 612 additions and 287 deletions
+19 -16
View File
@@ -20,6 +20,16 @@ namespace Nuake
Ref<Texture> Material::m_DefaultMetalness;
Ref<Texture> Material::m_DefaultDisplacement;
Material::Material()
{
InitDefaultTextures();
InitUniformBuffer();
glGenBuffers(1, &UBO);
glBindBuffer(GL_UNIFORM_BUFFER, UBO);
glBufferData(GL_UNIFORM_BUFFER, sizeof(UBOStructure), NULL, GL_STATIC_DRAW);
glBindBuffer(GL_UNIFORM_BUFFER, 0);
}
Material::Material(const std::string albedo)
{
@@ -43,21 +53,12 @@ namespace Nuake
}
m_Name = albedo;
if (m_DefaultAO == nullptr)
m_DefaultAO = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
if (m_DefaultNormal == nullptr)
m_DefaultNormal = TextureManager::Get()->GetTexture("resources/Textures/default/defaultNormal.png");
if (m_DefaultDisplacement == nullptr)
m_DefaultDisplacement = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
if (m_DefaultRoughness == nullptr)
m_DefaultRoughness = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
if (m_DefaultMetalness == nullptr)
m_DefaultMetalness = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
InitDefaultTextures();
}
Material::Material(const glm::vec3 albedoColor)
{
InitDefaultTextures();
InitUniformBuffer();
glGenBuffers(1, &UBO);
@@ -69,11 +70,15 @@ namespace Nuake
m_Name = "New material";
m_Albedo = m_DefaultAlbedo;
}
Material::~Material() {}
void Material::InitDefaultTextures()
{
if (m_DefaultAlbedo == nullptr)
m_DefaultAlbedo = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
m_Albedo = m_DefaultAlbedo;
if (m_DefaultAO == nullptr)
m_DefaultAO = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
if (m_DefaultNormal == nullptr)
@@ -86,8 +91,6 @@ namespace Nuake
m_DefaultMetalness = TextureManager::Get()->GetTexture("resources/Textures/default/Default.png");
}
Material::~Material() {}
void Material::Bind(Shader* shader)
{
//if (MaterialManager::Get()->CurrentlyBoundedMaterial == m_Name)