1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Assign light indices after sorting in OpenGL renderer

This ensures that the light indices sent to the shader actually match where the light is saved
This commit is contained in:
clayjohn
2023-01-20 15:41:20 -08:00
parent 9f74f0f6c5
commit 6d0af4fcd8

View File

@@ -1535,8 +1535,6 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b
}
}
li->gl_id = r_omni_light_count;
scene_state.omni_light_sort[r_omni_light_count].instance = li;
scene_state.omni_light_sort[r_omni_light_count].depth = distance;
r_omni_light_count++;
@@ -1560,8 +1558,6 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b
}
}
li->gl_id = r_spot_light_count;
scene_state.spot_light_sort[r_spot_light_count].instance = li;
scene_state.spot_light_sort[r_spot_light_count].depth = distance;
r_spot_light_count++;
@@ -1586,6 +1582,8 @@ void RasterizerSceneGLES3::_setup_lights(const RenderDataGLES3 *p_render_data, b
GLES3::LightInstance *li = (i < r_omni_light_count) ? scene_state.omni_light_sort[index].instance : scene_state.spot_light_sort[index].instance;
RID base = li->light;
li->gl_id = index;
Transform3D light_transform = li->transform;
Vector3 pos = inverse_transform.xform(light_transform.origin);