surface st_circle() { float radius = 0.2; float opacity = 0.5; if( asin(s/radius - (1/radius/2)) < acos(t/radius - (1/radius/2)) && asin((1-s)/radius - (1/radius/2)) < acos(t/radius - (1/radius/2)) && asin((1-s)/radius - (1/radius/2)) < acos((1-t)/radius - (1/radius/2)) && asin(s/radius - (1/radius/2)) < acos((1-t)/radius - (1/radius/2))){ opacity = 1; } Oi = Os * opacity; Ci = Cs * Oi; } surface st_quadrant() { float opacity = 0; if(asin(s) < acos(t)){ opacity = 1; } Oi = Os * opacity; Ci = Cs * Oi; } surface st_diagonal() { float opacity = 0; if(1-s < t){ opacity = 1; } Oi = Os * opacity; Ci = Cs * Oi; } surface st_cross(float crossWidth = 0.5) { float opacity = 0; float tmp = 1-crossWidth; if(s < (1-tmp + tmp/2) && s > (tmp - tmp/2) || t < (1-tmp + tmp/2) && t > (tmp - tmp/2)){ opacity = 1; } Oi = Os * opacity; Ci = Cs * Oi; }