vec3 bgcol = vec3(0.65, 0.4, 0.1);
float rect = step(mod(uv.y, 0.2), 0.1);
col = mix(col, bgcol * 1.2, rect);
col = mix(col, bgcol, 1.0 - rect);
// ...画圆的代码
移动
接下来我们要让太阳从左边向右边以圆弧形式先升起后落下,我们使用了一个内置变量 iTime,这个变量的值是当前运行时间,会不断叠加,我们把 iTime 传到 sin 和 cos 中就能按照规律得到 [0,1] 区间的值。然后我们定义了 center 圆心,它会随着时间做圆周运动,由于圆心不再是零点了,我们就改用 distance 来计算圆。
uv.y += 0.5;
vec2 center = vec2(sin(iTime * speed) / 0.9, cos(iTime * speed) / 2.0);
float d = smoothstep(radius, radius - blur, length(distance(center, uv)));
col = mix(col, suncol, d);
评论区
共 条评论热门最新