Cleanup: Eevee: Make planar downsampling not use instance drawing
This commit is contained in:
parent
ad0e95688d
commit
cf8109d2aa
|
@ -444,19 +444,6 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
|||
else {
|
||||
stl->g_data->planar_display_shgrp = NULL;
|
||||
}
|
||||
|
||||
{
|
||||
psl->probe_planar_downsample_ps = DRW_pass_create("LightProbe Planar Downsample",
|
||||
DRW_STATE_WRITE_COLOR);
|
||||
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(EEVEE_shaders_probe_planar_downsample_sh_get(),
|
||||
psl->probe_planar_downsample_ps);
|
||||
|
||||
DRW_shgroup_uniform_texture_ref(grp, "source", &txl->planar_pool);
|
||||
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1);
|
||||
DRW_shgroup_call_instances_add(
|
||||
grp, DRW_cache_fullscreen_quad_get(), NULL, (uint *)&pinfo->num_planar);
|
||||
}
|
||||
}
|
||||
|
||||
static bool eevee_lightprobes_culling_test(Object *ob)
|
||||
|
@ -772,6 +759,20 @@ void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pinfo->num_planar) {
|
||||
EEVEE_PassList *psl = vedata->psl;
|
||||
EEVEE_TextureList *txl = vedata->txl;
|
||||
psl->probe_planar_downsample_ps = DRW_pass_create("LightProbe Planar Downsample",
|
||||
DRW_STATE_WRITE_COLOR);
|
||||
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(EEVEE_shaders_probe_planar_downsample_sh_get(),
|
||||
psl->probe_planar_downsample_ps);
|
||||
|
||||
DRW_shgroup_uniform_texture_ref(grp, "source", &txl->planar_pool);
|
||||
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1);
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, pinfo->num_planar, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
|
||||
in vec2 pos;
|
||||
|
||||
out int instance;
|
||||
out vec2 vPos;
|
||||
|
||||
void main()
|
||||
{
|
||||
instance = gl_InstanceID;
|
||||
vPos = pos;
|
||||
int v = gl_VertexID % 3;
|
||||
vPos.x = -1.0 + float((v & 1) << 2);
|
||||
vPos.y = -1.0 + float((v & 2) << 1);
|
||||
|
||||
instance = gl_VertexID / 3;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue