diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-12-02 21:02:51 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-12-02 21:02:58 +0300 |
commit | 1e480840a2123a6b61e7aa3e6f7935b6654f9981 (patch) | |
tree | 6c8c3e80349a800414de44f9e23b6e12ccca8198 /source | |
parent | df29e9c070a2fe00591747828498b671e8b2b4db (diff) |
Overlay: Fix vertex discard issue on Nvidia hardware
Instead of relying on undefined behavior to discard the line, we put the
vertex at the camera origin so that interpolation does not produce any
fragment. We don't use FLT_MAX as it also gives unpredicatble results on
NVidia.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl index 5801c7cb474..c627e912d6c 100644 --- a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl @@ -104,8 +104,8 @@ void main() gl_Position = point_world_to_ndc(wpos); if (get_edge_sharpness(wd) < 0.0) { - /* Discard primitive. */ - gl_Position = vec4(0.0); + /* Discard primitive by placing any of the verts at the camera origin. */ + gl_Position = vec4(0.0, 0.0, -3e36, 0.0); } #ifndef SELECT_EDGES |