Otvorite sljedeci link: http://glslsandbox.com/ Kopirajte kod koji se nalazi ispod i zalijepite na stranicu. Pritiskom na tikpu Compile dobivate u pozadini ono sto je isprogramirano ______________________________________________________________________________ #ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; varying vec2 surfacePosition; #define PI 3.14159265358979 #define N 5 void main( void ) { float t = time*1.0; vec2 pos = vec2(surfacePosition.y,surfacePosition.x); float theta =float(N)*0.5; float r =0.9; pos += vec2(cos(theta + t)*r,sin(theta * t)*r) *0.2; float size = 0.1; float dist = size / length(pos); vec3 color = vec3(0.3); gl_FragColor = vec4(color * dist,2.0); } ______________________________________________________________________________ Otvorite sljedeci link: http://glslsandbox.com/ Kopirajte kod koji se nalazi ispod i zalijepite na stranicu. Pritiskom na tikpu Compile dobivate u pozadini ono sto je isprogramirano ______________________________________________________________________________ #ifdef GL_ES precision mediump float; #endif #define FUNCION sin(position.x*5.0-time)*0.6*sin(time) uniform float time; uniform vec2 resolution; void main( void ) { vec2 position = ( gl_FragCoord.xy / resolution.xy ); float colorr = 0.8; float colorg = 0.2; if((position.y < FUNCION + 0.6 && position.y > FUNCION+0.5) ) colorg = 0.5; gl_FragColor = vec4(vec3(colorg, colorr, colorr/0.2),1.0); } Otvorite sljedeci link: http://glslsandbox.com/ Kopirajte kod koji se nalazi ispod i zalijepite na stranicu. Pritiskom na tikpu Compile dobivate u pozadini ono sto je isprogramirano Sljedeći kod je veoma zanimljiv stoga preporučam da pogledate. ______________________________________________________________________________ #ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; #define font_size 20. #define font_spacing .05 #define STROKEWIDTH 0.05 #define PI 3.14159265359 #define A_ vec2(0.,0.) #define B_ vec2(1.,0.) #define C_ vec2(2.,0.) #define D_ vec2(0.,1.) #define E_ vec2(1.,1.) #define F_ vec2(2.,1.) #define G_ vec2(0.,2.) #define H_ vec2(1.,2.) #define I_ vec2(2.,2.) #define J_ vec2(0.,3.) #define K_ vec2(1.,3.) #define L_ vec2(2.,3.) #define M_ vec2(0.,4.) #define N_ vec2(1.,4.) #define O_ vec2(2.,4.) #define P_ vec2(0.,5.) #define Q_ vec2(1.,5.) #define R_ vec2(1.,5.) #define S_ vec2(0.,6.) #define T_ vec2(1.,6.) #define U_ vec2(2.0,6.) #define A(p) t(G_,I_,p) + t(I_,O_,p) + t(O_,M_, p) + t(M_,J_,p) + t(J_,L_,p) #define B(p) t(A_,M_,p) + t(M_,O_,p) + t(O_,I_, p) + t(I_,G_,p) #define C(p) t(I_,G_,p) + t(G_,M_,p) + t(M_,O_,p) #define D(p) t(C_,O_,p) + t(O_,M_,p) + t(M_,G_,p) + t(G_,I_,p) #define E(p) t(O_,M_,p) + t(M_,G_,p) + t(G_,I_,p) + t(I_,L_,p) + t(L_,J_,p) #define F(p) t(C_,B_,p) + t(B_,N_,p) + t(G_,I_,p) #define G(p) t(O_,M_,p) + t(M_,G_,p) + t(G_,I_,p) + t(I_,U_,p) + t(U_,S_,p) #define H(p) t(A_,M_,p) + t(G_,I_,p) + t(I_,O_,p) #define I(p) t(E_,E_,p) + t(H_,N_,p) #define J(p) t(E_,E_,p) + t(H_,T_,p) + t(T_,S_,p) #define K(p) t(A_,M_,p) + t(M_,I_,p) + t(K_,O_,p) #define L(p) t(B_,N_,p) #define M(p) t(M_,G_,p) + t(G_,I_,p) + t(H_,N_,p) + t(I_,O_,p) #define N(p) t(M_,G_,p) + t(G_,I_,p) + t(I_,O_,p) #define O(p) t(G_,I_,p) + t(I_,O_,p) + t(O_,M_, p) + t(M_,G_,p) #define P(p) t(S_,G_,p) + t(G_,I_,p) + t(I_,O_,p) + t(O_,M_, p) #define Q(p) t(U_,I_,p) + t(I_,G_,p) + t(G_,M_,p) + t(M_,O_, p) #define R(p) t(M_,G_,p) + t(G_,I_,p) #define S(p) t(I_,G_,p) + t(G_,J_,p) + t(J_,L_,p) + t(L_,O_,p) + t(O_,M_,p) #define T(p) t(B_,N_,p) + t(N_,O_,p) + t(G_,I_,p) #define U(p) t(G_,M_,p) + t(M_,O_,p) + t(O_,I_,p) #define V(p) t(G_,J_,p) + t(J_,N_,p) + t(N_,L_,p) + t(L_,I_,p) #define W(p) t(G_,M_,p) + t(M_,O_,p) + t(N_,H_,p) + t(O_,I_,p) #define X(p) t(G_,O_,p) + t(I_,M_,p) #define Y(p) t(G_,M_,p) + t(M_,O_,p) + t(I_,U_,p) + t(U_,S_,p) #define Z(p) t(G_,I_,p) + t(I_,M_,p) + t(M_,O_,p) #define QU(p) t(D_,A_,p) + t(A_,B_,p) + t(B_,C_,p) + t(C_,F_,p) + t(F_,I_,p) + t(I_,H_,p) + t(H_,K_,p) + t(N_,N_,p) #define EX(p) t(B_,K_,p) + t(N_,N_,p) //?:DA BC FI HK QQ #define STOP(p) t(N_,N_,p) vec2 caret_origin = vec2(3.0, .7); vec2 caret; //float time = mod(iGlobalTime, 11.0); //----------------------------------------------------------------------------------- float minimum_distance(vec2 v, vec2 w, vec2 p) { // Return minimum distance between line segment vw and point p float l2 = (v.x - w.x)*(v.x - w.x) + (v.y - w.y)*(v.y - w.y); //length_squared(v, w); // i.e. |w-v|^2 - avoid a sqrt if (l2 == 0.0) { return distance(p, v); // v == w case } // Consider the line extending the segment, parameterized as v + t (w - v). // We find projection of point p onto the line. It falls where t = [(p-v) . (w-v)] / |w-v|^2 float t = dot(p - v, w - v) / l2; if(t < 0.0) { // Beyond the 'v' end of the segment return distance(p, v); } else if (t > 1.0) { return distance(p, w); // Beyond the 'w' end of the segment } vec2 projection = v + t * (w - v); // Projection falls on the segment return distance(p, projection); } //----------------------------------------------------------------------------------- float textColor(vec2 from, vec2 to, vec2 p) { p *= font_size; float inkNess = 0., nearLine, corner; nearLine = minimum_distance(from,to,p); // basic distance from segment, thanks http://glsl.heroku.com/e#6140.0 inkNess += smoothstep(0., 1., 1.- 14.*(nearLine - STROKEWIDTH)); // ugly still inkNess += smoothstep(0., 2.5, 1.- (nearLine + 5. * STROKEWIDTH)); // glow return inkNess; } //----------------------------------------------------------------------------------- vec2 grid(vec2 letterspace) { return ( vec2( (letterspace.x / 1.8) * .65 , 1.0-((letterspace.y / 2.) * .95) )); } //----------------------------------------------------------------------------------- float count = 0.0; float t(vec2 from, vec2 to, vec2 p) { count++; if (count > time*20.0) return 0.0; return textColor(grid(from), grid(to), p); } //----------------------------------------------------------------------------------- vec2 r() { vec2 pos = gl_FragCoord.xy/resolution.xy; pos.y -= caret.y; pos.x -= font_spacing*caret.x; return pos; } //----------------------------------------------------------------------------------- void add() { caret.x += 1.0; } //----------------------------------------------------------------------------------- void space() { caret.x += 1.4; } //----------------------------------------------------------------------------------- void newline() { caret.x = caret_origin.x; caret.y -= .18; } //----------------------------------------------------------------------------------- void main(void) { float d = 0.; vec3 col = vec3(0.1, .07+0.07*(.5+sin(gl_FragCoord.y*3.14159*1.1+time*2.0)) + sin(gl_FragCoord.y*.01+time+2.5)*0.05, 0.1); caret = caret_origin; // the quick brown fox jumps over the lazy dog... d += F(r()); add(); d +=O(r()); add(); d += I(r()); space(); add();d += I(r()); add();d += S(r()); add(); space(); d += T(r()); add();d += H(r()); add();d += E(r());space(); add(); d +=B(r()); add();d += E(r());add();d+=S(r()); add();d+=T(r()); newline(); d += R(r()); add();d += A(r()); add();d += C(r()); add(); d += U(r()); add();d += N(r()); add();d += A(r()); add(); d +=L(r()); add(); d +=N(r());add();d+=A(r()); newline(); d += G(r());add();d += R(r());add();d+=A(r());add();d+=F(r());add();d+=I(r());add();d+=K(r());add();d+=A(r()); newline(); d = clamp(d* (.65+sin(gl_FragCoord.x*PI*.5-time*4.3)*.5), 0.0, 1.0); col += vec3(d*.5, d, d*.85); vec2 xy = gl_FragCoord.xy / resolution.xy; col *= vec3(.4, .4, .3) + 0.5*pow(100.0*xy.x*xy.y*(1.0-xy.x)*(1.0-xy.y), .4 ); gl_FragColor = vec4( col , 1.0 ); } ______________________________________________________________________________ Otvorite sljedeci link: http://glslsandbox.com/ Kopirajte kod koji se nalazi ispod i zalijepite na stranicu. Pritiskom na tikpu Compile dobivate u pozadini ono sto je isprogramirano ______________________________________________________________________________ #ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; float rand(float seed) { seed = mod(seed * 61.6, 12.38) + 5.16; return fract(71534444.1 * sin(pow(seed, 2.))); } void main(void) { vec2 r = resolution; vec2 p = gl_FragCoord.xy / r; // Sky gradient vec3 sky = vec3(pow(p.y, 1.0), .02, p.y * 0.1); vec3 col = sky; bool b = false; p = gl_FragCoord.xy - vec2(60., 120.); if (distance(p, vec2(230., 38.)) < 25.) b = true; if (distance(p, vec2(50., 50.)) < 20.) b = false; if (p.x > 50. && abs(p.y - 1.) < 12.) b = false; if (min(abs(p.x - 280.), abs(p.x - 160.)) < 6.) b = true; if (abs(p.x - 180.) < 25. && p.y > 80.) b = true; if (abs(p.x - 170.) < 15. && p.y < 50. && p.y > 40. ) b = true; if (p.y < 10. || p.y > 90.) b = false; if (b) col = vec3(.9); gl_FragColor = vec4(col, 1.0); } ______________________________________________________________________________ Otvorite sljedeci link: http://glslsandbox.com/ Kopirajte kod koji se nalazi ispod i zalijepite na stranicu. Pritiskom na tikpu Compile dobivate u pozadini ono sto je isprogramirano ______________________________________________________________________________ #ifdef GL_ES precision highp float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; vec2 cmul( vec2 a, vec2 b ) { return vec2( a.x*b.x - a.y*b.y, a.x*b.y + a.y*b.x ); } vec2 csqr( vec2 a ) { return vec2( a.x*a.x - a.y*a.y, 2.*a.x*a.y ); } vec3 dmul( vec3 a, vec3 b ) { float r = length(a); b.xy=cmul(normalize(a.xy), b.xy); b.yz=cmul(normalize(a.yz), b.yz); // b.xz=cmul(normalize(a.xz), b.xz); return r*b; } vec3 pow4( vec3 z){ z=dmul(z,z);return dmul(z,z); } vec3 pow3( vec3 z){ float r2 = dot(z,z); vec2 a = z.xy;a=csqr(a)/dot( a,a); vec2 b = z.yz;b=csqr(b)/dot( b,b); vec2 c = z.xz;c=csqr(c)/dot( c,c); z.xy = cmul(a,z.xy); z.yz = cmul(b,z.yz); z.xz = cmul(c,z.xz); return r2*z; } mat2 rot(float a) { return mat2(cos(a),sin(a),-sin(a),cos(a)); } float zoom=4.; float field(in vec3 p) { float res = 0.; vec3 c = p; for (int i = 0; i < 10; ++i) { p = abs(p) / dot(p,p) -1.; p = dmul(p,p)+.7; res += exp(-6. * abs(dot(p,c)-.15)); } return max(0., res/3.); } vec3 raycast( in vec3 ro, vec3 rd ) { float t = 6.0; float dt = .05; vec3 col= vec3(0.); for( int i=0; i<64; i++ ) { float c = field(ro+t*rd); t+=dt/(.35+c*c); c = max(5.0 * c - .9, 0.0); col = .97*col+ .08*vec3(0.5*c*c*c, .6*c*c, c); } return col; } void main(void) { float time = time; vec2 q = gl_FragCoord.xy / resolution.xy; vec2 p = -1.0 + 2.0 * q; p.x *= resolution.x/resolution.y; vec2 m = vec2(0.); // if( mouse.y>0.0 ) // m = mouse.xy/resolution.xy*3.14; // m-=.5; // camera vec3 ro = zoom*vec3(2.); ro.yz*=rot(m.y+0.4*time); ro.xz*=rot(m.x+ 0.4*time); // vec3 ro = vec3(-0.5 + 3.2*cos(0.1*time + 6.0*mouse.x), 1.0 + 2.0*mouse.y, 0.5 + 3.2*sin(0.1*time + 6.0*mouse.x)); vec3 ta = vec3( 0.0 , 0.0, 0.0 ); vec3 ww = normalize( ta - ro ); vec3 uu = normalize( cross(ww,vec3(0.0,1.0,0.0) ) ); vec3 vv = normalize( cross(uu,ww)); vec3 rd = normalize( p.x*uu + p.y*vv + 4.0*ww ); // raymarch vec3 col = raycast(ro,rd); // shade col = .5 *(log(1.+col)); col = clamp(col,0.,1.); gl_FragColor = vec4( sqrt(col), 1.0 ); vec2 r = resolution; vec2 a = gl_FragCoord.xy / r; vec3 sky = vec3(pow(p.y, 1.0), .02, p.y * 0.1); bool b = false; p = gl_FragCoord.xy - vec2(60., 120.); if (distance(p, vec2(230., 38.)) < 25.) b = true; if (distance(p, vec2(50., 50.)) < 20.) b = false; if (p.x > 50. && abs(p.y - 1.) < 12.) b = false; if (min(abs(p.x - 280.), abs(p.x - 160.)) < 6.) b = true; if (abs(p.x - 180.) < 25. && p.y > 80.) b = true; if (abs(p.x - 170.) < 15. && p.y < 50. && p.y > 40. ) b = true; if (p.y < 10. || p.y > 90.) b = false; if (b) col = vec3(.9); gl_FragColor = vec4(col, 1.0); }