Blender
V3.3
|
#include "DRW_render.h"
#include "BLI_rand.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "DNA_image_types.h"
#include "DNA_lightprobe_types.h"
#include "DNA_texture_types.h"
#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "BKE_collection.h"
#include "BKE_object.h"
#include "MEM_guardedalloc.h"
#include "GPU_capabilities.h"
#include "GPU_material.h"
#include "GPU_texture.h"
#include "GPU_uniform_buffer.h"
#include "DEG_depsgraph_query.h"
#include "eevee_lightcache.h"
#include "eevee_private.h"
#include "WM_api.h"
#include "WM_types.h"
Go to the source code of this file.
Classes | |
struct | EEVEE_BakeRenderData |
Variables | |
struct { | |
struct GPUTexture * planar_pool_placeholder | |
struct GPUTexture * depth_placeholder | |
struct GPUTexture * depth_array_placeholder | |
struct GPUVertFormat * format_probe_display_planar | |
} | e_data = {NULL} |
typedef struct EEVEE_BakeRenderData EEVEE_BakeRenderData |
Definition at line 1140 of file eevee_lightprobes.c.
References copy_v2_v2(), DRW_draw_pass(), DRW_viewport_size_get(), floorf, EEVEE_StorageList::g_data, invert_v2(), min_ff(), EEVEE_PrivateData::planar_texel_size, EEVEE_PassList::probe_planar_downsample_ps, and size().
Referenced by EEVEE_lightbake_filter_planar().
void EEVEE_lightbake_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
GPUTexture * | rt_color, | ||
GPUTexture * | rt_depth | ||
) |
Only initialize the passes useful for rendering the light cache.
Definition at line 190 of file eevee_lightprobes.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_call_instances(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, EEVEE_shaders_probe_filter_diffuse_sh_get(), EEVEE_shaders_probe_filter_glossy_sh_get(), EEVEE_shaders_probe_filter_visibility_sh_get(), EEVEE_shaders_probe_grid_fill_sh_get(), EEVEE_LightProbesInfo::far_clip, EEVEE_LightProbesInfo::firefly_fac, EEVEE_StorageList::g_data, GPUBatch, LightCache::grid_tx, EEVEE_LightProbesInfo::intensity_fac, EEVEE_LightProbesInfo::layer, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, EEVEE_LightProbesInfo::near_clip, NULL, EEVEE_LightProbesInfo::padding_size, EEVEE_PassList::probe_diffuse_compute, EEVEE_PassList::probe_glossy_compute, EEVEE_PassList::probe_grid_fill, EEVEE_PassList::probe_visibility_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_LightProbesInfo::roughness, EEVEE_LightProbesInfo::samples_len, EEVEE_LightProbesInfo::shres, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_LightProbesInfo::texel_size, EEVEE_LightProbesInfo::visibility_blur, and EEVEE_LightProbesInfo::visibility_range.
Referenced by eevee_lightbake_cache_create(), and EEVEE_lightbake_update_world_quick().
void EEVEE_lightbake_filter_diffuse | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUTexture * | rt_color, | ||
struct GPUFrameBuffer * | fb, | ||
int | grid_offset, | ||
float | intensity | ||
) |
Diffuse filter rt_color
to light_cache->grid_tx.tex
at index grid_offset
.
Definition at line 1050 of file eevee_lightprobes.c.
References DRW_draw_pass(), EEVEE_downsample_cube_buffer(), fb(), float(), EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_texture_width(), LightCache::grid_tx, EEVEE_LightProbesInfo::intensity_fac, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, log(), log2_floor_u(), EEVEE_PassList::probe_diffuse_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_LightProbesInfo::samples_len, EEVEE_LightProbesInfo::shres, size(), square_f(), EEVEE_Data::stl, LightCacheTexture::tex, x, and y.
Referenced by eevee_lightbake_render_grid_sample(), eevee_lightbake_render_world_sample(), and EEVEE_lightbake_update_world_quick().
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 | ||
) |
Glossy filter rt_color
to light_cache->cube_tx.tex
at index probe_idx
.
Definition at line 962 of file eevee_lightprobes.c.
References CLAMP, CLAMP_MIN, LightCache::cube_tx, DRW_draw_pass(), EEVEE_downsample_cube_buffer(), fb(), EEVEE_LightProbesInfo::firefly_fac, float(), EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_texture_width(), EEVEE_LightProbesInfo::intensity_fac, EEVEE_LightProbesInfo::layer, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, log(), log2_floor_u(), EEVEE_LightProbesInfo::padding_size, EEVEE_PassList::probe_glossy_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_LightProbesInfo::roughness, EEVEE_LightProbesInfo::samples_len, square_f(), EEVEE_Data::stl, LightCacheTexture::tex, and EEVEE_LightProbesInfo::texel_size.
Referenced by eevee_lightbake_render_probe_sample(), eevee_lightbake_render_world_sample(), and EEVEE_lightbake_update_world_quick().
|
static |
Definition at line 1158 of file eevee_lightprobes.c.
References downsample_planar(), DRW_stats_group_end(), DRW_stats_group_start(), EEVEE_Data::fbl, GPU_framebuffer_recursive_downsample(), MAX_SCREEN_BUFFERS_LOD_LEVEL, EEVEE_FramebufferList::planar_downsample_fb, and EEVEE_Data::txl.
Referenced by EEVEE_lightprobes_refresh_planar().
void EEVEE_lightbake_filter_visibility | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUTexture * | UNUSEDrt_depth, | ||
struct GPUFrameBuffer * | fb, | ||
int | grid_offset, | ||
float | clipsta, | ||
float | clipend, | ||
float | vis_range, | ||
float | vis_blur, | ||
int | vis_size | ||
) |
Definition at line 1102 of file eevee_lightprobes.c.
References DRW_draw_pass(), EEVEE_LightProbesInfo::far_clip, fb(), float(), EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_texture_height(), GPU_texture_width(), LightCache::grid_tx, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::near_clip, EEVEE_PassList::probe_visibility_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_LightProbesInfo::samples_len, EEVEE_LightProbesInfo::shres, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_LightProbesInfo::texel_size, EEVEE_LightProbesInfo::visibility_blur, EEVEE_LightProbesInfo::visibility_range, x, and y.
Referenced by eevee_lightbake_render_grid_sample().
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 | ||
) |
Render the scene to the probe_rt
texture.
Definition at line 858 of file eevee_lightprobes.c.
References lightbake_render_scene_face(), pos, render_cubemap(), and EEVEE_BakeRenderData::vedata.
Referenced by eevee_lightbake_render_grid_sample(), and eevee_lightbake_render_probe_sample().
|
static |
Definition at line 942 of file eevee_lightprobes.c.
References lightbake_render_scene_reflected(), EEVEE_LightProbesInfo::num_planar, EEVEE_LightProbesInfo::planar_data, EEVEE_ViewLayerData::probes, render_reflections(), and EEVEE_BakeRenderData::vedata.
Referenced by EEVEE_lightprobes_refresh_planar().
void EEVEE_lightbake_render_world | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata, | ||
struct GPUFrameBuffer * | face_fb[6] | ||
) |
Definition at line 824 of file eevee_lightprobes.c.
References lightbake_render_world_face(), render_cubemap(), and EEVEE_BakeRenderData::vedata.
Referenced by eevee_lightbake_render_world_sample(), and EEVEE_lightbake_update_world_quick().
void EEVEE_lightprobes_cache_add | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | ob | ||
) |
Definition at line 427 of file eevee_lightprobes.c.
References Object::data, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_buffer_add_entry, EEVEE_lightprobe_data_ensure(), eevee_lightprobes_culling_test(), EEVEE_lightprobes_planar_data_from_object(), EEVEE_PROBE_MAX, LightProbe::flag, EEVEE_StorageList::g_data, if(), LIGHTPROBE_FLAG_SHOW_DATA, LIGHTPROBE_TYPE_CUBE, LIGHTPROBE_TYPE_GRID, LIGHTPROBE_TYPE_PLANAR, MAX_PLANAR, EEVEE_LightProbeEngineData::need_update, EEVEE_LightProbesInfo::num_cube, EEVEE_LightProbesInfo::num_grid, EEVEE_LightProbesInfo::num_planar, Object::obmat, EEVEE_LightProbesInfo::planar_data, EEVEE_PrivateData::planar_display_shgrp, EEVEE_LightProbesInfo::planar_vis_tests, EEVEE_ViewLayerData::probes, EEVEE_Data::stl, and LightProbe::type.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
void EEVEE_lightprobes_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 674 of file eevee_lightprobes.c.
References BLI_assert, EEVEE_LightProbesInfo::cache_num_planar, EEVEE_ViewLayerData::common_data, LightCache::cube_len, DEG_get_evaluated_scene(), DEG_get_input_scene(), DRWContextState::depsgraph, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float(), DRW_shgroup_uniform_texture_ref(), DRW_state_is_image_render(), DRW_state_is_opengl_render(), DRW_STATE_WRITE_COLOR, DRW_TEXTURE_FREE_SAFE, Scene::eevee, eevee_lightprobes_extract_from_cache(), EEVEE_shaders_probe_planar_downsample_sh_get(), DRWContextState::evil_C, LightCache::flag, SceneEEVEE::flag, float(), EEVEE_StorageList::g_data, SceneEEVEE::gi_irradiance_smoothing, GPU_uniformbuf_update(), EEVEE_LightProbesInfo::grid_data, LightCache::grid_len, EEVEE_ViewLayerData::grid_ubo, EEVEE_PrivateData::light_cache, SceneEEVEE::light_cache_data, LIGHTCACHE_UPDATE_AUTO, LIGHTCACHE_UPDATE_CUBE, LIGHTCACHE_UPDATE_GRID, max_ii(), LightCache::mips_len, NC_LIGHTPROBE, NULL, EEVEE_LightProbesInfo::num_planar, EEVEE_TextureList::planar_depth, EEVEE_TextureList::planar_pool, planar_pool_ensure_alloc(), EEVEE_CommonUniformBuffer::prb_irradiance_smooth, EEVEE_CommonUniformBuffer::prb_irradiance_vis_size, EEVEE_CommonUniformBuffer::prb_lod_cube_max, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_LightProbesInfo::probe_data, EEVEE_PassList::probe_planar_downsample_ps, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, SCE_EEVEE_GI_AUTOBAKE, DRWContextState::scene, square_f(), EEVEE_CommonUniformBuffer::ssr_firefly_fac, EEVEE_Data::stl, EEVEE_Data::txl, LightCache::vis_res, and WM_event_add_notifier().
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_lightprobes_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 275 of file eevee_lightprobes.c.
References EEVEE_LightProbeVisTest::collection, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, LightGridCache::corner, LightCache::cube_len, LightCache::cube_tx, DEG_get_evaluated_scene(), DRWContextState::depsgraph, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_cache_fullscreen_quad_get(), DRW_cache_quad_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_call_buffer_instance(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_instance_format, DRW_shgroup_material_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_ivec3(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_STATE_CULL_BACK, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_LESS_EQUAL, DRW_state_draw_support(), DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_viewport_screenvecs_get(), e_data, Scene::eevee, EEVEE_lookdev_cache_init(), EEVEE_material_get(), EEVEE_shaders_probe_cube_display_sh_get(), EEVEE_shaders_probe_grid_display_sh_get(), EEVEE_shaders_probe_planar_display_sh_get(), EEVEE_world_default_get(), SceneEEVEE::flag, EEVEE_StorageList::g_data, SceneEEVEE::gi_cubemap_draw_size, SceneEEVEE::gi_irradiance_draw_size, LightCache::grid_data, LightCache::grid_len, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, LightGridCache::increment_x, LightGridCache::increment_y, LightGridCache::increment_z, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, LOOK_DEV_STUDIO_LIGHT_ENABLED, NULL, EEVEE_LightProbesInfo::num_planar, LightGridCache::offset, options, EEVEE_PrivateData::planar_display_shgrp, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_PassList::probe_background, EEVEE_PassList::probe_display, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_PrivateData::renderpass_ubo, LightGridCache::resolution, SCE_EEVEE_SHOW_CUBEMAPS, SCE_EEVEE_SHOW_IRRADIANCE, scene, DRWContextState::scene, EEVEE_ViewLayerData::shadow_ubo, state, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_Data::txl, DRWContextState::v3d, VAR_WORLD_BACKGROUND, VAR_WORLD_PROBE, EEVEE_LightProbesInfo::vis_data, world, and Scene::world.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_lightprobes_cube_data_from_object | ( | Object * | ob, |
EEVEE_LightProbe * | eprobe | ||
) |
Definition at line 527 of file eevee_lightprobes.c.
References LightProbeCache::attenuation_fac, LightProbe::attenuation_type, LightProbeCache::attenuation_type, LightProbeCache::attenuationmat, copy_v3_v3(), Object::data, LightProbe::distinf, LightProbe::distpar, LightProbe::falloff, LightProbe::flag, invert_m4(), LIGHTPROBE_FLAG_CUSTOM_PARALLAX, max_ff(), mul_m4_m4m4(), Object::obmat, LightProbe::parallax_type, LightProbeCache::parallax_type, LightProbeCache::parallaxmat, LightProbeCache::position, scale_m4_fl(), and unit_m4().
Referenced by eevee_lightbake_gather_probes().
Definition at line 394 of file eevee_lightprobes.c.
References BKE_boundbox_init_from_minmax(), BLI_assert, copy_m4_m4(), Object::data, LightProbe::distinf, DRW_culling_box_test(), DRW_view_default_get(), LIGHTPROBE_TYPE_CUBE, LIGHTPROBE_TYPE_GRID, LIGHTPROBE_TYPE_PLANAR, max, min, mul_m4_v3(), mul_v3_fl(), normalize_v3(), Object::obmat, LightProbe::type, v, and BoundBox::vec.
Referenced by EEVEE_lightprobes_cache_add().
|
static |
Definition at line 661 of file eevee_lightprobes.c.
References LightCache::cube_data, LightCache::cube_len, EEVEE_LightProbesInfo::grid_data, LightCache::grid_data, LightCache::grid_len, MAX_GRID, max_ii(), MAX_PROBE, min_ii(), and EEVEE_LightProbesInfo::probe_data.
Referenced by EEVEE_lightprobes_cache_finish().
Definition at line 1249 of file eevee_lightprobes.c.
References DRW_TEXTURE_FREE_SAFE, e_data, and MEM_SAFE_FREE.
Referenced by eevee_engine_free().
void EEVEE_lightprobes_grid_data_from_object | ( | Object * | ob, |
EEVEE_LightGrid * | egrid, | ||
int * | offset | ||
) |
Definition at line 469 of file eevee_lightprobes.c.
References add_v3_fl(), add_v3_v3(), LightGridCache::attenuation_bias, LightGridCache::attenuation_scale, copy_v3_fl(), copy_v3_fl3(), copy_v3_v3_int(), LightGridCache::corner, Object::data, LightProbe::distinf, LightProbe::falloff, LightProbe::grid_resolution_x, LightGridCache::increment_x, LightGridCache::increment_y, LightGridCache::increment_z, invert_m4_m4(), len_squared_v3(), LightGridCache::mat, max_ff(), max_fff(), mul_m4_v3(), mul_v3_v3fl(), Object::obmat, offset, LightGridCache::offset, LightGridCache::resolution, sqrtf, sub_v3_v3(), LightProbe::vis_bias, LightProbe::vis_bleedbias, LightGridCache::visibility_bias, LightGridCache::visibility_bleed, and LightGridCache::visibility_range.
Referenced by eevee_lightbake_gather_probes().
void EEVEE_lightprobes_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 124 of file eevee_lightprobes.c.
References EEVEE_PrivateData::bake_views, BLI_snprintf(), EEVEE_ViewLayerData::common_data, EEVEE_PrivateData::cube_views, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_TEX_FILTER, DRW_texture_create_2d_array(), e_data, Scene::eevee, EEVEE_lightcache_create(), EEVEE_lightcache_load(), EEVEE_shaders_material_shaders_init(), EEVEE_ViewLayerData::fallback_lightcache, LightCache::flag, EEVEE_StorageList::g_data, SceneEEVEE::gi_cubemap_resolution, SceneEEVEE::gi_visibility_resolution, GPU_RGBA8, GPU_uniformbuf_create, EEVEE_ViewLayerData::grid_ubo, EEVEE_Data::info, EEVEE_PrivateData::light_cache, SceneEEVEE::light_cache_data, LIGHTCACHE_NOT_USABLE, MAX_GRID, MAX_PLANAR, MAX_PROBE, MEM_callocN, NULL, EEVEE_ViewLayerData::planar_ubo, EEVEE_PrivateData::planar_views, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_CommonUniformBuffer::spec_toggle, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_CommonUniformBuffer::ssrefract_toggle, EEVEE_CommonUniformBuffer::sss_toggle, EEVEE_Data::stl, and EEVEE_PrivateData::world_views.
Referenced by eevee_engine_init(), eevee_lightbake_cache_create(), and EEVEE_render_modules_init().
Definition at line 49 of file eevee_lightprobes.c.
References BKE_collection_has_object_recursive(), EEVEE_LightProbeVisTest::cached, EEVEE_LightProbeVisTest::collection, EEVEE_LightProbeVisTest::invert, NULL, EEVEE_ObjectEngineData::ob, EEVEE_ObjectEngineData::ob_vis, EEVEE_ObjectEngineData::ob_vis_dirty, EEVEE_ObjectEngineData::test_data, and user_data.
Referenced by lightbake_planar_ensure_view().
void EEVEE_lightprobes_planar_data_from_object | ( | Object * | ob, |
EEVEE_PlanarReflection * | eplanar, | ||
EEVEE_LightProbeVisTest * | vis_test | ||
) |
Definition at line 559 of file eevee_lightprobes.c.
References EEVEE_PlanarReflection::attenuation_bias, EEVEE_PlanarReflection::attenuation_scale, EEVEE_LightProbeVisTest::cached, EEVEE_PlanarReflection::clip_edge_x_neg, EEVEE_PlanarReflection::clip_edge_x_pos, EEVEE_PlanarReflection::clip_edge_y_neg, EEVEE_PlanarReflection::clip_edge_y_pos, EEVEE_PlanarReflection::clip_vec_x, EEVEE_PlanarReflection::clip_vec_y, EEVEE_PlanarReflection::clipsta, LightProbe::clipsta, EEVEE_LightProbeVisTest::collection, copy_v3_v3(), cosf, Object::data, LightProbe::distinf, dot_v3v3(), EEVEE_PlanarReflection::facing_bias, EEVEE_PlanarReflection::facing_scale, LightProbe::falloff, LightProbe::flag, EEVEE_LightProbeVisTest::invert, invert_m4_m4(), LIGHTPROBE_FLAG_INVERT_GROUP, M_PI_2, max_ff(), min_ff(), EEVEE_PlanarReflection::mtx, mul_m4_m4m4(), mul_m4_v3(), normalize_m4_m4(), normalize_v3(), normalize_v3_v3(), Object::obmat, EEVEE_PlanarReflection::plane_equation, and LightProbe::visibility_grp.
Referenced by EEVEE_lightprobes_cache_add().
void EEVEE_lightprobes_refresh | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1237 of file eevee_lightprobes.c.
References DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), EEVEE_lightbake_update_world_quick(), LightCache::flag, EEVEE_StorageList::g_data, EEVEE_PrivateData::light_cache, LIGHTCACHE_BAKED, LIGHTCACHE_UPDATE_WORLD, and EEVEE_Data::stl.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_lightprobes_refresh_planar | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1175 of file eevee_lightprobes.c.
References EEVEE_LightProbeVisTest::collection, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, copy_v2_fl(), copy_v2_v2(), EEVEE_PrivateData::disable_ligthprobes, DRW_pass_sort_shgroup_z(), DRW_state_is_image_render(), EEVEE_lightbake_filter_planar(), eevee_lightbake_render_scene_to_planars(), EEVEE_RAY_GLOSSY, EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, GPU_uniformbuf_update(), EEVEE_CommonUniformBuffer::hiz_uv_scale, NULL, EEVEE_LightProbesInfo::num_planar, EEVEE_LightProbesInfo::planar_data, EEVEE_ViewLayerData::planar_ubo, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_CommonUniformBuffer::ray_depth, EEVEE_CommonUniformBuffer::ray_type, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_CommonUniformBuffer::ssrefract_toggle, EEVEE_CommonUniformBuffer::sss_toggle, EEVEE_Data::stl, EEVEE_PassList::transparent_pass, UNPACK2, EEVEE_PrivateData::valid_double_buffer, and EEVEE_LightProbesInfo::vis_data.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
|
static |
Definition at line 628 of file eevee_lightprobes.c.
References EEVEE_PlanarReflection::clipsta, copy_v4_v4(), DRW_view_clip_planes_set(), DRW_view_create(), DRW_view_persmat_get(), DRW_view_update(), DRW_view_viewmat_get(), DRW_view_winmat_get(), EEVEE_lightprobes_obj_visibility_cb(), EEVEE_PlanarReflection::mtx, mul_m4_m4m4(), NULL, and EEVEE_PlanarReflection::plane_equation.
Referenced by render_reflections().
|
static |
Definition at line 836 of file eevee_lightprobes.c.
References EEVEE_PassList::depth_ps, DRW_draw_pass(), EEVEE_shadows_draw(), g_data, GPU_framebuffer_bind(), EEVEE_PassList::material_ps, EEVEE_PassList::material_sss_ps, EEVEE_PassList::probe_background, EEVEE_PassList::transparent_pass, and user_data.
Referenced by EEVEE_lightbake_render_scene().
|
static |
Definition at line 874 of file eevee_lightprobes.c.
References EEVEE_PrivateData::background_alpha, EEVEE_PassList::depth_clip_ps, EEVEE_PassList::depth_refract_clip_ps, DRW_draw_pass(), DRW_pass_sort_shgroup_z(), DRW_state_is_image_render(), DRW_stats_group_end(), DRW_stats_group_start(), e_data, EEVEE_create_minmax_buffer(), EEVEE_occlusion_compute(), EEVEE_shadows_draw(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), EEVEE_PassList::material_ps, EEVEE_PassList::material_refract_ps, EEVEE_PassList::material_sss_ps, EEVEE_TextureList::planar_depth, EEVEE_TextureList::planar_pool, EEVEE_PrivateData::planar_views, EEVEE_LightProbesInfo::planar_vis_tests, EEVEE_FramebufferList::planarref_fb, EEVEE_PassList::probe_background, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_Data::stl, EEVEE_PassList::transparent_pass, EEVEE_Data::txl, user_data, and EEVEE_LightProbesInfo::vis_data.
Referenced by eevee_lightbake_render_scene_to_planars().
|
static |
Definition at line 812 of file eevee_lightprobes.c.
References DRW_draw_pass(), GPU_framebuffer_bind(), EEVEE_PassList::probe_background, and user_data.
Referenced by EEVEE_lightbake_render_world().
|
static |
Definition at line 76 of file eevee_lightprobes.c.
References DRW_TEX_FILTER, DRW_TEX_MIPMAP, DRW_texture_create_2d_array(), DRW_TEXTURE_FREE_SAFE, EEVEE_StorageList::effects, GPU_DEPTH_COMPONENT24, GPU_R11F_G11F_B10F, GPU_RGBA8, GPU_texture_height(), GPU_texture_width(), height, EEVEE_EffectsInfo::hiz_size, max_ii(), NULL, EEVEE_TextureList::planar_depth, EEVEE_TextureList::planar_pool, EEVEE_Data::stl, EEVEE_Data::txl, and width.
Referenced by EEVEE_lightprobes_cache_finish().
|
static |
Definition at line 749 of file eevee_lightprobes.c.
References EEVEE_PrivateData::bake_views, callback, cubefacemat, DRW_view_create(), DRW_view_create_sub(), DRW_view_default_get(), DRW_view_set_active(), DRW_view_update(), DRW_view_update_sub(), EEVEE_StorageList::g_data, mul_m4_m4m4(), negate_v3_v3(), NULL, perspective_m4(), pos, unit_m4(), user_data, and EEVEE_PrivateData::world_views.
Referenced by EEVEE_lightbake_render_scene(), and EEVEE_lightbake_render_world().
|
static |
Definition at line 793 of file eevee_lightprobes.c.
References callback, DRW_view_set_active(), EEVEE_StorageList::effects, EEVEE_StorageList::g_data, lightbake_planar_ensure_view(), EEVEE_PrivateData::planar_views, EEVEE_EffectsInfo::taa_view, and user_data.
Referenced by eevee_lightbake_render_scene_to_planars().
struct GPUTexture* depth_array_placeholder |
Definition at line 40 of file eevee_lightprobes.c.
struct GPUTexture* depth_placeholder |
Definition at line 39 of file eevee_lightprobes.c.
struct { ... } e_data |
struct GPUVertFormat* format_probe_display_planar |
Definition at line 42 of file eevee_lightprobes.c.
struct GPUTexture* planar_pool_placeholder |
Definition at line 38 of file eevee_lightprobes.c.