diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-06-04 19:26:36 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-06-04 19:42:50 +0300 |
commit | 942a748d5d5d3d03c09ae2b0b0767f1b1eb16147 (patch) | |
tree | 1bb83d9578806a72bc8715a1bdd5c845791adc52 /source/blender/draw/engines/eevee/eevee_private.h | |
parent | ff7401b02c4b9e111c0632f33bf5b51fc63026f6 (diff) |
Eevee: Merge shadow map processing into one drawcall per light
This removes a lot of framebuffer configuration and binding.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_private.h')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_private.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h index 9080d969dd1..fbbd5bc4ab3 100644 --- a/source/blender/draw/engines/eevee/eevee_private.h +++ b/source/blender/draw/engines/eevee/eevee_private.h @@ -393,15 +393,17 @@ typedef struct EEVEE_ShadowCascade { } EEVEE_ShadowCascade; typedef struct EEVEE_ShadowRender { - float position[3], pad; + int shadow_samples_len[MAX_CASCADE_NUM]; + float shadow_samples_len_inv[MAX_CASCADE_NUM]; + float filter_size[MAX_CASCADE_NUM]; + int view_count; + int base_id; float cube_texel_size; float stored_texel_size; float clip_near; float clip_far; - int shadow_samples_len; - float shadow_samples_len_inv; float exponent; - float pad2; + float pad; } EEVEE_ShadowRender; BLI_STATIC_ASSERT_ALIGN(EEVEE_Light, 16) @@ -439,10 +441,6 @@ typedef struct EEVEE_LightsInfo { int shadow_cube_size, shadow_cascade_size, shadow_method; bool shadow_high_bitdepth, soft_shadows; int shadow_cube_store_size; - int current_shadow_cascade; - int current_shadow_face; - uint shadow_instance_count; - float filter_size; /* List of lights in the scene. */ /* XXX This is fragile, can get out of sync quickly. */ struct Object *light_ref[MAX_LIGHT]; @@ -716,8 +714,10 @@ typedef struct EEVEE_ViewLayerData { struct GPUFrameBuffer *shadow_cube_target_fb; struct GPUFrameBuffer *shadow_cube_store_fb; + struct GPUFrameBuffer *shadow_cube_copy_fb; struct GPUFrameBuffer *shadow_cascade_target_fb; struct GPUFrameBuffer *shadow_cascade_store_fb; + struct GPUFrameBuffer *shadow_cascade_copy_fb; struct GPUTexture *shadow_cube_target; struct GPUTexture *shadow_cube_blur; |