Skip to content

Instantly share code, notes, and snippets.

// simple glsl ellipse function based on circle form BookOfShaders (https://thebookofshaders.com/07/)
float ellipse(in vec2 st, in vec2 position, in float radius, in float feather, in vec2 aspectratio){
// receive bigger of both numbers from aspect ratio
float max_val = max(aspectratio.x, aspectratio.y);
// clamping the aspect ratio ensures that the ellipse will deform but won't scale
// scaling should only result via changing the radius
vec2 clamped_ar = aspectratio / max_val;