#version 110 uniform mat4 view_model_matrix; uniform mat4 projection_matrix; uniform float offset; attribute vec3 v_position; void main() { // Add small epsilon to z to solve z-fighting between painted triangles and contour lines. vec4 clip_position = projection_matrix * view_model_matrix * vec4(v_position, 1.0); clip_position.z -= offset * abs(clip_position.w); gl_Position = clip_position; }