diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/draw/modes/shaders/object_grid_frag.glsl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/draw/modes/shaders/object_grid_frag.glsl b/source/blender/draw/modes/shaders/object_grid_frag.glsl index 0196b1a6f98..61bd4d58a4a 100644 --- a/source/blender/draw/modes/shaders/object_grid_frag.glsl +++ b/source/blender/draw/modes/shaders/object_grid_frag.glsl @@ -75,7 +75,11 @@ vec3 get_floor_pos(vec2 uv, out vec3 wPos) camera_vec = normalize(eye); } - float p = -dot(planeNormal, camera_pos) / dot(planeNormal, camera_vec); + float plane_normal_dot_camera_vec = dot(planeNormal, camera_vec); + float p = -dot(planeNormal, camera_pos); + if (plane_normal_dot_camera_vec != 0) { + p /= plane_normal_dot_camera_vec; + } vec3 plane = camera_pos + camera_vec * p; /* fix residual imprecision */ |