53 friend VolumePipeline;
54 friend WorldVolumePipeline;
60 bool use_reprojection_;
74 Texture occupancy_tx_ = {
"occupancy_tx"};
80 Texture hit_count_tx_ = {
"hit_count_tx"};
81 Texture hit_depth_tx_ = {
"hit_depth_tx"};
82 Texture front_depth_tx_ = {
"front_depth_tx"};
98 PassSimple integration_ps_ = {
"Volumes.Integration"};
100 Texture integrated_transmit_tx_;
109 View volume_view = {
"Volume View"};
114 int history_frame_count_ = 0;
116 bool history_camera_is_perspective_ =
false;
118 bool valid_history_ =
false;
125 dummy_scatter_tx_.ensure_3d(
127 dummy_transmit_tx_.ensure_3d(
138 return enabled_ && use_lights_;
152 return data_.tex_size;
183 template<
typename PassType>
void bind_resources(
PassType &pass)
200 template<
typename PassType>
void bind_resources(
PassType &pass)
218 template<
typename PassType>
void bind_resources(
PassType &pass)
#define GPU_BATCH_DISCARD_SAFE(batch)
blender::gpu::Batch * GPU_batch_unit_cube() ATTR_WARN_UNUSED_RESULT
@ GPU_TEXTURE_USAGE_SHADER_READ
BMesh const char void * data
A running instance of the engine.
gpu::Texture * transmittance_tx_
gpu::Batch * unit_cube_batch_get()
void object_sync(const ObjectHandle &ob_handle)
gpu::Texture * emission_tx_
gpu::Texture * occupancy_tx_
bool needs_shadow_tagging() const
struct blender::eevee::VolumeModule::@272214251307377361251017233276127374325055261337 properties
void world_sync(const WorldHandle &world_handle)
gpu::Texture * phase_weight_tx_
struct blender::eevee::VolumeModule::@126173222355251033261272350101304070110072204326 occupancy
void draw_resolve(View &view)
VolumeModule(Instance &inst, VolumesInfoData &data)
void draw_compute(View &main_view, int2 extent)
gpu::Texture * scattering_tx_
void draw_prepass(View &main_view)
#define VOLUME_PROP_SCATTERING_IMG_SLOT
#define VOLUME_HIT_DEPTH_SLOT
#define VOLUME_PROP_PHASE_WEIGHT_IMG_SLOT
#define VOLUME_HIT_COUNT_SLOT
#define VOLUME_OCCUPANCY_SLOT
#define VOLUME_TRANSMITTANCE_TEX_SLOT
#define VOLUME_PROP_EXTINCTION_IMG_SLOT
#define VOLUME_PROP_PHASE_IMG_SLOT
#define VOLUME_SCATTERING_TEX_SLOT
#define VOLUME_PROP_EMISSION_IMG_SLOT
detail::Pass< command::DrawCommandBuf > PassSimple
MatBase< float, 4, 4 > float4x4
VecBase< float, 4 > float4
VecBase< int32_t, 2 > int2
VecBase< int32_t, 3 > int3