xxxxxxxxxx// Author: Sol Sarratea @solquemal// Title: Clase 2 - Descripción de figurasprecision mediump float;uniform float u_time;uniform vec2 u_resolution;// Declaramos funciones para usar dentro de la función principalvec2 uvN(){ /* Devuelve las posiciones del canvas en rango [0.,1.]x[0.,1.] */ vec2 pos = gl_FragCoord.xy/u_resolution; pos.x *= u_resolution.y/u_resolution.x; return pos;}vec2 uv(){ /* Devuelve las posiciones del canvas en rango [-1.,1.]x[-1.,1.] */ vec2 pos = gl_FragCoord.xy/u_resolution; pos.x *= u_resolution.y/u_resolution.x; pos = pos *2.-1.; return pos;}vec2 polares(){ /* Devuelve las posiciones del canvas representadas como coordenadas polares */ vec2 pos = gl_FragCoord.xy/u_resolution; pos.x *= u_resolution.y/u_resolution.x; float radio = length(pos); float angulo = atan(pos.y,pos.x); return vec2(radio, angulo);}void main() { vec2 pos = uv(); vec3 color; float dx = distance(pos.x,0.); float eje1 = step(0.5,dx); // "Discretiza" el valor de dx. Vale 0 si dx< 0.5 y vale 1 sino. //eje1 = smoothstep(0.3,0.6,dx); // "Suavemente Discretiza" el valor dx. //Vale 0 si dx< 0.3. Vale 1 si dx>0.6. Y es suave entre 0.3 y 0.6 (interpola linealmente entre 0 y 1) eje1 = 1.-step(0.01,dx); color.r = eje1; //De la misma manera definimos el eje2 float dy = distance(pos.y,0.); float eje2 = 1.-step(0.01,dy); color.b = eje2; gl_FragColor = vec4(color,1.);}