赞
踩
初始化,根据到圆心的距离绘制一个圆
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float l = length(uv);
fragColor = vec4(vec3(l),1.);
}
只改变mod(x,y) 的x,y 始终等于1
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
float f = mod(len, 1.);
fragColor = vec4(vec3(f),1.);
}
分析:
len的范围是 0~0.5+, 对1取模后被限制到0~1之间,但是len本身就是这个范围,所以len值保持不变。
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
fragColor = vec4(vec3(len*2.),1.);
}
分析:
len的范围是: 0~1+,在半径0.5上,len=1;大于半径0.5,len>1;小于半径0.5,len<1;
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
float f = mod(len*2., 1.);
fragColor = vec4(vec3(f),1.);
}
分析:
len*2的范围是: 0~1+,大于1的部分限制成0了,所以大于半径0.5外面的部分就都是黑色的了。
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
float f = mod(len*4., 1.);
fragColor = vec4(vec3(f),1.);
}
分析:
len*5的范围是: 0~2+,所以重复了2次: 0~1
,1~2
改变y.
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
float f = mod(len, 0.5);
fragColor = vec4(vec3(f),1.);
}
分析:
len的范围是 0~0.5, 对0.5取模后被限制到0~0.5之间,但是len本身就是这个范围,所以len值保持不变。大于0.5的部分变成0。
void mainImage( out vec4 fragColor, in vec2 fragCoord ) {
vec2 uv = (fragCoord.xy/iResolution.xy-0.5);
float len = length(uv);
float f = mod(len*2.0, 0.5);
fragColor = vec4(vec3(f),1.);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。