diff --git a/base.config b/base.config index e781211..9005839 100644 --- a/base.config +++ b/base.config @@ -24,8 +24,8 @@ USE_MIPMAP=0 SECOND_PASS_NEGATIVE_TIME=0 # Texts -USE_TEXTS=1 -USE_TEXTS_UNIFORM=1 +USE_TEXTS=0 +USE_TEXTS_UNIFORM=0 TEXTS_UNIFORM_NAME='texts' TEXT_BITMAP_RESOLUTION_X=2048 TEXT_BITMAP_RESOLUTION_Y=512 diff --git a/shader.glsl b/shader.glsl index 27fbfed..e127af5 100644 --- a/shader.glsl +++ b/shader.glsl @@ -143,6 +143,7 @@ vec2 map(vec3 p, int displace) float mat = 0., // Ring boxes an = PI/12., + step, anRot = floor(atan(p.y,p.x)/an + .5)*an; vec3 q = p; q.xy = rot2D(anRot)*q.xy; @@ -202,12 +203,14 @@ vec2 map(vec3 p, int displace) d2 = 1e3; float stepDist = 1.5; for(int i = 0; i < 4; i++) { - float step = sdBox2(vec3(p.x,p.y+stepDist,p.z), vec3(2., .1,stepDist)) - .05; + step = sdBox2(vec3(p.x,p.y+stepDist,p.z), vec3(2., .1,stepDist)) - .05; d2 = min(d2, step); - d = min(d, step); stepDist += .2; } - if (d==d2) mat = 2.0; + d2 += noise(p.xz * 50.+200., .01, 0); + d = min(d, d2*0.7); + if (d==d2*0.7) mat = 2.0; + // sand d2 = (p.y + 4.25) + noise((vec2((p.x*.04),(p.z-40.)*.04))+100., 15., 0)*1.5; @@ -316,11 +319,6 @@ vec3 postProcess(vec3 col) { return col; } -vec3 getCpos(float time) { - return vec3((cos(time)-0.9)*2., -sin(time)*0.8, 5.);; -} - - vec3 cameraPos() { // first zoom in to the gate @@ -408,15 +406,15 @@ vec3 sceneGate(vec2 uv) // indirect lightning -> vec3 in normalize is light direction col += indirColor * clamp( dot( n, normalize(vec3(0. , 1., 10.))), 0., 1.); - + if(mat==0.) col *= vec3(0.21, 0.35, 0.33) + addSpecular(n,rd,.5, 2.); if(mat==1.) - col = getSeaColor(p, n, normalize(vec3(0.0,0.3,0.8)),normalize(rd)); //col = vec3(0.,0.,.5); // + (noise(5.*(p.xy+2.)+u_time, -1.0) * noise(50.*(p.xy+2.), -0.4) + 0.5*noise(20.*(p.xy+2.0)-u_time, -0.5) * noise(5.*(p.xy+2.0), -0.75))*smoothstep(0.,0.75,(u_time-5.0)*0.1) + vec3(0.,0.,0.5*noise(10.*(p.xy+4.0)-u_time, -0.5)); + col = getSeaColor(p, n, normalize(vec3(0.0,0.3,0.8)),normalize(rd)); if(mat==2.) - col *= vec3(.8, .8, .5) + addSpecular(n,rd,.1,1.); // - 0.2*noise((vec2(100.*p.x+300.,75.*p.z+150.0)), -2.2) * noise((vec2(15.*p.x+2.0,3.*p.z+2.)), -1.) + noise((vec2(15.*p.x+2.4,3.*p.z+2.)), -0.25); + col *= vec3(.8, .8, .5); if(mat==3.) - col *= vec3(.8, .8, .5) + noise(p.xz*500.+1e5, .3,0); // + noise(p.xz*1000.+5000., 0.1) + noise(p.xz*1000.+5000., 0.1); + col *= vec3(.8, .8, .5) + noise(p.xz*500.+1e5, .3,0); if(mat==4.) col *= vec3(0.0, 0.08, 0.11) + addSpecular(n,rd,0.3,0.7); if(mat ==5.) @@ -424,7 +422,7 @@ vec3 sceneGate(vec2 uv) if(mat == 6.) { col *= vec3(0.01, 0.04, 0.06) + addSpecular(n,rd,.1, 2.5); } - + } col = applyFog(col, d, rd, vec3(0., -.1, -1.), .01); col = colorFlashesAnim(col); // animated color flash diff --git a/shader_minified.h b/shader_minified.h index 29d0bf7..5cf48b4 100644 --- a/shader_minified.h +++ b/shader_minified.h @@ -87,83 +87,80 @@ const char *__temp_cleaned_shader_glsl = "}" "vec2 e(vec3 v,int s)" "{" - "float c=0.,i=m/12.,r=floor(atan(v.y,v.x)/i+.5)*i;" + "float c=0.,i=m/12.,z,r=floor(atan(v.y,v.x)/i+.5)*i;" "vec3 a=v;" "a.xy=f(r)*a.xy;" - "float z=length(max(abs(a.xy-vec2(1.8,0))-vec2(.24,.14),0.))-.02,d=abs(length(v.xy)-1.8)-.2;" - "z=min(z,d);" - "d=abs(length(v.xy)-1.75)-.08;" - "d=f(d,abs(v.z-.1)-.04,.005);" - "z=max(-d,z);" - "z=f(z,abs(v.z)-.1,.02);" - "for(float l=0.;l<8.;l++)" + "float d=length(max(abs(a.xy-vec2(1.8,0))-vec2(.24,.14),0.))-.02,l=abs(length(v.xy)-1.8)-.2;" + "d=min(d,l);" + "l=abs(length(v.xy)-1.75)-.08;" + "l=f(l,abs(v.z-.1)-.04,.005);" + "d=max(-l,d);" + "d=f(d,abs(v.z)-.1,.02);" + "for(float g=0.;g<8.;g++)" "{" "i=24.67/(m*2.);" "a=v;" - "r=i+(l+1.)*m/4.;" - "if(l==1.)" + "r=i+(g+1.)*m/4.;" + "if(g==1.)" "r+=.2;" - "if(l==7.)" + "if(g==7.)" "r-=.2;" "a.xy=f(r)*a.xy;" - "float p=9.+(l-1.)*2.+1.5;" - "if(l>0.)" + "float p=9.+(g-1.)*2.+1.5;" + "if(g>0.)" "{" "a.x-=1.95;" "vec3 e=a;" "if(y>p)" "e.x=t(vec2(e.x,p));" "float h=x(vec3(a.x-.06,a.yz),vec2(.1,.15))-.01;" - "d=max(-x(vec3(e.x-.14,e.yz),vec2(.22))-.01,x(vec3(e),vec2(.2,.12))-.02);" - "d=min(d,h);" - "z=min(z,d);" - "if(z==d)" + "l=max(-x(vec3(e.x-.14,e.yz),vec2(.22))-.01,x(vec3(e),vec2(.2,.12))-.02);" + "l=min(l,h);" + "d=min(d,l);" + "if(d==l)" "c=4.;" - "if(z==h&&y>p+.2)" + "if(d==h&&y>p+.2)" "c=5.;" "}" "}" - "vec3 e=x(v),l=e;" + "vec3 e=x(v),g=e;" "i=m/16.;" - "l.xy=f(floor(atan(e.y,e.x)/i+.5)*i)*l.xy;" - "d=n(l.xyz-vec3(1.75,0,0),vec3(.04,.14,.05))-.02;" - "z=min(z,d);" - "if(z==d)" + "g.xy=f(floor(atan(e.y,e.x)/i+.5)*i)*g.xy;" + "l=n(g.xyz-vec3(1.75,0,0),vec3(.04,.14,.05))-.02;" + "d=min(d,l);" + "if(d==l)" "c=6.;" - "d=1e3;" + "l=1e3;" "float p=1.5;" "for(int h=0;h<4;h++)" - "{" - "float C=n(vec3(v.x,v.y+p,v.z),vec3(2,.1,p))-.05;" - "d=min(d,C);" - "z=min(z,C);" - "p+=.2;" - "}" - "if(z==d)" + "z=n(vec3(v.x,v.y+p,v.z),vec3(2,.1,p))-.05,l=min(l,z),p+=.2;" + "l+=n(v.xz*50.+2e2,.01,0);" + "d=min(d,l*.7);" + "if(d==l*.7)" "c=2.;" - "d=v.y+4.25+n(vec2(v.x*.04,(v.z-40.)*.04)+1e2,15.,0)*1.5;" - "z=min(z,d);" - "if(z==d)" + "l=v.y+4.25+n(vec2(v.x*.04,(v.z-40.)*.04)+1e2,15.,0)*1.5;" + "d=min(d,l);" + "if(d==l)" "c=3.;" - "d=1e3;" - "float C=0.,h,g=4.,k=.6,F=.2;" + "l=1e3;" + "float h=0.,C,k=4.,F=.6,E=.2;" "if(s==1)" "{" "vec2 w=v.xy;" "for(int u=0;u<4;u++)" - "h=t((w+y)*k,g),h+=t((w-y)*k,g),C+=h*F,w*=mat2(1.6,1.2,-1.2,1.6),k*=1.9,F*=.22,g=mix(g,1.,.4);" + "C=t((w+y)*F,k),C+=t((w-y)*F,k),h+=C*E,w*=mat2(1.6,1.2,-1.2,1.6),F*=1.9,E*=.22,k=mix(k,1.,.4);" "}" - "d=max(-x(v,2.,min(2.-(y-23.)*3.,2.3)),x(v,.025,1.6)-C*.15);" - "d=max(d,x(v,.3,1.7));" - "z=min(z,d);" - "if(z==d)" + "l=max(-x(v,2.,min(2.-(y-23.)*3.,2.3)),x(v,.025,1.6)-h*.15);" + "l=max(l,x(v,.3,1.7));" + "d=min(d,l);" + "if(d==l)" "c=1.;" - "return vec2(z,c);" + "return vec2(d,c);" "}" "float h(vec3 v,vec3 y)" "{" "float m,i=0.;" - "for(int z=0;z<90;z++)" + "for(int l=0;l<90;l++)" "{" "m=e(v+y*i,0).x;" "i+=m;" @@ -178,17 +175,17 @@ const char *__temp_cleaned_shader_glsl = "vec3 m=e(v,1).x-vec3(e(v-y.xyy,1).x,e(v-y.yxy,1).x,e(v-y.yyx,1));" "return normalize(m);" "}" - "float e(vec3 v,vec3 y,float m,vec3 z)" + "float e(vec3 v,vec3 y,float m,vec3 d)" "{" - "vec3 c=normalize(y-v);" - "float x=clamp(dot(z,c),0.,1.),d=h(v+z*.0025,c);" - "if(abs(d)