|
Blender V5.0
|
#include <eevee_volume.hh>
Public Member Functions | |
| VolumeModule (Instance &inst, VolumesInfoData &data) | |
| ~VolumeModule () | |
| bool | needs_shadow_tagging () const |
| bool | will_enable () const |
| bool | enabled () const |
| int3 | grid_size () |
| gpu::Batch * | unit_cube_batch_get () |
| void | init () |
| void | begin_sync () |
| void | world_sync (const WorldHandle &world_handle) |
| void | object_sync (const ObjectHandle &ob_handle) |
| void | end_sync () |
| void | draw_prepass (View &main_view) |
| void | draw_compute (View &main_view, int2 extent) |
| void | draw_resolve (View &view) |
Public Attributes | |
| struct { | |
| gpu::Texture * scattering_tx_ = nullptr | |
| gpu::Texture * transmittance_tx_ = nullptr | |
| } | result |
| struct { | |
| gpu::Texture * scattering_tx_ = nullptr | |
| gpu::Texture * extinction_tx_ = nullptr | |
| gpu::Texture * emission_tx_ = nullptr | |
| gpu::Texture * phase_tx_ = nullptr | |
| gpu::Texture * phase_weight_tx_ = nullptr | |
| gpu::Texture * occupancy_tx_ = nullptr | |
| } | properties |
| struct { | |
| gpu::Texture * occupancy_tx_ = nullptr | |
| gpu::Texture * hit_depth_tx_ = nullptr | |
| gpu::Texture * hit_count_tx_ = nullptr | |
| } | occupancy |
Definition at line 52 of file eevee_volume.hh.
|
inline |
Definition at line 123 of file eevee_volume.hh.
References data, and GPU_TEXTURE_USAGE_SHADER_READ.
|
inline |
Definition at line 131 of file eevee_volume.hh.
References GPU_BATCH_DISCARD_SAFE.
| void blender::eevee::VolumeModule::begin_sync | ( | ) |
Definition at line 72 of file eevee_volume.cc.
Definition at line 445 of file eevee_volume.cc.
References blender::draw::View::viewmat().
| void blender::eevee::VolumeModule::draw_prepass | ( | View & | main_view | ) |
Definition at line 329 of file eevee_volume.cc.
References blender::math::fract(), GPU_debug_group_begin(), GPU_debug_group_end(), blender::math::invert(), blender::draw::View::is_persp(), left, blender::math::min(), blender::math::projection::orthographic(), blender::math::projection::orthographic_infinite(), blender::math::projection::perspective(), blender::math::projection::perspective_infinite(), projmat_dimensions(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::eevee::SAMPLING_VOLUME_U, top, blender::math::projection::translate(), blender::draw::View::viewinv(), blender::draw::View::viewmat(), blender::draw::View::winmat(), and blender::VecBase< T, Size >::xy().
| void blender::eevee::VolumeModule::draw_resolve | ( | View & | view | ) |
Definition at line 477 of file eevee_volume.cc.
References GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, and view.
|
inline |
Definition at line 145 of file eevee_volume.hh.
| void blender::eevee::VolumeModule::end_sync | ( | ) |
Definition at line 108 of file eevee_volume.cc.
References blender::assign_if_different(), clamp_i(), blender::math::divide_ceil(), divide_ceil_u(), DRW_STATE_BLEND_CUSTOM, DRW_STATE_WRITE_COLOR, Scene::eevee, exp2, SceneEEVEE::flag, GPU_ATTACHMENT_TEXTURE, GPU_BARRIER_SHADER_IMAGE_ACCESS, GPU_BARRIER_TEXTURE_FETCH, GPU_PRIM_TRIS, GPU_SAMPLER_EXTEND_MODE_EXTEND, GPU_SAMPLER_FILTERING_LINEAR, GPU_TEXTURE_USAGE_ATOMIC, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, blender::math::max(), blender::math::min(), occupancy, properties, RBUFS_COLOR_SLOT, RBUFS_UTILITY_TEX_SLOT, RBUFS_VALUE_SLOT, result, SCE_EEVEE_VOLUME_CUSTOM_RANGE, UNUSED_VARS, VOLUME_GROUP_SIZE, blender::eevee::VOLUME_INTEGRATION, VOLUME_INTEGRATION_GROUP_SIZE, blender::eevee::VOLUME_RESOLVE, blender::eevee::VOLUME_SCATTER, blender::eevee::VOLUME_SCATTER_WITH_LIGHTS, SceneEEVEE::volumetric_end, SceneEEVEE::volumetric_sample_distribution, SceneEEVEE::volumetric_start, will_enable(), and blender::VecBase< T, Size >::xy().
|
inline |
Definition at line 150 of file eevee_volume.hh.
| void blender::eevee::VolumeModule::init | ( | ) |
Definition at line 24 of file eevee_volume.cc.
References clamp_i(), blender::math::divide_ceil(), Scene::eevee, SceneEEVEE::flag, GPU_max_texture_3d_size(), log2, blender::math::reduce_max(), SCE_EEVEE_TAA_REPROJECTION, SCE_EEVEE_VOLUMETRIC_SHADOWS, SceneEEVEE::volumetric_light_clamp, SceneEEVEE::volumetric_samples, SceneEEVEE::volumetric_shadow_samples, and SceneEEVEE::volumetric_tile_size.
|
inline |
Definition at line 136 of file eevee_volume.hh.
| void blender::eevee::VolumeModule::object_sync | ( | const ObjectHandle & | ob_handle | ) |
Definition at line 89 of file eevee_volume.cc.
References blender::eevee::ObjectHandle::object_key, and blender::eevee::BaseHandle::recalc.
|
inline |
Definition at line 155 of file eevee_volume.hh.
| bool blender::eevee::VolumeModule::will_enable | ( | ) | const |
Definition at line 102 of file eevee_volume.cc.
Referenced by end_sync().
| void blender::eevee::VolumeModule::world_sync | ( | const WorldHandle & | world_handle | ) |
Definition at line 78 of file eevee_volume.cc.
References blender::eevee::BaseHandle::recalc.
| gpu::Texture* blender::eevee::VolumeModule::emission_tx_ = nullptr |
Definition at line 195 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::extinction_tx_ = nullptr |
Definition at line 194 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::hit_count_tx_ = nullptr |
Definition at line 216 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::hit_depth_tx_ = nullptr |
Definition at line 215 of file eevee_volume.hh.
| struct { ... } blender::eevee::VolumeModule::occupancy |
Referenced by end_sync().
| gpu::Texture* blender::eevee::VolumeModule::occupancy_tx_ = nullptr |
References to the textures in the module.
Definition at line 198 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::phase_tx_ = nullptr |
Definition at line 196 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::phase_weight_tx_ = nullptr |
Definition at line 197 of file eevee_volume.hh.
| struct { ... } blender::eevee::VolumeModule::properties |
Referenced by end_sync().
| struct { ... } blender::eevee::VolumeModule::result |
Referenced by end_sync().
| gpu::Texture* blender::eevee::VolumeModule::scattering_tx_ = nullptr |
References to the textures in the module.
Definition at line 180 of file eevee_volume.hh.
| gpu::Texture* blender::eevee::VolumeModule::transmittance_tx_ = nullptr |
Definition at line 181 of file eevee_volume.hh.