# HG changeset patch # User sam # Date 1735728771 -25200 # Node ID 5bbcd40eb145f1c00bfb96ed23e8b330ff60488b # Parent 23b4d8c84501dde8dd2ce68391a58b627fe49f6d did: fix overlapping glyph-quads (again) diff -r 23b4d8c84501 -r 5bbcd40eb145 semicongine/text.nim --- a/semicongine/text.nim Wed Jan 01 16:38:27 2025 +0700 +++ b/semicongine/text.nim Wed Jan 01 17:52:51 2025 +0700 @@ -54,7 +54,8 @@ glyphquads.pos[glyphIndex][i_y[vertexI]] * scale, 0 ); - gl_Position = vec4(vertexPos + position, 1.0); + // the epsilon-offset is necessary, as otherwise characters with the same Z might overlap, despite transparency + gl_Position = vec4(vertexPos + position - vec3(0, 0, clamp(0, 1, gl_InstanceIndex * epsilon)), 1.0); vec2 uv = vec2(glyphquads.uv[glyphIndex][i_x[vertexI]], glyphquads.uv[glyphIndex][i_y[vertexI]]); fragmentUv = uv; fragmentColor = color;