浏览代码

Lightmapper: Expose the JNLM denoiser region size in the project settings

BlueCube3310 8 月之前
父节点
当前提交
7ed64ebd9a
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      modules/lightmapper_rd/lightmapper_rd.cpp

+ 2 - 1
modules/lightmapper_rd/lightmapper_rd.cpp

@@ -1002,7 +1002,8 @@ LightmapperRD::BakeError LightmapperRD::_denoise(RenderingDevice *p_rd, Ref<RDSh
 	// We denoise in fixed size regions and synchronize execution to avoid GPU timeouts.
 	// We use a region with 1/4 the amount of pixels if we're denoising SH lightmaps, as
 	// all four of them are denoised in the shader in one dispatch.
-	const int max_region_size = p_bake_sh ? 512 : 1024;
+	const int user_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
+	const int max_region_size = p_bake_sh ? user_region_size / 2 : user_region_size;
 	int x_regions = Math::division_round_up(p_atlas_size.width, max_region_size);
 	int y_regions = Math::division_round_up(p_atlas_size.height, max_region_size);
 	for (int s = 0; s < p_atlas_slices; s++) {