[Bf-blender-cvs] [4df76629a5d] tmp-eevee-shadowmap-refactor: DRW: Add shadow bias state

Clément Foucault noreply at git.blender.org
Mon Sep 2 16:53:10 CEST 2019


Commit: 4df76629a5daccbfd5f42197b99124b8e1678f7e
Author: Clément Foucault
Date:   Mon Aug 26 14:47:58 2019 +0200
Branches: tmp-eevee-shadowmap-refactor
https://developer.blender.org/rB4df76629a5daccbfd5f42197b99124b8e1678f7e

DRW: Add shadow bias state

This state add shadowmap bias to avoid most of self shadowing.

===================================================================

M	source/blender/draw/intern/DRW_render.h
M	source/blender/draw/intern/draw_manager_exec.c

===================================================================

diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 10ab7c13631..e3713fdee8f 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -346,6 +346,7 @@ typedef enum {
   /** Use dual source blending. WARNING: Only one color buffer allowed. */
   DRW_STATE_BLEND_CUSTOM = (1 << 23),
 
+  DRW_STATE_SHADOW_OFFSET = (1 << 27),
   DRW_STATE_CLIP_PLANES = (1 << 28),
   DRW_STATE_WIRE_SMOOTH = (1 << 29),
   DRW_STATE_FIRST_VERTEX_CONVENTION = (1 << 30),
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c
index 50408015fbc..54c874241ac 100644
--- a/source/blender/draw/intern/draw_manager_exec.c
+++ b/source/blender/draw/intern/draw_manager_exec.c
@@ -279,6 +279,20 @@ void drw_state_set(DRWState state)
     }
   }
 
+  /* Shadow Bias */
+  {
+    int test;
+    if ((test = CHANGED_TO(DRW_STATE_SHADOW_OFFSET))) {
+      if (test == 1) {
+        glEnable(GL_POLYGON_OFFSET_FILL);
+        glPolygonOffset(1.0f, 1.0f);
+      }
+      else {
+        glDisable(GL_POLYGON_OFFSET_FILL);
+      }
+    }
+  }
+
   /* Clip Planes */
   {
     int test;



More information about the Bf-blender-cvs mailing list