Shader fixes for Delta Touch.

This commit is contained in:
Marisa the Magician 2023-11-29 19:36:58 +01:00
commit db6eced213
5 changed files with 16 additions and 16 deletions

View file

@ -1,7 +1,7 @@
vec4 ProcessTexel() vec4 ProcessTexel()
{ {
const vec3 fadecol = vec3(.9,.1,.2); const vec3 fadecol = vec3(.9,.1,.2);
vec2 coord = vTexCoord.st+vec2(timer*0.02,0.); vec2 coord = vTexCoord.st+vec2(timer*.02,0.);
coord = fract(coord); coord = fract(coord);
vec3 base = getTexel(coord).rgb; vec3 base = getTexel(coord).rgb;
float dist = abs(vTexCoord.s-.5)*2.; float dist = abs(vTexCoord.s-.5)*2.;

View file

@ -2,21 +2,21 @@ vec4 ProcessTexel()
{ {
vec2 uv = vTexCoord.st; vec2 uv = vTexCoord.st;
uv.x += 1.; uv.x += 1.;
float ang = timer*0.05; float ang = timer*.05;
vec2 uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.3; vec2 uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.3;
vec3 col = getTexel(fract(uv2)).rgb; vec3 col = getTexel(fract(uv2)).rgb;
uv.y -= 2.; uv.y -= 2.;
ang = timer*0.03; ang = timer*.03;
uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.5; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.5;
col += getTexel(fract(uv2)).rgb; col += getTexel(fract(uv2)).rgb;
uv.x -= 3.; uv.x -= 3.;
ang = timer*0.04; ang = timer*.04;
uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.6; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.6;
col += getTexel(fract(uv2)).rgb; col += getTexel(fract(uv2)).rgb;
uv.y += 4.; uv.y += 4.;
ang = timer*0.02; ang = timer*.02;
uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.2; uv2 = vec2(uv.x*cos(ang)-uv.y*sin(ang),uv.y*cos(ang)+uv.x*sin(ang))*1.2;
col += getTexel(fract(uv2)).rgb; col += getTexel(fract(uv2)).rgb;
col *= 0.25; col *= .25;
return vec4(col,1.); return vec4(col,1.);
} }

View file

@ -1,7 +1,7 @@
vec4 ProcessTexel() vec4 ProcessTexel()
{ {
vec2 ccoord = vTexCoord.st-vec2(.5); vec2 ccoord = vTexCoord.st-vec2(.5);
if ( ccoord.y < 0 ) ccoord.x *= -1.; if ( ccoord.y < 0. ) ccoord.x *= -1.;
ccoord.y = abs(ccoord.y); ccoord.y = abs(ccoord.y);
vec3 pt = vec3(ccoord.x,ccoord.y-1.,ccoord.y); vec3 pt = vec3(ccoord.x,ccoord.y-1.,ccoord.y);
vec2 proj = pt.xy/pt.z; vec2 proj = pt.xy/pt.z;
@ -13,7 +13,7 @@ vec4 ProcessTexel()
coord = proj*.123234+vec2(0.,-1.)*timer*.092346; coord = proj*.123234+vec2(0.,-1.)*timer*.092346;
coord = fract(coord); coord = fract(coord);
col += getTexel(coord).rgb; col += getTexel(coord).rgb;
coord = proj*.145463+vec2(0.3,-1.)*timer*.093242; coord = proj*.145463+vec2(.3,-1.)*timer*.093242;
coord = fract(coord); coord = fract(coord);
col += getTexel(coord).rgb; col += getTexel(coord).rgb;
col *= vec3(1.2,.4,.8); col *= vec3(1.2,.4,.8);

View file

@ -5,5 +5,5 @@ vec4 ProcessTexel()
float mask = texture(masktex,vTexCoord.st).x; float mask = texture(masktex,vTexCoord.st).x;
vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz); vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz);
vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz)); vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz));
return vec4(base.rgb+texture(envtex,norm.xz*0.5+0.5).rgb*mask,base.a); return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a);
} }

View file

@ -5,11 +5,11 @@ vec4 ProcessLight( vec4 color )
if ( gs.x > .5 ) return color; if ( gs.x > .5 ) return color;
if ( gs.y > .5 ) if ( gs.y > .5 )
{ {
float glow = max(0.,sin(timer*4)-.5); float glow = max(0.,sin(timer*4.)-.5);
return vec4(min(color.rgb+vec3(glow),1.),color.a); return vec4(min(color.rgb+vec3(glow),1.),color.a);
} }
float glow = 0.25+0.2*sin(timer*8); float glow = .25+.2*sin(timer*8.);
return vec4(min(color.rgb+vec3(glow),1.0),color.a); return vec4(min(color.rgb+vec3(glow),1.),color.a);
} }
// imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close // imitation of the Unreal Engine 1.x bMeshEnviroMap effect, not 1:1 but gets close
@ -21,12 +21,12 @@ vec4 ProcessTexel()
vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz); vec3 eyedir = normalize(uCameraPos.xyz-pixelpos.xyz);
vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz)); vec3 norm = reflect(eyedir,normalize(vWorldNormal.xyz));
vec2 gs = texture(ambglow,vec2(.5)).xy; vec2 gs = texture(ambglow,vec2(.5)).xy;
if ( gs.x > .5 ) return vec4(base.rgb+texture(envtex,norm.xz*0.5+0.5).rgb*mask,base.a); if ( gs.x > .5 ) return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a);
if ( gs.y > .5 ) if ( gs.y > .5 )
{ {
float glow = max(0.,sin(timer*4)-.5); float glow = max(0.,sin(timer*4.)-.5);
vec3 col = base.rgb+texture(envtex,norm.xz*0.5+0.5).rgb*mask; vec3 col = base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask;
return vec4(min(col+vec3(glow),1.),base.a); return vec4(min(col+vec3(glow),1.),base.a);
} }
return vec4(base.rgb+texture(envtex,norm.xz*0.5+0.5).rgb*mask,base.a); return vec4(base.rgb+texture(envtex,norm.xz*.5+.5).rgb*mask,base.a);
} }