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_next/shaders/eevee_surf_forward_frag.glsl')
-rw-r--r--source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl
new file mode 100644
index 00000000000..d83802c73f3
--- /dev/null
+++ b/source/blender/draw/engines/eevee_next/shaders/eevee_surf_forward_frag.glsl
@@ -0,0 +1,36 @@
+
+/**
+ * Forward lighting evaluation: Lighting is evaluated during the geometry rasterization.
+ *
+ * This is used by alpha blended materials and materials using Shader to RGB nodes.
+ **/
+
+#pragma BLENDER_REQUIRE(common_view_lib.glsl)
+#pragma BLENDER_REQUIRE(common_math_lib.glsl)
+#pragma BLENDER_REQUIRE(eevee_nodetree_lib.glsl)
+#pragma BLENDER_REQUIRE(eevee_surf_lib.glsl)
+
+void main(void)
+{
+ init_globals();
+
+ fragment_displacement();
+
+ nodetree_surface();
+
+ g_holdout = saturate(g_holdout);
+
+ out_radiance.rgb = g_emission;
+ out_radiance.rgb += g_diffuse_data.color * saturate(g_diffuse_data.N.z);
+ out_radiance.rgb += g_reflection_data.color * saturate(g_reflection_data.N.z);
+ out_radiance.a = 0.0;
+
+ out_radiance.rgb *= 1.0 - g_holdout;
+
+ out_transmittance.rgb = g_transmittance;
+ out_transmittance.a = saturate(avg(g_transmittance));
+
+ /* Test */
+ out_transmittance.a = 1.0 - out_transmittance.a;
+ out_radiance.a = 1.0 - out_radiance.a;
+}