|
Blender V4.3
|
#include <eevee_light.hh>
Public Member Functions | |
| LightModule (Instance &inst) | |
| template<typename PassType > | |
| void | bind_resources (PassType &pass) |
LightModule | |
| ~LightModule () | |
| void | begin_sync () |
| void | sync_light (const Object *ob, ObjectHandle &handle) |
| void | end_sync () |
| void | set_view (View &view, const int2 extent) |
| void | debug_draw (View &view, GPUFrameBuffer *view_fb) |
The light module manages light data buffers and light culling system.
Definition at line 113 of file eevee_light.hh.
|
inline |
Definition at line 171 of file eevee_light.hh.
| blender::eevee::LightModule::~LightModule | ( | ) |
Definition at line 338 of file eevee_light.cc.
References blender::eevee::Instance::shadows.
| void blender::eevee::LightModule::begin_sync | ( | ) |
Definition at line 346 of file eevee_light.cc.
References blender::assign_if_different(), Light::b, DNA_default_table, Scene::eevee, ELEM, Light::energy, Light::g, blender::eevee::World::has_volume_absorption(), blender::MatBase< float, 4, 4 >::identity(), LA_SHADOW, LA_SHADOW_JITTER, LA_SUN, blender::eevee::LIGHT_SUN, blender::eevee::LIGHT_SUN_ORTHO, SceneEEVEE::light_threshold, max_ff(), Light::mode, Light::r, blender::eevee::Instance::scene, SET_FLAG_FROM_TEST, Light::shadow_filter_radius, Light::shadow_jitter_overblur, Light::shadow_maximum_resolution, blender::eevee::Instance::shadows, blender::eevee::World::sun_angle(), Light::sun_angle, blender::eevee::World::sun_shadow_filter_radius(), blender::eevee::World::sun_shadow_jitter_overblur(), blender::eevee::World::sun_shadow_max_resolution(), blender::eevee::World::sun_threshold(), Light::type, blender::eevee::Instance::use_scene_lights(), blender::eevee::World::use_sun_shadow(), blender::eevee::World::use_sun_shadow_jitter(), and blender::eevee::Instance::world.
Referenced by blender::eevee::Instance::begin_sync().
|
inline |
Definition at line 185 of file eevee_light.hh.
References LIGHT_BUF_SLOT, LIGHT_CULL_BUF_SLOT, LIGHT_TILE_BUF_SLOT, and LIGHT_ZBIN_BUF_SLOT.
| void blender::eevee::LightModule::debug_draw | ( | View & | view, |
| GPUFrameBuffer * | view_fb ) |
Definition at line 610 of file eevee_light.cc.
References blender::eevee::DEBUG_LIGHT_CULLING, blender::eevee::Instance::debug_mode, GPU_framebuffer_bind(), blender::eevee::Instance::hiz_buffer, blender::eevee::Instance::info_append(), blender::eevee::Instance::manager, blender::draw::Manager::submit(), and blender::eevee::HiZBuffer::update().
Referenced by blender::eevee::ShadingView::render().
| void blender::eevee::LightModule::end_sync | ( | ) |
Definition at line 418 of file eevee_light.cc.
References ceil_to_multiple_u(), CULLING_MAX_ITEM, blender::math::divide_ceil(), divide_ceil_u(), blender::eevee::Instance::film, blender::eevee::Instance::info_append_i18n(), blender::eevee::Instance::is_baking(), blender::eevee::is_sun_light(), blender::eevee::LightCullingData::items_count, LIGHT_CHUNK, blender::eevee::LightCullingData::local_lights_len, blender::math::max(), max_ii(), min_ii(), blender::eevee::SphereProbeModule::probe_render_extent(), blender::draw::detail::StorageCommon< T, len, device_only >::push_update(), blender::eevee::Film::render_extent_get(), blender::draw::StorageArrayBuffer< T, len, device_only >::resize(), blender::eevee::Instance::sphere_probes, blender::eevee::LightCullingData::sun_lights_len, blender::eevee::LightCullingData::tile_size, blender::eevee::LightCullingData::tile_word_len, blender::eevee::LightCullingData::tile_x_len, and blender::eevee::LightCullingData::tile_y_len.
Referenced by blender::eevee::Instance::end_sync().
Update acceleration structure for the given view.
Definition at line 594 of file eevee_light.cc.
References CULLING_ZBIN_COUNT, fabsf, blender::eevee::Instance::manager, blender::draw::detail::StorageCommon< T, len, device_only >::push_update(), blender::draw::Manager::submit(), blender::eevee::LightCullingData::tile_size, blender::eevee::LightCullingData::tile_to_uv_fac, blender::eevee::LightCullingData::view_is_flipped, blender::eevee::LightCullingData::visible_count, blender::eevee::LightCullingData::zbin_bias, and blender::eevee::LightCullingData::zbin_scale.
Referenced by blender::eevee::DeferredProbePipeline::render(), blender::eevee::PlanarProbePipeline::render(), and blender::eevee::ShadingView::render().
| void blender::eevee::LightModule::sync_light | ( | const Object * | ob, |
| ObjectHandle & | handle ) |
Definition at line 390 of file eevee_light.cc.
References Object::data, int, blender::eevee::is_sun_light(), LA_SUN, Object::light_linking, blender::eevee::Instance::shadows, and Object::visibility_flag.
Referenced by blender::eevee::Instance::object_sync().