222.52
47.9 fps
840 x 473
Inspired by arabesque.
https://cineshader.com/editor

着色器输入
uniform vec3 iResolution; // viewport resolution (in pixels)
uniform float iTime; // shader playback time (in seconds)
uniform float iTimeDelta; // render time (in seconds)
uniform float iFrameRate; // shader frame rate
uniform int iFrame; // shader playback frame
uniform float iChannelTime[4]; // channel playback time (in seconds)
uniform vec3 iChannelResolution[4]; // channel resolution (in pixels)
uniform vec4 iMouse; // mouse pixel coords. xy: current (if MLB down), zw: click
uniform samplerXX iChannel0..3; // input channel. XX = 2D/Cube
uniform vec4 iDate; // (year, month, day, time in seconds)
uniform float iSampleRate; // sound sample rate (i.e., 44100)
x
*/1
precision highp float;2
​3
​4
float gTime = 0.;5
const float REPEAT = 5.0;6
​7
// 回転行列8
mat2 rot(float a) {9
float c = cos(a), s = sin(a);10
return mat2(c,s,-s,c);11
}12
​13
float sdBox( vec3 p, vec3 b )14
{15
vec3 q = abs(p) - b;16
return length(max(q,0.0)) + min(max(q.x,max(q.y,q.z)),0.0);17
}18
​19
float box(vec3 pos, float scale) {20
pos *= scale;21
float base = sdBox(pos, vec3(.4,.4,.1)) /1.5;22
pos.xy *= 5.;23
pos.y -= 3.5;24
pos.xy *= rot(.75);25
float result = -base;26
return result;27
}28
​29
float box_set(vec3 pos, float iTime) {30
vec3 pos_origin = pos;31
pos = pos_origin;32
pos .y += sin(gTime * 0.4) * 2.5;33
pos.xy *= rot(.8);34
float box1 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);35
pos = pos_origin;36
pos .y -=sin(gTime * 0.4) * 2.5;37
pos.xy *= rot(.8);38
float box2 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5);39
pos = pos_origin;40
pos .x +=sin(gTime * 0.4) * 2.5;41
pos.xy *= rot(.8);42
float box3 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5); 43
pos = pos_origin;44
pos .x -=sin(gTime * 0.4) * 2.5;45
pos.xy *= rot(.8);46
float box4 = box(pos,2. - abs(sin(gTime * 0.4)) * 1.5); 47
pos = pos_origin;48
pos.xy *= rot(.8);49
float box5 = box(pos,.5) * 6.; 50
pos = pos_origin;51
float box6 = box(pos,.5) * 6.; 52
float result = max(max(max(max(max(box1,box2),box3),box4),box5),box6);
Filter
Wrap
iChannel0





Filter
Wrap
iChannel1





Filter
Wrap
iChannel2





Filter
Wrap
iChannel3




























cool
really cool!
good
This is so cool, I'm just amazed by this thank you for sharing!
One of the simpler ways to make an octagram like yours is to recognize it as two overlapping boxes. One of them is rotated by 45 degrees, and the union operator can be used. However, this method is bound in the interior.
average tetrio qp2 experience
Mesmerizing kaleidoscopic symmetry and detail—it feels like looking into a crystalline universe.
love this!
Beautiful !!!
Very cool!
amazing
amazing
very cool
eddx
Beautiful!
Pretty.
very nice, reminds me of some lsdlive shaders