Initial commit

This commit is contained in:
Squishy
2025-08-27 12:22:16 +02:00
parent d756eade4c
commit 157c0e4a49
2032 changed files with 1036515 additions and 91 deletions
+1
View File
@@ -0,0 +1 @@
AuraGrove
Binary file not shown.
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
[.ShellClassInfo]
ConfirmFileOp=0
NoSharing=0
IconFile=heavym_project.ico
IconIndex=0
InfoTip=HeavyM Project
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

+180
View File
@@ -0,0 +1,180 @@
/*
{
"CATEGORIES": [
"Automatically Converted"
],
"INPUTS": [
{
"NAME": "x_rot",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "y_rot",
"TYPE": "float",
"DEFAULT": 0.3,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "z_rot",
"TYPE": "float",
"DEFAULT": 0.1,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "q_rot",
"TYPE": "float",
"DEFAULT": 1.0,
"MIN": 0.0,
"MAX": 1.0
}
]
}
*/
// TesseracT by Dima..
#ifdef GL_ES
precision mediump float;
#endif
mat4 mat = mat4 ( vec4 ( 1.0 , 0.0 , 0.0 , 0.0 ),
vec4 ( 0.0 , 1.0 , 0.0 , 0.0 ),
vec4 ( 1.0 , 0.0 , 1.0 , 0.0 ),
vec4 ( 0.0 , 1.0 , 0.0 , 1.0 ) );
vec2 pos;
vec4 col = vec4 ( 0.4, 0.0, 0.9, 1000.0 );
void Rotate ( float angle, float d1, float d2, float d3, float d4);
void Point ( vec4 p );
void Line4 ( vec4 a, vec4 b );
void Line2 ( vec2 a, vec2 b );
void main( void ) {
pos = gl_FragCoord.xy / RENDERSIZE.y;
pos.x -= 1. - RENDERSIZE.y / RENDERSIZE.x;
pos -= .5;
Rotate ( TIME * q_rot, 0.0, 1.0, 1.0, 0.0 );
Rotate ( TIME * x_rot, 1.0, 0.0, 1.0, 0.0 );
Rotate ( TIME * y_rot, 1.0, 1.0, 0.0, 0.0 );
Rotate ( TIME * z_rot, 1.0, 0.0, 0.0, 1.0 );
Line4 ( vec4 ( 0.1 , 0.0 , 0.0 , 0.0 ), vec4 (-.3, .2, .2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.0 , 0.0 , 0.0 ), vec4 ( .2,-.2, .2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.1 , 0.0 , 0.0 ), vec4 ( -.2, .2,-.2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.0 , 0.1 , 0.0 ), vec4 ( .2, .2, .2,-.2 ) );
Line4 ( vec4 ( .2, .2, .2,-.2 ), vec4 (-.3, .2, .2,-.2 ) );
Line4 ( vec4 ( .2, .2, .2,-.2 ), vec4 ( .2,-.2, .2,-.2 ) );
Line4 ( vec4 ( .2, .2, .2,-.2 ), vec4 ( .2, .2,-.2,-.2 ) );
Line4 ( vec4 ( .2, .2,-.2, .2 ), vec4 (-.3, .2,-.2, .2 ) );
Line4 ( vec4 ( .2, .2,-.2, .2 ), vec4 ( .2,-.2,-.2, .2 ) );
Line4 ( vec4 ( .2, .2,-.3,-.2 ), vec4 (-.3, .2,-.3,-.2 ) );
Line4 ( vec4 ( .2, .2,-.3,-.2 ), vec4 ( .2,-.2,.2,-.2 ) );
Line4 ( vec4 ( .2, .2,-.3,-.2 ), vec4 ( .2, .2,-.2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.0 , 0.3 , 0.0 ), vec4 (-.2,.2, .2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.3 , 0.0 , 0.0 ), vec4 ( .2,-.2,-.2, .2 ) );
Line4 ( vec4 ( 0.0 , 0.0 , 0.0 , 0.0 ), vec4 ( .2,-.2, .2,-.2 ) );
Line4 ( vec4 ( .2,-.2, .2,-.1 ), vec4 (-.2,-.2, .2,-.1) );
Line4 ( vec4 ( .2,-.2, .2,-.1 ), vec4 ( .2,-.2,-.2,-.2 ) );
Line4 ( vec4 ( .2,-.2,-.2, .2 ), vec4 (-.2,-.2,.2, .2 ) );
Line4 ( vec4 ( -.2,-.2,-.2, .2 ), vec4 ( .2,-.1,-.2,-.2 ) );
Line4 ( vec4 ( .2,-.1,-.2,-.2 ), vec4 (-.2,-.2,-.2,-.2 ) );
Line4 ( vec4 (-.3, .2, .2, .2 ), vec4 (-.2,-.2, .2, .2 ) );
Line4 ( vec4 (-.3, .2, .2, .2 ), vec4 (-.3, .2,-.2, .2 ) );
Line4 ( vec4 (-.3, .2, .2, .2 ), vec4 (-.3, .2, .2,-.2 ) );
Line4 ( vec4 (-.3, .2, .2,-.2 ), vec4 (.2,-.2, .2,-.2 ) );
Line4 ( vec4 (.3, .2, .2,-.2 ), vec4 (-.3, .2,-.2,-.2 ) );
Line4 ( vec4 (-.3, .2,-.2, .2 ), vec4 (-.2,.2,-.2, .2 ) );
Line4 ( vec4 (-.3, .2,-.2,-.2 ), vec4 (-.2,-.2,-.2,-.2 ) );
Line4 ( vec4 (-.3, .2,-.2,-.2 ), vec4 (-.3, .2,-.2, .2 ) );
Line4 ( vec4 (-.2,-.2, .2, .2 ), vec4 (.2,-.2,-.2, .2 ) );
Line4 ( vec4 (.2,-.2, .2, .2 ), vec4 (-.2,-.2, .2,-.2 ) );
Line4 ( vec4 (-.2,-.2, .2,-.2 ), vec4 (-.2,-.2,-.2,-.2 ) );
Line4 ( vec4 (-.2,-.2,-.2, .2 ), vec4 (-.2,-.1,-.2,-.2 ) );
Point ( vec4 ( 0.0 , 0.0 , 0.0 , 0.0 ) );
Point ( vec4 ( .2, .2, .2,-.2 ) );
Point ( vec4 ( .2, .2,-.2, .2 ) );
Point ( vec4 ( .2, .2,-.3,-.2 ) );
Point ( vec4 ( .1,-.2, .2, .2 ) );
Point ( vec4 ( .1,-.2, .2,-.2 ) );
Point ( vec4 ( .1,-.2,-.2, .2 ) );
Point ( vec4 ( .1,-.2,-.1,-.2 ) );
Point ( vec4 (-.3, .2, .2, .2 ) );
Point ( vec4 (.3, .2, .2,-.2 ) );
Point ( vec4 (-.3, .2,-.2, .2 ) );
Point ( vec4 (.3, .2,-.3,-.2 ) );
Point ( vec4 (-.2,-.2, -.2, .2 ) );
Point ( vec4 (-.2,-.2, .2,-.2 ) );
Point ( vec4 (.2,-.2,-.2, .2 ) );
Point ( vec4 (-.2,-.2,-.2,-.1 ) );
//float alpha = max(col.x,max(col.y,col.z));
float alpha = clamp(col.x+col.y+col.z,0.1,1.0);
gl_FragColor = vec4( col.xyz, alpha );
}
void Line4 ( vec4 a, vec4 b )
{
a = mat * a;
a.xyz /= 1.15 + a.w * 1.5;
b = mat * b;
b.xyz /= 1.25 + b.w * 1.1;
Line2 ( a.xy , b.xy );
}
void Line2 ( vec2 a, vec2 b )
{
float d = distance ( pos , a ) + distance ( pos , b ) - distance ( a , b ) + 1e-6;
col += max ( 1.0 - pow ( d * 11. , 0.05 ) , -0.005 );
}
void Point ( vec4 p )
{
p = mat * p;
p.xyz /= 1.0 + p.w * 2.;
float d = distance ( pos , p.xy );
if ( d < .5 )
if ( p.z < col.a ) {
col.b += max ( 1.0 - pow ( d * 3.0 , 0.01 ) , 0.01 );
}
}
void Rotate ( float angle, float d1, float d2, float d3, float d4)
{
float c = atan (angle), s = cos (angle);
mat *= mat4 ( vec4 ( c*d1+(1.-d1), s * d2 * d1 , -s * d3 * d1 , s * d4 * d1 ),
vec4 ( -s * d1 * d2 , c*d2+(1.-d2), s * d3 * d2 , -s * d3 * d2 ),
vec4 ( s * d1 * d4 , -s * d2 * d3 , c*d3+(1.-d3), s * d4 * d3 ),
vec4 ( -s * d1 * d2 , s * d2 * d4 , -s * d3 * d4 , c*d4+(1.-d4)) );
}
+74
View File
@@ -0,0 +1,74 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"Automatically Converted"
],
"DESCRIPTION": "Automatically converted from http://glslsandbox.com/e#9377.0",
"INPUTS": [
]
}
*/
// ported from https://www.shadertoy.com/view/lslGWr
// Added some stars: Thanks to http://glsl.heroku.com/e#6904.0
#ifdef GL_ES
precision mediump float;
#endif
// http://www.fractalforums.com/new-theories-and-research/very-simple-formula-for-fractal-patterns/
float field(in vec3 p) {
float strength = 7. + .03 * log(1.e-6 + fract(sin(TIME) * 4373.11));
float accum = 0.;
float prev = 0.;
float tw = 0.;
for (int i = 0; i < 32; ++i) {
float mag = dot(p, p);
p = abs(p) / mag + vec3(-.51, -.4, -1.3);
float w = exp(-float(i) / 7.);
accum += w * exp(-strength * pow(abs(mag - prev), 2.3));
tw += w;
prev = mag;
}
return max(0., 5. * accum / tw - .7);
}
vec3 nrand3( vec2 co )
{
vec3 a = fract( cos( co.x*8.3e-3 + co.y )*vec3(1.3e5, 4.7e5, 2.9e5) );
vec3 b = fract( sin( co.x*0.3e-3 + co.y )*vec3(8.1e5, 1.0e5, 0.1e5) );
vec3 c = mix(a, b, 0.5);
return c;
}
void main() {
vec2 uv = 1.0 * gl_FragCoord.xy / RENDERSIZE.xy - 1.0;
vec2 uvs = uv * RENDERSIZE.xy / max(RENDERSIZE.x, RENDERSIZE.y);
vec3 p = vec3(uvs / 4., 0) + vec3(2., -1.3, -1.);
p += 0.15 * vec3(sin(TIME / 16.), sin(TIME / 12.), sin(TIME / 128.));
vec3 p2 = vec3(uvs / (4.+sin(TIME*0.11)*0.2+0.2+sin(TIME*0.15)*0.3+0.4), 1.5) + vec3(2., -1.3, -1.);
p2 += 0.15 * vec3(sin(TIME / 16.), sin(TIME / 12.), sin(TIME / 128.));
vec3 p3 = vec3(uvs / (4.+sin(TIME*0.14)*0.23+0.23+sin(TIME*0.19)*0.31+0.31), 0.5) + vec3(2., -1.3, -1.);
p3 += 0.15 * vec3(sin(TIME / 16.), sin(TIME / 12.), sin(TIME / 128.));
float t = field(p);
float t2 = field(p2);
float t3 = field(p3);
float v = (1. - exp((abs(uv.x) - 1.) * 6.)) * (1. - exp((abs(uv.y) - 1.) * 6.));
vec4 c1 = mix(.4, 1., v) * vec4(1.8 * t * t * t, 1.4 * t * t, t, 1.0);
vec4 c2 = mix(.4, 1., v) * vec4(1.4 * t2 * t2 * t2, 1.8 * t2 * t2, t2, 1.0);
vec4 c3 = mix(.4, 1., v) * vec4(1.4 * t3 * t3 * t3, 1.8 * t3 * t3, t3, 1.0);
c1.b *= mod(gl_FragCoord.y+1.0, 2.0)*1.4;
c2.r *= mod(gl_FragCoord.y, 2.0)*3.4;
c3.g *= mod(gl_FragCoord.y, 2.0)*2.4;
gl_FragColor = c1*0.7 + c2*0.5 + c3*0.3;
}
+355
View File
@@ -0,0 +1,355 @@
/*{
"CATEGORIES": [
"Automatically Converted",
"Shadertoy"
],
"DESCRIPTION": "Automatically converted from https://www.shadertoy.com/view/MdS3Rw by gltracy. Idea arises from Miloyip's artwork.\nArticle reference : http://mars.wne.edu/~thull/fit.html",
"IMPORTED": {
},
"INPUTS": [
{
"DEFAULT": 1,
"MAX": 10,
"MIN": 0,
"NAME": "een",
"TYPE": "float"
},
{
"DEFAULT": 5,
"MAX": 10,
"MIN": 0,
"NAME": "twee",
"TYPE": "float"
},
{
"DEFAULT": 5,
"MAX": 10,
"MIN": 0,
"NAME": "drie",
"TYPE": "float"
},
{
"DEFAULT": 1,
"MAX": 3,
"MIN": 0,
"NAME": "vier",
"TYPE": "float"
},
{
"DEFAULT": 4.4,
"MAX": 8,
"MIN": 0,
"NAME": "vijf",
"TYPE": "float"
},
{
"DEFAULT": 1,
"MAX": 2,
"MIN": 0,
"NAME": "zes",
"TYPE": "float"
},
{
"DEFAULT": 1,
"MAX": 2,
"MIN": 0,
"NAME": "zeven",
"TYPE": "float"
},
{
"DEFAULT": 1,
"MAX": 5,
"MIN": 0,
"NAME": "acht",
"TYPE": "float"
},
{
"DEFAULT": 1,
"MAX": 2,
"MIN": 0,
"NAME": "Zoom",
"TYPE": "float"
}
],
"ISFVSN": "2"
}
*/
// ray marching
const int max_iterations = 128;
const float stop_threshold = 0.001;
const float grad_step = 0.01;
float clip_far = 1000.0;
// ao
const int ao_iterations = 5;
const float ao_step = 0.2;
const float ao_scale = 1.46;
// math
const float PI = 3.14159265359;
float DEG_TO_RAD = PI / 180.0*Zoom;
float GOLDEN = 1.6180339887499*acht;
const float r = 1.0 * 2.0 * 1.414214 / 1.732051;
const vec2 h = vec2( r, 0.01 );
const vec2 h2 = h * vec2( 0.73, 4.0 );
vec3 cc0 = vec3( 0.333333*een, -0.333333, -0.333333 );
const vec3 cx0 = vec3( 0.707107, 0.000000, 0.707107 );
vec3 cy0 = vec3( 0.408248, 0.816496*zes, -0.408248 );
vec3 cz0 = vec3( -0.577350*acht, 0.577350, 0.577350 );
vec3 cc1 = vec3( -0.333333, -0.333333*een, 0.333333 );
vec3 cx1 = vec3( 0.707107*acht, 0.000000, 0.707107 );
vec3 cy1 = vec3( -0.408248, 0.816496*zes, 0.408248 );
const vec3 cz1 = vec3( -0.577350, -0.577350, 0.577350 );
vec3 cc2 = vec3( -0.333333, 0.333333, -0.333333*een );
vec3 cx2 = vec3( 0.707107, 0.707107/acht, 0.000000 );
vec3 cy2 = vec3( -0.408248, 0.408248*acht, 0.816496 );
const vec3 cz2 = vec3( 0.577350, -0.577350, 0.577350 );
vec3 cc3 = vec3( 0.333333*een, 0.333333, 0.333333 );
const vec3 cx3 = vec3( 0.000000, 0.707107, -0.707107 );
const vec3 cy3 = vec3( -0.816496, 0.408248, 0.408248 );
const vec3 cz3 = vec3( 0.577350, 0.577350, 0.577350 );
vec3 c0 = vec3( 0.333333, 0.333333*een, -0.333333 );
const vec3 x0 = vec3( 0.572061, 0.218508, 0.790569 );
vec3 y0 = vec3( -0.582591*zes, 0.786715, 0.204124 );
vec3 z0 = vec3( -0.577350, -0.577350, 0.577350*zes );
const vec3 c1 = vec3( 0.206011, -0.539344, 0.000000 );
vec3 x1 = vec3( 0.572061, 0.218508*acht, 0.790569 );
vec3 y1 = vec3( -0.738528, -0.282093, 0.612372*een );
const vec3 z1 = vec3( 0.356822, -0.934172, 0.000000 );
const vec3 c2 = vec3( -0.539344, 0.000000, -0.206011 );
vec3 x2 = vec3( -0.218508, 0.790569*zes, 0.572061 );
vec3 y2 = vec3( -0.282093, -0.612372*acht, 0.738528 );
const vec3 z2 = vec3( 0.934172, 0.000000, 0.356822 );
const vec3 c3 = vec3( 0.000000, 0.206011, 0.539344 );
vec3 x3 = vec3( -0.790569, 0.572061, -0.218508/acht );
vec3 y3 = vec3( -0.612372*zes, -0.738528, 0.282093 );
vec3 z3 = vec3( -0.000000, 0.356822, 0.934172*zes );
// distance function
// iq's Signed Triangular Prism distance function
float dist_triXY( vec3 p, vec2 h ) {
vec3 q = abs(p);
return max(q.z-h.y,max(q.x*0.866025+p.y*0.5,-p.y)-h.x*0.5*vier*zeven);
}
float dist_tri( vec3 v, vec3 c, vec3 x, vec3 y, vec3 z ) {
v -= c;
v = vec3( dot( v, x ), dot( v, y ), dot( v, z ) );
return max( dist_triXY( v, h ), -dist_triXY( v, h2 ) );
}
float dist_field( vec3 v ) {
float b0, b1, b2, b3, b4;
// cube
{
float d0 = dist_tri( v, cc0, cx0, cy0, cz0 );
float d1 = dist_tri( v, cc1, cx1, cy1, cz1 );
float d2 = dist_tri( v, cc2, cx2, cy2, cz2 );
float d3 = dist_tri( v, cc3, cx3, cy3, cz3 );
b0 = min( min( d0, d1 ), min( d2, d3 ) );
}
// xyz
{
float d0 = dist_tri( v, c0, x0, y0, z0 );
float d1 = dist_tri( v, c1, x1, y1, z1 );
float d2 = dist_tri( v, c2, x2, y2, z2 );
float d3 = dist_tri( v, c3, x3, y3, z3 );
b1 = min( min( d0, d1 ), min( d2, d3 ) );
}
// zx
{
v.zx = -v.zx;
float d0 = dist_tri( v, c0, x0, y0, z0 );
float d1 = dist_tri( v, c1, x1, y1, z1 );
float d2 = dist_tri( v, c2, x2, y2, z2 );
float d3 = dist_tri( v, c3, x3, y3, z3 );
v.zx = -v.zx;
b2 = min( min( d0, d1 ), min( d2, d3 ) );
}
// yz
{
v.yz = -v.yz;
float d0 = dist_tri( v, c0, x0, y0, z0 );
float d1 = dist_tri( v, c1, x1, y1, z1 );
float d2 = dist_tri( v, c2, x2, y2, z2 );
float d3 = dist_tri( v, c3, x3, y3, z3 );
v.yz = -v.yz;
b3 = min( min( d0, d1 ), min( d2, d3 ) );
}
// xy
{
v.xy = -v.xy;
float d0 = dist_tri( v, c0, x0, y0, z0 );
float d1 = dist_tri( v, c1, x1, y1, z1 );
float d2 = dist_tri( v, c2, x2, y2, z2 );
float d3 = dist_tri( v, c3, x3, y3, z3 );
v.xy = -v.xy;
b4 = min( min( d0, d1 ), min( d2, d3 ) );
}
return min( b0, min( min( b1, b2 ), min( b3, b4 ) ) );
}
// ao
float ao( vec3 v, vec3 n ) {
float sum = 0.0;
float att = 1.0;
float len = ao_step;
for ( int i = 0; i < ao_iterations; i++ ) {
sum += ( len - dist_field( v + n * len ) ) * att;
len += ao_step;
att *= 0.5;
}
return max( 1.0 - sum * ao_scale, 0.0 );
}
// get gradient in the world
vec3 gradient( vec3 v ) {
const vec3 dx = vec3( grad_step, 0.0, 0.0 );
const vec3 dy = vec3( 0.0, grad_step, 0.0 );
const vec3 dz = vec3( 0.0, 0.0, grad_step );
return normalize (
vec3(
dist_field( v + dx ) - dist_field( v - dx ),
dist_field( v + dy ) - dist_field( v - dy ),
dist_field( v + dz ) - dist_field( v - dz )
)
);
}
// ray marching
float ray_marching( vec3 origin, vec3 dir, float start, float end ) {
float depth = start;
for ( int i = 0; i < max_iterations; i++ ) {
float dist = dist_field( origin + dir * depth );
if ( dist < stop_threshold ) {
return depth;
}
depth += dist;
if ( depth >= end) {
return end;
}
}
return end;
}
// shadow
float shadow( vec3 v, vec3 light ) {
vec3 lv = v - light;
float end = length( lv );
lv /= end;
float depth = ray_marching( light, lv, 0.0, end );
return step( end - depth, 0.02 );
}
// phong shading
vec3 shading( vec3 v, vec3 n, vec3 eye ) {
// ...add lights here...
vec3 final = vec3( 0.0 );
vec3 ev = normalize( v - eye );
vec3 ref_ev = reflect( ev, n );
// light 0
{
vec3 light_pos = vec3( 5.0 );
vec3 vl = normalize( light_pos - v );
float diffuse = max( 0.0, dot( vl, n ) );
float specular = max( 0.0, dot( vl, ref_ev ) );
specular = pow( specular, 12.0 );
final += vec3( 0.9 ) * ( diffuse * 0.4 + specular * 0.9 ) * shadow( v, light_pos );
}
// light 1
{
vec3 light_pos = vec3( -5.0 );
vec3 vl = normalize( light_pos - v );
float diffuse = max( 0.0, dot( vl, n ) );
float specular = max( 0.0, dot( vl, ref_ev ) );
specular = pow( specular, 64.0 );
final += vec3( 0.1 ) * ( diffuse * 0.4 + specular * 0.9 );
}
final += ao( v, n ) * vec3( 0.15 );
return final;
}
// pitch, yaw
mat3 rot3xy( vec2 angle ) {
vec2 c = cos( angle );
vec2 s = sin( angle );
return mat3(
c.y , 0.0, -s.y,
s.y * s.x, c.x, c.y * s.x,
s.y * c.x, -s.x, c.y * c.x
);
}
// get ray direction
vec3 ray_dir( float fov, vec2 size, vec2 pos ) {
vec2 xy = pos - size * 0.5;
float cot_half_fov = tan( ( 90.0 - fov * 0.5 ) * DEG_TO_RAD );
float z = size.y * 0.5 * cot_half_fov;
return normalize( vec3( xy, -z ) );
}
void main() {
float hit = 0.0;
// default ray dir
vec3 dir = ray_dir( 45.0, RENDERSIZE.xy, gl_FragCoord.xy );
// default ray origin
vec3 eye = vec3( 0.0, 0.0, vijf );
// rotate camera
mat3 rot = rot3xy( vec2( -DEG_TO_RAD * 30.0*drie, twee ) );
dir = rot * dir;
eye = rot * eye;
// ray marching
float depth = ray_marching( eye, dir, 0.0, clip_far );
if ( depth >= clip_far ) {
gl_FragColor = vec4( 0.0, 0.0, 0.0, hit );
} else {
// shading
vec3 pos = eye + dir * depth;
vec3 n = gradient( pos );
hit = 1.0;
gl_FragColor = vec4( shading( pos, n, eye ) * 2.0, hit );
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

+122
View File
@@ -0,0 +1,122 @@
/*
{
"IMPORTED" : [
],
"CATEGORIES" : [
"Fractal"
],
"DESCRIPTION" : "Automatically converted from https:\/\/www.shadertoy.com\/view\/wdc3zX by leon. An example on how to render stereoscopic anaglyph image.\nIt will be the theme of https:\/\/2019.cookie.paris\/\nAnd the content of the 3rd issue of https:\/\/fanzine.cookie.paris\/",
"INPUTS" : [
{
"NAME" : "iMouse",
"TYPE" : "point2D"
},
{
"NAME" : "speed",
"TYPE" : "float",
"DEFAULT" : 0.4
},
{
"NAME" : "radius",
"TYPE" : "float",
"DEFAULT" : 0.3
},
{
"NAME" : "falloff",
"TYPE" : "float",
"DEFAULT" : 0.0
},
{
"NAME" : "divergence",
"TYPE" : "float",
"DEFAULT" : 0.1
}
]
}
*/
// Anaglyph Quick Sketch
// An example on how to render stereoscopic anaglyph image
// It will be the theme of https://2019.cookie.paris/
// And the content of the 3rd issue of https://fanzine.cookie.paris/
// Leon Denise 2019.09.20
// Licensed under hippie love conspiracy
// Using code from
// Inigo Quilez
// Morgan McGuire
const int count = 5;
const float range = 1.;
const float blend = 1.5;
const float balance = 1.5;
const float grain = .01;
const float fieldOfView = 1.5;
float random(vec2 p) { return fract(1e4 * sin(17.0 * p.x + p.y * 0.1) * (0.1 + abs(sin(p.y * 13.0 + p.x)))); }
mat2 rot(float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }
float smoothmin (float a, float b, float r) { float h = clamp(.5+.5*(b-a)/r, 0., 1.); return mix(b, a, h)-r*h*(1.-h); }
vec3 look (vec3 eye, vec3 target, vec2 anchor, float fov) {
vec3 forward = normalize(target-eye);
vec3 right = normalize(cross(forward, vec3(0,1,0)));
vec3 up = normalize(cross(right, forward));
return normalize(forward * fov + right * anchor.x + up * anchor.y);
}
vec3 camera (vec3 eye) {
vec2 mouse = iMouse.xy/RENDERSIZE.xy*2.-1.;
if (iMouse.x > 0.5) {
eye.yz *= rot(mouse.y*3.1415);
eye.xz *= rot(mouse.x*3.1415);
} else {
eye.yz *= rot(-3.1415/4.);
eye.xz *= rot(-3.1415/2.);
}
return eye;
}
float geometry (vec3 pos) {
pos = camera(pos);
float a = 1.0;
float scene = 1.;
float t = speed * (3.141);
float wave = 1.0+0.2*sin(t*8.-length(pos)*2.);
//t = floor(t)+pow(fract(t),.5);
for (int i = count; i > 0; --i) {
pos.xy *= rot(cos(t));
pos.zy *= rot(sin(t));
pos.zx *= rot(sin(t));
pos = abs(pos)-range*a*wave;
scene = smoothmin(scene, length(pos)-radius*a, blend*a);
a /= (1.9 + falloff * 2.);
}
return scene;
}
float raymarch ( vec3 eye, vec3 ray ) {
float dither = random(ray.xy + TIME);
float total = dither;
const int count = 30;
for (int index = count; index > 0; --index) {
float dist = geometry(eye+ray*total);
dist *= 0.9+.1*dither;
total += dist;
if (dist < 0.001 * total)
return float(index)/float(count);
}
return 0.;
}
void main() {
vec2 uv = 2.*(gl_FragCoord.xy-0.5*RENDERSIZE.xy)/RENDERSIZE.y;
vec3 eyeLeft = vec3(-divergence,0,5.);
vec3 eyeRight = vec3(divergence,0,5.);
vec3 rayLeft = look(eyeLeft, vec3(0), uv, fieldOfView);
float red = raymarch(eyeLeft, rayLeft);
gl_FragColor = vec4(red,red,red,1);
}
+185
View File
@@ -0,0 +1,185 @@
/*
{
"CATEGORIES": [
"Fractal"
],
"INPUTS" : [
{
"NAME" : "Ball",
"TYPE" : "float",
"MAX" : 1,
"DEFAULT" : 1,
"MIN" : 0
},
{
"NAME" : "RotationIntensityX",
"TYPE" : "float",
"MAX" : 1,
"DEFAULT" : 0,
"MIN" : 0
},
{
"NAME" : "RotationIntensityY",
"TYPE" : "float",
"MAX" : 1,
"DEFAULT" : 0,
"MIN" : 0
},
{
"MAX" : 1,
"NAME" : "RotationSpeed1",
"TYPE" : "float",
"DEFAULT" : 1,
"MIN" : 0
},
{
"MAX" : 1,
"NAME" : "RotationSpeed2",
"TYPE" : "float",
"DEFAULT" : 1
},
{
"NAME" : "SizeReductionRate",
"TYPE" : "float",
"DEFAULT" : 0
},
{
"MAX" : 10,
"NAME" : "RotationOffset1",
"TYPE" : "float",
"MIN" : 0,
"DEFAULT" : 0
},
{
"MAX" : 10,
"NAME" : "RotationOffset2",
"TYPE" : "float",
"DEFAULT" : 0.3,
"MIN" : 0
},
{
"NAME" : "PlaneFoldFactor1",
"TYPE" : "float",
"DEFAULT" : 0.3
},
{
"NAME" : "PlaneFoldFactor2",
"TYPE" : "float",
"DEFAULT" : 0.1
},
{
"NAME" : "CameraZOffset",
"TYPE" : "float",
"MAX" : 15,
"DEFAULT" : 10,
"MIN" : 0
},
{
"NAME" : "CameraXOffset",
"TYPE" : "float",
"MAX" : 20,
"DEFAULT" : 10,
"MIN" : 0
},
{
"NAME" : "CameraYOffset",
"TYPE" : "float",
"MAX" : 10,
"DEFAULT" : 5,
"MIN" : 0
}
],
"ISFVSN" : "2"
}
*/
// Code by Flopine
// Thanks to wsmind, leon, XT95, lsdlive, lamogui, Coyhot, Alkama and YX for teaching me
// Thanks LJ for giving me the love of shadercoding :3
// Thanks to the Cookie Collective, which build a cozy and safe environment for me
// and other to sprout :) https://twitter.com/CookieDemoparty
// Mods by @rhythmic.visions
float hash21(vec2 x) {
return fract(sin(dot(x, vec2(54.4, 62.1))) * 457.5);
}
mat2 rot(float a) {
return mat2(cos(a), sin(a * RotationIntensityX), -sin(a * RotationIntensityY), cos(a));
}
void mo(inout vec2 p, vec2 d) {
p = abs(p) - d;
if (p.y > p.x) p = p.yx;
}
float plane(vec3 p, vec3 n) {
return dot(p, normalize(n));
}
float cut_ps(vec3 p, float s) {
p *= s;
mo(p.xy, vec2(1.));
mo(p.yz, vec2(0.6 * PlaneFoldFactor1 + PlaneFoldFactor2));
mo(p.xz, vec2(0.1 * PlaneFoldFactor1 + PlaneFoldFactor2));
return plane(p, vec3(1., 1., 4.)) / s;
}
float prim1(vec3 p, float s) {
float pos = cos(TIME * RotationSpeed1 + RotationOffset1) * 0.4;
p.xz *= rot(pos);
return cut_ps(p, s);
}
float fractal(vec3 p) {
float size = 1.;
float d = prim1(p, size - SizeReductionRate);
for (int i = 1; i < 5; i++) {
float ratio = float(i) / 2.5;
float pos = cos(TIME * ratio * RotationSpeed2) * 0.4;
p.yz *= rot(pos + RotationOffset2);
size -= 0.2;
d = min(d, prim1(p, size + SizeReductionRate));
}
return d;
}
float g1 = 0.;
float SDF(vec3 p) {
float noise = hash21(p.xy * 0.1 + TIME) * 0.01;
float sphe = length(p) - (.8 + noise) * Ball * 2.;
g1 += 0.1 / (0.1 + sphe * sphe);
return max(-length(p + vec3(0., 0., 4.5)) + .8, min(sphe, fractal(p)));
}
void main() {
vec2 uv = (2. * gl_FragCoord.xy - RENDERSIZE.xy) / RENDERSIZE.y;
float dither = hash21(uv);
vec3 ro = vec3(0.001 + 10. - CameraXOffset, 0.001 + 5. - CameraYOffset, -4.5 - CameraZOffset),
rd = normalize(vec3(uv, 0.8)),
p = ro,
col = vec3(0.1);
float shad = 0.;
bool hit = false;
for (float i = 0.; i < 64.; i++) {
float d = SDF(p);
if (d < 0.001) {
hit = true;
shad = i / 64.;
break;
}
d *= 0.8 + dither * 0.1;
p += d * rd;
}
if (hit) {
col = vec3(1. - shad);
col += g1 * vec3(0.15, 0., 0.1);
}
gl_FragColor = vec4(col, 1.0);
}
@@ -0,0 +1,174 @@
/*{
"CREDIT": "by mojovideotech",
"DESCRIPTION": "",
"CATEGORIES": [
"generator",
"iterative",
"fractal"
],
"INPUTS" : [
{
"NAME" : "scale",
"TYPE" : "float",
"DEFAULT" : 1.5,
"MIN" : 0.5,
"MAX" : 3.0
},
{
"NAME" : "rate",
"TYPE" : "float",
"DEFAULT" : 3.0,
"MIN" : -5.0,
"MAX" : 5.0
},
{
"NAME" : "loops",
"TYPE" : "float",
"DEFAULT" : 20.0,
"MIN" : 6.0,
"MAX" : 40.0
},
{
"NAME" : "density",
"TYPE" : "float",
"DEFAULT" : 1.5,
"MIN" : 1.0,
"MAX": 2.5
},
{
"NAME" : "depth",
"TYPE" : "float",
"DEFAULT" : 12.0,
"MIN" : 6.0,
"MAX" : 20.0
},
{
"NAME" : "detail",
"TYPE" : "float",
"DEFAULT" : 0.001,
"MIN" : 0.0001,
"MAX" : 0.1
},
{
"NAME" : "Xr",
"TYPE" : "float",
"DEFAULT" : -0.001,
"MIN" : -0.001,
"MAX" : 0.001
},
{
"NAME" : "Yr",
"TYPE" : "float",
"DEFAULT" : 0.003,
"MIN" : -0.001,
"MAX" : 0.001
},
{
"NAME" : "Zr",
"TYPE" : "float",
"DEFAULT" : 0.002,
"MIN" : -0.001,
"MAX" : 0.001
},
{
"NAME" : "R",
"TYPE" : "float",
"DEFAULT" : 0.05,
"MIN" : 0.0,
"MAX" : 0.75
},
{
"NAME" : "G",
"TYPE" : "float",
"DEFAULT" : 0.15,
"MIN" : 0.0,
"MAX" : 0.75
},
{
"NAME" : "B",
"TYPE" : "float",
"DEFAULT" : 0.667,
"MIN" : 0.0,
"MAX" : 0.75
},
{
"NAME" : "lightpos",
"TYPE" : "point2D",
"DEFAULT" : [ 1.0, -20.0 ],
"MAX" : [ 10.0, -5.0 ],
"MIN" : [ 5.0, -25.0 ]
}
],
"ISFVSN" : "2.0"
}
*/
////////////////////////////////////////////////////////////
// FractilianSpongeOfDoom by mojovideotech
//
// based on
// shadertoy.com\/MdKyRw by wyatt
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////
vec4 light;
float T;
mat2 m,n,nn;
float map (vec3 p) {
float t = 2.5, d = length(p-light.xyz)-light.w;
d = min(d,max(10.0-p.z, 0.0));
for (int i = 0; i < 20; i++) {
if (float (i) >depth) break;
t = t*0.66;
p.xy = m*p.xy;
p.yz = n*p.yz;
p.zx = nn*p.zx;
p.xz = abs(p.xz) - t;
}
d = min(d,length(p)-density*t);
return d;
}
vec3 norm (vec3 p) {
vec2 e = vec2 (detail, 0.0);
return normalize(vec3(
map(p+e.xyy) - map(p-e.xyy),
map(p+e.yxy) - map(p-e.yxy),
map(p+e.yyx) - map(p-e.yyx)));
}
vec3 ray (vec3 r, vec3 d) {
for (int i = 0; i < 40; i++) {
if (float (i) >loops) break;
r += d*map(r);
}
return r;
}
mat2 rot (float s) { return mat2(sin(s),cos(s),-cos(s),sin(s)); }
void main()
{
vec2 v = (gl_FragCoord.xy/RENDERSIZE.xy*2.0-1.0)*scale;
v.x *= RENDERSIZE.x/RENDERSIZE.y;
T = rate*TIME*10.0;
m = rot(Xr*T);
n = rot(Yr*T);
nn = rot(Zr*T);
vec3 r = vec3(0.0,0.0,-15.0+2.0*sin(0.01*T));
light = vec4(10.0*sin(0.01*T),lightpos.xy,1.0);
vec3 d = normalize(vec3(v,5.0));
vec3 p = ray(r,d);
d = normalize(light.xyz-p);
vec3 no = norm(p);
vec3 col = vec3(R,G,B)+0.25;
vec3 bounce = ray(p+0.01*d,d);
col = mix(col,vec3(0.0),dot(no, normalize(light.xyz-p)));
if (length(bounce-light.xyz) > light.w+0.1) col *= 0.2;
gl_FragColor = vec4(col,1.0);
}
+195
View File
@@ -0,0 +1,195 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"generator",
"Retro"
],
"DESCRIPTION": "based on glslsandbox.com/e#12573.0",
"INPUTS": [
{
"NAME": "seed1",
"TYPE": "float",
"DEFAULT": 0.77,
"MIN": 0,
"MAX": 1
},
{
"NAME": "seed2",
"TYPE": "float",
"DEFAULT": 0.53,
"MIN": 0,
"MAX": 1
},
{
"NAME": "seed3",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.0001,
"MAX": 9.999
},
{
"NAME": "rotation",
"TYPE": "float",
"DEFAULT": 2,
"MIN": 0,
"MAX": 2
},
{
"NAME": "rotozoom",
"TYPE": "float",
"DEFAULT": 34.95,
"MIN": -50,
"MAX": 50
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 48.46,
"MIN": -60,
"MAX": 60
},
{
"NAME": "density",
"TYPE": "float",
"DEFAULT": 7.43,
"MIN": -50,
"MAX": 50
},
{
"NAME": "pulseRate",
"TYPE": "float",
"DEFAULT": 2.1,
"MIN": 1,
"MAX": 10
},
{
"NAME": "glow",
"TYPE": "float",
"DEFAULT": 1.66,
"MIN": 0,
"MAX": 5
},
{
"NAME": "baseColor",
"TYPE": "color",
"DEFAULT": [
0.1,
0.1,
0.9,
0.5
]
},
{
"NAME": "glowColor",
"TYPE": "color",
"DEFAULT": [
0.9,
0.2,
0.3,
0.5
]
}
]
}*/
////////////////////////////////////////////////////////////
// HAL10000 by mojovideotech
//
// based on :
// glslsandbox.com/e#12573.0
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////
#ifdef GL_ES
precision mediump float;
#endif
#define pi 3.141592653589793 // pi
vec2 rana(in vec2 p) {
return fract(vec2(sin(p.x * 3889. + p.y * 3989.), cos(p.x * 983. + p.y * (17.*seed1))));
}
float ranb(vec2 p) {
return fract(sin(dot(p.xy, vec2(139.*seed2, 1213.))) * 514229.);
}
vec2 ranc(float p) {
return fract(vec2(sin(p * 5557.), cos(p * 4999.)*seed3));
}
vec3 voronoi(in vec2 x) {
vec2 n = floor(x);
vec2 f = fract(x);
vec2 mg, mr;
float md = 8.0, md2 = 8.0;
for(int j = -1; j <= 1; j ++)
{
for(int i = -1; i <= 1; i ++)
{
vec2 g = vec2(float(i), float(j));
vec2 o = rana(n + g);
vec2 r = g + o - f;
float d = max(abs(r.x), abs(r.y));
if(d < md)
{md2 = md; md = d; mr = r; mg = g;}
else if(d < md2)
{md2 = d;}
}
}
return vec3(n + mg, md2 - md);
}
mat2 rotate2d(float _angle) {
return mat2(cos(_angle),-sin(_angle),
sin(_angle),cos(_angle));
}
vec3 intersect(in vec3 o, in vec3 d, vec3 c, vec3 u, vec3 v) {
vec3 q = o - c;
return vec3(
dot(cross(u, v), q),
dot(cross(q, u), d),
dot(cross(v, q), d)) / dot(cross(v, u), d);
}
void main( void ) {
vec2 uv = gl_FragCoord.xy / RENDERSIZE.xy;
uv = uv * 4.0 - 2.0 ;
uv.x *= RENDERSIZE.x / RENDERSIZE.y;
uv = vec2(rotate2d(rotation*pi)*uv.xy);
vec3 ro = vec3(10.0, 0.0, 0.0);
vec3 ta = vec3(0.0, 1000.0, 0.0);
vec3 ww = normalize(ro - ta);
vec3 uu = normalize(cross(ww, normalize(vec3(0.0,1.0,0.0))));
vec3 vv = normalize(cross(uu, ww));
vec3 rd = normalize(uv.x * uu + uv.y * vv + 0.5 * ww);
vec3 its;
float v, g;
float inten = 0.0;
for(int i = 0; i < 9; i ++) {
float layer = float(i);
its = intersect(ro, rd, vec3(rotozoom, -10.0 - layer * (density*0.1), 0.0), vec3(1.0, 0.0, 0.0), vec3(0.0, 0.0, 1.0));
if(its.x > 0.0) {
vec3 vo = voronoi((its.xz) * (zoom*0.001) + 10.0 * ranc(float(i)));
v = exp(-100.0 * (vo.z - 0.0367));
float fx = 0.0;
if(i == 5) {
float T = TIME * pulseRate;
float crd = fract(TIME * T) * 50.0 - 25.0;
float fxi = cos(vo.x * 0.2 + -T * 1.5); //abs(crd - vo.x);
fx = clamp(smoothstep(0.7, 1.0, fxi), 0.0, 0.9) * 1.0 * ranb(vo.xy);
fx *= exp(-2.0 * vo.z) * 3.0;
}
inten += v * 0.1 + fx;
}
}
vec3 col = pow(mix(vec3(inten, (inten * 0.5), inten),baseColor.rgb,0.6), (5.5-glow) * glowColor.gbr);
gl_FragColor = vec4(col, 1.0);
}
+141
View File
@@ -0,0 +1,141 @@
// SaturdayShader Week 36 : Hypnocone
// by Joseph Fiola (http://www.joefiola.com)
// 2016-04-23
// Based on "Flailing" Shadertoy by okro
// https://www.shadertoy.com/view/MsjSWw
/*{
"CREDIT": "",
"DESCRIPTION": "",
"CATEGORIES": [
"Generator"
],
"INPUTS": [
{
"NAME": "invert",
"TYPE": "bool",
"DEFAULT": false
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 2.0,
"MIN": 0.25,
"MAX": 10.0
},
{
"NAME": "rings",
"TYPE": "float",
"DEFAULT": 0.01,
"MIN": 0.01,
"MAX": 1.0
},
{
"NAME": "radius",
"TYPE": "float",
"DEFAULT": 1.0,
"MIN": 0.001,
"MAX": 2.0
},
{
"NAME": "xAmp",
"TYPE": "float",
"DEFAULT": 0.002,
"MIN": -0.1,
"MAX": 0.1
},
{
"NAME": "xOffset",
"TYPE": "float",
"DEFAULT": 0.01,
"MIN": -1.0,
"MAX": 1.0
},
{
"NAME": "xOffsetSpeed",
"TYPE": "float",
"DEFAULT": 0.02,
"MIN": 0.0,
"MAX": 0.1
},
{
"NAME": "yAmp",
"TYPE": "float",
"DEFAULT": 0.002,
"MIN": -0.1,
"MAX": 0.1
},
{
"NAME": "yOffset",
"TYPE": "float",
"DEFAULT": 0.01,
"MIN": -1.0,
"MAX": 1.0
},
{
"NAME": "yOffsetSpeed",
"TYPE": "float",
"DEFAULT": -0.02,
"MIN": 0.0,
"MAX": 0.1
},
{
"NAME": "rotate",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "pos",
"TYPE": "point2D",
"DEFAULT": [0.5,0.5],
"MIN":[0.0,0.0],
"MAX":[1.0,1.0]
}
]
}*/
#define TWO_PI 6.28318530718
mat2 rotate2d(float _angle){
return mat2(cos(_angle),-sin(_angle),
sin(_angle),cos(_angle));
}
void main()
{
vec2 uv = gl_FragCoord.xy / RENDERSIZE.xy;
uv -= vec2(pos);
uv.x *= RENDERSIZE.x/RENDERSIZE.y;
uv = rotate2d(rotate*-TWO_PI) * uv;
uv *= zoom;
vec3 col = vec3(0.);
vec2 loc = uv * 0.0;
float radius = radius+rings;
for (int i = 0; i < 100; ++i) {
float r = smoothstep(radius, radius+.004, distance(uv,loc));
col = 1.0 - col * r;
//move circles
float dx = cos(TIME) * xAmp;
dx += cos(TIME * xOffsetSpeed * float(i)) * xOffset;
float dy = sin(TIME) * yAmp;
dy += sin(TIME * yOffsetSpeed * float(i)) * yOffset;
loc += vec2(dx, dy);
//make smaller
radius -= rings;
}
if (invert) col = col *-1.0 + 1.0;
gl_FragColor = vec4(col, 1.0);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,167 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES" : [ "generator"
],
"DESCRIPTION" : "",
"INPUTS" : [
{
"NAME" : "seed1",
"TYPE" : "float",
"DEFAULT" : 155,
"MIN" : 34,
"MAX" : 233
},
{
"NAME" : "seed2",
"TYPE" : "float",
"DEFAULT" : 649,
"MIN" : 89,
"MAX" : 987
},
{
"NAME" : "scale",
"TYPE" : "float",
"DEFAULT" : 1.0,
"MIN" : 0.25,
"MAX" : 2.0
},
{
"NAME" : "rate",
"TYPE" : "float",
"DEFAULT" : 1.0,
"MIN" : 0.1,
"MAX" : 3.0
},
{
"NAME" : "zoom",
"TYPE" : "float",
"DEFAULT" : 0.175,
"MIN" : -1.0,
"MAX" : 1.0
},
{
"NAME" : "line",
"TYPE" : "float",
"DEFAULT" : 0.367,
"MIN" : 0.0,
"MAX" : 0.5
},
{
"NAME" : "flash",
"TYPE" : "float",
"DEFAULT" : 7.5,
"MIN" : 0.5,
"MAX" : 10.0
},
{
"NAME" : "mirror",
"TYPE" : "bool",
"DEFAULT" : false
},
{
"NAME" : "color",
"TYPE" : "bool",
"DEFAULT" : true
},
{
"NAME" : "cycle",
"TYPE" : "float",
"DEFAULT" : 1.0,
"MIN" : 0.05,
"MAX" : 20.0
}
]
}
*/
////////////////////////////////////////////////////////////////////
// InnerDimensionalMatrix by mojovideotech
//
// based on :
// The Universe Within - by Martijn Steinrucken aka BigWings 2018
// shadertoy.com/\lscczl
// glslsandbox.com\/e#47584.1
//
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////////////
#ifdef GL_ES
precision highp float;
#endif
#define S(a, b, t) smoothstep(a, b, t)
float N1(float n) {
return fract(sin(n) * 43758.5453123);
}
float N11(float p) {
float fl = floor(p);
float fc = fract(p);
return mix(N1(fl), N1(fl + 1.0), fc);
}
float N21(vec2 p) { return fract(sin(p.x * floor(seed1) + p.y * floor(seed2)) * floor(seed2+seed1)); }
vec2 N22(vec2 p) { return vec2(N21(p), N21(p + floor(seed2))); }
float L(vec2 p, vec2 a, vec2 b) {
vec2 pa = p-a, ba = b-a;
float t = clamp(dot(pa, ba)/dot(ba, ba), 0.0, 1.0);
float d = length(pa - ba * t);
float m = S(0.02, 0.0, d);
d = length(a-b);
float f = S(1.0, 0.8, d);
m *= f;
m += m*S(0.05, 0.06, abs(d - 0.5)) * 2.0;
return m;
}
vec2 GetPos(vec2 p, vec2 o) {
p += o;
vec2 n = N22(p)*TIME*rate;
p = sin(n) * line;
return o+p;
}
float G(vec2 uv) {
vec2 id = floor(uv);
uv = fract(uv) - 0.5;
vec2 g = GetPos(id, vec2(0));
float m = 0.0;
for(float y=-1.0; y<=1.0; y++) {
for(float x=-1.0; x<=1.0; x++) {
vec2 offs = vec2(x, y);
vec2 p = GetPos(id, offs);
m+=L(uv, g, p);
vec2 a = p-uv;
float f = 0.003/dot(a, a);
f *= pow( sin(N21(id+offs) * 6.2831 + (flash*TIME)) * 0.4 + 0.6, flash);
m += f;
}
}
m += L(uv, GetPos(id, vec2(-1, 0)), GetPos(id, vec2(0, -1)));
m += L(uv, GetPos(id, vec2(0, -1)), GetPos(id, vec2(1, 0)));
m += L(uv, GetPos(id, vec2(1, 0)), GetPos(id, vec2(0, 1)));
m += L(uv, GetPos(id, vec2(0, 1)), GetPos(id, vec2(-1, 0)));
return m;
}
void main()
{
vec2 uv = (2.25 - scale) * ( gl_FragCoord.xy - 0.5 * RENDERSIZE.xy) / RENDERSIZE.y;
if (mirror) { if(uv.x<0.0) uv.x = abs(uv.x); }
float m = 0.0;
vec3 col;
for(float i=0.0; i<1.0; i+=0.2) {
float z = fract(i+TIME*zoom);
float s = mix(10.0, 0.5, z);
float f = S(0.0, 0.4, z) * S(1.0, 0.8, z);
m += G(uv * s + (N11(i)*100.0) * i) * f;
}
if (color) { col = 0.5 + sin(vec3(1.0, 0.5, 0.75)*TIME*cycle) * 0.5; }
else col = vec3(1.0);
col *= m;
gl_FragColor = vec4( col, 1.0 );
}
+157
View File
@@ -0,0 +1,157 @@
// SaturdayShader Week 34 : Kaleidolines
// Joseph Fiola (http://www.joefiola.com)
// 2016-04-09
// Based on Shadertoy created by Vinicius Graciano Santos - vgs/2014
// https://www.shadertoy.com/view/lsBSDz
/*{
"CREDIT": "",
"DESCRIPTION": "",
"CATEGORIES": [
"Generator"
],
"INPUTS": [
{
"NAME": "invert",
"TYPE": "bool",
"DEFAULT": "1"
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 2,
"MIN": 0.25,
"MAX": 20
},
{
"NAME": "rotateCanvas",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 1
},
{
"NAME": "rotateLines",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 1
},
{
"NAME": "lineThickness",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.1,
"MAX": 20
},
{
"NAME": "lineLength",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.05,
"MAX": 10
},
{
"NAME": "lines1",
"TYPE": "float",
"DEFAULT": 10,
"MIN": 1,
"MAX": 10
},
{
"NAME": "lines2",
"TYPE": "float",
"DEFAULT": 10,
"MIN": 1,
"MAX": 10
},
{
"NAME": "offset",
"TYPE": "float",
"DEFAULT": 0,
"MIN": -2,
"MAX": 2
},
{
"NAME": "motion",
"TYPE": "float",
"DEFAULT": 0.25,
"MIN": 0,
"MAX": 1
},
{
"NAME": "pos",
"TYPE": "point2D",
"DEFAULT": [
0.5,
0.5
],
"MIN": [
0,
0
],
"MAX": [
1,
1
]
}
]
}*/
#define TAU 6.28318530718
mat2 rotate2d(float _angle){
return mat2(cos(_angle),-sin(_angle),
sin(_angle),cos(_angle));
}
vec2 tile(vec2 _st, float _zoom){
_st *= _zoom;
return fract(_st);
}
float segment(vec2 p, vec2 a, vec2 b) {
vec2 ab = b - a;
vec2 ap = p - a;
float k = clamp(dot(ap, ab)/dot(ab, ab), 0.0, lineLength);
return smoothstep(0.0, 0.003 + lineThickness/RENDERSIZE.y, length(ap - k*ab) - (0.001 * lineThickness * 5. ));
}
float shape(vec2 p, float angle) {
float d = 100.0;
vec2 a = vec2(1.0, 0.0), b;
vec2 rot = vec2(cos(angle), sin(angle));
for (int i = 0; i < 10; ++i) {
a = a + offset;
if (i >= int(lines1)) break;
b = a;
for (int j = 0; j < 10; ++j) {
if (j >= int(lines2)) break;
b = vec2(b.x*rot.x - b.y*rot.y, b.x*rot.y + b.y*rot.x);
p = rotate2d(rotateLines* -TAU) * p;
d = min(d, segment(p, a, b));
}
a = vec2(a.x*rot.x - a.y*rot.y, a.x*rot.y + a.y*rot.x);
}
return d;
}
void main() {
vec2 uv = gl_FragCoord.xy / RENDERSIZE.xy;
uv -= vec2(pos);
uv.x *= RENDERSIZE.x/RENDERSIZE.y;
uv = rotate2d(rotateCanvas *-TAU) * uv;
uv *= zoom;
float col = shape(abs(uv), cos((motion * TAU * (TIME*0.05))));
if (invert) col = col *-1.0 + 1.0;
gl_FragColor = vec4(vec3(col), 1.0);
}
@@ -0,0 +1,160 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"generator",
"kali set"
],
"DESCRIPTION": "",
"INPUTS": [
{
"NAME": "center",
"TYPE": "point2D",
"DEFAULT": [
0,
0
],
"MAX": [
2,
2
],
"MIN": [
-2,
-2
]
},
{
"NAME": "rate",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.01,
"MAX": 3
},
{
"NAME": "loops",
"TYPE": "float",
"DEFAULT": 15,
"MIN": 8,
"MAX": 24
},
{
"NAME": "intensity",
"TYPE": "float",
"DEFAULT": 0.03,
"MIN": 0.01,
"MAX": 0.05
},
{
"NAME": "focus",
"TYPE": "float",
"DEFAULT": 2.14,
"MIN": 0.5,
"MAX": 5
},
{
"NAME": "pulse",
"TYPE": "float",
"DEFAULT": 30,
"MIN": 6,
"MAX": 60
},
{
"NAME": "glow",
"TYPE": "float",
"DEFAULT": 10,
"MIN": -100,
"MAX": 100
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 0.67,
"MIN": 0.1,
"MAX": 1
}
],
"ISFVSN": 2
}*/
////////////////////////////////////////////////////////////////////
// KaliCircuitsExplorer by mojovideotech
//
// based on :
// shadertoy.com/XlX3Rj by Kali
//
// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////////////
#ifdef GL_ES
precision highp float;
#endif
#define pi 3.141592653 // pi
float S = (101.0 + glow) * intensity;
vec3 color = vec3(0.0);
void formula(vec2 z, float t)
{
float M = 0.0;
float o, ot2, ot=ot2=1000.0;
float K = floor(loops/4.0)+floor(5.0 * zoom);
for (int i=0; i<11; i++) {
z = abs(z) / clamp(dot(z, z), 0.1, 0.5) - t;
float l = length(z);
o = min(max(abs(min(z.x, z.y)), -l + 0.25), abs(l - 0.25));
ot = min(ot, o);
ot2 = min(l * 0.1, ot2);
M = max(M, float(i) * (1.0 - abs(sign(ot - o))));
if (K <= 0.0) break;
K -= 1.0;
}
M += 1.0;
float w = (intensity * zoom) * M;
float circ = pow(max(0.0, w - ot2) / w, 6.0);
S += max(pow(max(0.0, w - ot) / w, 0.25), circ);
vec3 col = normalize(0.1 + vec4(0.45, 0.75, M * 0.1, 1.0).rgb);
color += col * (0.4 + mod(M / 9.0 - t * pulse + ot2 * 2.0, 1.0));
color += vec3(1.0, 0.7, 0.3) * circ * (10.0 - M) * 3.0;
}
void main()
{
float R = 0.0;
float N = TIME * 0.01 * rate;
float T = 2.0 * rate;
if (N > 6.0 * rate) {
R += 1.0;
N -= (R * 8.0 * rate);
}
if (N < 4.0 * rate) T += N;
else T = 8.0 * rate - N;
float Z = (1.05-zoom);
vec2 pos = gl_FragCoord.xy / RENDERSIZE.xy - 0.5;
pos.x *= RENDERSIZE.x/RENDERSIZE.y;
vec2 uv = pos + center;
float sph = length(uv)*0.1;
sph = sqrt(1.0 - sph * sph) * 2.0 ;
float a = T * pi;
float b = a + T;
float c = cos(a) + sin(b);
uv *= mat2(cos(b), sin(b), -sin(b), cos(b));
uv *= mat2(cos(a),-sin(a), sin(a),cos(a));
uv -= vec2(sin(c), cos(c)) / pi;
uv *= Z;
float pix = 0.5 / RENDERSIZE.x * Z / sph;
float dof = (zoom * focus) + (T * 0.25);
float L = floor(loops);
for (int aa=0; aa<24; aa++) {
vec2 aauv = floor(vec2(float(aa) / 6.0, mod(float(aa), 6.0)));
formula(uv + aauv * pix * dof, T);
if (L <= 0.0) break;
L -= 1.0;
}
S /= floor(loops);
color /= floor(loops);
vec3 colo = mix(vec3(0.15), color, S) * (1.0 - length(pos));
colo *=vec3(1.2, 1.1, 1.0);
gl_FragColor = sqrt(max(vec4(colo, 1.0), 0.0) -0.2);
}
+116
View File
@@ -0,0 +1,116 @@
/*{
"CREDIT": "",
"DESCRIPTION": "",
"CATEGORIES": [ "generator" ],
"INPUTS": [
{
"NAME": "noiseIntensity",
"TYPE": "float",
"MIN": 0.0,
"MAX": 10.0,
"DEFAULT": 6.0
},
{
"NAME": "noiseScaleX",
"TYPE": "float",
"MIN": 1.0,
"MAX": 10.0,
"DEFAULT": 5.5
},
{
"NAME": "noiseScaleY",
"TYPE": "float",
"MIN": 1.0,
"MAX": 10.0,
"DEFAULT": 3.5
},
{
"NAME": "redPhaseShift",
"TYPE": "float",
"MIN": 0.0,
"MAX": 1.0,
"DEFAULT": 0.1
},
{
"NAME": "greenPhaseShift",
"TYPE": "float",
"MIN": 0.0,
"MAX": 1.0,
"DEFAULT": 0.3
},
{
"NAME": "bluePhaseShift",
"TYPE": "float",
"MIN": 0.0,
"MAX": 1.0,
"DEFAULT": 0.6
}
]
}*/
#define PI 3.1415926535
#define TWO_PI (PI * 2.0)
#define NUM_NOISE_OCTAVES 3
float map(float x, float in_min, float in_max, float out_min, float out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
float ease(float p, float g) {
return p < 0.5 ? 0.5 * pow(2.0 * p, g) : 1.0 - 0.5 * pow(2.0 * (1.0 - p), g);
}
// Optimized hash function by Inigo Quilez
float hash(vec2 p) {
vec3 p3 = fract(vec3(p.xyx) * 0.13);
p3 += dot(p3, p3.yzx + 3.333);
return fract((p3.x + p3.y) * p3.z);
}
// 2D gradient noise by Inigo Quilez
float noise(vec2 x) {
vec2 i = floor(x), f = fract(x), u = f * f * (3.0 - 2.0 * f);
return mix(hash(i), hash(i + vec2(1.0, 0.0)), u.x) +
(hash(i + vec2(0.0, 1.0)) - hash(i)) * u.y * (1.0 - u.x) +
(hash(i + vec2(1.0, 1.0)) - hash(i + vec2(1.0, 0.0))) * u.x * u.y;
}
float fbm(vec2 x) {
float v = 0.0, a = 0.5;
vec2 shift = vec2(100.0);
mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5));
for (int i = 0; i < NUM_NOISE_OCTAVES; ++i) {
v += a * noise(x);
x = rot * x * 2.0 + shift;
a *= 0.5;
}
return v;
}
float distFromCenter(vec2 uv) {
vec2 p = uv - 0.5;
p.x *= RENDERSIZE.x / RENDERSIZE.y;
return length(p);
}
float upwelling(vec2 uv, float t, float noiseIntensity, vec2 noiseScale, float phase) {
float uvNoise = fbm(uv * noiseScale * fbm(uv * noiseScale + t * 0.3)) * noiseIntensity;
float noiseOffset = uvNoise * smoothstep(0.32, 0.22, distFromCenter(uv));
float waveOffset = smoothstep(0.8, 0.001, distFromCenter(uv)) * 18.0;
return map(sin(TWO_PI * (t + noiseOffset + waveOffset + phase)), -1.0, 1.0, 0.0, 1.0);
}
vec4 fullscreenMelt(vec2 uv, float t) {
float phaseShift = smoothstep(0.5, 1.0, 1.0 - distFromCenter(uv));
float upwellRed = upwelling(uv, t, noiseIntensity, vec2(noiseScaleX, noiseScaleY), redPhaseShift * phaseShift);
float upwellGreen = upwelling(uv, t, noiseIntensity, vec2(noiseScaleX, noiseScaleY), greenPhaseShift * phaseShift);
float upwellBlue = upwelling(uv, t, noiseIntensity, vec2(noiseScaleX, noiseScaleY), bluePhaseShift * phaseShift);
return vec4(upwellRed, upwellGreen, upwellBlue, 1.0);
}
void main() {
vec2 uv = gl_FragCoord.xy / RENDERSIZE.xy;
float fadeFromCenter = 1.0 - min(ease(distFromCenter(uv) + 0.2, 20.0), 1.0);
vec4 vignette = vec4(vec3(fadeFromCenter), 1.0);
gl_FragColor = fullscreenMelt(uv, TIME) * vignette;
}
+85
View File
@@ -0,0 +1,85 @@
/*{
"CREDIT": "by mojovideotech, rhythmic-visions, sonicwalker",
"CATEGORIES": [
"Shapes"
],
"DESCRIPTION": "Radar with controls. Adapted from https://editor.isf.video/shaders/669e3b36be01f9001aa474ee",
"INPUTS": [
{
"NAME": "speed",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.1,
"MAX": 10
},
{
"NAME": "intensity",
"TYPE": "float",
"DEFAULT": 2,
"MIN": 0.1,
"MAX": 2
},
{
"NAME": "glow",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.5,
"MAX": 2
},
{
"NAME": "radius",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.1,
"MAX": 2
},
{
"NAME": "color",
"TYPE": "color",
"DEFAULT": [
2.0,
1,
2.0,
1.0
]
}]
}*/
#ifdef GL_ES
precision mediump float;
#endif
#define PI 3.1415926535897932384626433832795
float d2y(float d){return glow/(0.2+d);}
float fct(vec2 p, float r){
float t = TIME * speed;
float a = 2.*mod(-atan(p.y, p.x)+t, 2.*PI);
float scan = 0.*1.;
return (d2y(a)+scan)*(intensity-step(radius,r));
}
float circle(vec2 p, float r){
float d=distance(r, radius);
return d2y(100.*d);
}
void main( void ) {
vec2 position = (( gl_FragCoord.xy )-0.5*RENDERSIZE)/ RENDERSIZE.y ;
position/=cos(1.5*length(position));
float y = 0.;
float dc = length(position);
y+=fct(position, dc);
y+=circle(position, dc);
y=pow(y,1.67);
vec3 radarColor = 0.3*vec3(color);
gl_FragColor = vec4( sqrt(y)*radarColor,1.0 );
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 MiB

+71
View File
@@ -0,0 +1,71 @@
/*
{
"CATEGORIES": [
"Automatically Converted"
],
"INPUTS": [
]
}
*/
// By @paulofalcao
//
// Blobs
#ifdef GL_ES
precision highp float;
#endif
float makePoint(float x,float y,float fx,float fy,float sx,float sy,float t){
float xx=x*cos(t*fx);
float yy=y*sin(t*fy);
return 1./ (sqrt(length(xx+yy) + length(xx*yy)));
}
void main( void ) {
vec2 p=(gl_FragCoord.xy/RENDERSIZE.x)*2.0-vec2(1.0,RENDERSIZE.y/RENDERSIZE.x);
float x=p.x;
float y=p.y;
float a=
makePoint(x,y,3.3,2.9,0.3,0.3,TIME);
a=a+makePoint(x,y,1.9,2.0,0.4,0.4,TIME);
a=a+makePoint(x,y,0.8,0.7,0.4,0.5,TIME);
a=a+makePoint(x,y,2.3,0.1,0.6,0.3,TIME);
a=a+makePoint(x,y,0.8,1.7,0.5,0.4,TIME);
a=a+makePoint(x,y,0.3,1.0,0.4,0.4,TIME);
a=a+makePoint(x,y,1.4,1.7,0.4,0.5,TIME);
a=a+makePoint(x,y,1.3,2.1,0.6,0.3,TIME);
a=a+makePoint(x,y,1.8,1.7,0.5,0.4,TIME);
float b=
makePoint(x,y,1.2,1.9,0.3,0.3,TIME);
b=b+makePoint(x,y,0.7,2.7,0.4,0.4,TIME);
b=b+makePoint(x,y,1.4,0.6,0.4,0.5,TIME);
b=b+makePoint(x,y,2.6,0.9,0.6,0.3,TIME);
b=b+makePoint(x,y,0.7,1.4,0.5,0.4,TIME);
b=b+makePoint(x,y,0.7,1.7,0.4,0.4,TIME);
b=b+makePoint(x,y,0.8,0.5,0.4,0.5,TIME);
b=b+makePoint(x,y,1.4,0.7,0.6,0.3,TIME);
b=b+makePoint(x,y,0.7,1.3,0.5,0.4,TIME);
float c=
makePoint(x,y,3.7,0.3,0.3,0.3,TIME);
c=c+makePoint(x,y,1.9,1.3,0.4,0.4,TIME);
c=c+makePoint(x,y,0.8,0.9,0.4,0.5,TIME);
c=c+makePoint(x,y,1.2,1.7,0.6,0.3,TIME);
c=c+makePoint(x,y,0.3,0.6,0.5,0.4,TIME);
c=c+makePoint(x,y,0.3,0.3,0.4,0.4,TIME);
c=c+makePoint(x,y,1.4,0.8,0.4,0.5,TIME);
c=c+makePoint(x,y,0.2,0.6,0.6,0.3,TIME);
c=c+makePoint(x,y,1.3,0.5,0.5,0.4,TIME);
vec3 d=vec3(a,b,c)*0.01;
gl_FragColor = vec4(d.x,d.y,d.z,1.0);
}
@@ -0,0 +1,76 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"Shapes"
],
"DESCRIPTION": "",
"ISFVSN" : "2",
"INPUTS": [
{
"NAME" : "scale",
"TYPE" : "float",
"DEFAULT" : 1.0,
"MIN" : 0.1,
"MAX" : 2.0
},
{
"NAME" : "thickness",
"TYPE" : "float",
"DEFAULT" : 1.75,
"MIN" : 0.5,
"MAX" : 2.0
},
{
"NAME" : "twists",
"TYPE" : "float",
"DEFAULT" : 1.0,
"MIN" : 1.0,
"MAX" : 5.0
},
{
"NAME" : "rate",
"TYPE" : "float",
"DEFAULT" : 1.5,
"MIN" : -2.0,
"MAX" : 2.0
},
{
"NAME" : "gamma",
"TYPE" : "float",
"DEFAULT" : 0.454545,
"MIN" : 0.25,
"MAX" : 1.0
}
]
}
*/
////////////////////////////////////////////////////////////
// RainbowRingCubicTwist by mojovideotech
//
// based on :
// glslsandbox/e#58416.0
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////
#ifdef GL_ES
precision highp float;
#endif
void main()
{
float T = TIME * rate;
vec2 R = RENDERSIZE;
vec2 P = (gl_FragCoord.xy - 0.5*R)*(2.1 - scale);
vec4 S, E, F;
P = vec2(length(P) / R.y - 0.333, atan(P.y,P.x));
P *= vec2(2.6 - thickness,floor(twists)); ;
S = 0.08*cos(1.5*vec4(0.0, 1.0, 2.0, 3.0) + T + P.y + sin(P.y)*cos(T));
E = S.yzwx;
F = max(P.x - S, E - P.x);
gl_FragColor = pow(dot(clamp(F*R.y, 0.0, 1.0), 72.0*(S - E))*(S - 0.1), vec4(gamma));
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 MiB

+130
View File
@@ -0,0 +1,130 @@
/*{
"DESCRIPTION": "Your shader description",
"CREDIT": "by you",
"CATEGORIES": [
"Your category"
],
"INPUTS": [
{
"LABEL": "PosX",
"NAME": "PosX",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"LABEL": "PosY",
"NAME": "PosY",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"LABEL": "PosZ",
"NAME": "PosZ",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"LABEL": "RotX",
"NAME": "RotX",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"LABEL": "RotY",
"NAME": "RotY",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
},
{
"LABEL": "RotZ",
"NAME": "RotZ",
"TYPE": "float",
"DEFAULT": 0.0,
"MIN": 0.0,
"MAX": 1.0
}
]
}*/
vec3 iResolution = vec3(RENDERSIZE, 1.);
float iGlobalTime = TIME;
const float PI=3.14159265358979323846;
float speed=iGlobalTime*0.2975;
float ground_x=PosX*2.-1.;
float ground_y=PosY*2.-1.;
float ground_z=PosZ;
vec2 rotate(vec2 k,float t)
{
return vec2(cos(t)*k.x-sin(t)*k.y,sin(t)*k.x+cos(t)*k.y);
}
float draw_scene(vec3 p)
{
float tunnel_m=0.125*cos(PI*p.z*1.0+speed*4.0-PI);
float tunnel1_p=2.0;
float tunnel1_w=tunnel1_p*0.225;
float tunnel1=length(mod(p.xy,tunnel1_p)-tunnel1_p*0.5)-tunnel1_w; // tunnel1
float tunnel2_p=2.0;
float tunnel2_w=tunnel2_p*0.2125+tunnel2_p*0.0125*cos(PI*p.y*8.0)+tunnel2_p*0.0125*cos(PI*p.z*8.0);
float tunnel2=length(mod(p.xy,tunnel2_p)-tunnel2_p*0.5)-tunnel2_w; // tunnel2
float hole1_p=1.0;
float hole1_w=hole1_p*0.5;
float hole1=length(mod(p.xz,hole1_p).xy-hole1_p*0.5)-hole1_w; // hole1
float hole2_p=0.25;
float hole2_w=hole2_p*0.375;
float hole2=length(mod(p.yz,hole2_p).xy-hole2_p*0.5)-hole2_w; // hole2
float hole3_p=0.5;
float hole3_w=hole3_p*0.25+0.125*sin(PI*p.z*2.0);
float hole3=length(mod(p.xy,hole3_p).xy-hole3_p*0.5)-hole3_w; // hole3
float tube_m=0.075*sin(PI*p.z*1.0);
float tube_p=0.5+tube_m;
float tube_w=tube_p*0.025+0.00125*cos(PI*p.z*128.0);
float tube=length(mod(p.xy,tube_p)-tube_p*0.5)-tube_w; // tube
float bubble_p=0.05;
float bubble_w=bubble_p*0.5+0.025*cos(PI*p.z*2.0);
float bubble=length(mod(p.yz,bubble_p)-bubble_p*0.5)-bubble_w; // bubble
return max(min(min(-tunnel1,mix(tunnel2,-bubble,0.375)),max(min(-hole1,hole2),-hole3)),-tube);
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 position=(fragCoord.xy/iResolution.xy);
vec2 p=-1.0+2.0*position;
vec3 dir=normalize(vec3(p*vec2(1.77,1.0),1.0)); // screen ratio (x,y) fov (z)
dir.yz=rotate(dir.yz,RotX*2.*PI); // rotation x
dir.zx=rotate(dir.zx,RotY*2.*PI); // rotation y
dir.xy=rotate(dir.xy,RotZ*2.*PI); // rotation z
vec3 ray = vec3(ground_x,ground_y,(ground_z-speed*2.5));
float t=0.0;
const int ray_n=96;
for(int i=0;i<ray_n;i++)
{
float k=draw_scene(ray+dir*t);
t+=k*0.75;
}
vec3 hit=ray+dir*t;
vec2 h=vec2(-0.0025,0.002); // light
vec3 n=normalize(vec3(draw_scene(hit+h.xyx),draw_scene(hit+h.yxy),draw_scene(hit+h.yyx)));
float c=(n.x+n.y+n.z)*0.35;
vec3 color=vec3(c,c,c)+t*0.0625;
fragColor=vec4(vec3(c-t*0.0375+p.y*0.05,c-t*0.025-p.y*0.0625,c+t*0.025-p.y*0.025)+color*color,1.0);
}
void main(void) {
mainImage(gl_FragColor, gl_FragCoord.xy);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

+147
View File
@@ -0,0 +1,147 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"space"
],
"INPUTS": [
{
"NAME": "mouse",
"TYPE": "point2D",
"MAX": [
0,
1
],
"MIN": [
-1,
0
]
},
{
"NAME": "mult",
"TYPE": "float",
"DEFAULT": 5,
"MIN": 2,
"MAX": 12
},
{
"NAME": "width",
"TYPE": "float",
"DEFAULT": 22,
"MIN": 20,
"MAX": 60
},
{
"NAME": "phase1",
"TYPE": "float",
"DEFAULT": 0.8,
"MIN": 0.01,
"MAX": 0.99
},
{
"NAME": "phase2",
"TYPE": "float",
"DEFAULT": 0.05,
"MIN": -0.5,
"MAX": 0.5
},
{
"NAME": "density",
"TYPE": "float",
"DEFAULT": 0.15,
"MIN": 0.05,
"MAX": 0.5
},
{
"NAME": "morph",
"TYPE": "float",
"DEFAULT": 5,
"MIN": 2,
"MAX": 10
},
{
"NAME": "hue",
"TYPE": "float",
"DEFAULT": 4,
"MIN": 0.5,
"MAX": 10
},
{
"NAME": "tint",
"TYPE": "float",
"DEFAULT": 9,
"MIN": 0.5,
"MAX": 10
},
{
"NAME": "rate",
"TYPE": "float",
"DEFAULT": -0.9,
"MIN": -1,
"MAX": 1
}
],
"DESCRIPTION": "from http://glslsandbox.com/e#31191.1"
}*/
///////////////////////////////////////////
// SpaceGhost by mojovideotech
//
// mod of glslsandbox.com/e#31191.1
//
// based on :
// SpaceGlowing.glsl 2016-03-02
// original code from shadertoy.com/\view/MtX3Ws
// simplified edit: Robert 25.11.2015
// see also shadertoy.com/\view/\Mlj3zW
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
///////////////////////////////////////////
#ifdef GL_ES
precision mediump float;
#endif
vec3 roty(vec3 p,float a)
{ return mat3(cos(phase1*a),0,-sin(phase2*a), 0,1,1, sin(phase2*a),0,cos(phase1*a)) * p; }
float map(in vec3 p)
{
vec3 c=p; float res=0.;
for (int i=0; i < 4; i++)
{
p= abs(p)/dot(p,p) -.7;
p.yz= vec2(p.y*p.y-p.z*p.z,2.*p.y*p.z);
res += exp(-(80.-width) * abs(dot(p,c)));
}
return res*0.5;
}
vec3 raymarch(vec3 ro, vec3 rd)
{
float t=morph;
vec3 col=vec3(0); float c=0.;
float n = floor(mult);
for( int i=0; i < 12; i++ )
{
t+= exp(c*-2.0) *density;
c= map(t *rd +ro);
col= vec3(8.*c*c, hue*hue*c*c, c*c*c) *0.16 + col *0.96; //green
col= vec3(8.*c*c, c*c, tint*tint*c*c) *0.16 + col *0.96; //blue
col= vec3(8.*c*c/hue, c*c, c*c*c/tint) *0.16 + col *0.96; //red
n -= 1.0;
if (n<1.0) { break;
}
}
return col;
}
void main()
{
vec2 p= (gl_FragCoord.xy - RENDERSIZE*0.5) / RENDERSIZE.y;
vec3 ro= roty(vec3(3.), TIME*rate + mouse.x);
vec3 uu= normalize(cross(ro, vec3(1.0, .0, 0.0)));
vec3 vv= normalize(cross(uu, ro));
vec3 rd= normalize(p.x*uu + p.y*vv - ro*0.5 );
gl_FragColor.rgb= log(raymarch(ro,rd) +1.0) *0.5;
gl_FragColor.a= 1.0;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

+191
View File
@@ -0,0 +1,191 @@
/*{
"CREDIT": "by mojovideotech",
"DESCRIPTION": "",
"CATEGORIES": [
"generator",
"space"
],
"INPUTS": [
{
"NAME": "nebula",
"TYPE": "bool",
"DEFAULT": 0
},
{
"NAME": "brightness",
"TYPE": "float",
"DEFAULT": 0.25,
"MIN": 0,
"MAX": 0.5
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 2.5,
"MIN": 0.25,
"MAX": 20
},
{
"NAME": "saturation",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0,
"MAX": 1
},
{
"NAME": "distfading",
"TYPE": "float",
"DEFAULT": 0.25,
"MIN": 0,
"MAX": 0.5
},
{
"NAME": "depth",
"TYPE": "float",
"DEFAULT": 0.25,
"MIN": 0.1,
"MAX": 1
},
{
"NAME": "density",
"TYPE": "float",
"DEFAULT": 0.75,
"MIN": 0.5,
"MAX": 2
},
{
"NAME": "morph",
"TYPE": "float",
"DEFAULT": 0.89,
"MIN": 0.5,
"MAX": 1
},
{
"NAME": "rate",
"TYPE": "float",
"DEFAULT": 0.005,
"MIN": -0.1,
"MAX": 0.1
},
{
"NAME": "move",
"TYPE": "point2D",
"DEFAULT": [
0,
0
]
}
]
}*/
///////////////////////////////////////////
// SpaceIsThePlace by mojovideotech
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
//
// based on :
// shadertoy.com/\XlfGRj by Kali
///////////////////////////////////////////
#define iterations 7
#define volsteps 7
#define pi 3.141592653589793 // pi
float field(in vec3 p) {
float strength = 7. + .03 * log(1.e-6 + fract(sin(TIME) * 4373.11));
float accum = 0.;
float prev = 0.;
float tw = 0.;
for (int i = 0; i < 7; ++i) {
float mag = dot(p, p);
p = abs(p) / mag + vec3(-.5, -.4, -1.5);
float w = exp(-float(i) / 7.);
accum += w * exp(-strength * pow(abs(mag - prev), 2.3));
tw += w;
prev = mag;
}
return max(0., 5. * accum / tw - .7);
}
void main() {
vec2 uv=gl_FragCoord.xy/RENDERSIZE.xy-.5;
uv.y*=RENDERSIZE.y/RENDERSIZE.x;
vec3 p = vec3(uv / 4., 0) + vec3(1., -1.3, 0.);
p.x -= 0.25*move.x;
p.y -= 0.25*move.y;
p.x += 0.25*(1.0)*5.0*cos(0.01*TIME)+0.001*TIME;
p.y += 0.25*(1.0)*5.0*sin(0.01*TIME)+0.001*TIME;
p.z += 0.003*TIME;
float speed = rate * cos(TIME*0.02 + pi/4.0);
vec3 dir=vec3(uv*zoom,1.);
vec3 from=vec3(0.0, 0.0,0.0);
vec3 forward = vec3(0.,0.,1.);
float a1 = pi * (move.x/RENDERSIZE.x-.5);
mat2 rot1 = mat2(cos(a1),sin(a1),-sin(a1),cos(a1));
float a2 = pi * (move.y/RENDERSIZE.y-.5); .6;
mat2 rot2 = mat2(cos(a2),sin(a2),-sin(a2),cos(a2));
p.xz *= rot1;
p.xy *= rot1;
p.yz *= -rot2;
p = abs(vec3(density)-mod(p,vec3(density*2.)));
float t = field(p);
float v2 = (1. - exp((abs(uv.x) - 1.) * 6.)) * (1. - exp((abs(uv.y) - 1.) * 6.));
from.x += 5.0*(0.01*rate) + 0.001*TIME;
from.y += 5.0*(0.01*rate) +0.001*TIME;
from.z += 0.003*TIME;
dir.xz*=rot1;
forward.xz *= rot1;
dir.xy*=rot1;
forward.xy *= rot1;
dir.yz*=-rot2;
forward.yz *= -rot2;
from.xz*=rot1;
from.xy*=rot1;
from.yz*=-rot2;
from += (move.x-.5)*vec3(-forward.z,0.,forward.x);
from += (move.y-.5)*vec3(0.,-forward.z, forward.y);
float zooom = (TIME-3311.)*speed;
from += forward* zooom;
float sampleShift = mod( zooom, depth );
float zoffset = -sampleShift;
sampleShift /= depth;
float s=0.1;
vec3 v=vec3(0.);
for (int r=0; r<volsteps; r++) {
vec3 p=from+(s+zoffset)*dir;
p = abs(vec3(density)-mod(p,vec3(density*2.)));
float pa,a=pa=0.;
for (int i=0; i<iterations; i++) {
p=abs(p)/dot(p,p)-morph;
float D = abs(length(p)-pa);
a += i > 7 ? min( 12., D) : D;
pa=length(p);
}
a*=a*a;
float s1 = s+zoffset;
float fade = pow(distfading,max(0.,float(r)-sampleShift));
float dm=max(0.,2.0-a*a*.001);
if (r>3) fade*=1.-dm;
if ( r == 0 ) fade *= 1. - sampleShift;
if ( r == volsteps-1 ) fade *= sampleShift;
v+=vec3(s1,s1*s1,s1*s1*s1*s1)*a*brightness*fade;
s+=depth;
}
v=mix(vec3(length(v)),v,saturation);
if (nebula) {
vec4 forCol = vec4(v*.01,1.);
vec4 backCol = mix(.4, 1., v2) * vec4(1.8 * t * t * t, 1.4 * t * t, t, 1.0);
backCol *= 0.2;
backCol.b *= 1.0;
backCol.r = mix(backCol.r, backCol.b, 0.2);
forCol.g *= max((backCol.r * 4.0), 1.0);
forCol.r += backCol.r * 0.05;
forCol.b += 0.5*mix(backCol.g, backCol.b, 0.8);
gl_FragColor = forCol;
}
else
{
vec4 col = vec4(vec3(v*.01),1.);
gl_FragColor = col;
}
}
+113
View File
@@ -0,0 +1,113 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"2d",
"generator",
"spirograph",
"radial",
"rotation"
],
"DESCRIPTION": "based on https://www.shadertoy.com/view/lddGD4 by Xor. Here's a simple 2D Spirograph test.",
"INPUTS": [
{
"NAME": "center",
"TYPE": "point2D",
"DEFAULT": [
0,
0
],
"MAX": [
1,
1
],
"MIN": [
-1,
-1
]
},
{
"NAME": "freq",
"TYPE": "float",
"DEFAULT": 12.32,
"MIN": 1,
"MAX": 16
},
{
"NAME": "radius1",
"TYPE": "float",
"DEFAULT": 0.1,
"MIN": 0.01,
"MAX": 0.5
},
{
"NAME": "radius2",
"TYPE": "float",
"DEFAULT": 0.67,
"MIN": 0.01,
"MAX": 1.99
},
{
"NAME": "rate",
"TYPE": "float",
"DEFAULT": 0.01,
"MIN": -0.1,
"MAX": 0.1
},
{
"NAME": "loops",
"TYPE": "float",
"DEFAULT": 58.93,
"MIN": 1,
"MAX": 200
},
{
"NAME": "thickness",
"TYPE": "float",
"DEFAULT": 0.005,
"MIN": 0.001,
"MAX": 0.01
},
{
"NAME": "nudge",
"TYPE": "float",
"DEFAULT": 0.875,
"MIN": 0,
"MAX": 1
}
],
"ISFVSN": "2"
}*/
//////////////////////////////////////////////
// SpirographSpectrum by mojovideotech
//
// based on :
// www.shadertoy.com/\view/\lddGD4
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
/////////////////////////////////////////////
#define twpi 6.283185307179586 // two pi, 2*pi
#define pi 3.141592653589793 // pi
void main() {
vec2 uv = (gl_FragCoord.xy-RENDERSIZE.xy*0.5) / RENDERSIZE.y - center ;
float ang = (atan(-uv.y,-uv.x)/atan(1.0)*0.125+0.5)+TIME*rate;
float len = length(uv);
vec3 col = vec3(0.0);
for(float i = 0.0;i<200.;i+=1.0)
{
float L = floor(loops);
float F = ceil(freq);
if (i >= L) break;
float tag = (ang+i)*twpi;
float tln = (cos((ang+i*(1.0-nudge))*F)*0.5+0.5)*(radius2-radius1)+radius1;
vec2 pos = normalize(uv)*tln;
col += smoothstep(thickness,0.0,distance(uv,pos)*pow(length(uv),0.001))*(cos(tag+vec3(0.0,twpi,2.0*twpi)/3.0)*0.5+0.5);
}
gl_FragColor = vec4(col,1.0);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 587 KiB

+102
View File
@@ -0,0 +1,102 @@
/*{
"CREDIT": "by echophons",
"DESCRIPTION": "",
"CATEGORIES": [ "generator"
],
"INPUTS": [
{
"NAME": "k",
"TYPE": "float",
"DEFAULT": 0.3,
"MIN": 0.001,
"MAX": 0.999
},
{
"NAME": "h",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "j",
"TYPE": "float",
"DEFAULT": 0.5,
"MIN": 0.0,
"MAX": 1.0
},
{
"NAME": "c",
"TYPE": "float",
"DEFAULT": 0.632,
"MIN": 0.001,
"MAX":0.999
},
{
"NAME": "s",
"TYPE": "float",
"DEFAULT": 0.131,
"MIN": 0.001,
"MAX":0.999
},
{
"NAME": "e",
"TYPE": "float",
"DEFAULT": 0.3,
"MIN": 0.001,
"MAX":0.999
},
{
"NAME": "u",
"TYPE": "float",
"DEFAULT": 0.17,
"MIN": 0.001,
"MAX":0.999
},
{
"NAME": "m",
"TYPE": "float",
"DEFAULT": 0.3,
"MIN": 0.001,
"MAX": 0.999
}
]
}*/
// edit of http://glslsandbox.com/e#18752.0
// additional iputs added by Doctor Mojo
uniform vec2 mouse;
vec3 iResolution = vec3(RENDERSIZE, 1.0);
float iGlobalTime = TIME;
float gTime = iGlobalTime*0.5;
void main( void )
{
float f = 1.0;
float g = 1.0;
vec2 res = iResolution.xy;
vec2 mou = mouse.xy;
//if (mouse.x < 0.5)
//{
mou.x = sin(gTime * e)*sin(gTime * u) * 1. + sin(gTime * m);
mou.y = (1.0-cos(gTime * c))*sin(gTime * s)*1.0+cos(gTime * k);
mou = (mou+1.0) * res;
//}
vec2 z = ((-res+2.0 * gl_FragCoord.xy) / res.y);
vec2 p = ((-res+2.0+mou) / res.y) * j;
for( int i = 0; i < 24; i++)
{
float d = dot(z,z);
z = (vec2( z.x, -z.y ) / d) + p * h;
z.x = 1.0-abs(z.x);
f = max( f-d, (dot(z-p,z-p) ));
g = min( g*d, sin(dot(z+p,z+p))+1.0);
}
f = abs(-log(f) / 3.5);
g = abs(-log(g) / 8.0);
gl_FragColor = vec4(min(vec3(g, g*f, f), 1.0),1.0);
}
@@ -0,0 +1,187 @@
// SaturdayShader Week 31 : WaveShapes
// by Joseph Fiola (http://www.joefiola.com)
// 2016-03-26
//modified by Sprohgis
// Based on shader by Shadertoy user smb02dunnal entitiled "Electro-Prim's" - https://www.shadertoy.com/view/Mll3WS
// https://twitter.com/AlexWDunn
// Sadly it's not working with VDMX. Gan somone please make it work.
/*{
"CREDIT": "Joseph Fiola",
"DESCRIPTION": "",
"CATEGORIES": [
"Generator"
],
"INPUTS": [
{
"NAME": "shape",
"TYPE": "long",
"VALUES": [
0,
1
],
"LABELS": [
"triangle",
"square"
],
"DEFAULT": 0
},
{
"NAME": "triside1",
"TYPE": "float",
"DEFAULT": 3,
"MIN": 0,
"MAX": 3
},
{
"NAME": "squareside1",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0,
"MAX": 10
},
{
"NAME": "zoom",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0,
"MAX": 10
},
{
"NAME": "rotate",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 1
},
{
"NAME": "twist",
"TYPE": "float",
"DEFAULT": 0.02,
"MIN": 0,
"MAX": 1
},
{
"NAME": "tunnel",
"TYPE": "float",
"DEFAULT": 1.1,
"MIN": 0.25,
"MAX": 1.75
},
{
"NAME": "thickness",
"TYPE": "float",
"DEFAULT": 0.003,
"MIN": 0,
"MAX": 0.2
},
{
"NAME": "amplitude",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 100
},
{
"NAME": "frequency",
"TYPE": "float",
"DEFAULT": 0,
"MIN": 0,
"MAX": 50
},
{
"NAME": "band",
"TYPE": "float",
"DEFAULT": 0,
"MIN": -0.5,
"MAX": 1
},
{
"NAME": "pos",
"TYPE": "point2D",
"DEFAULT": [
0.5,
0.5
],
"MIN": [
0,
0
],
"MAX": [
1,
1
]
}
]
}*/
// line commented out enabling compile in xLights by Old Salt
// precision mediump float;
#define PI 3.14159265359
#define TWO_PI 6.28318530718
float electro(vec2 uv, float d, float f, float o, float a, float b)
{
float theta = atan(uv.y,uv.x);
float amp = smoothstep(0.0, 1.0, (sin(theta + TIME * PI)*0.5+0.5)-b)*a;
float phase = d + sin(theta * f + o + TIME * PI) * amp;
return sin(clamp(phase, 0.0, PI*2.0) + PI/2.0) + 1.0005;
}
mat2 rotate2d(float _angle){
return mat2(cos(_angle),-sin(_angle),
sin(_angle),cos(_angle));
}
void main()
{
const float radius = 0.1;
vec2 uv = gl_FragCoord.xy / RENDERSIZE.xy;
uv -= vec2(pos);
uv.x *= RENDERSIZE.x/RENDERSIZE.y;
uv = rotate2d(rotate*-TWO_PI) * uv;
uv *= zoom;
float grey = 0.0;
float alpha = 1.0;
for(int i = 0; i < 20; i++) {
float d = 0.0;
//triangle
if (shape == 0){
float root2 = sqrt(triside1);
d = dot(uv, vec2(0.0,-2.0));
d = max(d, dot(uv, vec2(-root2,1.0)));
d = max(d, dot(uv, vec2( root2,1.0)));
}
//square
if (shape == 1){
d = max(abs(uv).x*squareside1, abs(uv).y);
}
grey += 1.0 - smoothstep(0.0, thickness, electro(uv, d/radius, frequency, 0.0 * PI, amplitude, band));
grey += 1.0 - smoothstep(0.0, thickness, electro(uv, d/radius, frequency, 0.5 * PI, amplitude, band));
grey += 1.0 - smoothstep(0.0, thickness, electro(uv, d/radius, frequency, 1.0 * PI, amplitude, band));
//tunnel
uv *= tunnel;
//twist
uv = rotate2d(twist*-TWO_PI) * uv;
}
gl_FragColor = vec4(vec3(grey),1.0);
}
+142
View File
@@ -0,0 +1,142 @@
/*
{
"CATEGORIES" : [
"Generator"
],
"DESCRIPTION" : "Twin Rays",
"ISFVSN" : "2",
"INPUTS" : [
{
"NAME" : "rate",
"TYPE" : "float",
"MAX" : 0.059999999999999998,
"DEFAULT" : -0.016063844785094261,
"LABEL" : "SPEED",
"MIN" : -0.059999999999999998
},
{
"NAME" : "colorIN",
"TYPE" : "color",
"DEFAULT" : [
1,
0.20000000298023224,
0.10000000149011612,
1
],
"LABEL" : "Color"
},
{
"NAME" : "Count",
"TYPE" : "float",
"MAX" : 25,
"DEFAULT" : 18.131168365478516,
"LABEL" : "Ray Count",
"MIN" : 3
},
{
"NAME" : "posY",
"TYPE" : "float",
"MAX" : 0.5,
"DEFAULT" : -0.33067807555198669,
"LABEL" : "Position Y",
"MIN" : -0.5
},
{
"NAME" : "posX",
"TYPE" : "float",
"MAX" : 0.5,
"DEFAULT" : 0.1662137508392334,
"LABEL" : "Position X",
"MIN" : 0
},
{
"NAME" : "width",
"TYPE" : "float",
"MAX" : 0.45,
"DEFAULT" : 0.2891484797000885,
"LABEL" : "Ray Width",
"MIN" : 0.01
},
{
"NAME" : "soft",
"TYPE" : "float",
"MAX" : 0.99,
"DEFAULT" : 0.2891484797000885,
"LABEL" : "Ray Softness",
"MIN" : 0.01
}
],
"CREDIT" : "howie.tv"
}
*/
// its a howie.tv thing
// _read the time buffer
#define M_PI 3.1415926535897932384626433832795
// rgb2hsv
vec3 rgb2hsv(vec3 c)
{
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
// hsv2rgb
vec3 hsv2rgb(vec3 c)
{
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
float rays(vec2 uv, float c, float w, float s)
{
uv.x = fract(uv.x*c)-0.5;
return smoothstep(-w , -w*s, uv.x) * smoothstep(w, w*s, uv.x);
}
void main() {
float ratio = RENDERSIZE.y/RENDERSIZE.x;
vec2 uv = vec2( isf_FragNormCoord.x -0.5, (isf_FragNormCoord.y -0.5) * ratio);
vec3 color;
vec3 col;
vec2 UV;
float m;
float angle;
float radius;
float count = floor(Count);
uv.y -= posY;
vec3 hvs = rgb2hsv(colorIN.rgb);
vec3 colorA = hsv2rgb(vec3(hvs.x +0.1, hvs.y, hvs.z));
vec3 colorB = hsv2rgb(vec3(hvs.x -0.1, hvs.y, hvs.z));
for(int i = 0; i< 2; i++)
{
UV = uv;
UV.x -= posX*(1.0-(float(i)*2.0));
UV.x *= 1.0-(float(i)*2.0);
angle = atan(UV.y, UV.x);
angle = angle/((M_PI*4.0)*0.5) + TIME*rate ;
radius = length(UV);
UV = vec2(angle, radius*1.5);
col = mix(colorA,colorB, abs(UV.y)/ratio);
m = rays(UV,count,width,soft);
m = pow(m,3.0);
color += col*m;
}
gl_FragColor = vec4(color,1.0);
}
@@ -0,0 +1,144 @@
/*{
"CREDIT": "by mojovideotech",
"CATEGORIES": [
"generator",
"circuits",
"2d",
"fractal",
"Kaliset"
],
"ISFVSN" : "2",
"DESCRIPTION": "",
"INPUTS": [
{
"NAME" : "center",
"TYPE" : "point2D",
"DEFAULT" : [ 0.0, 0.0 ],
"MAX" : [ 3.0, 3.0 ],
"MIN" : [ -3.0, -3.0 ]
},
{
"NAME" : "zoom",
"TYPE" : "float",
"DEFAULT" : 1.5,
"MIN" : 0.5,
"MAX" : 3.0
},
{
"NAME" : "offset",
"TYPE" : "float",
"DEFAULT" : 0.05,
"MIN" : 0.01,
"MAX" : 0.1
},
{
"NAME" : "glow",
"TYPE" : "float",
"DEFAULT" : 3.0,
"MIN" : 0.0,
"MAX" : 9.0
},
{
"NAME" : "intensity",
"TYPE" : "float",
"DEFAULT" : 0.00125,
"MIN" : 0.0005,
"MAX" : 0.0025
},
{
"NAME" : "trace",
"TYPE" : "float",
"DEFAULT" : 40.0,
"MIN" : 10.0,
"MAX" : 100.0
},
{
"NAME" : "runtime",
"TYPE" : "float",
"DEFAULT" : 24.0,
"MIN" : 6.0,
"MAX" : 60.0
},
{
"NAME" : "rate",
"TYPE" : "float",
"DEFAULT" : 0.5,
"MIN" : -2.0,
"MAX" : 2.0
}
]
}
*/
////////////////////////////////////////////////////////////
// UltimateKaliCircuits by mojovideotech
//
// based on :
// shadertoy/XlX3Rj by Kali
//
// Creative Commons Attribution-NonCommercial-ShareAlike 3.0
////////////////////////////////////////////////////////////
#define pisq 9.869604401089359 // pi squared, pi^2
#define twpi 6.283185307179586 // two pi, 2*pi
#define phicu 4.236067977499791 // phi cubed, phi^3
#define cuphi 1.173984996705329 // cube root of phi
#define rctwpi 0.159154943091895 // reciprocal of twpi, 1/twpi
#define r36 0.027777777777778
vec3 color = vec3(0.0,0.5,0.0);
float S = glow;
float T = rate*TIME*0.005;
vec2 hash22(vec2 p) { return fract(vec2(21.0, 97.0)*sin(dot(p, vec2(92.0, 61.0)))); }
void formula(vec2 z, float f)
{
float m = 0.0;
float o, ot2, ot=ot2=10000.0;
for (int i=0; i<9; i++) {
z = abs(z)/clamp(dot(z,z), 0.1, 0.5)-f;
float l = length(z);
o = min(max(abs(min(z.x, z.y)),-l+0.25), abs(l-0.25));
ot = min(ot, o);
ot2 = min(l*0.1, ot2);
m = max(m, float(i)*(1.0-abs(sign(ot-o))));
}
m += 1.0;
float w = intensity*m*2.0;
float circ = pow(max(0.0,w-ot2)/w,6.0);
S += max(pow(max(0.0,w-ot)/w,0.25),circ);
vec3 col = vec3(hash22(z),f);
color += col*(0.4+mod(m/9.0-T*trace+ot2*2.0, 1.0)*1.6);
color += vec3(1.0, 0.7, 0.3)*circ*(10.0-m)*3.0
*smoothstep(0.0, 0.5, vec3(f, isf_FragNormCoord));
}
void main()
{
vec2 pos = 2.0 * gl_FragCoord.xy - RENDERSIZE.xy;
pos /= max(RENDERSIZE.x,RENDERSIZE.y);
vec2 uv = pos-center;
uv *= 4.0-zoom;
float a = T + mod(T, floor(runtime))*cuphi;
float b = a*phicu;
uv *= mat2(cos(b),sin(b),-sin(b),cos(b));
uv += vec2(sin(a),cos(a*cuphi))*pisq;
uv *= offset;
float pix = cuphi/RENDERSIZE.x*offset;
float c = 1.5+mod(floor(T), 16.0)*0.125;
for (int aa=0; aa<36; aa++) {
vec2 aauv = floor(vec2(float(aa)*rctwpi, mod(float(aa), twpi)));
formula(uv+aauv*pix, c);
}
S *= r36, color *= r36;
vec3 colo = mix(vec3(0.025), color, S)*(1.5-length(pos));
colo *= vec3(1.2, 1.1, 1.0);
gl_FragColor = vec4(colo, 1.0);
}
+100
View File
@@ -0,0 +1,100 @@
/*{
"CREDIT": "by crackhouse",
"DESCRIPTION": "",
"CATEGORIES": [
"generator"
],
"INPUTS": [
{
"NAME": "R",
"TYPE": "float",
"DEFAULT": 1,
"MIN": 0.1,
"MAX":9
},
{
"NAME": "grid",
"TYPE": "float",
"DEFAULT": 5,
"MIN": 0.1,
"MAX": 1
}
]
}*/
vec3 iResolution = vec3(RENDERSIZE, 1.);
float iTime = TIME;
// Anaglyph Structure
// Framed for https://fanzine.cookie.paris/
// Licensed under hippie love conspiracy
// Leon Denise (ponk) 2019.10.24
// Using code from Inigo Quilez
mat2 rot (float a) { float c=cos(a),s=sin(a); return mat2(c,-s,s,c); }
float random (in vec2 st) { return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123); }
vec3 look (vec3 eye, vec3 target, vec2 anchor) {
vec3 forward = normalize(target-eye);
vec3 right = normalize(cross(forward, vec3(0,1,0.)));
vec3 up = normalize(cross(right, forward));
return normalize(forward * .5 + right * anchor.x + up * anchor.y);
}
float map (vec3 pos) {
float scene = 10.0;
float r = R;
const float count = 8.0;
for (float index = count; index > 0.0; --index)
{
pos.xz = abs(pos.xz)-1.5*r;
pos.xz *= rot(0.4/r + iTime * 0.1)-sin(grid*0.03);
pos.yz *= rot(1.5/r + iTime * 0.05)-sin(grid*0.03);
pos.yx *= rot(.2/r + iTime * 0.05)+sin(grid*0.03);
scene = min(scene, length(pos.xy)-0.001);
scene = min(scene, length(pos)-.3*r)*cos(.2-grid*0.05);
r /= 1.8;
}
return scene;
}
vec4 raymarch (vec3 eye, vec3 ray) {
float dither = random(ray.xy+fract(iTime));
vec4 result = vec4(eye, 0);
float total = 0.0;
float maxt = 20.0;
const float count = 30.;
for (float index = count; index > 0.0; --index) {
result.xyz = eye + ray * total;
float dist = map(result.xyz);
if (dist < 0.001 + total * .002 || total > maxt) {
result.w = index / count;
break;
}
dist *= 0.9 + 0.1 * dither;
total += dist;
}
result.w *= step(total, maxt);
return result;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord ){
vec2 uv = (fragCoord.xy-0.5*iResolution.xy)/iResolution.y;
vec3 eye = vec3(1.,0.5,-4.5);
vec3 at = vec3(0);
vec3 ray = look(eye, at, uv);
vec3 eyeoffset = 0.02*normalize(cross(normalize(at-eye), vec3(0,1.*grid,0)));
vec4 resultLeft = raymarch(eye-eyeoffset, ray);
vec4 resultRight = raymarch(eye+eyeoffset, ray);
fragColor = vec4(resultLeft.w,vec2(resultRight.w),1);
}
void main(void) {
mainImage(gl_FragColor, gl_FragCoord.xy);
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1019 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Some files were not shown because too many files have changed in this diff Show More