Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/infos')
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_culling_info.hh2
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh74
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh38
-rw-r--r--source/blender/draw/engines/eevee/shaders/infos/eevee_shadow_info.hh2
4 files changed, 36 insertions, 80 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_culling_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_culling_info.hh
index 8a76a3a13cd..4ba152c131e 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_culling_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_culling_info.hh
@@ -54,7 +54,7 @@ GPU_SHADER_CREATE_INFO(eevee_light_data)
GPU_SHADER_CREATE_INFO(eevee_culling_debug)
.do_static_compilation(true)
- .sampler(0, ImageType::DEPTH_2D, "depth_tx")
+ .sampler(0, ImageType::FLOAT_2D, "hiz_tx")
.fragment_out(0, Type::VEC4, "out_debug_color")
.additional_info("eevee_shared", "draw_view")
.fragment_source("eevee_culling_debug_frag.glsl")
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
index 7a438b14f44..6c22249349e 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_deferred_info.hh
@@ -7,82 +7,36 @@
GPU_SHADER_CREATE_INFO(eevee_utility_texture).sampler(8, ImageType::FLOAT_2D_ARRAY, "utility_tx");
-GPU_SHADER_CREATE_INFO(eevee_deferred_direct)
+#define image_out(slot, qualifier, format, name) \
+ image(slot, format, qualifier, ImageType::FLOAT_2D, name, Frequency::PASS)
+
+GPU_SHADER_CREATE_INFO(eevee_deferred_eval)
.do_static_compilation(true)
.auto_resource_location(true)
.sampler(0, ImageType::FLOAT_2D, "hiz_tx")
- .sampler(1, ImageType::FLOAT_2D, "emission_data_tx")
.sampler(2, ImageType::FLOAT_2D, "transmit_color_tx")
.sampler(3, ImageType::FLOAT_2D, "transmit_normal_tx")
.sampler(4, ImageType::FLOAT_2D, "transmit_data_tx")
.sampler(5, ImageType::FLOAT_2D, "reflect_color_tx")
.sampler(6, ImageType::FLOAT_2D, "reflect_normal_tx")
.fragment_out(0, Type::VEC4, "out_combined")
- .fragment_out(1, Type::VEC4, "out_diffuse")
- .fragment_out(2, Type::VEC3, "out_specular")
+ /* Renderpasses. */
+ // .image_out(0, Qualifier::READ_WRITE, GPU_RGBA16F, "rpass_diffuse_light")
+ // .image_out(1, Qualifier::READ_WRITE, GPU_RGBA16F, "rpass_specular_light")
+ /* Raytracing. */
+ // .image_out(2, Qualifier::WRITE, GPU_RGBA16F, "ray_data")
+ /* SubSurfaceScattering. */
+ // .image_out(3, Qualifier::WRITE, GPU_RGBA16F, "sss_radiance")
.additional_info("eevee_shared", "draw_view")
- .fragment_source("eevee_deferred_direct_frag.glsl")
+ .fragment_source("eevee_deferred_eval_frag.glsl")
.additional_info("draw_fullscreen",
"eevee_transmittance_data",
"eevee_utility_texture",
- "eevee_lightprobe_data",
+ // "eevee_lightprobe_data",
"eevee_light_data",
"eevee_shadow_data",
"eevee_sampling_data");
-/** \} */
-
-/* -------------------------------------------------------------------- */
-/** \name Holdout
- * \{ */
-
-GPU_SHADER_CREATE_INFO(eevee_deferred_holdout)
- .do_static_compilation(true)
- .sampler(0, ImageType::FLOAT_2D, "combined_tx")
- .sampler(1, ImageType::FLOAT_2D, "transparency_data_tx")
- .fragment_out(5, Type::VEC3, "out_holdout")
- .additional_info("eevee_shared")
- .fragment_source("eevee_deferred_holdout_frag.glsl")
- .additional_info("draw_fullscreen", "draw_view");
-
-/** \} */
-
-/* -------------------------------------------------------------------- */
-/** \name Transparency
- * \{ */
-
-GPU_SHADER_CREATE_INFO(eevee_deferred_transparent)
- .do_static_compilation(true)
- .sampler(0, ImageType::UINT_2D, "volume_data_tx")
- .sampler(1, ImageType::FLOAT_2D, "transparency_data_tx")
- .fragment_out(0, Type::VEC4, "out_combined")
- .fragment_out(1, Type::VEC3, "out_diffuse")
- .fragment_out(2, Type::VEC3, "out_specular")
- .fragment_out(3, Type::VEC3, "out_volume")
- .fragment_out(4, Type::VEC3, "out_background")
- .fragment_out(5, Type::VEC3, "out_holdout")
- .additional_info("eevee_shared")
- .fragment_source("eevee_deferred_transparent_frag.glsl")
- .additional_info("draw_fullscreen", "draw_view", "eevee_light_data");
-
-/** \} */
-
-/* -------------------------------------------------------------------- */
-/** \name Volume
- * \{ */
-
-GPU_SHADER_CREATE_INFO(eevee_deferred_volume)
- .do_static_compilation(true)
- .sampler(0, ImageType::FLOAT_2D, "transparency_data_tx")
- .sampler(1, ImageType::UINT_2D, "volume_data_tx")
- .fragment_out(0, Type::VEC4, "out_combined")
- .fragment_out(1, Type::VEC3, "out_volume")
- .additional_info("eevee_shared")
- .fragment_source("eevee_deferred_volume_frag.glsl")
- .additional_info("draw_fullscreen",
- "draw_view",
- "eevee_utility_texture",
- "eevee_light_data",
- "eevee_shadow_data");
+#undef image_out
/** \} */
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
index 0b310d7c309..c2bd8805aa2 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_material_info.hh
@@ -64,29 +64,31 @@ GPU_SHADER_INTERFACE_INFO(eevee_surface_iface, "interp")
.smooth(Type::FLOAT, "hair_thickness")
.flat(Type::INT, "hair_strand_id");
+#define image_out(slot, qualifier, format, name) \
+ image(slot, format, qualifier, ImageType::FLOAT_2D, name, Frequency::PASS)
+
GPU_SHADER_CREATE_INFO(eevee_surface_deferred)
.vertex_out(eevee_surface_iface)
- /* Diffuse or Transmission Color. */
- .fragment_out(0, Type::VEC3, "out_transmit_color")
- /* RG: Normal (negative if Tranmission), B: SSS ID, A: Min-Thickness */
- .fragment_out(1, Type::VEC4, "out_transmit_normal")
- /* RGB: SSS RGB Radius.
- * or
- * R: Transmission IOR, G: Transmission Roughness, B: Unused. */
- .fragment_out(2, Type::VEC3, "out_transmit_data")
- /* Reflection Color. */
- .fragment_out(3, Type::VEC3, "out_reflection_color")
- /* RG: Normal, B: Roughness X, A: Roughness Y. */
- .fragment_out(4, Type::VEC4, "out_reflection_normal")
- /* Volume Emission, Absorption, Scatter, Phase. */
- .fragment_out(5, Type::UVEC4, "out_volume_data")
- /* Emission. */
- .fragment_out(6, Type::VEC3, "out_emission_data")
- /* Transparent BSDF, Holdout. */
- .fragment_out(7, Type::VEC4, "out_transparency_data")
+ /* Note: This removes the possibility of using gl_FragDepth. */
+ .early_fragment_test(true)
+ /* Direct output. */
+ .fragment_out(0, Type::VEC4, "out_radiance", DualBlend::SRC_0)
+ .fragment_out(0, Type::VEC4, "out_transmittance", DualBlend::SRC_1)
+ /* Gbuffer. */
+ .image_out(0, Qualifier::WRITE, GPU_R11F_G11F_B10F, "gbuff_transmit_color")
+ .image_out(1, Qualifier::WRITE, GPU_R11F_G11F_B10F, "gbuff_transmit_data")
+ .image_out(2, Qualifier::WRITE, GPU_RGBA16F, "gbuff_transmit_normal")
+ .image_out(3, Qualifier::WRITE, GPU_R11F_G11F_B10F, "gbuff_reflection_color")
+ .image_out(4, Qualifier::WRITE, GPU_RGBA16F, "gbuff_reflection_normal")
+ /* Renderpasses. */
+ .image_out(5, Qualifier::READ_WRITE, GPU_RGBA16F, "rpass_emission")
+ .image_out(6, Qualifier::READ_WRITE, GPU_RGBA16F, "rpass_volume_light")
+ /* TODO: AOVs maybe? */
.fragment_source("eevee_surface_deferred_frag.glsl")
.additional_info("eevee_sampling_data", "eevee_utility_texture");
+#undef image_out
+
GPU_SHADER_CREATE_INFO(eevee_surface_forward)
.auto_resource_location(true)
.vertex_out(eevee_surface_iface)
diff --git a/source/blender/draw/engines/eevee/shaders/infos/eevee_shadow_info.hh b/source/blender/draw/engines/eevee/shaders/infos/eevee_shadow_info.hh
index d68bcc3db98..efb93e745a3 100644
--- a/source/blender/draw/engines/eevee/shaders/infos/eevee_shadow_info.hh
+++ b/source/blender/draw/engines/eevee/shaders/infos/eevee_shadow_info.hh
@@ -182,7 +182,7 @@ GPU_SHADER_CREATE_INFO(eevee_shadow_debug)
.storage_buf(0, Qualifier::READ, "ShadowTileMapData", "tilemaps_buf[]")
.storage_buf(1, Qualifier::READ, "uvec2", "pages_cached_buf[]")
.storage_buf(2, Qualifier::READ, "ShadowPagesInfoData", "pages_infos_buf")
- .sampler(0, ImageType::DEPTH_2D, "depth_tx")
+ .sampler(0, ImageType::FLOAT_2D, "hiz_tx")
.sampler(1, ImageType::FLOAT_2D, "atlas_tx")
.sampler(2, ImageType::UINT_2D, "tilemaps_tx")
.sampler(3, ImageType::UINT_2D, "debug_page_tx")