@@ -23,7 +23,7 @@ uniform float time = 0.0;
2323
2424float rand(vec2 coord) {
2525 coord = mod (coord, vec2 (1.0 ,1.0 )* round(size));
26- return fract (sin (dot (coord.xy ,vec2 (12.9898 ,78.233 ))) * 43758 .5453 * seed);
26+ return fract (sin (dot (coord.xy ,vec2 (12.9898 ,78.233 ))) * 15 .5453 * seed);
2727}
2828
2929float noise(vec2 coord){
@@ -96,13 +96,18 @@ void fragment() {
9696 // pixelize uv
9797 vec2 uv = floor (UV* pixels)/ pixels;
9898
99- // distance to light source
100- float d_light = distance (uv , light_origin);
99+ // cut out a circle
100+ float d_circle = distance (uv, vec2 (0.5 ));
101+ float a = step (d_circle, 0.5 );
101102
102103 uv = rotate(uv, rotation);
103104
104105 // map to sphere
105106 uv = spherify(uv);
107+
108+ // distance to light source
109+ float d_light = distance (uv , light_origin);
110+
106111 // slightly make uv go down on the right, and up in the left
107112 uv.y += smoothstep (0.0 , cloud_curve, abs (uv.x- 0.4 ));
108113
@@ -124,5 +129,5 @@ void fragment() {
124129
125130
126131
127- COLOR = vec4 (col, step (cloud_cover, c));
132+ COLOR = vec4 (col, step (cloud_cover, c) * a );
128133}
0 commit comments