Skip to content

Commit

Permalink
Merge pull request #7064 from JordanSucher/modify-3d-stroke-offset
Browse files Browse the repository at this point in the history
modified stroke vertex shader
  • Loading branch information
davepagurek authored May 22, 2024
2 parents c1859ce + ed5968c commit e01a06c
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions src/webgl/shaders/line.vert
Original file line number Diff line number Diff line change
Expand Up @@ -88,19 +88,16 @@ void main() {
0.25
);

// using a scale <1 moves the lines towards the camera
// in order to prevent popping effects due to half of
// the line disappearing behind the geometry faces.
float scale = mix(1., 0.995, facingCamera);

// Moving vertices slightly toward the camera
// to avoid depth-fighting with the fill triangles.
// Discussed here:
// http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252848
posp.xyz = posp.xyz * scale;
posqIn.xyz = posqIn.xyz * scale;
posqOut.xyz = posqOut.xyz * scale;

// This prevents popping effects due to half of
// the line disappearing behind the geometry faces.

float zOffset = mix(-0.00045, -1., facingCamera);
posp.z -= zOffset;
posqIn.z -= zOffset;
posqOut.z -= zOffset;

vec4 p = uProjectionMatrix * posp;
vec4 qIn = uProjectionMatrix * posqIn;
vec4 qOut = uProjectionMatrix * posqOut;
Expand Down

0 comments on commit e01a06c

Please sign in to comment.