Fixed uniform buffer AO problem
This commit is contained in:
@@ -57,10 +57,10 @@ Material::Material(const glm::vec3 albedoColor)
|
||||
{
|
||||
glGenBuffers(1, &UBO);
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, UBO);
|
||||
glBufferData(GL_UNIFORM_BUFFER, sizeof(UBOStructure), NULL, GL_STATIC_DRAW);
|
||||
glBufferData(GL_UNIFORM_BUFFER, 128, NULL, GL_STATIC_DRAW);
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||
|
||||
data.m_AlbedoColor = myVec3{ albedoColor.r, albedoColor.g, albedoColor.b};
|
||||
data.m_AlbedoColor = Vector3{ albedoColor.r, albedoColor.g, albedoColor.b};
|
||||
|
||||
m_Name = "New material";
|
||||
|
||||
@@ -90,7 +90,21 @@ void Material::Bind()
|
||||
|
||||
MaterialManager::Get()->CurrentlyBoundedMaterial = m_Name;
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, UBO);
|
||||
|
||||
glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof(UBOStructure), &data);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 0, 4, &data.u_HasAlbedo);
|
||||
//
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 16, 12, &data.m_AlbedoColor);
|
||||
//
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 28, 4, &data.u_HasMetalness);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 32, 4, &data.u_MetalnessValue);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 36, 4, &data.u_HasRoughness);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 40, 4, &data.u_RoughnessValue);
|
||||
//
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 44, 4, &data.u_HasAO);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 48, 4, &data.u_AOValue);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 52, 4, &data.u_HasNormal);
|
||||
//glBufferSubData(GL_UNIFORM_BUFFER, 56, 4, &data.u_HasDisplacement);
|
||||
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||
glBindBufferBase(GL_UNIFORM_BUFFER, 32, UBO);
|
||||
|
||||
@@ -10,20 +10,22 @@ struct myVec3 {
|
||||
float r;
|
||||
float g;
|
||||
float b;
|
||||
float a;
|
||||
};
|
||||
|
||||
struct UBOStructure {
|
||||
int u_HasAlbedo;
|
||||
myVec3 m_AlbedoColor;
|
||||
uint32_t u_HasMetalness;
|
||||
float padding;
|
||||
float padding2;
|
||||
float padding3;
|
||||
glm::vec3 m_AlbedoColor;
|
||||
int u_HasMetalness;
|
||||
float u_MetalnessValue;
|
||||
uint32_t u_HasRoughness;
|
||||
int u_HasRoughness;
|
||||
float u_RoughnessValue;
|
||||
uint32_t u_HasAO;
|
||||
int u_HasAO;
|
||||
float u_AOValue;
|
||||
uint32_t u_HasNormal;
|
||||
uint32_t u_HasDisplacement;
|
||||
int u_HasNormal;
|
||||
int u_HasDisplacement;
|
||||
};
|
||||
|
||||
class Material
|
||||
@@ -39,10 +41,12 @@ public:
|
||||
Ref<Texture> m_Normal;
|
||||
Ref<Texture> m_Displacement;
|
||||
|
||||
|
||||
UBOStructure data{
|
||||
0, // has labedo
|
||||
myVec3{0.f, 0.f, 0.f, 1.0f}, // m_AlbedoColor
|
||||
0, // padding
|
||||
0, // padding
|
||||
0, // padding
|
||||
glm::vec3{0.f, 0.f, 0.f}, // m_AlbedoColor
|
||||
0, // u_HasMetalness
|
||||
0.5f, // u_MetalnessValue
|
||||
0, // u_HasRoughness
|
||||
|
||||
Reference in New Issue
Block a user