diff options
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/eevee_culling_light_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/eevee_culling_light_frag.glsl | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/eevee_culling_light_frag.glsl b/source/blender/draw/engines/eevee/shaders/eevee_culling_light_frag.glsl deleted file mode 100644 index c81a94b35f3..00000000000 --- a/source/blender/draw/engines/eevee/shaders/eevee_culling_light_frag.glsl +++ /dev/null @@ -1,51 +0,0 @@ - -/** - * 2D Culling pass for lights. - * We iterate over all items and check if they intersect with the tile frustum. - */ - -#pragma BLENDER_REQUIRE(eevee_culling_lib.glsl) -#pragma BLENDER_REQUIRE(eevee_culling_iter_lib.glsl) - -layout(std140) uniform lights_block -{ - LightData lights[CULLING_ITEM_BATCH]; -}; - -layout(std140) uniform lights_culling_block -{ - CullingData culling; -}; - -in vec4 uvcoordsvar; - -layout(location = 0) out uvec4 out_items_bits; - -void main(void) -{ - CullingTile tile = culling_tile_get(culling); - - out_items_bits = uvec4(0); - ITEM_FOREACH_BEGIN_NO_CULL (culling, l_idx) { - LightData light = lights[l_idx]; - - bool intersect_tile = true; - switch (light.type) { - case LIGHT_SPOT: - /* TODO cone culling. */ - case LIGHT_RECT: - case LIGHT_ELLIPSE: - case LIGHT_POINT: - Sphere sphere = Sphere(light._position, light.influence_radius_max); - intersect_tile = culling_sphere_tile_isect(sphere, tile); - break; - default: - break; - } - - if (intersect_tile) { - out_items_bits[l_idx / 32u] |= 1u << (l_idx % 32u); - } - } - ITEM_FOREACH_END -}
\ No newline at end of file |