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

@ -120,10 +120,10 @@ uniform DirectionalLight u_DirectionalLights;
uniform vec3 u_CameraPosition;
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];
// PBR
@ -455,11 +455,19 @@ void main()
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;