|
Blender V4.3
|
#include <eevee_lightprobe_volume.hh>
Public Member Functions | |
| VolumeProbeModule (Instance &inst) | |
| ~VolumeProbeModule () | |
| void | update_world_irradiance () |
| template<typename PassType > | |
| void | bind_resources (PassType &pass) |
Public Attributes | |
| IrradianceBake | bake |
Friends | |
| class | SphereProbeModule |
Interface | |
| void | init () |
| void | sync () |
| void | set_view (View &view) |
| void | viewport_draw (View &view, GPUFrameBuffer *view_fb) |
| Vector< IrradianceBrickPacked > | bricks_alloc (int brick_len) |
| void | bricks_free (Vector< IrradianceBrickPacked > &bricks) |
Runtime container of diffuse indirect lighting. Also have debug and baking components.
Definition at line 191 of file eevee_lightprobe_volume.hh.
|
inline |
Definition at line 231 of file eevee_lightprobe_volume.hh.
|
inline |
Definition at line 232 of file eevee_lightprobe_volume.hh.
|
inline |
Definition at line 249 of file eevee_lightprobe_volume.hh.
References IRRADIANCE_BRICK_BUF_SLOT, IRRADIANCE_GRID_BUF_SLOT, and VOLUME_PROBE_TEX_SLOT.
Referenced by blender::eevee::SphereProbeModule::begin_sync().
| Vector< IrradianceBrickPacked > blender::eevee::VolumeProbeModule::bricks_alloc | ( | int | brick_len | ) |
Definition at line 127 of file eevee_lightprobe_volume.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::as_mutable_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by set_view().
| void blender::eevee::VolumeProbeModule::bricks_free | ( | Vector< IrradianceBrickPacked > & | bricks | ) |
| void blender::eevee::VolumeProbeModule::init | ( | ) |
Definition at line 27 of file eevee_lightprobe_volume.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::assign_if_different(), blender::eevee::IrradianceBrick::atlas_coord, BLI_assert, blender::draw::Texture::clear(), blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), divide_ceil_u(), DRW_state_draw_support(), Scene::eevee, blender::draw::Texture::ensure_3d(), blender::draw::Texture::free(), SceneEEVEE::gi_irradiance_pool_size, GPU_RGBA16F, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, blender::eevee::Instance::info_append_i18n(), blender::eevee::irradiance_brick_pack(), IRRADIANCE_GRID_BRICK_SIZE, blender::draw::Texture::is_valid(), blender::eevee::Instance::light_probes, blender::math::reduce_mul(), blender::eevee::Instance::scene, and VOLUME_PROBE_FORMAT.
Referenced by blender::eevee::Instance::init(), and blender::eevee::Instance::init_light_bake().
| void blender::eevee::VolumeProbeModule::set_view | ( | View & | view | ) |
Definition at line 148 of file eevee_lightprobe_volume.cc.
References blender::draw::StorageVectorBuffer< T, len >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), b, LightProbeGridCacheFrame::baking, blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), bricks_alloc(), blender::draw::StorageVectorBuffer< T, len >::clear(), blender::math::divide_ceil(), blender::Vector< T, InlineBufferCapacity, Allocator >::end(), blender::draw::StorageVectorBuffer< T, len >::extend(), blender::math::from_location(), blender::math::from_scale(), grid_to_world(), blender::MatBase< float, 3, 4 >::identity(), blender::eevee::Instance::info_append_i18n(), blender::math::invert(), LightProbeGridCacheFrame::irradiance, IRRADIANCE_GRID_BRICK_SIZE, IRRADIANCE_GRID_MAX, LightProbeBakingData::L0, LightProbeIrradianceData::L0, blender::eevee::Instance::light_probes, blender::draw::detail::StorageCommon< T, len, device_only >::push_update(), blender::draw::detail::UniformCommon< T, len, device_only >::push_update(), blender::draw::StorageVectorBuffer< T, len >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), LightProbeGridCacheFrame::size, blender::math::transpose(), and blender::eevee::VolumeProbeData::world_to_grid_transposed.
Referenced by blender::eevee::VolumeModule::draw_compute(), blender::eevee::DeferredLayer::render(), blender::eevee::DeferredProbePipeline::render(), blender::eevee::ForwardPipeline::render(), and blender::eevee::PlanarProbePipeline::render().
| void blender::eevee::VolumeProbeModule::sync | ( | ) |
Definition at line 120 of file eevee_lightprobe_volume.cc.
References blender::eevee::Instance::is_baking().
Referenced by blender::eevee::Instance::begin_sync().
|
inline |
Definition at line 238 of file eevee_lightprobe_volume.hh.
| void blender::eevee::VolumeProbeModule::viewport_draw | ( | View & | view, |
| GPUFrameBuffer * | view_fb ) |
Definition at line 459 of file eevee_lightprobe_volume.cc.
Referenced by blender::eevee::ShadingView::render().
|
friend |
Definition at line 260 of file eevee_lightprobe_volume.hh.
| IrradianceBake blender::eevee::VolumeProbeModule::bake |
Definition at line 193 of file eevee_lightprobe_volume.hh.
Referenced by blender::eevee::ShadowModule::begin_sync(), blender::eevee::Instance::light_bake_irradiance(), blender::eevee::Camera::sync(), and blender::eevee::CapturePipeline::sync().