63 if (vis_in ==
false) {
73 return vis_in && oed->
ob_vis;
89 int screen_divider = 1;
104 if (num_planar_ref > 0) {
114 else if (num_planar_ref == 0) {
131 vedata->
info[0] =
'\0';
148 vedata->
info,
sizeof(vedata->
info),
"Error: LightCache cannot be loaded on this GPU");
152 #if defined(IRRADIANCE_SH_L2)
154 #elif defined(IRRADIANCE_HL2)
162 (
int[3]){grid_res, grid_res, 1});
184 if (!
e_data.planar_pool_placeholder) {
227 #ifdef IRRADIANCE_SH_L2
325 int cube_len = lcache->
cube_len - 1;
346 for (
int p = 1; p < lcache->
grid_len; p++, egrid++) {
376 {
"probe_id", DRW_ATTR_INT, 1},
377 {
"probe_mat", DRW_ATTR_FLOAT, 16},
390 stl->g_data->planar_display_shgrp =
NULL;
398 switch (probe->
type) {
404 const float min[3] = {-1.0f, -1.0f, -1.0f};
405 const float max[3] = {1.0f, 1.0f, 1.0f};
412 for (
int v = 0;
v < 8;
v++) {
435 printf(
"Too many probes in the view !!!\n");
485 float cell_dim[3], half_cell_dim[3];
564 float normat[4][4], imat[4][4];
574 imat[0][2] = -imat[0][2];
575 imat[1][2] = -imat[1][2];
576 imat[2][2] = -imat[2][2];
577 imat[3][2] = -imat[3][2];
590 float vec[3] = {0.0f, 0.0f, 0.0f};
617 float min_angle = 0.0f;
622 float max_dist = probe->
distinf;
632 float winmat[4][4], viewmat[4][4], persmat[4][4];
639 winmat[0][0] = -winmat[0][0];
640 winmat[1][0] = -winmat[1][0];
641 winmat[2][0] = -winmat[2][0];
642 winmat[3][0] = -winmat[3][0];
646 if (*r_planar_view ==
NULL) {
652 clip_plane[3] += eplanar->
clipsta;
759 float winmat[4][4], viewmat[4][4];
763 for (
int i = 0; i < 6; i++) {
769 if (views[i] ==
NULL) {
777 if (views[i] ==
NULL) {
787 for (
int i = 0; i < 6; i++) {
802 for (
int i = 0; i < ref_count; i++) {
806 for (
int i = 0; i < ref_count; i++) {
820 GPU_framebuffer_clear_depth(face_fb[face], 1.0f);
849 GPU_framebuffer_clear_depth(face_fb[face], 1.0f);
885 {GPU_ATTACHMENT_TEXTURE_LAYER(txl->planar_depth, layer),
886 GPU_ATTACHMENT_TEXTURE_LAYER(txl->planar_pool, layer)});
969 float filter_quality,
983 GPU_framebuffer_ensure_config(&
fb, {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_NONE});
991 for (
int i = 0; i < maxlevel + 1; i++) {
994 pinfo->
padding_size = (i == maxlevel) ? 0 : (
float)(1 << (maxlevel - i - 1));
996 pinfo->
layer = probe_idx * 6;
1031 CLAMP(filter_quality, 1.0f, 8.0f);
1035 pinfo->
firefly_fac = (firefly_fac > 0.0) ? firefly_fac : 1e16;
1037 GPU_framebuffer_ensure_config(&
fb,
1039 GPU_ATTACHMENT_NONE,
1040 GPU_ATTACHMENT_TEXTURE_MIP(light_cache->
cube_tx.
tex, i),
1067 #if defined(IRRADIANCE_SH_L2)
1068 int size[2] = {3, 3};
1069 #elif defined(IRRADIANCE_HL2)
1070 const int size[2] = {3, 2};
1075 int x =
size[0] * (grid_offset % cell_per_row);
1076 int y =
size[1] * (grid_offset / cell_per_row);
1078 #ifndef IRRADIANCE_SH_L2
1080 const float bias = 0.0f;
1089 GPU_framebuffer_ensure_config(&
fb, {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_NONE});
1094 GPU_framebuffer_ensure_config(
1095 &
fb, {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE_LAYER(light_cache->
grid_tx.
tex, 0)});
1118 pinfo->
shres = vis_size;
1127 int x = vis_size * (grid_offset % cell_per_row);
1128 int y = vis_size * ((grid_offset / cell_per_row) % cell_per_col);
1129 int layer = 1 + ((grid_offset / cell_per_row) / cell_per_col);
1131 GPU_framebuffer_ensure_config(
1132 &
fb, {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE_LAYER(light_cache->
grid_tx.
tex, layer)});
1147 for (
int i = 0; i < level - 1; i++) {
1166 {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->planar_pool)});
typedef float(TangentPoint)[2]
bool BKE_collection_has_object_recursive(struct Collection *collection, struct Object *ob)
General operations, lookup, etc. for blender objects.
void BKE_boundbox_init_from_minmax(struct BoundBox *bb, const float min[3], const float max[3])
MINLINE float max_fff(float a, float b, float c)
MINLINE float max_ff(float a, float b)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE float square_f(float a)
MINLINE unsigned int log2_floor_u(unsigned int x)
void perspective_m4(float mat[4][4], float left, float right, float bottom, float top, float nearClip, float farClip)
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
bool invert_m4(float R[4][4])
void unit_m4(float m[4][4])
bool invert_m4_m4(float R[4][4], const float A[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
void scale_m4_fl(float R[4][4], float scale)
void normalize_m4_m4(float R[4][4], const float M[4][4]) ATTR_NONNULL()
void copy_m4_m4(float m1[4][4], const float m2[4][4])
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE float len_squared_v3(const float v[3]) ATTR_WARN_UNUSED_RESULT
MINLINE void add_v3_fl(float r[3], float f)
MINLINE float normalize_v3(float r[3])
MINLINE void sub_v3_v3(float r[3], const float a[3])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void negate_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_v3_int(int r[3], const int a[3])
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
MINLINE float dot_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
MINLINE float normalize_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl(float r[3], float f)
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
MINLINE void add_v3_v3(float r[3], const float a[3])
MINLINE void invert_v2(float r[2])
MINLINE void copy_v2_fl(float r[2], float f)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
struct Scene * DEG_get_input_scene(const Depsgraph *graph)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ LIGHTCACHE_UPDATE_WORLD
@ LIGHTPROBE_FLAG_INVERT_GROUP
@ LIGHTPROBE_FLAG_SHOW_DATA
@ LIGHTPROBE_FLAG_CUSTOM_PARALLAX
@ SCE_EEVEE_SHOW_IRRADIANCE
@ SCE_EEVEE_SHOW_CUBEMAPS
#define DRW_shgroup_instance_format(format,...)
#define DRW_buffer_add_entry(buffer,...)
@ DRW_STATE_DEPTH_LESS_EQUAL
#define DRW_shgroup_uniform_block_ref(shgroup, name, ubo)
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_uniform_block(shgroup, name, ubo)
#define DRW_shgroup_call(shgroup, geom, ob)
#define DRW_TEXTURE_FREE_SAFE(tex)
struct GPUFrameBuffer GPUFrameBuffer
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
int GPU_texture_height(const GPUTexture *tex)
struct GPUTexture GPUTexture
int GPU_texture_width(const GPUTexture *tex)
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
ATTR_WARN_UNUSED_RESULT const BMVert * v
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
CCL_NAMESPACE_BEGIN struct Options options
DEGForeachIDComponentCallback callback
GPUBatch * DRW_cache_quad_get(void)
GPUBatch * DRW_cache_fullscreen_quad_get(void)
bool DRW_state_is_opengl_render(void)
bool DRW_state_draw_support(void)
const DRWContextState * DRW_context_state_get(void)
const float * DRW_viewport_size_get(void)
const float * DRW_viewport_screenvecs_get(void)
bool DRW_state_is_image_render(void)
DRWShadingGroup * DRW_shgroup_material_create(struct GPUMaterial *material, DRWPass *pass)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_view_persmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
const DRWView * DRW_view_default_get(void)
void DRW_shgroup_call_instances(DRWShadingGroup *shgroup, Object *ob, struct GPUBatch *geom, uint count)
void DRW_shgroup_uniform_vec3(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
DRWCallBuffer * DRW_shgroup_call_buffer_instance(DRWShadingGroup *shgroup, struct GPUVertFormat *format, GPUBatch *geom)
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *shgroup, Object *ob, uint tri_count)
void DRW_shgroup_uniform_ivec3(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
void DRW_view_winmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_pass_sort_shgroup_z(DRWPass *pass)
DRWView * DRW_view_create(const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4], DRWCallVisibilityFn *visibility_fn)
DRWView * DRW_view_create_sub(const DRWView *parent_view, const float viewmat[4][4], const float winmat[4][4])
void DRW_view_update(DRWView *view, const float viewmat[4][4], const float winmat[4][4], const float(*culling_viewmat)[4], const float(*culling_winmat)[4])
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_int(DRWShadingGroup *shgroup, const char *name, const int *value, int arraysize)
void DRW_view_clip_planes_set(DRWView *view, float(*planes)[4], int plane_len)
void DRW_shgroup_uniform_texture_ref(DRWShadingGroup *shgroup, const char *name, GPUTexture **tex)
void DRW_shgroup_uniform_float(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
void DRW_view_update_sub(DRWView *view, const float viewmat[4][4], const float winmat[4][4])
void DRW_view_viewmat_get(const DRWView *view, float mat[4][4], bool inverse)
void DRW_draw_pass(DRWPass *pass)
void DRW_view_set_active(const DRWView *view)
bool DRW_culling_box_test(const DRWView *view, const BoundBox *bbox)
void DRW_stats_group_start(const char *name)
void DRW_stats_group_end(void)
GPUTexture * DRW_texture_create_2d_array(int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
static struct @318 g_data
EEVEE_LightProbeEngineData * EEVEE_lightprobe_data_ensure(Object *ob)
void EEVEE_create_minmax_buffer(EEVEE_Data *vedata, GPUTexture *depth_src, int layer)
void EEVEE_downsample_cube_buffer(EEVEE_Data *vedata, GPUTexture *texture_src, int level)
LightCache * EEVEE_lightcache_create(const int grid_len, const int cube_len, const int cube_size, const int vis_size, const int irr_size[3])
bool EEVEE_lightcache_load(LightCache *lcache)
void EEVEE_lightbake_update_world_quick(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, const Scene *scene)
static void lightbake_render_scene_reflected(int layer, EEVEE_BakeRenderData *user_data)
void EEVEE_lightprobes_free(void)
void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, GPUTexture *rt_color, GPUTexture *rt_depth)
static void render_cubemap(void(*callback)(int face, EEVEE_BakeRenderData *user_data), EEVEE_BakeRenderData *user_data, const float pos[3], float near, float far, bool do_culling)
struct EEVEE_BakeRenderData EEVEE_BakeRenderData
void EEVEE_lightprobes_cube_data_from_object(Object *ob, EEVEE_LightProbe *eprobe)
void EEVEE_lightbake_render_world(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata, struct GPUFrameBuffer *face_fb[6])
bool EEVEE_lightprobes_obj_visibility_cb(bool vis_in, void *user_data)
void EEVEE_lightprobes_refresh(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
void EEVEE_lightprobes_planar_data_from_object(Object *ob, EEVEE_PlanarReflection *eplanar, EEVEE_LightProbeVisTest *vis_test)
void EEVEE_lightprobes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
static bool eevee_lightprobes_culling_test(Object *ob)
struct GPUVertFormat * format_probe_display_planar
struct GPUTexture * planar_pool_placeholder
static void render_reflections(void(*callback)(int face, EEVEE_BakeRenderData *user_data), EEVEE_BakeRenderData *user_data, EEVEE_PlanarReflection *planar_data, int ref_count)
static void eevee_lightprobes_extract_from_cache(EEVEE_LightProbesInfo *pinfo, LightCache *lcache)
void EEVEE_lightprobes_grid_data_from_object(Object *ob, EEVEE_LightGrid *egrid, int *offset)
static void EEVEE_lightbake_filter_planar(EEVEE_Data *vedata)
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)
static void lightbake_render_scene_face(int face, EEVEE_BakeRenderData *user_data)
void EEVEE_lightbake_filter_diffuse(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *rt_color, struct GPUFrameBuffer *fb, int grid_offset, float intensity)
void EEVEE_lightprobes_cache_add(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object *ob)
void EEVEE_lightprobes_refresh_planar(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUTexture * depth_placeholder
static void lightbake_planar_ensure_view(EEVEE_PlanarReflection *eplanar, const DRWView *main_view, DRWView **r_planar_view)
static struct @201 e_data
static void downsample_planar(void *vedata, int level)
void EEVEE_lightbake_filter_visibility(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, struct GPUTexture *UNUSED(rt_depth), struct GPUFrameBuffer *fb, int grid_offset, float clipsta, float clipend, float vis_range, float vis_blur, int vis_size)
static void lightbake_render_world_face(int face, EEVEE_BakeRenderData *user_data)
static void planar_pool_ensure_alloc(EEVEE_Data *vedata, int num_planar_ref)
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)
static void eevee_lightbake_render_scene_to_planars(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUTexture * depth_array_placeholder
void EEVEE_lookdev_cache_init(EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata, DRWPass *pass, EEVEE_LightProbesInfo *pinfo, DRWShadingGroup **r_shgrp)
void EEVEE_occlusion_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
struct GPUShader * EEVEE_shaders_probe_planar_display_sh_get(void)
#define MAX_SCREEN_BUFFERS_LOD_LEVEL
struct GPUShader * EEVEE_shaders_probe_grid_fill_sh_get(void)
#define LOOK_DEV_STUDIO_LIGHT_ENABLED(v3d)
World * EEVEE_world_default_get(void)
struct GPUShader * EEVEE_shaders_probe_filter_visibility_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_filter_diffuse_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_cube_display_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_planar_downsample_sh_get(void)
static const float cubefacemat[6][4][4]
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_probe_filter_glossy_sh_get(void)
struct GPUShader * EEVEE_shaders_probe_grid_display_sh_get(void)
void EEVEE_shaders_material_shaders_init(void)
void GPU_framebuffer_recursive_downsample(GPUFrameBuffer *gpu_fb, int max_lvl, void(*callback)(void *userData, int level), void *userData)
void GPU_framebuffer_viewport_reset(GPUFrameBuffer *gpu_fb)
void GPU_framebuffer_viewport_set(GPUFrameBuffer *gpu_fb, int x, int y, int width, int height)
BLI_INLINE float fb(float length, float L)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
void *(* MEM_callocN)(size_t len, const char *str)
ccl_device_inline float3 log(float3 v)
const struct bContext * evil_C
struct Depsgraph * depsgraph
EEVEE_ViewLayerData * sldata
struct GPUFrameBuffer ** face_fb
EEVEE_FramebufferList * fbl
EEVEE_EffectsFlag enabled_effects
struct DRWView * taa_view
struct GPUFrameBuffer * planar_downsample_fb
struct GPUFrameBuffer * planarref_fb
struct Collection * collection
EEVEE_LightProbeVisTest vis_data
EEVEE_LightProbeVisTest planar_vis_tests[MAX_PLANAR]
EEVEE_LightGrid grid_data[MAX_GRID]
EEVEE_LightProbe probe_data[MAX_PROBE]
EEVEE_PlanarReflection planar_data[MAX_PLANAR]
EEVEE_LightProbeVisTest * test_data
struct DRWPass * material_sss_ps
struct DRWPass * probe_planar_downsample_ps
struct DRWPass * transparent_pass
struct DRWPass * depth_clip_ps
struct DRWPass * depth_ps
struct DRWPass * material_refract_ps
struct DRWPass * probe_background
struct DRWPass * probe_diffuse_compute
struct DRWPass * material_ps
struct DRWPass * depth_refract_clip_ps
struct DRWPass * probe_display
struct DRWPass * probe_glossy_compute
struct DRWPass * probe_grid_fill
struct DRWPass * probe_visibility_compute
float planar_texel_size[2]
struct DRWView * bake_views[6]
struct GPUUniformBuf * renderpass_ubo
struct DRWView * cube_views[6]
struct DRWView * world_views[6]
struct LightCache * light_cache
struct DRWView * planar_views[MAX_PLANAR]
struct DRWCallBuffer * planar_display_shgrp
struct EEVEE_PrivateData * g_data
struct EEVEE_EffectsInfo * effects
struct GPUTexture * planar_depth
struct GPUTexture * planar_pool
struct EEVEE_CommonUniformBuffer common_data
struct GPUUniformBuf * combined
struct GPUUniformBuf * shadow_ubo
struct GPUUniformBuf * probe_ubo
struct GPUUniformBuf * grid_ubo
struct GPUUniformBuf * planar_ubo
struct EEVEE_ViewLayerData::@210 renderpass_ubo
struct LightCache * fallback_lightcache
struct GPUUniformBuf * common_ubo
struct GPUUniformBuf * light_ubo
struct EEVEE_LightProbesInfo * probes
LightGridCache * grid_data
LightProbeCache * cube_data
LightCacheTexture grid_tx
LightCacheTexture cube_tx
float attenuationmat[4][4]
struct Collection * visibility_grp
float gi_irradiance_smoothing
struct LightCache * light_cache_data
int gi_visibility_resolution
float gi_irradiance_draw_size
float gi_cubemap_draw_size
int gi_cubemap_resolution
void WM_event_add_notifier(const bContext *C, uint type, void *reference)