소스 검색

Fix inconsistent lighting in GLES2

Issue was possibily being caused by duplicating a light even when that
light was not in the render_light_instances array.

(cherry picked from commit 545bf86d39ea3c68ed38e14a5018231295bed922)
SonerSound 6 년 전
부모
커밋
20822ee87d
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      drivers/gles2/rasterizer_scene_gles2.cpp

+ 2 - 2
drivers/gles2/rasterizer_scene_gles2.cpp

@@ -1110,8 +1110,8 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G
 
 				LightInstance *li = light_instance_owner.getornull(e->instance->light_instances[i]);
 
-				if (li->light_index >= render_light_instance_count) {
-					continue; // too many
+				if (li->light_index >= render_light_instance_count || render_light_instances[li->light_index] != li) {
+					continue; // too many or light_index did not correspond to the light instances to be rendered
 				}
 
 				if (copy) {