[Bf-blender-cvs] [c0ae38f] master: Fix artifacts w/ low near clear in bglPolygonOffset

Alexander Romanov noreply at git.blender.org
Wed Apr 27 11:50:27 CEST 2016


Commit: c0ae38f65642da42909420e444ef464686773e49
Author: Alexander Romanov
Date:   Wed Apr 27 19:14:13 2016 +1000
Branches: master
https://developer.blender.org/rBc0ae38f65642da42909420e444ef464686773e49

Fix artifacts w/ low near clear in bglPolygonOffset

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

M	source/blender/editors/screen/glutil.c

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

diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index b7ad911..a1c330d 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -795,8 +795,13 @@ void bglPolygonOffset(float viewdist, float dist)
 #endif
 		}
 		else {
-			/* should be clipping value or so... */
-			offs = 0.0005f * dist;
+			/* This adjustment effectively results in reducing the Z value by 0.25%.
+			 *
+			 * winmat[14] actually evaluates to `-2 * far * near / (far - near)`,
+			 * is very close to -0.2 with default clip range, and is used as the coefficient multiplied by `w / z`,
+			 * thus controlling the z dependent part of the depth value.
+			 */
+			offs = winmat[14] * -0.0025f * dist;
 		}
 		
 		winmat[14] -= offs;




More information about the Bf-blender-cvs mailing list