added box mateial wrapper

This commit is contained in:
2025-09-11 15:30:11 +05:30
parent f35daf3cf5
commit a9af598ade
16 changed files with 188 additions and 99 deletions

View File

@@ -0,0 +1,42 @@
#define TAU 6.28318530718
#define MAX_ITER 5
varying vec2 vUv;
uniform float uTime;
uniform vec3 uOuterColor;
void main() {
float time = uTime * 0.25;
vec2 uv = vUv;
vec2 p = mod(uv * TAU, TAU) - 250.0;
vec2 i = vec2(p);
float c = 1.0;
float inten = 0.005;
for (int n = 0; n < MAX_ITER; n++) {
float t = time * (1.0 - (3.5 / float(n + 1)));
i = p + vec2(
cos(t - i.x) + sin(t + i.y),
sin(t - i.y) + cos(t + i.x)
);
c += 1.0 / length(vec2(
p.x / (sin(i.x + t) / inten),
p.y / (cos(i.y + t) / inten)
));
}
c /= float(MAX_ITER);
c = 1.17 - pow(c, 1.4);
vec3 fractalCol = vec3(pow(abs(c), 8.0));
fractalCol = clamp(fractalCol + vec3(0.0, 0.35, 0.5), 0.0, 1.0);
vec3 darkColor = uOuterColor * 0.4;
vec3 col = mix(darkColor, uOuterColor, fractalCol.r);
float verticalFade = 1.0 - vUv.y;
gl_FragColor = vec4(col * verticalFade, verticalFade);
}

View File

@@ -0,0 +1,6 @@
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}

View File

@@ -0,0 +1,25 @@
varying vec2 vUv;
uniform vec3 uOuterColor;
uniform float uTime;
void main() {
// Map vUv into -1..1 range like Shadertoy
vec2 uv = (vUv - 1.0) * 0.5;
// Distortion loop slowed down (uTime * 0.25)
for (float i = 1.0; i < 8.0; i++) {
uv.y += 0.1 * sin(uv.x * i * i + uTime * 0.25)
* sin(uv.y * i * i + uTime * 0.25);
}
// Base color influenced by uv + zone color
vec3 col = uOuterColor;
col.r += uv.y * 0.2;
col.g += uv.y * 0.3;
col.b += uv.y * 0.4;
// Vertical fade
float verticalFade = 1.0 - vUv.y;
gl_FragColor = vec4(col * verticalFade, verticalFade);
}

View File

@@ -0,0 +1,6 @@
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}

View File

@@ -0,0 +1,37 @@
varying vec2 vUv;
uniform float uTime;
uniform vec3 uOuterColor;
void main() {
// UV mapping like fragCoord
vec2 uv = vUv;
vec2 p = uv * 2.0 - 1.0;
float t = uTime * 0.3;
// Flow direction and movement
vec2 flowDir = normalize(vec2(-0.7, -1.0));
float flowSpeed = 2.0;
float flow = dot(p, flowDir) * flowSpeed + t;
// Ripples
float rippleX = sin(p.x * 12.0 + t * 1.5) * cos(p.y * 8.0 + t * 2.0) * 0.3;
float rippleY = cos(p.y * 10.0 - t * 1.2) * sin(p.x * 7.0 + t * 0.8) * 0.4;
float distort = rippleX + rippleY;
// Gradient to drive stripes
float gradient = fract(flow + distort * 0.5);
// Smooth liquid band
float band = smoothstep(0.2, 0.6, gradient) - smoothstep(0.6, 0.9, gradient);
// Darker zone color
vec3 darkColor = uOuterColor * 0.4;
// Mix between dark and bright zone color
vec3 col = mix(darkColor, uOuterColor, band);
// Vertical fade
float verticalFade = 1.0 - vUv.y;
gl_FragColor = vec4(col * verticalFade, verticalFade);
}

View File

@@ -0,0 +1,6 @@
varying vec2 vUv;
void main(){
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}