36 #define MAX_CASCADE_NUM 4
37 #define MAX_SHADOW 128
38 #define MAX_SHADOW_CASCADE 8
39 #define MAX_SHADOW_CUBE (MAX_SHADOW - MAX_CASCADE_NUM * MAX_SHADOW_CASCADE)
40 #define MAX_BLOOM_STEP 16
44 #define TAA_MAX_SAMPLE 10000926
50 #define IRRADIANCE_HL2
52 #if defined(IRRADIANCE_SH_L2)
53 # define SHADER_IRRADIANCE "#define IRRADIANCE_SH_L2\n"
54 #elif defined(IRRADIANCE_HL2)
55 # define SHADER_IRRADIANCE "#define IRRADIANCE_HL2\n"
60 #define SHADER_DEFINES \
61 "#define EEVEE_ENGINE\n" \
62 "#define MAX_PROBE " STRINGIFY(MAX_PROBE) "\n" \
63 "#define MAX_GRID " STRINGIFY(MAX_GRID) "\n" \
64 "#define MAX_PLANAR " STRINGIFY(MAX_PLANAR) "\n" \
65 "#define MAX_LIGHT " STRINGIFY(MAX_LIGHT) "\n" \
66 "#define MAX_SHADOW " STRINGIFY(MAX_SHADOW) "\n" \
67 "#define MAX_SHADOW_CUBE " STRINGIFY(MAX_SHADOW_CUBE) "\n" \
68 "#define MAX_SHADOW_CASCADE " STRINGIFY(MAX_SHADOW_CASCADE) "\n" \
69 "#define MAX_CASCADE_NUM " STRINGIFY(MAX_CASCADE_NUM) "\n" \
73 #define EEVEE_PROBE_MAX min_ii(MAX_PROBE, GPU_max_texture_layers() / 6)
74 #define EEVEE_VELOCITY_TILE_SIZE 32
75 #define USE_VOLUME_OPTI (GPU_shader_image_load_store_support())
77 #define SWAP_DOUBLE_BUFFERS() \
79 if (effects->swap_double_buffer) { \
80 SWAP(struct GPUFrameBuffer *, fbl->main_fb, fbl->double_buffer_fb); \
81 SWAP(struct GPUFrameBuffer *, fbl->main_color_fb, fbl->double_buffer_color_fb); \
82 SWAP(GPUTexture *, txl->color, txl->color_double_buffer); \
83 effects->swap_double_buffer = false; \
88 #define SWAP_BUFFERS() \
90 if (effects->target_buffer == fbl->effect_color_fb) { \
91 SWAP_DOUBLE_BUFFERS(); \
92 effects->source_buffer = txl->color_post; \
93 effects->target_buffer = fbl->main_color_fb; \
96 SWAP_DOUBLE_BUFFERS(); \
97 effects->source_buffer = txl->color; \
98 effects->target_buffer = fbl->effect_color_fb; \
103 #define SWAP_BUFFERS_TAA() \
105 if (effects->target_buffer == fbl->effect_color_fb) { \
106 SWAP(struct GPUFrameBuffer *, fbl->effect_fb, fbl->taa_history_fb); \
107 SWAP(struct GPUFrameBuffer *, fbl->effect_color_fb, fbl->taa_history_color_fb); \
108 SWAP(GPUTexture *, txl->color_post, txl->taa_history); \
109 effects->source_buffer = txl->taa_history; \
110 effects->target_buffer = fbl->effect_color_fb; \
113 SWAP(struct GPUFrameBuffer *, fbl->main_fb, fbl->taa_history_fb); \
114 SWAP(struct GPUFrameBuffer *, fbl->main_color_fb, fbl->taa_history_color_fb); \
115 SWAP(GPUTexture *, txl->color, txl->taa_history); \
116 effects->source_buffer = txl->taa_history; \
117 effects->target_buffer = fbl->main_color_fb; \
137 #define USE_SCENE_LIGHT(v3d) \
139 ((v3d->shading.type == OB_MATERIAL) && (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS)) || \
140 ((v3d->shading.type == OB_RENDER) && (v3d->shading.flag & V3D_SHADING_SCENE_LIGHTS_RENDER)))
141 #define LOOK_DEV_STUDIO_LIGHT_ENABLED(v3d) \
142 ((v3d) && (((v3d->shading.type == OB_MATERIAL) && \
143 ((v3d->shading.flag & V3D_SHADING_SCENE_WORLD) == 0)) || \
144 ((v3d->shading.type == OB_RENDER) && \
145 ((v3d->shading.flag & V3D_SHADING_SCENE_WORLD_RENDER) == 0))))
147 #define MIN_CUBE_LOD_LEVEL 3
148 #define MAX_SCREEN_BUFFERS_LOD_LEVEL 6
151 #define EEVEE_RENDERPASSES_MATERIAL \
152 (EEVEE_RENDER_PASS_EMIT | EEVEE_RENDER_PASS_DIFFUSE_COLOR | EEVEE_RENDER_PASS_DIFFUSE_LIGHT | \
153 EEVEE_RENDER_PASS_SPECULAR_COLOR | EEVEE_RENDER_PASS_SPECULAR_LIGHT | \
154 EEVEE_RENDER_PASS_ENVIRONMENT | EEVEE_RENDER_PASS_AOV)
155 #define EEVEE_AOV_HASH_ALL -1
156 #define EEVEE_AOV_HASH_COLOR_TYPE_MASK 1
157 #define MAX_CRYPTOMATTE_LAYERS 3
197 #define DOF_TILE_DIVISOR 16
198 #define DOF_BOKEH_LUT_SIZE 32
199 #define DOF_GATHER_RING_COUNT 5
200 #define DOF_DILATE_RING_COUNT 3
201 #define DOF_FAST_GATHER_COC_ERROR 0.05
203 #define DOF_SHADER_DEFINES \
204 "#define DOF_TILE_DIVISOR " STRINGIFY(DOF_TILE_DIVISOR) "\n" \
205 "#define DOF_BOKEH_LUT_SIZE " STRINGIFY(DOF_BOKEH_LUT_SIZE) "\n" \
206 "#define DOF_GATHER_RING_COUNT " STRINGIFY(DOF_GATHER_RING_COUNT) "\n" \
207 "#define DOF_DILATE_RING_COUNT " STRINGIFY(DOF_DILATE_RING_COUNT) "\n" \
208 "#define DOF_FAST_GATHER_COC_ERROR " STRINGIFY(DOF_FAST_GATHER_COC_ERROR) "\n"
481 #define LAMPTYPE_AREA_ELLIPSE 100.0f
523 "Shadow UBO is too big!!!")
911 #define EEVEE_RAY_CAMERA 0
912 #define EEVEE_RAY_SHADOW 1
913 #define EEVEE_RAY_DIFFUSE 2
914 #define EEVEE_RAY_GLOSSY 3
1147 const float *refract_depth,
1148 const float alpha_clip_threshold,
1149 bool use_ssrefraction,
1150 bool use_alpha_blend);
1199 const float x_axis[3],
1200 const float y_axis[3],
1205 const float x_axis[3],
1206 const float y_axis[3],
1309 const char *vert_name,
1310 const char *frag_name,
1311 const char *defines,
1312 bool use_layered_rendering);
1354 float filter_quality,
1392 float *r_focus_distance);
1429 const char *viewname,
1612 const struct rcti *rect);
1640 {0.5f, 0.0f, 0.0f, 0.0f},
1641 {0.0f, 0.5f, 0.0f, 0.0f},
1642 {0.0f, 0.0f, 0.5f, 0.0f},
1643 {0.5f, 0.5f, 0.5f, 1.0f},
1649 {{0.0f, 0.0f, -1.0f, 0.0f},
1650 {0.0f, -1.0f, 0.0f, 0.0f},
1651 {-1.0f, 0.0f, 0.0f, 0.0f},
1652 {0.0f, 0.0f, 0.0f, 1.0f}},
1654 {{0.0f, 0.0f, 1.0f, 0.0f},
1655 {0.0f, -1.0f, 0.0f, 0.0f},
1656 {1.0f, 0.0f, 0.0f, 0.0f},
1657 {0.0f, 0.0f, 0.0f, 1.0f}},
1659 {{1.0f, 0.0f, 0.0f, 0.0f},
1660 {0.0f, 0.0f, -1.0f, 0.0f},
1661 {0.0f, 1.0f, 0.0f, 0.0f},
1662 {0.0f, 0.0f, 0.0f, 1.0f}},
1664 {{1.0f, 0.0f, 0.0f, 0.0f},
1665 {0.0f, 0.0f, 1.0f, 0.0f},
1666 {0.0f, -1.0f, 0.0f, 0.0f},
1667 {0.0f, 0.0f, 0.0f, 1.0f}},
1669 {{1.0f, 0.0f, 0.0f, 0.0f},
1670 {0.0f, -1.0f, 0.0f, 0.0f},
1671 {0.0f, 0.0f, -1.0f, 0.0f},
1672 {0.0f, 0.0f, 0.0f, 1.0f}},
1674 {{-1.0f, 0.0f, 0.0f, 0.0f},
1675 {0.0f, -1.0f, 0.0f, 0.0f},
1676 {0.0f, 0.0f, 1.0f, 0.0f},
1677 {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(_num)
struct Depsgraph Depsgraph
#define V3D_HIDE_OVERLAYS
struct GPUFrameBuffer GPUFrameBuffer
struct GPUShader GPUShader
struct GPUTexture GPUTexture
struct GPUVertBuf GPUVertBuf
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
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
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)
void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *camera, bool minimal)
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_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_cryptomatte_object_curves_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob)
void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_material_bind_resources(DRWShadingGroup *shgrp, struct GPUMaterial *gpumat, EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, const int *ssr_id, const float *refract_depth, const float alpha_clip_threshold, bool use_ssrefraction, bool use_alpha_blend)
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)
void eevee_shader_extra_exit(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)
GPUShader * eevee_shaders_sh_create_helper(const char *name, const char *vert_name, const char *frag_name, const char *defines, bool use_layered_rendering)
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_bloom_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct EEVEE_HairMotionData EEVEE_HairMotionData
void eevee_shader_material_create_info_amend(GPUMaterial *gpumat, GPUCodegenOutput *codegen, char *frag, char *vert, char *geom, char *defines)
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_cryptomatte_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob)
void EEVEE_subsurface_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
EEVEE_GeometryMotionData * EEVEE_motion_blur_geometry_data_get(EEVEE_ObjectMotionData *mb_data)
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_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
void eevee_shader_extra_init(void)
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)
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)
uint EEVEE_renderpasses_aov_hash(const ViewLayerAOV *aov)
void EEVEE_cryptomatte_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_motion_hair_step_free(EEVEE_HairMotionStepData *step_data)
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)
struct EEVEE_HairMotionStepData EEVEE_HairMotionStepData
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_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)
EEVEE_HairMotionData * EEVEE_motion_blur_curves_data_get(EEVEE_ObjectMotionData *mb_data)
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)
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
EEVEE_HairMotionData * EEVEE_motion_blur_hair_data_get(EEVEE_ObjectMotionData *mb_data, Object *ob)
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)
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)
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_object_curves_cache_populate(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, Object *ob, bool *cast_shadow)
void EEVEE_temporal_sampling_offset_calc(const double ht_point[2], float filter_size, float r_offset[2])
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)
EEVEE_ObjectMotionData * EEVEE_motion_blur_object_data_get(EEVEE_MotionBlurData *mb, Object *ob, bool is_psys)
void EEVEE_motion_blur_curves_cache_populate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *ob)
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)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
static void update(bNodeTree *ntree)
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]
EEVEE_HairMotionStepData step_data[2]
struct EEVEE_HairMotionData::@209 psys[0]
struct GPUTexture * hair_pos_tx
struct GPUVertBuf * hair_pos
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_LightsInfo::@207 shcaster_aabb
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 GHash * hair_motion_step_cache[2]
struct EEVEE_MotionBlurData::@208 camera[3]
struct GHash * position_vbo_cache[2]
DRWShadingGroup * hair_grp
EEVEE_LightProbeVisTest * test_data
EEVEE_GeometryMotionData * geometry_data
EEVEE_HairMotionData * hair_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 EEVEE_ViewLayerData::@210 renderpass_ubo
struct GPUUniformBuf * spec_color
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