Blender
V3.3
|
#include "BLI_sys_types.h"
Go to the source code of this file.
Definition at line 1359 of file eevee_lightcache.c.
References BLI_assert, BLI_thread_is_main(), EEVEE_LightBake::bounce_curr, EEVEE_LightBake::bounce_len, EEVEE_LightBake::cube, LightCache::cube_data, EEVEE_LightBake::cube_len, EEVEE_LightBake::cube_offset, EEVEE_LightBake::cube_prb, DEG_evaluate_on_framechange(), DEG_get_evaluated_view_layer(), DEG_graph_relations_update(), EEVEE_LightBake::delay, depsgraph, EEVEE_LightBake::depsgraph, EEVEE_LightBake::do_update, eevee_lightbake_context_disable(), eevee_lightbake_context_enable(), eevee_lightbake_count_probes(), eevee_lightbake_create_render_target(), eevee_lightbake_create_resources(), eevee_lightbake_delete_resources(), eevee_lightbake_gather_probes(), eevee_lightbake_readback_irradiance(), eevee_lightbake_readback_reflections(), eevee_lightbake_render_grid_sample(), eevee_lightbake_render_probe_sample(), eevee_lightbake_render_world_sample(), EEVEE_lightbake_update(), LightCache::flag, EEVEE_LightBake::frame, G, EEVEE_LightBake::gl_context, EEVEE_LightBake::grid, EEVEE_LightBake::grid_curr, LightCache::grid_data, EEVEE_LightBake::grid_len, EEVEE_LightBake::grid_prb, LightProbe::grid_resolution_x, LightProbe::grid_resolution_y, LightProbe::grid_resolution_z, EEVEE_LightBake::grid_sample, EEVEE_LightBake::grid_sample_len, EEVEE_LightBake::lcache, lightbake_do_sample(), LIGHTCACHE_BAKED, LIGHTCACHE_BAKING, LIGHTCACHE_INVALID, LIGHTCACHE_UPDATE_CUBE, LIGHTCACHE_UPDATE_GRID, LIGHTCACHE_UPDATE_WORLD, NULL, PIL_sleep_ms(), EEVEE_LightBake::probe, EEVEE_LightBake::progress, EEVEE_LightBake::rt_res, EEVEE_LightBake::stop, and EEVEE_LightBake::view_layer.
Referenced by EEVEE_lightbake_job_create(), and light_cache_bake_exec().
struct wmJob* EEVEE_lightbake_job_create | ( | struct wmWindowManager * | wm, |
struct wmWindow * | win, | ||
struct Main * | bmain, | ||
struct ViewLayer * | view_layer, | ||
struct Scene * | scene, | ||
int | delay, | ||
int | frame | ||
) |
Light Bake.
Definition at line 724 of file eevee_lightcache.c.
References BLI_mutex_alloc(), BLI_mutex_lock(), BLI_mutex_unlock(), EEVEE_LightBake::bmain, DAG_EVAL_RENDER, DEG_graph_new(), EEVEE_LightBake::delay, EEVEE_LightBake::depsgraph, EEVEE_lightbake_job(), EEVEE_lightbake_job_data_alloc(), EEVEE_lightbake_job_data_free(), EEVEE_lightbake_update(), EEVEE_LightBake::frame, G, EEVEE_LightBake::gl_context, GPU_use_main_context_workaround(), MEM_callocN, EEVEE_LightBake::mutex, NA_EDITED, NC_SCENE, NULL, EEVEE_LightBake::own_resources, scene, EEVEE_LightBake::scene, EEVEE_LightBake::stop, EEVEE_LightBake::view_layer_input, WM_JOB_EXCL_RENDER, WM_JOB_PRIORITY, WM_JOB_PROGRESS, WM_JOB_TYPE_LIGHT_BAKE, WM_JOB_TYPE_RENDER, WM_jobs_callbacks(), WM_jobs_customdata_get(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_test(), WM_jobs_timer(), WM_opengl_context_create(), and wm_window_reset_drawable().
Referenced by light_cache_bake_invoke().
void* EEVEE_lightbake_job_data_alloc | ( | struct Main * | bmain, |
struct ViewLayer * | view_layer, | ||
struct Scene * | scene, | ||
bool | run_as_job, | ||
int | frame | ||
) |
MUST run on the main thread.
Definition at line 794 of file eevee_lightcache.c.
References BLI_assert, BLI_mutex_alloc(), BLI_thread_is_main(), EEVEE_LightBake::bmain, DAG_EVAL_RENDER, DEG_graph_new(), EEVEE_LightBake::depsgraph, EEVEE_LightBake::frame, EEVEE_LightBake::gl_context, GPU_use_main_context_workaround(), MEM_callocN, EEVEE_LightBake::mutex, EEVEE_LightBake::own_light_cache, EEVEE_LightBake::own_resources, scene, EEVEE_LightBake::scene, EEVEE_LightBake::view_layer_input, WM_opengl_context_create(), and wm_window_reset_drawable().
Referenced by EEVEE_lightbake_job_create(), and light_cache_bake_exec().
Definition at line 821 of file eevee_lightcache.c.
References BLI_mutex_free(), EEVEE_LightBake::cube_prb, DEG_graph_free(), EEVEE_LightBake::depsgraph, EEVEE_LightBake::grid_prb, MEM_freeN, MEM_SAFE_FREE, and EEVEE_LightBake::mutex.
Referenced by EEVEE_lightbake_job_create(), and light_cache_bake_exec().
Definition at line 1320 of file eevee_lightcache.c.
References DEG_id_tag_update(), Scene::eevee, EEVEE_lightcache_free(), EEVEE_lightcache_info_update(), Scene::id, ID_RECALC_COPY_ON_WRITE, EEVEE_LightBake::lcache, SceneEEVEE::light_cache_data, NULL, EEVEE_LightBake::own_light_cache, and EEVEE_LightBake::scene.
Referenced by EEVEE_lightbake_job(), and EEVEE_lightbake_job_create().
void EEVEE_lightbake_update_world_quick | ( | struct EEVEE_ViewLayerData * | sldata, |
struct EEVEE_Data * | vedata, | ||
const Scene * | scene | ||
) |
This is to update the world irradiance and reflection contribution from within the viewport drawing (does not have the overhead of a full light cache rebuild.)
Definition at line 1468 of file eevee_lightcache.c.
References blender::math::clamp(), EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, LightCache::cube_len, Scene::eevee, EEVEE_lightbake_cache_init(), eevee_lightbake_create_render_target(), eevee_lightbake_delete_resources(), EEVEE_lightbake_filter_diffuse(), EEVEE_lightbake_filter_glossy(), EEVEE_lightbake_render_world(), EEVEE_RAY_DIFFUSE, EEVEE_RAY_GLOSSY, LightCache::flag, EEVEE_StorageList::g_data, SceneEEVEE::gi_cubemap_resolution, SceneEEVEE::gi_filter_quality, SceneEEVEE::gi_glossy_clamp, GPU_uniformbuf_update(), LightCache::grid_len, EEVEE_PrivateData::light_cache, LIGHTCACHE_CUBE_READY, LIGHTCACHE_GRID_READY, LIGHTCACHE_UPDATE_WORLD, max_ii(), LightCache::mips_len, EEVEE_CommonUniformBuffer::ray_depth, EEVEE_CommonUniformBuffer::ray_type, EEVEE_LightBake::resource_only, EEVEE_LightBake::rt_color, EEVEE_LightBake::rt_depth, EEVEE_LightBake::rt_fb, scene, EEVEE_Data::stl, and EEVEE_LightBake::store_fb.
Referenced by EEVEE_lightprobes_refresh().
void EEVEE_lightcache_blend_read_data | ( | struct BlendDataReader * | reader, |
struct LightCache * | cache | ||
) |
Definition at line 566 of file eevee_lightcache.c.
References BLO_read_data_address, LightCache::cube_data, LightCache::cube_mips, LightCache::cube_tx, direct_link_lightcache_texture(), LightCache::flag, LightCache::grid_data, LightCache::grid_tx, LIGHTCACHE_NOT_USABLE, and LightCache::mips_len.
Referenced by scene_blend_read_data().
void EEVEE_lightcache_blend_write | ( | struct BlendWriter * | writer, |
struct LightCache * | cache | ||
) |
Definition at line 526 of file eevee_lightcache.c.
References BLO_write_struct_array, LightCache::cube_data, LightCache::cube_len, LightCache::cube_mips, LightCache::cube_tx, LightCache::grid_data, LightCache::grid_len, LightCache::grid_tx, LightCache::mips_len, and write_lightcache_texture().
Referenced by scene_blend_write().
struct LightCache* EEVEE_lightcache_create | ( | int | grid_len, |
int | cube_len, | ||
int | cube_size, | ||
int | vis_size, | ||
const int | irr_size[3] | ||
) |
Light Cache.
Definition at line 324 of file eevee_lightcache.c.
References LightCache::cube_data, LightCache::cube_mips, LightCache::cube_tx, DRW_TEX_FILTER, DRW_TEX_MIPMAP, DRW_texture_create_2d_array(), DRW_texture_create_cube_array(), LightCache::flag, GPU_R11F_G11F_B10F, GPU_texture_get_mipmap_size(), LightCache::grid_data, LightCache::grid_tx, IRRADIANCE_FORMAT, LIGHTCACHE_INVALID, LIGHTCACHE_STATIC_VERSION, LIGHTCACHE_TYPE_STATIC, LIGHTCACHE_UPDATE_CUBE, LIGHTCACHE_UPDATE_GRID, LIGHTCACHE_UPDATE_WORLD, log2_floor_u(), MEM_callocN, MIN_CUBE_LOD_LEVEL, LightCache::mips_len, NULL, LightCache::ref_res, LightCacheTexture::tex, LightCacheTexture::tex_size, LightCache::type, LightCache::version, and LightCache::vis_res.
Referenced by eevee_lightbake_create_resources(), EEVEE_lightprobes_init(), and EEVEE_lookdev_cache_init().
void EEVEE_lightcache_free | ( | struct LightCache * | lcache | ) |
Definition at line 488 of file eevee_lightcache.c.
References LightCache::cube_data, LightCache::cube_mips, LightCache::cube_tx, LightCacheTexture::data, DRW_TEXTURE_FREE_SAFE, LightCache::grid_data, LightCache::grid_tx, MEM_freeN, MEM_SAFE_FREE, LightCache::mips_len, and LightCacheTexture::tex.
Referenced by EEVEE_lightbake_update(), EEVEE_view_layer_data_free(), light_cache_free_exec(), and scene_free_data().
void EEVEE_lightcache_info_update | ( | struct SceneEEVEE * | eevee | ) |
Definition at line 220 of file eevee_lightcache.c.
References BLI_snprintf(), BLI_str_format_byte_unit(), BLI_strncpy(), LightCache::cube_len, LightCache::cube_tx, eevee_lightcache_can_be_saved(), eevee_lightcache_irradiance_sample_count(), eevee_lightcache_memsize_get(), eevee_lightcache_version_check(), LightCache::flag, GPU_max_texture_layers(), SceneEEVEE::light_cache_data, SceneEEVEE::light_cache_info, LIGHTCACHE_BAKING, LIGHTCACHE_INVALID, NULL, LightCacheTexture::tex_size, and TIP_.
Referenced by EEVEE_lightbake_update(), light_cache_free_exec(), and scene_blend_read_data().
bool EEVEE_lightcache_load | ( | struct LightCache * | lcache | ) |
Definition at line 440 of file eevee_lightcache.c.
References eevee_lightcache_static_load(), eevee_lightcache_version_check(), LightCache::flag, LIGHTCACHE_INVALID, LIGHTCACHE_NOT_USABLE, LIGHTCACHE_TYPE_STATIC, NULL, and LightCache::type.
Referenced by eevee_lightbake_create_resources(), and EEVEE_lightprobes_init().