11 .additional_info(
"eevee_shared",
"eevee_global_ubo",
"draw_view")
16 .additional_info(
"eevee_global_ubo")
38 "in_phase_weight_img");
42 .additional_info(
"eevee_shared")
43 .additional_info(
"eevee_global_ubo")
44 .additional_info(
"draw_resource_id_varying")
45 .additional_info(
"draw_view")
46 .additional_info(
"eevee_light_data")
47 .additional_info(
"eevee_lightprobe_data")
48 .additional_info(
"eevee_shadow_data")
49 .additional_info(
"eevee_sampling_data")
50 .additional_info(
"eevee_utility_texture")
51 .additional_info(
"eevee_volume_properties_data")
52 .sampler(0, ImageType::FLOAT_3D,
"scattering_history_tx")
53 .sampler(1, ImageType::FLOAT_3D,
"extinction_history_tx")
54 .image(5,
GPU_R11F_G11F_B10F, Qualifier::WRITE, ImageType::FLOAT_3D,
"out_scattering_img")
56 .compute_source(
"eevee_volume_scatter_comp.glsl")
57 .do_static_compilation(
true);
60 .additional_info(
"eevee_volume_scatter")
61 .define(
"VOLUME_LIGHTING")
62 .define(
"VOLUME_IRRADIANCE")
63 .define(
"VOLUME_SHADOW")
64 .sampler(9, ImageType::FLOAT_3D,
"extinction_tx")
65 .do_static_compilation(
true);
68 .additional_info(
"eevee_shared",
"eevee_global_ubo",
"draw_fullscreen")
69 .builtins(BuiltinBits::TEXTURE_ATOMIC)
73 Qualifier::READ_WRITE,
78 Qualifier::READ_WRITE,
79 ImageType::UINT_3D_ATOMIC,
81 .fragment_source(
"eevee_occupancy_convert_frag.glsl")
82 .do_static_compilation(
true);
85 .additional_info(
"eevee_shared",
"eevee_global_ubo",
"draw_view")
86 .additional_info(
"eevee_sampling_data")
87 .compute_source(
"eevee_volume_integration_comp.glsl")
90 .sampler(0, ImageType::FLOAT_3D,
"in_scattering_tx")
91 .sampler(1, ImageType::FLOAT_3D,
"in_extinction_tx")
94 .image(1,
GPU_R11F_G11F_B10F, Qualifier::WRITE, ImageType::FLOAT_3D,
"out_transmittance_img")
95 .do_static_compilation(
true);
98 .additional_info(
"eevee_shared")
99 .additional_info(
"eevee_volume_lib")
100 .additional_info(
"draw_fullscreen")
101 .additional_info(
"eevee_render_pass_out")
102 .additional_info(
"eevee_hiz_data")
103 .fragment_source(
"eevee_volume_resolve_frag.glsl")
104 .fragment_out(0, Type::VEC4,
"out_radiance", DualBlend::SRC_0)
105 .fragment_out(0, Type::VEC4,
"out_transmittance", DualBlend::SRC_1)
107 .do_static_compilation(
true);
#define VOLUME_PROP_SCATTERING_IMG_SLOT
#define VOLUME_HIT_DEPTH_SLOT
#define VOLUME_GROUP_SIZE
#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
DualBlend::SRC_0 eevee_volume_lib
SHADOW_TILEMAP_RES tiles_buf[] statistics_buf render_view_buf[SHADOW_VIEW_MAX] GPU_R32UI
in_scattering_img in_emission_img GPU_R16F
additional_info("eevee_shared", "eevee_global_ubo", "draw_fullscreen") .builtins(BuiltinBits VOLUME_INTEGRATION_GROUP_SIZE
#define GPU_SHADER_CREATE_INFO(_info)