fix the lights upload error in forward render

This commit is contained in:
2026-04-02 13:41:38 +08:00
parent b4d9dee045
commit 1f4d7eff71
6 changed files with 102 additions and 32 deletions

View File

@ -106,10 +106,10 @@ layout(location = 1) out vec4 o_BloomColor;
uniform DirectionalLight u_DirectionalLights;
uniform int u_PointLightCount;
uniform PointLight u_PointLights;
uniform PointLight u_PointLights[8];
uniform int u_SpotLightCount;
uniform SpotLight u_SpotLights;
uniform SpotLight u_SpotLights[8];
uniform vec3 u_CameraPosition;
@ -441,11 +441,21 @@ void main()
// directional light with with shadow
vec3 lightContribution = u_DirectionalLights.Intensity > 0.0 ? Lighting(F0) * shadowFactor : vec3(0.0);
if(u_PointLightCount > 0)
lightContribution += ComputePointLight(u_PointLights, F0, m_Params, vs_Input.WorldPosition);
{
for( int i = 0; i < u_PointLightCount; i ++) {
lightContribution += ComputePointLight(u_PointLights[i], F0, m_Params, vs_Input.WorldPosition);
}
}
if(u_SpotLightCount > 0)
lightContribution += ComputeSpotLight(u_SpotLights, F0, m_Params, vs_Input.WorldPosition);
{
for(int i = 0; i < u_SpotLightCount; i ++)
{
lightContribution += ComputeSpotLight(u_SpotLights[i], F0, m_Params, vs_Input.WorldPosition);
}
}
vec3 iblContribution = IBL(F0, Lr) * u_IBLContribution;