From 7c310cd7f5c30bde9b38fb817ba99060c7b4e96e Mon Sep 17 00:00:00 2001 From: ExeVirus <44562154+ExeVirus@users.noreply.github.com> Date: Sun, 16 Nov 2025 08:59:33 -0500 Subject: [PATCH] OpenGL3: Add subpixel offset for 2D rendering (#16676) --- client/shaders/Irrlicht/Renderer2D.vsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/shaders/Irrlicht/Renderer2D.vsh b/client/shaders/Irrlicht/Renderer2D.vsh index c0916562b..0d9c1ba60 100644 --- a/client/shaders/Irrlicht/Renderer2D.vsh +++ b/client/shaders/Irrlicht/Renderer2D.vsh @@ -18,7 +18,10 @@ varying vec4 vVertexColor; void main() { - gl_Position = uProjection * inVertexPosition; + // Subpixel offset to render pixel-perfect 2D images + // This is a compromise that is expected to work well on most drivers. + // Explanation: https://jvm-gaming.org/t/pixel-perfect-rendering-in-2d/26261/4 + gl_Position = uProjection * (inVertexPosition + vec4(0.375, 0.375, 0.0, 0.0)); gl_PointSize = uThickness; vTextureCoord = inTexCoord0; vVertexColor = inVertexColor.bgra;