Cleanup: Eevee: Make planar downsampling not use instance drawing

This commit is contained in:
Clément Foucault 2019-05-11 15:58:49 +02:00
parent ad0e95688d
commit cf8109d2aa
2 changed files with 19 additions and 17 deletions

View File

@ -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);
}
}
/* -------------------------------------------------------------------- */

View File

@ -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;
}