Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
#version 100 #ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; #endif uniform vec2 resolution; uniform float time; vec3 bgC = vec3(.15, .15, .175); float noiseInt = .3; float noiseStr = .5; vec2 glPos = vec2(-1.,0.); float rand(in vec2 _st) { return fract(sin(dot(_st.xy, vec2(12.9, 78.2))) * 43758.5); } float noise(in vec2 inp){ inp*=noiseInt; vec2 i = floor(inp); vec2 f = fract(inp); vec2 u = f*f*(3.-2.*f)/2.; return mix(mix(rand(i+vec2(.0)), rand(i+vec2(1.,.0)),u.x), mix(rand(i+vec2(0.,1.)), rand(i+vec2(1.)),u.x), u.y ); } float fb(in vec2 inp){ inp*= 250.; mat2 m = mat2(1.8, 1.2, -1.2, -1.8); float f = .1*noise(inp); inp*=m; f+=.175*noise(inp); return .5+.5*f; } vec3 bg(vec2 inp){ float v = time/2.8; float i = sin(inp.x*3.+v*2.)*1.15+1.4; inp*=noiseStr; float rb = fb(vec2(inp.x*.5-v*.03,inp.y))*.1; inp+=rb; float rz = fb(inp*.9+vec2(v*.05,.0)); return sqrt(abs(bgC/(.81-rz))); } void main(){ vec2 uv = gl_FragCoord.xy/resolution+vec2(0.,-0.225); vec3 col = bg(uv); gl_FragColor = vec4(col, 1.); }
-неправильный