Eevee: Fix prev_persmat being used by multiple viewport.
This commit is contained in:
@@ -407,7 +407,7 @@ void EEVEE_downsample_cube_buffer(EEVEE_Data *vedata, struct GPUFrameBuffer *fb_
|
||||
DRW_stats_group_end();
|
||||
}
|
||||
|
||||
void EEVEE_draw_effects(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
void EEVEE_draw_effects(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
|
||||
{
|
||||
EEVEE_TextureList *txl = vedata->txl;
|
||||
EEVEE_FramebufferList *fbl = vedata->fbl;
|
||||
@@ -450,7 +450,7 @@ void EEVEE_draw_effects(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
}
|
||||
|
||||
/* Record pers matrix for the next frame. */
|
||||
DRW_viewport_matrix_get(sldata->common_data.prev_persmat, DRW_MAT_PERS);
|
||||
DRW_viewport_matrix_get(stl->effects->prev_persmat, DRW_MAT_PERS);
|
||||
|
||||
/* Update double buffer status if render mode. */
|
||||
if (DRW_state_is_image_render()) {
|
||||
|
||||
@@ -197,6 +197,8 @@ static void eevee_draw_background(void *vedata)
|
||||
EEVEE_volumes_set_jitter(sldata, stl->effects->taa_current_sample - 1);
|
||||
EEVEE_materials_init(sldata, stl, fbl);
|
||||
}
|
||||
/* Copy previous persmat to UBO data */
|
||||
copy_m4_m4(sldata->common_data.prev_persmat, stl->effects->prev_persmat);
|
||||
|
||||
/* Refresh Probes */
|
||||
DRW_stats_group_start("Probes Refresh");
|
||||
|
||||
@@ -855,8 +855,6 @@ static void eevee_shadow_cascade_setup(Object *ob, EEVEE_LampsInfo *linfo, EEVEE
|
||||
float center[3];
|
||||
frustum_min_bounding_sphere(corners, center, &(sh_data->radius[c]));
|
||||
|
||||
printf("\n");
|
||||
|
||||
/* Project into lightspace */
|
||||
invert_m4_m4(viewmat, ob->obmat);
|
||||
normalize_v3(viewmat[0]);
|
||||
|
||||
@@ -514,6 +514,8 @@ typedef struct EEVEE_EffectsInfo {
|
||||
float dof_bokeh[4];
|
||||
float dof_layer_select[2];
|
||||
int dof_target_size[2];
|
||||
/* Other */
|
||||
float prev_persmat[4][4];
|
||||
/* Bloom */
|
||||
int bloom_iteration_ct;
|
||||
float source_texel_size[2];
|
||||
|
||||
@@ -418,6 +418,8 @@ void EEVEE_render_draw(EEVEE_Data *vedata, RenderEngine *engine, RenderLayer *rl
|
||||
|
||||
/* Restore winmat before jittering again. */
|
||||
copy_m4_m4(stl->effects->overide_winmat, g_data->winmat);
|
||||
/* Copy previous persmat to UBO data */
|
||||
copy_m4_m4(sldata->common_data.prev_persmat, stl->effects->prev_persmat);
|
||||
|
||||
BLI_halton_3D(primes, offset, stl->effects->taa_current_sample, r);
|
||||
EEVEE_update_noise(psl, fbl, r);
|
||||
|
||||
Reference in New Issue
Block a user