Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 330 core
- out vec4 FragColor;
- uniform sampler2D TTC; // палитра цветов
- uniform sampler2D MAP;
- uniform vec2 sizeW;
- uniform vec2 sizeM;
- uniform vec2 XYcam;
- uniform float mst;
- float length(vec2 Dot1, vec2 Dot2) {
- return(sqrt((Dot1.x - Dot2.x)*(Dot1.x - Dot2.x) + (Dot1.y - Dot2.y)*(Dot1.y - Dot2.y)));
- }
- float RANDS(float seed) {
- seed = sin(sin(seed*143.371f+21.212)*157.512f*seed+224.242) * 10.2521;
- return(fract(seed));
- }
- float RANDS(float seed1, float seed2) {
- seed1 = sin(cosh(fract(seed1*41.1251251)+4.4124)+cosh(fract(seed2*53.1251251)-4.4122));
- return(fract(seed1));
- }
- float RANDS(float seed1, float seed2, float seed3) {
- seed1 = sin(RANDS(seed2 + seed3 * 15.5235661f) + seed1 * 12.734734541f)*12.7571f*(seed1 - 214.f + seed3 * 21.6236281f);
- return(fract(seed1));
- }
- float ReLu(float x) {
- if(x>0.f)
- return(x);
- else
- return(0.f);
- }
- float prlRand(float seed, float x, float y) {
- float sum = 0.f;
- float asum = 0.f;
- for(float a = 0.9f; a < 5.f; a+=1.f){
- float s = a * a;
- float
- serum1 = 0.f;
- float serum2 = 0.f;
- float seed1 = RANDS(seed,a);
- float x1 = x * s - floor(x * s + 0.5f);
- float y1 = y * s - floor(y * s + 0.5f);
- float fx0 = floor(x*s - 2.f + 0.5f) / s;
- float fx1 = floor(x*s - 1.f + 0.5f) / s;
- float fx2 = floor(x*s + 0.5f) / s;
- float fx3 = floor(x*s + 1.f + 0.5f) / s;
- float fx4 = floor(x*s + 2.f + 0.5f) / s;
- float fy0 = floor(y*s - 2.f + 0.5f) / s;
- float fy1 = floor(y*s - 1.f + 0.5f) / s;
- float fy2 = floor(y*s + 0.5f) / s;
- float fy3 = floor(y*s + 1.f + 0.5f) / s;
- float fy4 = floor(y*s + 2.f + 0.5f) / s;
- float csd1 = 2.0f;
- float csd2 = 2.0f;
- float csd3 = 2.0f;
- float csd4 = 2.0f;
- float cfd1 = 1.0f;
- float cfd2 = 1.0f;
- float cfd3 = 1.0f;
- float cfd4 = 1.0f;
- float sd = 2.f;
- serum1 += RANDS(fx0, fy0, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx0, fy1, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx0, fy2, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx0, fy3, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx0, fy4, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx4, fy0, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx4, fy1, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx4, fy2, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx4, fy3, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx4, fy4, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx1, fy0, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx1 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx1, fy4, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx1 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx2, fy0, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx2 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx2, fy4, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx2 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx3, fy0, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx3 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx3, fy4, seed1) * cfd1 * pow(ReLu(csd1 - (length(vec2( fx3 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx1, fy1, seed1) * cfd4 * pow(ReLu(csd4 - (length(vec2( fx1 * s, fy1 * s ), vec2( x * s, y * s )))), sd);//
- serum1 += RANDS(fx1, fy2, seed1) * cfd3 * pow(ReLu(csd3 - (length(vec2( fx1 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx1, fy3, seed1) * cfd4 * pow(ReLu(csd4 - (length(vec2( fx1 * s, fy3 * s ), vec2( x * s, y * s )))), sd);//
- serum1 += RANDS(fx2, fy1, seed1) * cfd3 * pow(ReLu(csd3 - (length(vec2( fx2 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx2, fy2, seed1) * cfd2 * pow(ReLu(csd2 - (length(vec2( fx2 * s, fy2 * s ), vec2( x * s, y * s )))), sd);///
- serum1 += RANDS(fx2, fy3, seed1) * cfd3 * pow(ReLu(csd3 - (length(vec2( fx2 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx3, fy1, seed1) * cfd4 * pow(ReLu(csd4 - (length(vec2( fx3 * s, fy1 * s ), vec2( x * s, y * s )))), sd);//
- serum1 += RANDS(fx3, fy2, seed1) * cfd3 * pow(ReLu(csd3 - (length(vec2( fx3 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum1 += RANDS(fx3, fy3, seed1) * cfd4 * pow(ReLu(csd4 - (length(vec2( fx3 * s, fy3 * s ), vec2( x * s, y * s )))), sd);//
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy2 * s ), vec2( x * s, y * s
- )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx0 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx4 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx1 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx1 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx2 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx2 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx3 * s, fy0 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd1 * pow(ReLu(csd1 - (length(vec2( fx3 * s, fy4 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd4 * pow(ReLu(csd4 - (length(vec2( fx1 * s, fy1 * s ), vec2( x * s, y * s )))), sd);//
- serum2 += cfd3 * pow(ReLu(csd3 - (length(vec2( fx1 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd4 * pow(ReLu(csd4 - (length(vec2( fx1 * s, fy3 * s ), vec2( x * s, y * s )))), sd);//
- serum2 += cfd3 * pow(ReLu(csd3 - (length(vec2( fx2 * s, fy1 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd2 * pow(ReLu(csd2 - (length(vec2( fx2 * s, fy2 * s ), vec2( x * s, y * s )))), sd);///
- serum2 += cfd3 * pow(ReLu(csd3 - (length(vec2( fx2 * s, fy3 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd4 * pow(ReLu(csd4 - (length(vec2( fx3 * s, fy1 * s ), vec2( x * s, y * s )))), sd);//
- serum2 += cfd3 * pow(ReLu(csd3 - (length(vec2( fx3 * s, fy2 * s ), vec2( x * s, y * s )))), sd);
- serum2 += cfd4 * pow(ReLu(csd4 - (length(vec2( fx3 * s, fy3 * s ), vec2( x * s, y * s )))), sd);//
- if (serum2 != 0.f)
- sum+= serum1 / serum2 / s;
- asum+=1.f/s;
- }
- return (sum/asum);
- }
- void main() {
- vec2 Pos = vec2(gl_FragCoord.x / sizeW.x, gl_FragCoord.y / sizeW.x) * 2.f;
- Pos.y = Pos.y * mst - 0.5f * mst + XYcam.y;
- Pos.x = Pos.x * mst - 1.f * mst + XYcam.x;
- float c = prlRand(236236,Pos.x,Pos.y);
- FragColor.rgb = vec3(c,c,c);
- FragColor.a = 1.f;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement