소스 검색

Merge pull request #46590 from JFonS/fix_gridmap_lightmaps

[3.2] Properly disable dynamic lights on baked instances.
Rémi Verschelde 4 년 전
부모
커밋
11ee43647b
1개의 변경된 파일6개의 추가작업 그리고 3개의 파일을 삭제
  1. 6 3
      servers/visual/visual_server_scene.cpp

+ 6 - 3
servers/visual/visual_server_scene.cpp

@@ -855,12 +855,14 @@ void VisualServerScene::instance_set_use_lightmap(RID p_instance, RID p_lightmap
 	Instance *instance = instance_owner.get(p_instance);
 	ERR_FAIL_COND(!instance);
 
+	instance->lightmap = RID();
+	instance->lightmap_slice = -1;
+	instance->lightmap_uv_rect = Rect2(0, 0, 1, 1);
+	instance->baked_light = false;
+
 	if (instance->lightmap_capture) {
 		InstanceLightmapCaptureData *lightmap_capture = static_cast<InstanceLightmapCaptureData *>(((Instance *)instance->lightmap_capture)->base_data);
 		lightmap_capture->users.erase(instance);
-		instance->lightmap = RID();
-		instance->lightmap_slice = -1;
-		instance->lightmap_uv_rect = Rect2(0, 0, 1, 1);
 		instance->lightmap_capture = NULL;
 	}
 
@@ -875,6 +877,7 @@ void VisualServerScene::instance_set_use_lightmap(RID p_instance, RID p_lightmap
 		instance->lightmap = p_lightmap;
 		instance->lightmap_slice = p_lightmap_slice;
 		instance->lightmap_uv_rect = p_lightmap_uv_rect;
+		instance->baked_light = true;
 	}
 }