From 19109516ae05d2ae50cb31cd57e8e2aa54800a93 Mon Sep 17 00:00:00 2001 From: Emux Date: Tue, 13 Dec 2016 19:56:44 +0200 Subject: [PATCH] Circles (GL points) anti-aliasing #268 --- vtm/resources/assets/shaders/circle_point.glsl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vtm/resources/assets/shaders/circle_point.glsl b/vtm/resources/assets/shaders/circle_point.glsl index 7d1d8687..e11fd6b6 100644 --- a/vtm/resources/assets/shaders/circle_point.glsl +++ b/vtm/resources/assets/shaders/circle_point.glsl @@ -11,6 +11,9 @@ void main() { $$ +#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif #ifdef GLES precision highp float; #endif @@ -18,6 +21,7 @@ uniform vec4 u_color; void main() { vec2 cxy = 2.0 * gl_PointCoord - 1.0; float r = dot(cxy, cxy); - float len = 1.0 - length(r); - gl_FragColor = u_color * len; + float delta = fwidth(r); + float alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r); + gl_FragColor = u_color * alpha; }