Eevee: Some probe update changes.
Dont render grids if cubemap count changes (because it does not depends on). Recalc lighting if probe type change.
This commit is contained in:
parent
9c82203e82
commit
246ee82a2f
|
@ -460,8 +460,6 @@ void EEVEE_lightprobes_cache_finish(EEVEE_SceneLayerData *sldata, EEVEE_PassList
|
|||
e_data.update_world = true;
|
||||
e_data.world_ready_to_shade = false;
|
||||
pinfo->num_render_cube = 0;
|
||||
pinfo->num_render_grid = 0;
|
||||
pinfo->updated_bounce = 0;
|
||||
pinfo->update_flag |= PROBE_UPDATE_CUBE;
|
||||
pinfo->cache_num_cube = pinfo->num_cube;
|
||||
|
||||
|
@ -470,12 +468,6 @@ void EEVEE_lightprobes_cache_finish(EEVEE_SceneLayerData *sldata, EEVEE_PassList
|
|||
ped->need_update = true;
|
||||
ped->ready_to_shade = false;
|
||||
}
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
ped->need_update = true;
|
||||
ped->updated_cells = 0;
|
||||
}
|
||||
}
|
||||
|
||||
DRWFboTexture tex_filter = {&sldata->probe_pool, DRW_TEX_RGBA_16, DRW_TEX_FILTER | DRW_TEX_MIPMAP};
|
||||
|
@ -493,10 +485,25 @@ void EEVEE_lightprobes_cache_finish(EEVEE_SceneLayerData *sldata, EEVEE_PassList
|
|||
if (!sldata->irradiance_pool) {
|
||||
sldata->irradiance_pool = DRW_texture_create_2D(IRRADIANCE_POOL_SIZE, IRRADIANCE_POOL_SIZE, irradiance_format, DRW_TEX_FILTER, NULL);
|
||||
pinfo->num_render_grid = 0;
|
||||
pinfo->updated_bounce = 0;
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
ped->need_update = true;
|
||||
ped->updated_cells = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!sldata->irradiance_rt) {
|
||||
sldata->irradiance_rt = DRW_texture_create_2D(IRRADIANCE_POOL_SIZE, IRRADIANCE_POOL_SIZE, irradiance_format, DRW_TEX_FILTER, NULL);
|
||||
pinfo->num_render_grid = 0;
|
||||
pinfo->updated_bounce = 0;
|
||||
|
||||
for (int i = 1; (ob = pinfo->probes_grid_ref[i]) && (i < MAX_PROBE); i++) {
|
||||
EEVEE_LightProbeEngineData *ped = EEVEE_lightprobe_data_get(ob);
|
||||
ped->need_update = true;
|
||||
ped->updated_cells = 0;
|
||||
}
|
||||
}
|
||||
|
||||
EEVEE_lightprobes_updates(sldata, psl);
|
||||
|
|
|
@ -82,7 +82,7 @@ static void rna_def_lightprobe(BlenderRNA *brna)
|
|||
prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_items(prop, lightprobe_type_items);
|
||||
RNA_def_property_ui_text(prop, "Type", "Type of probe");
|
||||
RNA_def_property_update(prop, NC_MATERIAL | ND_SHADING, NULL);
|
||||
RNA_def_property_update(prop, NC_MATERIAL | ND_SHADING, "rna_LightProbe_recalc");
|
||||
|
||||
prop = RNA_def_property(srna, "clip_start", PROP_FLOAT, PROP_DISTANCE);
|
||||
RNA_def_property_float_sdna(prop, NULL, "clipsta");
|
||||
|
|
Loading…
Reference in New Issue