51 #define MAX_CASCADE_NUM 4
52 #define MAX_SHADOW 128
53 #define MAX_SHADOW_CASCADE 8
54 #define MAX_SHADOW_CUBE (MAX_SHADOW - MAX_CASCADE_NUM * MAX_SHADOW_CASCADE)
55 #define MAX_BLOOM_STEP 16
59 #define TAA_MAX_SAMPLE 10000926
65 #define IRRADIANCE_HL2
67 #if defined(IRRADIANCE_SH_L2)
68 # define SHADER_IRRADIANCE "#define IRRADIANCE_SH_L2\n"
69 #elif defined(IRRADIANCE_HL2)
70 # define SHADER_IRRADIANCE "#define IRRADIANCE_HL2\n"
75 #define SHADER_DEFINES \
76 "#define EEVEE_ENGINE\n" \
77 "#define MAX_PROBE " STRINGIFY(MAX_PROBE) "\n" \
78 "#define MAX_GRID " STRINGIFY(MAX_GRID) "\n" \
79 "#define MAX_PLANAR " STRINGIFY(MAX_PLANAR) "\n" \
80 "#define MAX_LIGHT " STRINGIFY(MAX_LIGHT) "\n" \
81 "#define MAX_SHADOW " STRINGIFY(MAX_SHADOW) "\n" \
82 "#define MAX_SHADOW_CUBE " STRINGIFY(MAX_SHADOW_CUBE) "\n" \
83 "#define MAX_SHADOW_CASCADE " STRINGIFY(MAX_SHADOW_CASCADE) "\n" \
84 "#define MAX_CASCADE_NUM " STRINGIFY(MAX_CASCADE_NUM) "\n" \
88 #define EEVEE_PROBE_MAX min_ii(MAX_PROBE, GPU_max_texture_layers() / 6)
89 #define EEVEE_VELOCITY_TILE_SIZE 32
90 #define USE_VOLUME_OPTI (GPU_shader_image_load_store_support())
92 #define SWAP_DOUBLE_BUFFERS() \
94 if (effects->swap_double_buffer) { \
95 SWAP(struct GPUFrameBuffer *, fbl->main_fb, fbl->double_buffer_fb); \
96 SWAP(struct GPUFrameBuffer *, fbl->main_color_fb, fbl->double_buffer_color_fb); \
97 SWAP(GPUTexture *, txl->color, txl->color_double_buffer); \
98 effects->swap_double_buffer = false; \
103 #define SWAP_BUFFERS() \
105 if (effects->target_buffer == fbl->effect_color_fb) { \
106 SWAP_DOUBLE_BUFFERS(); \
107 effects->source_buffer = txl->color_post; \
108 effects->target_buffer = fbl->main_color_fb; \
111 SWAP_DOUBLE_BUFFERS(); \
112 effects->source_buffer = txl->color; \
113 effects->target_buffer = fbl->effect_color_fb; \
118 #define SWAP_BUFFERS_TAA() \
120 if (effects->target_buffer == fbl->effect_color_fb) { \
121 SWAP(struct GPUFrameBuffer *, fbl->effect_fb, fbl->taa_history_fb); \
122 SWAP(struct GPUFrameBuffer *, fbl->effect_color_fb, fbl->taa_history_color_fb); \
123 SWAP(GPUTexture *, txl->color_post, txl->taa_history); \
124 effects->source_buffer = txl->taa_history; \
125 effects->target_buffer = fbl->effect_color_fb; \
128 SWAP(struct GPUFrameBuffer *, fbl->main_fb, fbl->taa_history_fb); \
129 SWAP(struct GPUFrameBuffer *, fbl->main_color_fb, fbl->taa_history_color_fb); \
130 SWAP(GPUTexture *, txl->color, txl->taa_history); \
131 effects->source_buffer = txl->taa_history; \
132 effects->target_buffer = fbl->main_color_fb; \
152 #define USE_SCENE_LIGHT(v3d) \
154 ((v3d->shading.type == OB_MATERIAL) && (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS)) || \
155 ((v3d->shading.type == OB_RENDER) && (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER)))
156 #define LOOK_DEV_STUDIO_LIGHT_ENABLED(v3d) \
157 ((v3d) && (((v3d->shading.type == OB_MATERIAL) && \
158 ((v3d->shading.flag & V3D_SHADING_SCENE_WORLD) == 0)) || \
159 ((v3d->shading.type == OB_RENDER) && \
160 ((v3d->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER) == 0))))
162 #define MIN_CUBE_LOD_LEVEL 3
163 #define MAX_SCREEN_BUFFERS_LOD_LEVEL 6
166 #define EEVEE_RENDERPASSES_MATERIAL \
167 (EEVEE_RENDER_PASS_EMIT | EEVEE_RENDER_PASS_DIFFUSE_COLOR | EEVEE_RENDER_PASS_DIFFUSE_LIGHT | \
168 EEVEE_RENDER_PASS_SPECULAR_COLOR | EEVEE_RENDER_PASS_SPECULAR_LIGHT | \
169 EEVEE_RENDER_PASS_ENVIRONMENT | EEVEE_RENDER_PASS_AOV)
170 #define EEVEE_AOV_HASH_ALL -1
171 #define EEVEE_AOV_HASH_COLOR_TYPE_MASK 1
172 #define MAX_CRYPTOMATTE_LAYERS 3
212 #define DOF_TILE_DIVISOR 16
213 #define DOF_BOKEH_LUT_SIZE 32
214 #define DOF_GATHER_RING_COUNT 5
215 #define DOF_DILATE_RING_COUNT 3
216 #define DOF_FAST_GATHER_COC_ERROR 0.05
218 #define DOF_SHADER_DEFINES \
219 "#define DOF_TILE_DIVISOR " STRINGIFY(DOF_TILE_DIVISOR) "\n" \
220 "#define DOF_BOKEH_LUT_SIZE " STRINGIFY(DOF_BOKEH_LUT_SIZE) "\n" \
221 "#define DOF_GATHER_RING_COUNT " STRINGIFY(DOF_GATHER_RING_COUNT) "\n" \
222 "#define DOF_DILATE_RING_COUNT " STRINGIFY(DOF_DILATE_RING_COUNT) "\n" \
223 "#define DOF_FAST_GATHER_COC_ERROR " STRINGIFY(DOF_FAST_GATHER_COC_ERROR) "\n"
496 #define LAMPTYPE_AREA_ELLIPSE 100.0f
538 "Shadow UBO is too big!!!")
900 #define EEVEE_RAY_CAMERA 0
901 #define EEVEE_RAY_SHADOW 1
902 #define EEVEE_RAY_DIFFUSE 2
903 #define EEVEE_RAY_GLOSSY 3
1127 const float *refract_depth,
1128 bool use_ssrefraction,
1129 bool use_alpha_blend);
1157 const float x_axis[3],
1158 const float y_axis[3],
1163 const float x_axis[3],
1164 const float y_axis[3],
1278 float filter_quality,
1309 float *r_focus_distance);
1339 const char *viewname,
1425 const float filter_size,
1453 const bool minimal);
1479 const struct rcti *rect);
1507 {0.5f, 0.0f, 0.0f, 0.0f},
1508 {0.0f, 0.5f, 0.0f, 0.0f},
1509 {0.0f, 0.0f, 0.5f, 0.0f},
1510 {0.5f, 0.5f, 0.5f, 1.0f},
1516 {{0.0f, 0.0f, -1.0f, 0.0f},
1517 {0.0f, -1.0f, 0.0f, 0.0f},
1518 {-1.0f, 0.0f, 0.0f, 0.0f},
1519 {0.0f, 0.0f, 0.0f, 1.0f}},
1521 {{0.0f, 0.0f, 1.0f, 0.0f},
1522 {0.0f, -1.0f, 0.0f, 0.0f},
1523 {1.0f, 0.0f, 0.0f, 0.0f},
1524 {0.0f, 0.0f, 0.0f, 1.0f}},
1526 {{1.0f, 0.0f, 0.0f, 0.0f},
1527 {0.0f, 0.0f, -1.0f, 0.0f},
1528 {0.0f, 1.0f, 0.0f, 0.0f},
1529 {0.0f, 0.0f, 0.0f, 1.0f}},
1531 {{1.0f, 0.0f, 0.0f, 0.0f},
1532 {0.0f, 0.0f, 1.0f, 0.0f},
1533 {0.0f, -1.0f, 0.0f, 0.0f},
1534 {0.0f, 0.0f, 0.0f, 1.0f}},
1536 {{1.0f, 0.0f, 0.0f, 0.0f},
1537 {0.0f, -1.0f, 0.0f, 0.0f},
1538 {0.0f, 0.0f, -1.0f, 0.0f},
1539 {0.0f, 0.0f, 0.0f, 1.0f}},
1541 {{-1.0f, 0.0f, 0.0f, 0.0f},
1542 {0.0f, -1.0f, 0.0f, 0.0f},
1543 {0.0f, 0.0f, 1.0f, 0.0f},
1544 {0.0f, 0.0f, 0.0f, 1.0f}},
Camera data-block and utility functions.
#define BLI_STATIC_ASSERT_ALIGN(st, align)
#define BLI_BITMAP_SIZE(_tot)
struct Depsgraph Depsgraph
#define V3D_HIDE_OVERLAYS
struct GPUFrameBuffer GPUFrameBuffer
struct GPUShader GPUShader
struct GPUTexture GPUTexture
struct GPUVertBuf GPUVertBuf
CCL_NAMESPACE_BEGIN struct Options options
const Depsgraph * depsgraph
struct GPUTexture * depth_src
void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_depth_of_field_setup_get(void)
struct EEVEE_CommonUniformBuffer EEVEE_CommonUniformBuffer
void EEVEE_cryptomatte_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_subsurface_translucency_sh_get(void)
struct EEVEE_GeometryMotionData EEVEE_GeometryMotionData
void EEVEE_volumes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_refraction_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_Shadow EEVEE_Shadow
struct GPUShader * EEVEE_shaders_effect_motion_blur_sh_get(void)
struct DrawEngineType draw_engine_eevee_type
struct GPUShader * EEVEE_shaders_effect_color_copy_sh_get(void)
void EEVEE_shadows_update(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
#define MAX_SHADOW_CASCADE
float * EEVEE_lut_update_ggx_brdf(int lut_size)
EEVEE_LightProbeEngineData * EEVEE_lightprobe_data_get(Object *ob)
void EEVEE_occlusion_free(void)
struct EEVEE_WorldEngineData EEVEE_WorldEngineData
EEVEE_GeometryMotionData * EEVEE_motion_blur_geometry_data_get(EEVEE_MotionBlurData *mb, Object *ob)
void EEVEE_shadows_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_motion_blur_cache_finish(EEVEE_Data *vedata)
void EEVEE_renderpasses_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, bool post_effect)
void EEVEE_downsample_cube_buffer(EEVEE_Data *vedata, struct GPUTexture *texture_src, int level)
void EEVEE_volumes_set_jitter(EEVEE_ViewLayerData *sldata, uint current_sample)
void EEVEE_lightprobes_free(void)
void EEVEE_shaders_free(void)
int EEVEE_depth_of_field_sample_count_get(EEVEE_EffectsInfo *effects, int sample_count, int *r_ring_count)
LightGridCache EEVEE_LightGrid
void EEVEE_cryptomatte_particle_hair_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob)
struct GPUShader * EEVEE_shaders_cryptomatte_sh_get(bool is_hair)
void EEVEE_cryptomatte_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, int tot_samples)
void EEVEE_sample_ellipse(int sample_ofs, const float x_axis[3], const float y_axis[3], float size_x, float size_y, float rsample[3])
EEVEE_LightEngineData * EEVEE_light_data_get(Object *ob)
struct GPUShader * EEVEE_shaders_probe_planar_display_sh_get(void)
struct EEVEE_PassList EEVEE_PassList
void EEVEE_lights_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_maxz_downlevel_sh_get(void)
struct GPUShader * EEVEE_shaders_shadow_accum_sh_get(void)
struct GPUShader * EEVEE_shaders_velocity_resolve_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_maxz_downdepth_sh_get(void)
void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, GPUTexture *rt_color, GPUTexture *rt_depth)
void EEVEE_temporal_sampling_offset_calc(const double ht_point[2], const float filter_size, float r_offset[2])
void EEVEE_bloom_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_maxz_copydepth_sh_get(void)
void EEVEE_update_noise(EEVEE_PassList *psl, EEVEE_FramebufferList *fbl, const double offsets[3])
void EEVEE_lightbake_filter_visibility(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_depth, struct GPUFrameBuffer *fb, int grid_offset, float clipsta, float clipend, float vis_range, float vis_blur, int vis_size)
struct GPUShader * EEVEE_shaders_probe_grid_fill_sh_get(void)
EEVEE_ViewLayerData * EEVEE_view_layer_data_get(void)
void EEVEE_subsurface_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lookdev_init(EEVEE_Data *vedata)
void EEVEE_motion_blur_cache_populate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *ob)
struct EEVEE_LightsInfo EEVEE_LightsInfo
struct GPUShader * EEVEE_shaders_subsurface_first_pass_sh_get(void)
struct EEVEE_ShadowCascade EEVEE_ShadowCascade
bool EEVEE_shadows_cube_setup(EEVEE_LightsInfo *linfo, const EEVEE_Light *evli, int sample_ofs)
void EEVEE_shadows_draw_cascades(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, DRWView *view, int cascade_index)
int EEVEE_temporal_sampling_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_cube_data_from_object(Object *ob, EEVEE_LightProbe *eprobe)
EEVEE_ViewLayerData * EEVEE_view_layer_data_ensure(void)
void EEVEE_lights_cache_add(EEVEE_ViewLayerData *sldata, struct Object *ob)
void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_volumes_resolve(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_cache_populate(void *vedata, Object *ob)
void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_minz_copydepth_sh_get(void)
bool EEVEE_lightprobes_obj_visibility_cb(bool vis_in, void *user_data)
void EEVEE_temporal_sampling_matrices_calc(EEVEE_EffectsInfo *effects, const double ht_point[2])
struct GPUShader * EEVEE_shaders_depth_of_field_bokeh_get(void)
void EEVEE_render_modules_init(EEVEE_Data *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph)
EEVEE_ObjectEngineData * EEVEE_object_data_ensure(Object *ob)
struct EEVEE_PlanarReflection EEVEE_PlanarReflection
World * EEVEE_world_default_get(void)
void EEVEE_render_view_sync(EEVEE_Data *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph)
void EEVEE_render_read_result(EEVEE_Data *vedata, struct RenderEngine *engine, struct RenderLayer *rl, const rcti *rect)
void EEVEE_lightprobes_refresh(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_reflection_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_planar_data_from_object(Object *ob, EEVEE_PlanarReflection *eplanar, EEVEE_LightProbeVisTest *vis_test)
void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct Scene *scene, Object *ob)
void EEVEE_volumes_free(void)
struct EEVEE_CryptomatteSample EEVEE_CryptomatteSample
void EEVEE_shadow_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
void EEVEE_temporal_sampling_reset(EEVEE_Data *vedata)
void EEVEE_motion_blur_swap_data(EEVEE_Data *vedata)
void EEVEE_volumes_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
static const float texcomat[4][4]
EEVEE_WorldEngineData * EEVEE_world_data_ensure(World *wo)
struct GPUShader * EEVEE_shaders_studiolight_background_sh_get(void)
void EEVEE_shadows_cube_add(EEVEE_LightsInfo *linfo, EEVEE_Light *evli, struct Object *ob)
void EEVEE_occlusion_draw_debug(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void eevee_id_update(void *vedata, ID *id)
void EEVEE_object_hair_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob, bool *cast_shadow)
void EEVEE_bloom_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_HairMotionData EEVEE_HairMotionData
struct GPUShader * EEVEE_shaders_effect_motion_blur_velocity_tiles_sh_get(void)
void EEVEE_reflection_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_occlusion_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
int EEVEE_bloom_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_render_cache(void *vedata, struct Object *ob, struct RenderEngine *engine, struct Depsgraph *depsgraph)
void EEVEE_renderpasses_init(EEVEE_Data *vedata)
struct EEVEE_LightProbeVisTest EEVEE_LightProbeVisTest
void EEVEE_effects_downsample_radiance_buffer(EEVEE_Data *vedata, struct GPUTexture *texture_src)
struct GPUShader * EEVEE_shaders_volumes_scatter_sh_get(void)
struct GPUShader * EEVEE_shaders_depth_of_field_dilate_tiles_get(bool pass)
void EEVEE_motion_blur_data_init(EEVEE_MotionBlurData *mb)
struct EEVEE_MotionBlurData EEVEE_MotionBlurData
void EEVEE_render_update_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
void EEVEE_depth_of_field_draw(EEVEE_Data *vedata)
Material * EEVEE_material_default_diffuse_get(void)
void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_downsample_cube_sh_get(void)
void EEVEE_lookdev_draw(EEVEE_Data *vedata)
void EEVEE_materials_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob, bool *cast_shadow)
struct GPUShader * EEVEE_shaders_effect_minz_downdepth_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_reflection_trace_sh_get(void)
void EEVEE_random_rotation_m4(int sample_ofs, float scale, float r_mat[4][4])
void EEVEE_effects_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lights_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_volumes_free_smoke_textures(void)
void EEVEE_cryptomatte_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob)
void EEVEE_subsurface_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_ggx_lut_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_filter_visibility_sh_get(void)
EEVEE_ObjectEngineData * EEVEE_object_data_get(Object *ob)
void EEVEE_cryptomatte_update_passes(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
struct EEVEE_LightEngineData EEVEE_LightEngineData
Material * EEVEE_material_default_glossy_get(void)
void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightbake_render_world(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6])
void EEVEE_renderpasses_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_reflection_resolve_sh_get(void)
void EEVEE_renderpasses_draw_debug(EEVEE_Data *vedata)
void EEVEE_render_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct bNodeTree * EEVEE_shader_default_surface_nodetree(Material *ma)
int EEVEE_motion_blur_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_ObjectEngineData EEVEE_ObjectEngineData
void EEVEE_draw_effects(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_minz_downlevel_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_downsample_sh_get(void)
void EEVEE_reflection_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
void EEVEE_bloom_draw(EEVEE_Data *vedata)
void eevee_light_matrix_get(const EEVEE_Light *evli, float r_mat[4][4])
struct GPUShader * EEVEE_shaders_probe_filter_diffuse_sh_get(void)
struct GPUShader * EEVEE_shaders_bloom_blit_get(bool high_quality)
void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, const bool minimal)
void EEVEE_subsurface_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_TextureList EEVEE_TextureList
BLI_STATIC_ASSERT(sizeof(EEVEE_Shadow) *MAX_SHADOW+sizeof(EEVEE_ShadowCascade) *MAX_SHADOW_CASCADE+sizeof(EEVEE_ShadowCube) *MAX_SHADOW_CUBE< 16384, "Shadow UBO is too big!!!") typedef struct EEVEE_ShadowCasterBuffer
int EEVEE_temporal_sampling_sample_count_get(const Scene *scene, const EEVEE_StorageList *stl)
struct GPUShader * EEVEE_shaders_effect_motion_blur_hair_sh_get(void)
void EEVEE_subsurface_add_pass(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Material *ma, DRWShadingGroup *shgrp, struct GPUMaterial *gpumat)
void EEVEE_subsurface_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_grid_data_from_object(Object *ob, EEVEE_LightGrid *egrid, int *offset)
struct EEVEE_ShadowCascadeRender EEVEE_ShadowCascadeRender
struct EEVEE_ObjectKey EEVEE_ObjectKey
void EEVEE_renderpasses_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
void EEVEE_temporal_sampling_draw(EEVEE_Data *vedata)
void EEVEE_cryptomatte_render_result(struct RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
EEVEE_HairMotionData * EEVEE_motion_blur_hair_data_get(EEVEE_MotionBlurData *mb, Object *ob)
void EEVEE_motion_blur_step_set(EEVEE_Data *vedata, int step)
struct GPUMaterial * EEVEE_material_default_get(struct Scene *scene, Material *ma, int options)
struct GPUShader * EEVEE_shaders_probe_cube_display_sh_get(void)
struct GPUShader * EEVEE_shaders_volumes_integration_sh_get(void)
void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, struct GPUTexture *depth_src, int layer)
void EEVEE_lightbake_render_scene(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6], const float pos[3], float near_clip, float far_clip)
void EEVEE_sample_ball(int sample_ofs, float radius, float rsample[3])
struct bNodeTree * EEVEE_shader_default_world_nodetree(World *wo)
void EEVEE_shadows_cascade_add(EEVEE_LightsInfo *linfo, EEVEE_Light *evli, struct Object *ob)
struct GPUShader * EEVEE_shaders_effect_maxz_copydepth_layer_sh_get(void)
struct GPUShader * EEVEE_shaders_taa_resolve_sh_get(EEVEE_EffectsFlag enabled_effects)
void EEVEE_cryptomatte_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_render_draw(EEVEE_Data *vedata, struct RenderEngine *engine, struct RenderLayer *rl, const struct rcti *rect)
void EEVEE_shadows_caster_register(EEVEE_ViewLayerData *sldata, struct Object *ob)
void EEVEE_renderpasses_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_motion_blur_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_ViewLayerData EEVEE_ViewLayerData
void EEVEE_lightbake_filter_diffuse(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, struct GPUFrameBuffer *fb, int grid_offset, float intensity)
struct GPUShader * EEVEE_shaders_volumes_accum_sh_get(void)
struct GPUShader * EEVEE_shaders_subsurface_second_pass_sh_get(void)
void EEVEE_cryptomatte_free(EEVEE_Data *vedata)
struct EEVEE_PrivateData EEVEE_PrivateData
void EEVEE_motion_blur_draw(EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_effect_minz_downdepth_layer_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_planar_downsample_sh_get(void)
void EEVEE_lightprobes_cache_add(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *ob)
void EEVEE_shadows_init(EEVEE_ViewLayerData *sldata)
void EEVEE_mist_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera)
@ EFFECT_DEPTH_DOUBLE_BUFFER
static const float cubefacemat[6][4][4]
float * EEVEE_lut_update_ggx_btdf(int lut_size, int lut_depth)
void EEVEE_materials_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_temporal_sampling_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
int EEVEE_occlusion_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_EffectsInfo EEVEE_EffectsInfo
void EEVEE_lightprobes_refresh_planar(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_ShadowCube EEVEE_ShadowCube
void EEVEE_cryptomatte_object_hair_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob)
void EEVEE_materials_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, EEVEE_StorageList *stl, EEVEE_FramebufferList *fbl)
struct GPUShader * EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(void)
struct GPUShader * EEVEE_shaders_depth_of_field_scatter_get(bool is_foreground, bool bokeh_tx)
struct EEVEE_LightProbesInfo EEVEE_LightProbesInfo
struct GPUShader * EEVEE_shaders_effect_motion_blur_velocity_tiles_expand_sh_get(void)
struct GPUShader * EEVEE_shaders_depth_of_field_gather_get(EEVEE_DofGatherPass pass, bool bokeh_tx)
EEVEE_LightEngineData * EEVEE_light_data_ensure(Object *ob)
int EEVEE_screen_raytrace_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_studiolight_probe_sh_get(void)
void EEVEE_volumes_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_shadows_draw(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct DRWView *view)
struct GPUMaterial * EEVEE_material_get(EEVEE_Data *vedata, struct Scene *scene, Material *ma, World *wo, int options)
struct GPUShader * EEVEE_shaders_bloom_upsample_get(bool high_quality)
void EEVEE_material_bind_resources(DRWShadingGroup *shgrp, struct GPUMaterial *gpumat, EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, const int *ssr_id, const float *refract_depth, bool use_ssrefraction, bool use_alpha_blend)
struct GPUShader * EEVEE_shaders_effect_mist_sh_get(void)
Material * EEVEE_material_default_error_get(void)
struct GPUShader * EEVEE_shaders_update_noise_sh_get(void)
struct GPUShader * EEVEE_shaders_bloom_resolve_get(bool high_quality)
struct EEVEE_Data EEVEE_Data
void EEVEE_bloom_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
struct GPUShader * EEVEE_shaders_ggx_refraction_lut_sh_get(void)
struct GPUShader * EEVEE_shaders_depth_of_field_flatten_tiles_get(void)
void EEVEE_sample_rectangle(int sample_ofs, const float x_axis[3], const float y_axis[3], float size_x, float size_y, float rsample[3])
void EEVEE_motion_blur_hair_cache_populate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *ob, struct ParticleSystem *psys, struct ModifierData *md)
void EEVEE_material_renderpasses_init(EEVEE_Data *vedata)
void EEVEE_temporal_sampling_create_view(EEVEE_Data *vedata)
int EEVEE_renderpasses_aov_hash(const ViewLayerAOV *aov)
void EEVEE_volumes_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
BLI_INLINE bool eevee_hdri_preview_overlay_enabled(const View3D *v3d)
void EEVEE_temporal_sampling_update_matrices(EEVEE_Data *vedata)
void EEVEE_shadow_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_volumes_scatter_with_lights_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_ambient_occlusion_sh_get(void)
void EEVEE_material_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_volumes_clear_sh_get(void)
struct EEVEE_FramebufferList EEVEE_FramebufferList
struct GPUShader * EEVEE_shaders_depth_of_field_resolve_get(bool use_bokeh_tx, bool use_hq_gather)
bool EEVEE_depth_of_field_jitter_get(EEVEE_EffectsInfo *effects, float r_jitter[2], float *r_focus_distance)
struct EEVEE_RenderPassData EEVEE_RenderPassData
struct GPUShader * EEVEE_shaders_depth_of_field_reduce_get(bool is_copy_pass)
EEVEE_ViewLayerData * EEVEE_view_layer_data_ensure_ex(struct ViewLayer *view_layer)
void EEVEE_materials_free(void)
struct EEVEE_Light EEVEE_Light
void EEVEE_view_layer_data_free(void *storage)
struct GPUShader * EEVEE_shaders_volumes_resolve_sh_get(bool accum)
void EEVEE_motion_blur_data_free(EEVEE_MotionBlurData *mb)
struct GPUShader * EEVEE_shaders_shadow_sh_get(void)
EEVEE_ObjectMotionData * EEVEE_motion_blur_object_data_get(EEVEE_MotionBlurData *mb, Object *ob, bool hair)
void EEVEE_cryptomatte_store_metadata(EEVEE_Data *vedata, struct RenderResult *render_result)
struct EEVEE_BoundBox EEVEE_BoundBox
struct GPUShader * EEVEE_shaders_effect_maxz_downdepth_layer_sh_get(void)
struct GPUShader * EEVEE_shaders_effect_motion_blur_object_sh_get(void)
void EEVEE_shadows_draw_cubemap(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, int cube_index)
void EEVEE_particle_hair_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob, bool *cast_shadow)
struct EEVEE_StorageList EEVEE_StorageList
void EEVEE_subsurface_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_material_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
struct DRWShaderLibrary * EEVEE_shader_lib_get(void)
struct EEVEE_ObjectMotionData EEVEE_ObjectMotionData
struct GPUShader * EEVEE_shaders_probe_filter_glossy_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_grid_display_sh_get(void)
void EEVEE_lightbake_filter_glossy(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, struct GPUFrameBuffer *fb, int probe_idx, float intensity, int maxlevel, float filter_quality, float firefly_fac)
void EEVEE_subsurface_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples)
void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, eViewLayerEEVEEPassType renderpass_type, int aov_index)
void EEVEE_lookdev_cache_init(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, DRWPass *pass, EEVEE_LightProbesInfo *pinfo, DRWShadingGroup **r_shgrp)
void EEVEE_cryptomatte_renderpasses_init(EEVEE_Data *vedata)
bool EEVEE_renderpasses_only_first_sample_pass_active(EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_renderpasses_post_process_sh_get(void)
void EEVEE_shaders_material_shaders_init(void)
EEVEE_LightProbeEngineData * EEVEE_lightprobe_data_ensure(Object *ob)
LightProbeCache EEVEE_LightProbe
bool EEVEE_render_init(EEVEE_Data *vedata, struct RenderEngine *engine, struct Depsgraph *depsgraph)
struct EEVEE_LightProbeEngineData EEVEE_LightProbeEngineData
struct GPUShader * EEVEE_shaders_bloom_downsample_get(bool high_quality)
void EEVEE_occlusion_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_depth_of_field_downsample_get(void)
void EEVEE_subsurface_data_render(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_mist_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUTexture * EEVEE_materials_get_util_tex(void)
void EEVEE_occlusion_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_volumes_draw_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
EEVEE_WorldEngineData * EEVEE_world_data_get(World *wo)
struct GPUShader * EEVEE_shaders_depth_of_field_filter_get(void)
void eevee_contact_shadow_setup(const Light *la, EEVEE_Shadow *evsh)
BLI_INLINE float fb(float length, float L)
static void update(bNodeTree *ntree)
DRWViewUboStorage storage
EEVEE_FramebufferList * fbl
struct GPUTexture * dof_scatter_src_tx
struct GPUTexture * gtao_horizons_renderpass
float downsamp_texel_size[MAX_BLOOM_STEP][2]
struct GPUTexture * dof_coc_dilated_tiles_bg_tx
struct GPUTexture * source_buffer
float prev_drw_persmat[4][4]
struct GPUTexture * sss_irradiance
struct GPUTexture * gtao_horizons
struct GPUTexture * dof_bokeh_scatter_lut_tx
struct GPUTexture * dof_reduce_input_color_tx
struct GPUTexture * dof_coc_dilated_tiles_fg_tx
struct GPUTexture * dof_fg_holefill_weight_tx
bool reflection_trace_full
float motion_blur_near_far[2]
struct GPUTexture * velocity_tiles_x_tx
float bloom_curve_threshold[4]
struct GPUTexture * final_tx
struct GPUTexture * dof_fg_color_tx
float dof_scatter_color_threshold
struct GPUTexture * ssr_hit_output
struct GPUTexture * dof_bg_color_tx
float unf_source_texel_size[2]
struct GPUTexture * bloom_blit
struct GPUFrameBuffer * target_buffer
struct GPUTexture * dof_coc_tiles_bg_tx
bool ssr_was_valid_double_buffer
struct GPUTexture * bloom_upsample[MAX_BLOOM_STEP - 1]
float current_world_to_ndc[4][4]
struct GPUTexture * ssr_specrough_input
eDRWLevelOfDetail sphere_lod
struct GPUTexture * sss_blur
struct GPUTexture * sss_radius
struct GPUTexture * volume_transmit
struct GPUTexture * velocity_tiles_tx
float dof_bokeh_aniso_inv[2]
struct GPUTexture * volume_scatter
struct GPUTexture * dof_downsample_tx
struct GPUTexture * dof_fg_weight_tx
struct GPUTexture * bloom_downsample[MAX_BLOOM_STEP]
struct GPUTexture * dof_fg_occlusion_tx
int dof_jitter_ring_count
float source_texel_size[2]
CameraParams current_cam_params
EEVEE_EffectsFlag enabled_effects
int dof_dilate_slight_focus
struct GPUTexture * unf_base_buffer
struct GPUTexture * sss_stencil
struct GPUTexture * velocity_tx
struct GPUTexture * gtao_horizons_debug
struct GPUTexture * dof_half_res_color_tx
struct GPUTexture * dof_bokeh_resolve_lut_tx
float dof_scatter_coc_threshold
struct GPUFrameBuffer * final_fb
struct GPUTexture * ssr_normal_input
int volume_current_sample
struct GPUTexture * dof_reduce_input_coc_tx
struct DRWView * lookdev_view
struct GPUTexture * dof_fg_holefill_color_tx
struct GPUTexture * dof_coc_tiles_fg_tx
struct DRWView * taa_view
eGPUTextureFormat dof_color_format
int dof_dilate_ring_width_multiplier
float current_world_to_view[4][4]
struct GPUTexture * unf_source_buffer
float dof_scatter_neighbor_max_color
struct GPUTexture * dof_bg_occlusion_tx
struct GPUTexture * dof_bokeh_gather_lut_tx
struct GPUTexture * ssr_hit_depth
struct EEVEE_MotionBlurData motion_blur
struct GPUTexture * dof_half_res_coc_tx
float past_world_to_ndc[4][4]
float past_world_to_view[4][4]
struct GPUTexture * sss_albedo
CameraParams past_cam_params
float current_ndc_to_world[4][4]
int dof_dilate_ring_count
struct GPUTexture * dof_bg_weight_tx
struct GPUFrameBuffer * volumetric_fb
struct GPUFrameBuffer * main_fb
struct GPUFrameBuffer * volumetric_scat_fb
struct GPUFrameBuffer * sss_resolve_fb
struct GPUFrameBuffer * bloom_blit_fb
struct GPUFrameBuffer * taa_history_color_fb
struct GPUFrameBuffer * radiance_filtered_fb
struct GPUFrameBuffer * screen_tracing_fb
struct GPUFrameBuffer * velocity_tiles_fb[2]
struct GPUFrameBuffer * mist_accum_fb
struct GPUFrameBuffer * planar_downsample_fb
struct GPUFrameBuffer * dof_gather_fg_fb
struct GPUFrameBuffer * dof_reduce_copy_fb
struct GPUFrameBuffer * double_buffer_color_fb
struct GPUFrameBuffer * gtao_fb
struct GPUFrameBuffer * update_noise_fb
struct GPUFrameBuffer * sss_translucency_fb
struct GPUFrameBuffer * velocity_resolve_fb
struct GPUFrameBuffer * cryptomatte_fb
struct GPUFrameBuffer * dof_flatten_tiles_fb
struct GPUFrameBuffer * sss_blit_fb
struct GPUFrameBuffer * material_accum_fb
struct GPUFrameBuffer * ao_accum_fb
struct GPUFrameBuffer * dof_filter_fg_fb
struct GPUFrameBuffer * double_buffer_depth_fb
struct GPUFrameBuffer * dof_bokeh_fb
struct GPUFrameBuffer * sss_accum_fb
struct GPUFrameBuffer * volumetric_integ_fb
struct GPUFrameBuffer * downsample_fb
struct GPUFrameBuffer * sss_clear_fb
struct GPUFrameBuffer * shadow_accum_fb
struct GPUFrameBuffer * dof_setup_fb
struct GPUFrameBuffer * taa_history_fb
struct GPUFrameBuffer * main_color_fb
struct GPUFrameBuffer * bloom_pass_accum_fb
struct GPUFrameBuffer * dof_downsample_fb
struct GPUFrameBuffer * dof_reduce_fb
struct GPUFrameBuffer * double_buffer_fb
struct GPUFrameBuffer * sss_blur_fb
struct GPUFrameBuffer * effect_fb
struct GPUFrameBuffer * dof_gather_bg_fb
struct GPUFrameBuffer * dof_scatter_bg_fb
struct GPUFrameBuffer * planarref_fb
struct GPUFrameBuffer * velocity_fb
struct GPUFrameBuffer * bloom_accum_fb[MAX_BLOOM_STEP - 1]
struct GPUFrameBuffer * renderpass_fb
struct GPUFrameBuffer * volumetric_accum_fb
struct GPUFrameBuffer * gtao_debug_fb
struct GPUFrameBuffer * dof_dilate_tiles_fb
struct GPUFrameBuffer * maxzbuffer_fb
struct GPUFrameBuffer * dof_gather_fg_holefill_fb
struct GPUFrameBuffer * dof_scatter_fg_fb
struct GPUFrameBuffer * ssr_accum_fb
struct GPUFrameBuffer * dof_filter_bg_fb
struct GPUFrameBuffer * bloom_down_fb[MAX_BLOOM_STEP]
struct GPUFrameBuffer * effect_color_fb
struct GPUVertBuf * vbo[2]
struct EEVEE_HairMotionData::@201 psys[0]
struct GPUTexture * hair_pos_tx[2]
struct GPUVertBuf * hair_pos[2]
struct Collection * collection
EEVEE_LightProbeVisTest vis_data
EEVEE_LightProbeVisTest planar_vis_tests[MAX_PLANAR]
int cache_irradiance_size[3]
EEVEE_LightGrid grid_data[MAX_GRID]
EEVEE_LightProbe probe_data[MAX_PROBE]
int total_irradiance_samples
EEVEE_PlanarReflection planar_data[MAX_PLANAR]
struct EEVEE_Light light_data[MAX_LIGHT]
struct EEVEE_ShadowCasterBuffer * shcaster_frontbuffer
int cache_num_cascade_layer
uchar shadow_cascade_light_indices[MAX_SHADOW_CASCADE]
struct EEVEE_Shadow shadow_data[MAX_SHADOW]
struct EEVEE_ShadowCube shadow_cube_data[MAX_SHADOW_CUBE]
struct BoundSphere shadow_bounds[MAX_LIGHT]
bool shadow_high_bitdepth
BLI_bitmap sh_cube_update[BLI_BITMAP_SIZE(MAX_SHADOW_CUBE)]
struct EEVEE_ShadowCascadeRender shadow_cascade_render[MAX_SHADOW_CASCADE]
uchar shadow_cube_light_indices[MAX_SHADOW_CUBE]
struct EEVEE_ShadowCasterBuffer * shcaster_backbuffer
struct EEVEE_ShadowCascade shadow_cascade_data[MAX_SHADOW_CASCADE]
struct EEVEE_LightsInfo::@199 shcaster_aabb
struct EEVEE_MotionBlurData::@200 camera[3]
DRWShadingGroup * hair_grp
EEVEE_LightProbeVisTest * test_data
struct DRWPass * material_sss_ps
struct DRWPass * dof_reduce_copy
struct DRWPass * bloom_resolve
struct DRWPass * probe_planar_downsample_ps
struct DRWPass * velocity_object
struct DRWPass * dof_setup
struct DRWPass * transparent_pass
struct DRWPass * dof_gather_bg
struct DRWPass * lookdev_diffuse_pass
struct DRWPass * sss_resolve_ps
struct DRWPass * depth_cull_ps
struct DRWPass * ao_accum_ps
struct DRWPass * dof_bokeh
struct DRWPass * dof_gather_fg
struct DRWPass * depth_refract_ps
struct DRWPass * depth_clip_ps
struct DRWPass * sss_blur_ps
struct DRWPass * bloom_upsample
struct DRWPass * material_accum_ps
struct DRWPass * depth_ps
struct DRWPass * sss_translucency_ps
struct DRWPass * alpha_checker
struct DRWPass * velocity_tiles
struct DRWPass * depth_clip_cull_ps
struct DRWPass * material_refract_ps
struct DRWPass * dof_gather_fg_holefill
struct DRWPass * maxz_copydepth_ps
struct DRWPass * depth_refract_clip_cull_ps
struct DRWPass * motion_blur
struct DRWPass * velocity_tiles_expand[2]
struct DRWPass * maxz_copydepth_layer_ps
struct DRWPass * material_sss_cull_ps
struct DRWPass * probe_background
struct DRWPass * dof_scatter_fg
struct DRWPass * dof_scatter_bg
struct DRWPass * volumetric_objects_ps
struct DRWPass * probe_diffuse_compute
struct DRWPass * volumetric_integration_ps
struct DRWPass * velocity_resolve
struct DRWPass * ssr_resolve
struct DRWPass * velocity_tiles_x
struct DRWPass * dof_reduce
struct DRWPass * depth_refract_cull_ps
struct DRWPass * shadow_accum_pass
struct DRWPass * material_ps
struct DRWPass * depth_refract_clip_ps
struct DRWPass * renderpass_pass
struct DRWPass * maxz_downlevel_ps
struct DRWPass * bloom_downsample_first
struct DRWPass * probe_display
struct DRWPass * probe_glossy_compute
struct DRWPass * volumetric_world_ps
struct DRWPass * bloom_blit
struct DRWPass * color_copy_ps
struct DRWPass * dof_downsample
struct DRWPass * lookdev_glossy_pass
struct DRWPass * bloom_accum_ps
struct DRWPass * dof_flatten_tiles
struct DRWPass * mist_accum_ps
struct DRWPass * background_accum_ps
struct DRWPass * probe_grid_fill
struct DRWPass * ao_horizon_search
struct DRWPass * velocity_hair
struct DRWPass * dof_resolve
struct DRWPass * update_noise_pass
struct DRWPass * cryptomatte_ps
struct DRWPass * taa_resolve
struct DRWPass * ssr_raytrace
struct DRWPass * shadow_pass
struct DRWPass * ao_horizon_debug
struct DRWPass * color_downsample_cube_ps
struct DRWPass * material_cull_ps
struct DRWPass * probe_visibility_compute
struct DRWPass * dof_dilate_tiles_minmax
struct DRWPass * dof_dilate_tiles_minabs
struct DRWPass * volumetric_scatter_ps
struct DRWPass * material_refract_cull_ps
struct DRWPass * volumetric_resolve_ps
struct DRWPass * volumetric_accum_ps
struct DRWPass * dof_filter
struct DRWPass * background_ps
struct DRWPass * color_downsample_ps
struct DRWPass * bloom_downsample
float reflectionmat[4][4]
float planar_texel_size[2]
int renderpass_current_sample
struct DRWView * bake_views[6]
struct GPUUniformBuf * renderpass_ubo
eViewLayerEEVEEPassType render_passes
EEVEE_CryptomatteSample * cryptomatte_accum_buffer
int renderpass_postprocess
float studiolight_glossy_clamp
struct DRWView * cube_views[6]
struct DRWShadingGroup * shadow_accum_shgrp
struct DRWView * world_views[6]
struct DRWShadingGroup * shadow_shgrp
GPUTexture * renderpass_light_input
struct CryptomatteSession * cryptomatte_session
struct LightCache * light_cache
float studiolight_intensity
struct GHash * material_hash
struct Object * cam_original_ob
bool cryptomatte_accurate_mode
float * cryptomatte_download_buffer
GPUTexture * renderpass_input
int studiolight_cubemap_res
bool use_color_render_settings
struct DRWView * planar_views[MAX_PLANAR]
float studiolight_filter_quality
GPUTexture * renderpass_col_input
int render_sample_count_per_timestep
float studiolight_matrix[3][3]
struct DRWCallBuffer * planar_display_shgrp
GPUTexture * renderpass_transmittance_input
int queued_shaders_count_prev
int renderPassEnvironment
int renderPassGlossyLight
int renderPassDiffuseLight
float projmat[MAX_CASCADE_NUM][4][4]
float radius[MAX_CASCADE_NUM]
float shadowmat[MAX_CASCADE_NUM][4][4]
LightCacheTexture * lookdev_cube_mips
EEVEE_LightProbe * lookdev_cube_data
struct EEVEE_PrivateData * g_data
struct EEVEE_EffectsInfo * effects
EEVEE_LightGrid * lookdev_grid_data
struct LightCache * lookdev_lightcache
struct GPUTexture * filtered_radiance
struct GPUTexture * depth_double_buffer
struct GPUTexture * planar_depth
struct GPUTexture * sss_accum
struct GPUTexture * color_double_buffer
struct GPUTexture * spec_color_accum
struct GPUTexture * volume_scatter_history
struct GPUTexture * dof_reduced_coc
struct GPUTexture * maxzbuffer
struct GPUTexture * color_post
struct GPUTexture * volume_prop_extinction
struct GPUTexture * diff_light_accum
struct GPUTexture * emit_accum
struct GPUTexture * planar_pool
struct GPUTexture * renderpass
struct GPUTexture * lookdev_cube_tx
struct GPUTexture * volume_scatter_accum
struct GPUTexture * diff_color_accum
struct GPUTexture * dof_reduced_color
struct GPUTexture * ao_accum
struct GPUTexture * bloom_accum
struct GPUTexture * spec_light_accum
struct GPUTexture * lookdev_grid_tx
struct GPUTexture * volume_transmittance_accum
struct GPUTexture * volume_prop_emission
struct GPUTexture * volume_transmit
struct GPUTexture * taa_history
struct GPUTexture * color
struct GPUTexture * cryptomatte
struct GPUTexture * shadow_accum
struct GPUTexture * mist_accum
struct GPUTexture * volume_transmit_history
struct GPUTexture * volume_prop_phase
struct GPUTexture * env_accum
struct GPUTexture * aov_surface_accum[MAX_AOVS]
struct GPUTexture * volume_prop_scattering
struct GPUTexture * volume_scatter
struct GPUTexture * ssr_accum
struct EEVEE_CommonUniformBuffer common_data
struct GPUTexture * shadow_cube_pool
struct GPUUniformBuf * combined
struct GPUUniformBuf * diff_light
struct GPUUniformBuf * shadow_ubo
struct GPUUniformBuf * probe_ubo
struct GPUUniformBuf * shadow_samples_ubo
struct GPUUniformBuf * grid_ubo
struct GPUUniformBuf * emit
struct GPUFrameBuffer * shadow_fb
struct GPUUniformBuf * planar_ubo
struct GPUUniformBuf * spec_color
struct EEVEE_ViewLayerData::@202 renderpass_ubo
struct GPUUniformBuf * environment
struct LightCache * fallback_lightcache
struct GPUUniformBuf * diff_color
struct GPUUniformBuf * spec_light
struct GPUUniformBuf * common_ubo
struct BLI_memblock * material_cache
struct GPUUniformBuf * light_ubo
struct GPUUniformBuf * aovs[MAX_AOVS]
struct GPUTexture * shadow_cascade_pool
struct EEVEE_ShadowCasterBuffer shcasters_buffers[2]
struct EEVEE_LightsInfo * lights
struct EEVEE_LightProbesInfo * probes