port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

81
underwater4k/tex1.glsl_2 Normal file
View File

@@ -0,0 +1,81 @@
// Parameters from our host
// x: #sceneid.#scenetime (float)
// y: undefined
// z: Snare drum intensity (amiga ball radius gain)
// w: undefined
uniform vec4 Z;
float rnd(vec2 p)
{
p.x += p.y * 57.;
return sin(cos(p.x) * p.x);
}
float scale;
vec2 hash( vec2 p )
{
p = mod(p, scale);
p = vec2( dot(p,vec2(127.1,311.7)),
dot(p,vec2(269.5,183.3)) );
return -1.0 + 2.0*fract(sin(p)*43758.5453123);
}
float noise( in vec2 p, float s )
{
scale = s;
p *= s;
vec2 i = floor( p );
vec2 f = fract( p );
vec2 u = f*f*(3.0-2.0*f);
return mix( mix( dot( hash( i + vec2(0.0,0.0) ), f - vec2(0.0,0.0) ),
dot( hash( i + vec2(1.0,0.0) ), f - vec2(1.0,0.0) ), u.x),
mix( dot( hash( i + vec2(0.0,1.0) ), f - vec2(0.0,1.0) ),
dot( hash( i + vec2(1.0,1.0) ), f - vec2(1.0,1.0) ), u.x), u.y);
}
float voronoi(vec2 p)
{
p = mod(p, 1.0);
float min1 = 1, min2 = 1; float seed = 10; const int numPoints = 256;
for (int i = 0; i < numPoints; ++i)
{
vec2 pointPos = vec2(rnd(vec2(0, seed++)), rnd(vec2(1, seed++)))*.5+.5;
//pointPos += vec2(sin(Z.z+rnd(vec2(0, seed++))), cos(Z.z+rnd(vec2(1, seed++))))*0.1;
vec2 d = abs(p - pointPos);
vec2 s = step(0.5, d);
d = s+d*(-s*2+1);
float dist = length(d);
if (dist < min2)
{
if (dist < min1)
{
min2 = min1;
min1 = dist;
}
else
{
min2 = dist;
}
}
}
//return pow(1.0 - (min2 - min1), 32.0);
return 1.0 - min1 * 10.0;//(min2 - min1) * 8.0;
}
void main()
{
vec2 p = gl_FragCoord.xy / Z.xy;
float l = voronoi(p);
float f = 0.5;
float seed = 10.0;
for (float t = 2.0; t <= Z.x; t *= 2.0)
{
f += (0.5 / pow(t, 0.8)) * noise(p,t);
}
gl_FragColor = vec4(l,f,l,1);
}