feat: updated godot version
This commit is contained in:
parent
0c508b0831
commit
42b028dbb5
4694 changed files with 236470 additions and 401376 deletions
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "lightmapper_rd.h"
|
||||
|
||||
#include "core/string/print_string.h"
|
||||
#include "lm_blendseams.glsl.gen.h"
|
||||
#include "lm_compute.glsl.gen.h"
|
||||
#include "lm_raster.glsl.gen.h"
|
||||
|
|
@ -37,14 +38,9 @@
|
|||
#include "core/config/project_settings.h"
|
||||
#include "core/io/dir_access.h"
|
||||
#include "core/math/geometry_2d.h"
|
||||
#include "core/math/geometry_3d.h"
|
||||
#include "core/os/os.h"
|
||||
#include "core/string/print_string.h"
|
||||
#include "editor/file_system/editor_paths.h"
|
||||
#include "editor/settings/editor_settings.h"
|
||||
#include "servers/rendering/rendering_device.h"
|
||||
#include "servers/rendering/rendering_device_binds.h"
|
||||
#include "servers/rendering/rendering_server.h"
|
||||
#include "servers/rendering/rendering_server_globals.h"
|
||||
|
||||
#if defined(VULKAN_ENABLED)
|
||||
|
|
@ -229,7 +225,7 @@ void LightmapperRD::_sort_triangle_clusters(uint32_t p_cluster_size, uint32_t p_
|
|||
break;
|
||||
}
|
||||
|
||||
uint32_t left_cluster_count = Math::next_power_of_2(p_count / 2);
|
||||
uint32_t left_cluster_count = next_power_of_2(p_count / 2);
|
||||
left_cluster_count = MAX(left_cluster_count, p_cluster_size);
|
||||
left_cluster_count = MIN(left_cluster_count, p_count);
|
||||
_sort_triangle_clusters(p_cluster_size, p_cluster_index, p_index_start, left_cluster_count, p_triangle_sort, p_cluster_aabb);
|
||||
|
|
@ -260,8 +256,8 @@ Lightmapper::BakeError LightmapperRD::_blit_meshes_into_atlas(int p_max_texture_
|
|||
atlas_size = atlas_size.max(s + Size2i(2, 2).maxi(p_denoiser_range) * p_supersampling_factor);
|
||||
}
|
||||
|
||||
int max = Math::nearest_power_of_2_templated(atlas_size.width);
|
||||
max = MAX(max, Math::nearest_power_of_2_templated(atlas_size.height));
|
||||
int max = nearest_power_of_2_templated(atlas_size.width);
|
||||
max = MAX(max, nearest_power_of_2_templated(atlas_size.height));
|
||||
|
||||
if (max > p_max_texture_size) {
|
||||
return BAKE_ERROR_TEXTURE_EXCEEDS_MAX_SIZE;
|
||||
|
|
@ -499,7 +495,7 @@ void LightmapperRD::_create_acceleration_structures(RenderingDevice *rd, Size2i
|
|||
t.max_bounds[1] = taabb.position.y + MAX(taabb.size.y, 0.0001);
|
||||
t.max_bounds[2] = taabb.position.z + MAX(taabb.size.z, 0.0001);
|
||||
|
||||
t.cull_mode = RSE::CULL_MODE_BACK;
|
||||
t.cull_mode = RS::CULL_MODE_BACK;
|
||||
|
||||
RID material = mi.data.material[i];
|
||||
if (material.is_valid()) {
|
||||
|
|
@ -1019,7 +1015,7 @@ 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 user_region_size = Math::nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
|
||||
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);
|
||||
|
|
@ -1172,19 +1168,19 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
RID shadowmask_tex;
|
||||
RID shadowmask_tex2;
|
||||
|
||||
#define FREE_TEXTURES \
|
||||
rd->free_rid(albedo_array_tex); \
|
||||
rd->free_rid(emission_array_tex); \
|
||||
rd->free_rid(normal_tex); \
|
||||
rd->free_rid(position_tex); \
|
||||
rd->free_rid(unocclude_tex); \
|
||||
rd->free_rid(light_source_tex); \
|
||||
rd->free_rid(light_accum_tex2); \
|
||||
rd->free_rid(light_accum_tex); \
|
||||
#define FREE_TEXTURES \
|
||||
rd->free_rid(albedo_array_tex); \
|
||||
rd->free_rid(emission_array_tex); \
|
||||
rd->free_rid(normal_tex); \
|
||||
rd->free_rid(position_tex); \
|
||||
rd->free_rid(unocclude_tex); \
|
||||
rd->free_rid(light_source_tex); \
|
||||
rd->free_rid(light_accum_tex2); \
|
||||
rd->free_rid(light_accum_tex); \
|
||||
rd->free_rid(light_environment_tex); \
|
||||
if (p_bake_shadowmask) { \
|
||||
rd->free_rid(shadowmask_tex); \
|
||||
rd->free_rid(shadowmask_tex2); \
|
||||
if (p_bake_shadowmask) { \
|
||||
rd->free_rid(shadowmask_tex); \
|
||||
rd->free_rid(shadowmask_tex2); \
|
||||
}
|
||||
|
||||
{ // create all textures
|
||||
|
|
@ -1289,16 +1285,16 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
|
||||
Vector<int> slice_seam_count;
|
||||
|
||||
#define FREE_BUFFERS \
|
||||
rd->free_rid(bake_parameters_buffer); \
|
||||
rd->free_rid(vertex_buffer); \
|
||||
rd->free_rid(triangle_buffer); \
|
||||
rd->free_rid(lights_buffer); \
|
||||
#define FREE_BUFFERS \
|
||||
rd->free_rid(bake_parameters_buffer); \
|
||||
rd->free_rid(vertex_buffer); \
|
||||
rd->free_rid(triangle_buffer); \
|
||||
rd->free_rid(lights_buffer); \
|
||||
rd->free_rid(triangle_indices_buffer); \
|
||||
rd->free_rid(cluster_indices_buffer); \
|
||||
rd->free_rid(cluster_aabbs_buffer); \
|
||||
rd->free_rid(grid_texture); \
|
||||
rd->free_rid(seams_buffer); \
|
||||
rd->free_rid(cluster_indices_buffer); \
|
||||
rd->free_rid(cluster_aabbs_buffer); \
|
||||
rd->free_rid(grid_texture); \
|
||||
rd->free_rid(seams_buffer); \
|
||||
rd->free_rid(probe_positions_buffer);
|
||||
|
||||
const uint32_t cluster_size = 16;
|
||||
|
|
@ -1540,9 +1536,9 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
}
|
||||
#endif
|
||||
|
||||
#define FREE_RASTER_RESOURCES \
|
||||
#define FREE_RASTER_RESOURCES \
|
||||
rd->free_rid(rasterize_shader); \
|
||||
rd->free_rid(sampler); \
|
||||
rd->free_rid(sampler); \
|
||||
rd->free_rid(raster_depth_buffer);
|
||||
|
||||
/* Plot direct light */
|
||||
|
|
@ -1601,9 +1597,9 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
|
||||
RID compute_base_uniform_set = rd->uniform_set_create(base_uniforms, compute_shader_primary, 0);
|
||||
|
||||
#define FREE_COMPUTE_RESOURCES \
|
||||
#define FREE_COMPUTE_RESOURCES \
|
||||
rd->free_rid(compute_shader_unocclude); \
|
||||
rd->free_rid(compute_shader_primary); \
|
||||
rd->free_rid(compute_shader_primary); \
|
||||
rd->free_rid(compute_shader_secondary); \
|
||||
rd->free_rid(compute_shader_light_probes);
|
||||
|
||||
|
|
@ -1686,7 +1682,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
}
|
||||
}
|
||||
|
||||
const int max_region_size = Math::nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
|
||||
const int max_region_size = nearest_power_of_2_templated(int(GLOBAL_GET("rendering/lightmapping/bake_performance/region_size")));
|
||||
const int x_regions = Math::division_round_up(atlas_size.width, max_region_size);
|
||||
const int y_regions = Math::division_round_up(atlas_size.height, max_region_size);
|
||||
|
||||
|
|
@ -2182,7 +2178,7 @@ LightmapperRD::BakeError LightmapperRD::bake(BakeQuality p_quality, bool p_use_d
|
|||
|
||||
ERR_FAIL_COND_V(blendseams_triangle_raster_shader.is_null(), BAKE_ERROR_LIGHTMAP_CANT_PRE_BAKE_MESHES);
|
||||
|
||||
#define FREE_BLENDSEAMS_RESOURCES \
|
||||
#define FREE_BLENDSEAMS_RESOURCES \
|
||||
rd->free_rid(blendseams_line_raster_shader); \
|
||||
rd->free_rid(blendseams_triangle_raster_shader);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue