|
Blender V4.3
|
#include <eevee_pipeline.hh>
Public Member Functions | |
| VolumeLayer (Instance &inst) | |
Volume Layer | |
| PassMain::Sub * | occupancy_add (const Object *ob, const ::Material *blender_mat, GPUMaterial *gpumat) |
| PassMain::Sub * | material_add (const Object *ob, const ::Material *blender_mat, GPUMaterial *gpumat) |
| bool | bounds_overlaps (const VolumeObjectBounds &object_aabb) const |
| void | add_object_bound (const VolumeObjectBounds &object_aabb) |
| void | sync () |
| void | render (View &view, Texture &occupancy_tx) |
Public Attributes | |
| bool | use_hit_list = false |
| bool | is_empty = true |
| bool | finalized = false |
| bool | has_scatter = false |
| bool | has_absorption = false |
A volume layer contains a list of non-overlapping volume objects.
Definition at line 407 of file eevee_pipeline.hh.
|
inline |
Definition at line 428 of file eevee_pipeline.hh.
References sync().
| void blender::eevee::VolumeLayer::add_object_bound | ( | const VolumeObjectBounds & | object_aabb | ) |
Definition at line 1105 of file eevee_pipeline.cc.
References blender::bounds::merge(), and blender::eevee::VolumeObjectBounds::screen_bounds.
| bool blender::eevee::VolumeLayer::bounds_overlaps | ( | const VolumeObjectBounds & | object_aabb | ) | const |
Definition at line 1090 of file eevee_pipeline.cc.
References blender::bounds::intersect(), and blender::eevee::VolumeObjectBounds::screen_bounds.
| PassMain::Sub * blender::eevee::VolumeLayer::material_add | ( | const Object * | ob, |
| const ::Material * | blender_mat, | ||
| GPUMaterial * | gpumat ) |
Definition at line 1071 of file eevee_pipeline.cc.
References BLI_assert_msg, GPU_material_flag_get(), GPU_material_get_name(), GPU_material_has_volume_output(), GPU_MATFLAG_VOLUME_ABSORPTION, GPU_MATFLAG_VOLUME_SCATTER, has_absorption, has_scatter, blender::eevee::Instance::manager, blender::draw::detail::PassBase< DrawCommandBufType >::material_set(), OB_VOLUME, blender::draw::detail::PassBase< DrawCommandBufType >::sub(), Object::type, and UNUSED_VARS_NDEBUG.
| PassMain::Sub * blender::eevee::VolumeLayer::occupancy_add | ( | const Object * | ob, |
| const ::Material * | blender_mat, | ||
| GPUMaterial * | gpumat ) |
Definition at line 1054 of file eevee_pipeline.cc.
References BLI_assert_msg, GPU_material_get_name(), GPU_material_has_volume_output(), is_empty, MA_VOLUME_ISECT_FAST, blender::eevee::Instance::manager, blender::draw::detail::PassBase< DrawCommandBufType >::material_set(), OB_VOLUME, blender::draw::detail::PassBase< DrawCommandBufType >::sub(), Object::type, and use_hit_list.
Definition at line 1111 of file eevee_pipeline.cc.
References blender::draw::detail::PassBase< DrawCommandBufType >::barrier(), blender::draw::Texture::clear(), blender::draw::detail::PassBase< DrawCommandBufType >::draw_procedural(), finalized, GPU_BARRIER_SHADER_IMAGE_ACCESS, GPU_PRIM_TRIS, is_empty, blender::eevee::Instance::manager, blender::draw::detail::PassBase< DrawCommandBufType >::shader_set(), blender::eevee::Instance::shaders, blender::eevee::ShaderModule::static_shader_get(), blender::draw::Manager::submit(), use_hit_list, and blender::eevee::VOLUME_OCCUPANCY_CONVERT.
| void blender::eevee::VolumeLayer::sync | ( | ) |
Definition at line 1018 of file eevee_pipeline.cc.
References blender::draw::detail::PassBase< DrawCommandBufType >::clear_stencil(), DRW_STATE_STENCIL_NEQUAL, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, finalized, GPU_BARRIER_SHADER_IMAGE_ACCESS, has_absorption, has_scatter, blender::draw::detail::Pass< DrawCommandBufType >::init(), is_empty, blender::eevee::VolumeModule::occupancy, blender::eevee::Instance::pipelines, blender::eevee::VolumeModule::properties, RBUFS_UTILITY_TEX_SLOT, blender::eevee::Instance::sampling, blender::draw::detail::PassBase< DrawCommandBufType >::state_set(), blender::draw::detail::PassBase< DrawCommandBufType >::sub(), blender::eevee::Instance::uniform_data, use_hit_list, blender::eevee::PipelineModule::utility_tx, and blender::eevee::Instance::volume.
Referenced by VolumeLayer().
| bool blender::eevee::VolumeLayer::finalized = false |
Definition at line 411 of file eevee_pipeline.hh.
| bool blender::eevee::VolumeLayer::has_absorption = false |
Definition at line 413 of file eevee_pipeline.hh.
Referenced by material_add(), and sync().
| bool blender::eevee::VolumeLayer::has_scatter = false |
Definition at line 412 of file eevee_pipeline.hh.
Referenced by material_add(), and sync().
| bool blender::eevee::VolumeLayer::is_empty = true |
Definition at line 410 of file eevee_pipeline.hh.
Referenced by occupancy_add(), render(), and sync().
| bool blender::eevee::VolumeLayer::use_hit_list = false |
Definition at line 409 of file eevee_pipeline.hh.
Referenced by occupancy_add(), render(), and sync().