EEVEE-Next: Light-Probe: Make volume probe display relative
This avoid overlap of data spheres when density changes.
This commit is contained in:
@@ -98,8 +98,14 @@ void LightProbeModule::sync_volume(const Object *ob, ObjectHandle &handle)
|
||||
grid.dilation_radius = lightprobe->grid_dilation_radius;
|
||||
grid.intensity = lightprobe->intensity;
|
||||
|
||||
grid.viewport_display = lightprobe->flag & LIGHTPROBE_FLAG_SHOW_DATA;
|
||||
grid.viewport_display_size = lightprobe->data_display_size;
|
||||
const bool has_valid_cache = grid.cache && grid.cache->grid_static_cache;
|
||||
grid.viewport_display = has_valid_cache && (lightprobe->flag & LIGHTPROBE_FLAG_SHOW_DATA);
|
||||
if (grid.viewport_display) {
|
||||
int3 cache_size = grid.cache->grid_static_cache->size;
|
||||
float3 scale = math::transform_direction(ob->object_to_world(),
|
||||
1.0f / float3(cache_size + 1));
|
||||
grid.viewport_display_size = math::reduce_min(scale) * lightprobe->data_display_size;
|
||||
}
|
||||
|
||||
/* Force reupload. */
|
||||
inst_.volume_probes.bricks_free(grid.bricks);
|
||||
|
||||
Reference in New Issue
Block a user