#version 330 core in vec2 wspTekstur; uniform sampler2D ProbnikTekstury; out vec3 kolor_out; const vec2 rozmiarOkna = vec2(800,600); void main() { vec3 p = gl_FragCoord.xyz / vec3(rozmiarOkna,1) - 0.5; //uzywamy tez glebii, ale wsp 0-1 vec4 teksel = texture(ProbnikTekstury, 0.5 + p.xy); //vec3 o = teksel.rgb; //oryginalne kolory vec3 o = teksel.rbb; //zmienione kolory for (float i = 0; i<100; i++) { teksel = texture(ProbnikTekstury, 0.5 + p.xy); p.z += pow(max(0, 0.5 - length(teksel.rgb)), 2)*exp(-i*0.08); p.xy *= 0.992; //stopniowa zmiana wspolrzednych } //kolor_out = o; //kolor_out = o * o; //kolor_out = vec3(p.z); kolor_out = o * o + vec3(p.z); }