diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-02-13 15:58:45 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-02-18 16:17:57 +0300 |
commit | 600da00a94e6b7ad65daf3a077353c8837b582bf (patch) | |
tree | 8873b7d76e8531b0a01d8f86f6cabe846d515ec6 /source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | |
parent | e49d9555418d571f0585bf9a33aed90008e72e2c (diff) |
Wireframe: Add depth offset to prevent zfighting of wireframe overlay
Diffstat (limited to 'source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl index 4e7560141f6..53279a74352 100644 --- a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl +++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl @@ -1,9 +1,11 @@ -uniform mat4 ModelViewProjectionMatrix; +uniform mat4 ProjectionMatrix; +uniform mat4 ModelViewMatrix; uniform mat4 ModelMatrix; uniform mat3 NormalMatrix; uniform float wireStepParam; +uniform float ofs; float get_edge_sharpness(float wd) { @@ -29,7 +31,10 @@ void main() edgeSharpness_g = 1.0; # endif - gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); + mat4 projmat = ProjectionMatrix; + projmat[3][2] -= ofs; + + gl_Position = projmat * (ModelViewMatrix * vec4(pos, 1.0)); facing_g = normalize(NormalMatrix * nor).z; @@ -49,7 +54,10 @@ flat out float edgeSharpness; void main() { - gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0); + mat4 projmat = ProjectionMatrix; + projmat[3][2] -= ofs; + + gl_Position = projmat * (ModelViewMatrix * vec4(pos, 1.0)); edgeSharpness = get_edge_sharpness(wd); |