Skip to content

Commit

Permalink
Added groups
Browse files Browse the repository at this point in the history
  • Loading branch information
denis-beqiraj committed Feb 6, 2025
1 parent 97fa17c commit 0170d21
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 10 deletions.
3 changes: 2 additions & 1 deletion Engine/Shaders/HelperHeaderPipeline/light_func.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ struct AreaData
vec4 position[4];
vec4 diffuse;
sampler2D depthMap;
vec2 padding;
int doubleSide;
float padding;
};


Expand Down
5 changes: 3 additions & 2 deletions Engine/Shaders/PbrHeaderPipeline/pbr_calculation.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@ vec3 pbrCalculation(vec3 FragPos, vec3 N, vec3 albedo, vec4 aoSpecular,float rou
position[3]=vec3(areaData[i].position[3]);

vec3 mSpecular = ToLinear(vec3(areaData[i].diffuse)); // mDiffuse
vec3 diffuse = LTC_Evaluate(N, V, FragPos, mat3(1), position, true);
vec3 specular = LTC_Evaluate(N, V, FragPos, Minv, position, true);
bool doubleSide=areaData[i].doubleSide>0;
vec3 diffuse = LTC_Evaluate(N, V, FragPos, mat3(1), position, doubleSide);
vec3 specular = LTC_Evaluate(N, V, FragPos, Minv, position, doubleSide);

// GGX BRDF shadowing and Fresnel
// t2.x: shadowedF90 (F90 normally it should be 1.0)
Expand Down
3 changes: 2 additions & 1 deletion Engine/include/SceneObjects/Light.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ namespace Prisma
};
glm::vec4 diffuse = glm::vec4(1, 1, 1, 0);
uint64_t shadowMap = 0;
glm::vec2 padding;
int doubleSide = 1;
float padding;
};
};

Expand Down
7 changes: 3 additions & 4 deletions Engine/src/Handlers/LightHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,9 @@ void Prisma::LightHandler::updateArea()
{
areaMatrix = light->matrix();
}
m_dataArea->lights[i].position[0] = areaMatrix * m_dataArea->lights[i].position[0];
m_dataArea->lights[i].position[1] = areaMatrix * m_dataArea->lights[i].position[1];
m_dataArea->lights[i].position[2] = areaMatrix * m_dataArea->lights[i].position[2];
m_dataArea->lights[i].position[3] = areaMatrix * m_dataArea->lights[i].position[3];
for (int j = 0; j < 4; j++) {
m_dataArea->lights[i].position[j] = areaMatrix * m_dataArea->lights[i].position[j];
}

numVisible++;
}
Expand Down
8 changes: 6 additions & 2 deletions GUI/src/LightInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,16 @@ void Prisma::LightInfo::showSelectedArea(Light<LightType::LightArea>* lightData,
nextRight(meshData.initOffset);
ImGui::Begin(lightData->name().c_str(), nullptr,
ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);

if (ImGui::InputFloat3("Diffuse ", value_ptr(type.diffuse)))
{
lightData->type(type);
}

bool doubleSide = type.doubleSide;
if (ImGui::Checkbox("Double side", &doubleSide))
{
type.doubleSide = doubleSide;
lightData->type(type);
}

ImGui::End();
}
Expand Down

0 comments on commit 0170d21

Please sign in to comment.