mirror of
https://github.com/godotengine/godot.git
synced 2026-02-07 19:32:36 +00:00
Overhaul compute shader based environment roughness calculation to improve performance and quality
This commit is contained in:
@@ -1375,7 +1375,7 @@ void CopyEffects::octmap_roughness(RID p_source_rd_texture, RID p_dest_texture,
|
||||
|
||||
// Remap to perceptual-roughness^2 to create more detail in lower mips and match the mapping of octmap_filter.
|
||||
roughness.push_constant.roughness = p_roughness * p_roughness;
|
||||
roughness.push_constant.sample_count = p_sample_count;
|
||||
roughness.push_constant.sample_count = MIN(p_sample_count, 64u);
|
||||
roughness.push_constant.source_size = p_source_size;
|
||||
roughness.push_constant.dest_size = p_dest_size;
|
||||
roughness.push_constant.use_direct_write = p_roughness == 0.0;
|
||||
@@ -1432,7 +1432,7 @@ void CopyEffects::octmap_roughness_raster(RID p_source_rd_texture, RID p_dest_fr
|
||||
memset(&roughness.push_constant, 0, sizeof(OctmapRoughnessPushConstant));
|
||||
|
||||
roughness.push_constant.roughness = p_roughness * p_roughness; // Shader expects roughness, not perceptual roughness, so multiply before passing in.
|
||||
roughness.push_constant.sample_count = p_sample_count;
|
||||
roughness.push_constant.sample_count = MAX(uint32_t(float(p_sample_count * 4u) * roughness.push_constant.roughness), 4u);
|
||||
roughness.push_constant.source_size = p_source_size;
|
||||
roughness.push_constant.dest_size = p_dest_size;
|
||||
roughness.push_constant.use_direct_write = p_roughness == 0.0;
|
||||
|
||||
Reference in New Issue
Block a user