[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