Skip to content

Commit 7550ac4

Browse files
authored
Merge pull request #558 from bencbartlett/moires_bad_trip
New distortion shader: Moiré's Bad Trip
2 parents 17fe97c + de8e91c commit 7550ac4

File tree

4 files changed

+131
-11
lines changed

4 files changed

+131
-11
lines changed

src/commonMain/resources/shader-libraries/built-in/_libraryIndex.json

+35-1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@
8080
],
8181
"srcFile": "effects/Heart.glsl"
8282
},
83+
{
84+
"id": "moires-bad-trip",
85+
"title": "Moiré's Bad Trip",
86+
"description": "More distortion... I said MORE DISTORTION!",
87+
"lastModifiedMs": 0,
88+
"tags": [
89+
"@filter",
90+
"@type=mover"
91+
],
92+
"srcFile": "effects/Moires_bad_trip.glsl"
93+
},
8394
{
8495
"id": "movers-swirl",
8596
"title": "Movers Swirl Filter",
@@ -151,7 +162,10 @@
151162
"title": "Ripple",
152163
"description": "It's wobbly!",
153164
"lastModifiedMs": 0,
154-
"tags": [],
165+
"tags": [
166+
"@filter",
167+
"@type=filter"
168+
],
155169
"srcFile": "effects/Ripple.glsl"
156170
},
157171
{
@@ -215,6 +229,26 @@
215229
],
216230
"srcFile": "shaders/BAAAHS_Eclipse.glsl"
217231
},
232+
{
233+
"id": "baaahs-sheep-shrooms",
234+
"title": "[\uD83D\uDC11] Sheep Shrooms",
235+
"description": "Pearl took a little bit too much this time",
236+
"lastModifiedMs": 0,
237+
"tags": [
238+
"@type=paint"
239+
],
240+
"srcFile": "shaders/BAAAHS_SheepShrooms.glsl"
241+
},
242+
{
243+
"id": "baaahs-solar-flare",
244+
"title": "[\uD83D\uDC11] Solar Flare",
245+
"description": "The power of the sun... on the ass of my sheep",
246+
"lastModifiedMs": 0,
247+
"tags": [
248+
"@type=paint"
249+
],
250+
"srcFile": "shaders/BAAAHS_WobblyLines.glsl"
251+
},
218252
{
219253
"id": "baaahs-geometric-colorpulse",
220254
"title": "[\uD83D\uDC11] Geometric ColorPulse",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
uniform float time; // @@Time
2+
uniform vec2 resolution; // @@Resolution
3+
4+
uniform float depth; // @@Slider default=0.5 min=0.1 max=0.9
5+
uniform float iterations; // @@Slider default=20. min=5. max=50.
6+
uniform float exponent; // @@Slider default=1.5 min=-3. max=3.
7+
uniform float beatResponsiveness; // @@Slider default=0.0 min=0.0 max=0.5
8+
uniform float start_radius; //@@Slider default=2.75 min=1. max = 5.
9+
uniform float squareness; //@@Slider default=30. min=1. max=100.
10+
11+
struct BeatInfo {
12+
float beat;
13+
float bpm;
14+
float intensity;
15+
float confidence;
16+
};
17+
18+
uniform BeatInfo beatInfo; // @@baaahs.BeatLink:BeatInfo
19+
20+
float tanh_approx(float x) {
21+
float x2 = x*x;
22+
return clamp(x*(27.0 + x2)/(27.0+9.0*x2), -1.0, 1.0);
23+
}
24+
25+
vec3 offset(float z) { float a = z; vec2 p = -0.1*vec2(1.2, .6)*(vec2(cos(a), sin(a*sqrt(2.0))) + vec2(cos(a*sqrt(0.75)), sin(a*sqrt(0.5)))); return vec3(p, z); }
26+
vec3 doffset(float z) { float eps = 0.05; return 0.5*(offset(z + eps) - offset(z - eps))/(2.0*eps); }
27+
vec3 ddoffset(float z) { float eps = 0.05; return 0.5*(doffset(z + eps) - doffset(z - eps))/(2.0*eps); }
28+
29+
// @return uv-coordinate
30+
// @param uvIn uv-coordinate
31+
vec2 main(vec2 uvIn) {
32+
float tm = depth*time*beatInfo.bpm/60.0;
33+
vec3 ro = offset(tm);
34+
vec3 dro = doffset(tm);
35+
vec3 ddro = ddoffset(tm);
36+
37+
vec3 ww = normalize(dro);
38+
vec3 uu = normalize(cross(normalize(vec3(0.0, 1.0, 0.0)+ddro), ww));
39+
vec3 vv = cross(ww, uu);
40+
41+
float lp = length(uvIn);
42+
float cosScale = squareness * (1. - beatResponsiveness * beatInfo.intensity);
43+
44+
const float outer_rad=0.5;
45+
float rdd = start_radius + outer_rad*pow(lp, exponent)*tanh_approx(lp+3.*0.5*(cos(cosScale*uvIn.x)+1.0)*0.5*(cos(cosScale*uvIn.y)+1.0));
46+
47+
vec3 rd = normalize(uvIn.x*uu + uvIn.y*vv + rdd*ww);
48+
49+
float nz_sheep = ro.z / depth;
50+
51+
float pz_sheep = depth*nz_sheep + depth * iterations;
52+
float pd_sheep = (pz_sheep - ro.z) / rd.z;
53+
vec3 pp_sheep = ro + rd*pd_sheep;
54+
vec3 off_sheep = offset(pp_sheep.z);
55+
vec2 p_sheep = (pp_sheep-off_sheep*vec3(1.0, 1.0, 0.0)).xy;
56+
57+
float sheep_scale=0.6;
58+
vec2 sheep_xy = p_sheep / sheep_scale;
59+
60+
return sheep_xy;
61+
}

src/commonMain/resources/shader-libraries/built-in/shaders/BAAAHS_SheepShrooms.glsl

+20-6
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// Combined with own code from https://www.shadertoy.com/view/7dVBWV
66
// Made on too little sleep lol
77

8-
#define resolution iResolution
9-
#define time iTime
8+
//#define resolution iResolution
9+
//#define time iTime
1010
#define PI 3.141592654
1111
#define PI_2 (0.5*PI)
1212
#define TAU (2.0*PI)
@@ -22,12 +22,26 @@
2222
#define beatInfo_intensity .5*(smoothstep(1., 0., mod(beatInfo_beat, 1.) / 0.4) + .5*smoothstep(1., 0., (1. - mod(beatInfo_beat, 1.)) / 0.2))
2323
#define beatInfo_confidence 1.0
2424

25+
uniform float time; // @@Time
26+
uniform vec2 resolution; // @@Resolution
27+
28+
struct BeatInfo {
29+
float beat;
30+
float bpm;
31+
float intensity;
32+
float confidence;
33+
};
34+
uniform BeatInfo beatInfo; // @@baaahs.BeatLink:BeatInfo
2535

2636
const float FREQ_RANGE = 64.0;
2737
const float RADIUS = 0.4;
2838
const float BRIGHTNESS = 0.2;
2939
const float SPEED = 0.4;
3040

41+
42+
//uniform float planeDist; // @@Slider default=0.8 min=0.5 max=0.9
43+
//uniform int furthest; // @@Slider default=6 min=4 max=20
44+
3145
const float planeDist = 1.0-0.8;
3246
const int furthest = 6;
3347
const int fadeFrom = max(furthest-4, 0);
@@ -53,7 +67,7 @@ float luma(vec3 color) {
5367
}
5468

5569
float getfrequency(float x) {
56-
return .2 + .3 * beatInfo_intensity;//texture(soundAnalysis.buckets, vec2(floor(x * FREQ_RANGE + 1.0) / FREQ_RANGE, 0.25)).x + 0.06;
70+
return .2 + .3 * beatInfo.intensity;//texture(soundAnalysis.buckets, vec2(floor(x * FREQ_RANGE + 1.0) / FREQ_RANGE, 0.25)).x + 0.06;
5771
}
5872

5973
float getfrequency_smooth(float x) {
@@ -300,20 +314,20 @@ vec3 color(vec3 ww, vec3 uu, vec3 vv, vec3 ro, vec2 p) {
300314
float sheep_scale=0.6;
301315
vec2 sheep_xy = p_sheep / sheep_scale;
302316

303-
float logoRadius = RADIUS + 0.05 * min((beatInfo_intensity), 1.);
317+
float logoRadius = RADIUS + 0.05 * min((beatInfo.intensity), 1.);
304318
float radiusFalloff = 4.;
305319
float dR = max(length(p_sheep) - logoRadius - 0.1, 0.);
306320
//uv0 /= (1. + exp(-radiusFalloff*dR) * logoRadius / LOGO_RADIUS);
307321

308322
if (length(sheep_xy) < 1.2 * logoRadius) {
309-
col *= (1. + 2.*beatInfo_intensity);
323+
col *= (1. + 2.*beatInfo.intensity);
310324
}
311325
if (length(sheep_xy) < logoRadius) {
312326
col *= .05;
313327
}
314328
col += drawSheep(sheep_xy, logoRadius);
315329

316-
col *= (.95 + .1*beatInfo_intensity);
330+
col *= (.95 + .1*beatInfo.intensity);
317331

318332
// To debug cutouts due to transparency
319333
// col += cutOut ? vec3(1.0, -1.0, 0.0) : vec3(0.0);

src/commonMain/resources/shader-libraries/built-in/shaders/BAAAHS_WobblyLines.glsl

+15-4
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,26 @@
44
// Built off of https://www.shadertoy.com/view/mdBBRW
55

66
// Copy-paste this to add a mock beatInfo object to shadertoy for testing purposes
7-
#define time iTime
8-
#define resolution iResolution
7+
//#define time iTime
8+
//#define resolution iResolution
99
#define BPM 125.0
1010
// These will need to be Find-Replaced from beatInfo_beat -> beatInfo.beat
1111
#define beatInfo_beat mod(time * (BPM /60.), 4.)
1212
#define beatInfo_bpm BPM
1313
#define beatInfo_intensity (.5*smoothstep(1., 0., mod(beatInfo_beat, 1.) / 0.4) + .5*smoothstep(1., 0., (1. - mod(beatInfo_beat, 1.)) / 0.2))
1414
#define beatInfo_confidence 1.0
1515

16+
uniform float time; // @@Time
17+
uniform vec2 resolution; // @@Resolution
18+
19+
struct BeatInfo {
20+
float beat;
21+
float bpm;
22+
float intensity;
23+
float confidence;
24+
};
25+
uniform BeatInfo beatInfo; // @@baaahs.BeatLink:BeatInfo
26+
1627
const float PI = 3.141592653589;
1728
const float LOGO_RADIUS = 0.5;
1829
const float LOGO_BRIGHTNESS = 0.2;
@@ -30,7 +41,7 @@ vec3 palette (float t) {
3041

3142
/* Minified BAAAHS logo code: use pointInSheep(vec2 point, float scale, vec2 offset) to determine if a pixel is in the sheep logo. */ float COORD_SCALE = 0.03; vec2 HEART[187] = vec2[187](vec2(-1.408e1,2.96),vec2(-1.39e1,3.56),vec2(-1.326e1,3.86),vec2(-1.37e1,4.4),vec2(-1.36e1,5.08),vec2(-1.322e1,5.4),vec2(-1.268e1,5.46),vec2(-13,5.92),vec2(-1.292e1,6.52),vec2(-1.242e1,6.92),vec2(-1.174e1,6.84),vec2(-1.198e1,7.4),vec2(-1.174e1,7.98),vec2(-1.126e1,8.22),vec2(-1.054e1,8.02),vec2(-1.058e1,8.66),vec2(-1.012e1,9.14),vec2(-9.6,9.18),vec2(-9.1,8.88),vec2(-9.08,9.42),vec2(-8.62,9.86),vec2(-8,9.86),vec2(-7.54,9.42),vec2(-7.4,9.94),vec2(-6.88,1.028e1),vec2(-6.22,1.014e1),vec2(-5.9,9.56),vec2(-5.46,1.01e1),vec2(-4.78,1.014e1),vec2(-4.42,9.88),vec2(-4.22,9.32),vec2(-3.86,9.8),vec2(-3.2,9.88),vec2(-2.74,9.54),vec2(-2.6,8.88),vec2(-2.02,9.24),vec2(-1.38,9.04),vec2(-1.12,8.6),vec2(-1.14,8.06),vec2(-0.52,8.28),vec2(0,8.02),vec2(0.58,8.16),vec2(1.04,7.96),vec2(1,8.5),vec2(1.28,8.96),vec2(1.98,9.14),vec2(2.54,8.78),vec2(2.52,9.3),vec2(2.98,9.8),vec2(3.6,9.82),vec2(4.12,9.3),vec2(4.22,9.72),vec2(4.62,1.008e1),vec2(5.32,1.006e1),vec2(5.78,9.52),vec2(6.1,1.014e1),vec2(6.74,1.028e1),vec2(7.24,9.98),vec2(7.4,9.44),vec2(7.98,9.92),vec2(8.64,9.82),vec2(8.98,9.4),vec2(8.98,8.88),vec2(9.5,9.24),vec2(1.02e1,9.1),vec2(1.052e1,8.58),vec2(1.046e1,8.04),vec2(1.11e1,8.3),vec2(1.166e1,8.04),vec2(1.188e1,7.38),vec2(1.166e1,6.92),vec2(1.236e1,7),vec2(1.284e1,6.62),vec2(1.294e1,6.06),vec2(1.268e1,5.54),vec2(1.326e1,5.48),vec2(1.368e1,4.92),vec2(1.364e1,4.44),vec2(1.326e1,3.98),vec2(1.378e1,3.82),vec2(1.41e1,3.24),vec2(1.394e1,2.66),vec2(1.34e1,2.36),vec2(1.386e1,2.08),vec2(1.408e1,1.62),vec2(1.388e1,0.94),vec2(1.32e1,0.68),vec2(1.36e1,0.16),vec2(1.356e1,-0.42),vec2(1.322e1,-0.8),vec2(1.262e1,-0.92),vec2(1.302e1,-1.38),vec2(1.294e1,-2.06),vec2(1.244e1,-2.44),vec2(1.188e1,-2.38),vec2(1.212e1,-2.92),vec2(1.198e1,-3.46),vec2(1.152e1,-3.8),vec2(1.094e1,-3.74),vec2(1.114e1,-4.44),vec2(1.08e1,-5.02),vec2(1.036e1,-5.18),vec2(9.86,-5.06),vec2(1.006e1,-5.66),vec2(9.84,-6.16),vec2(9.3,-6.42),vec2(8.72,-6.22),vec2(8.82,-6.92),vec2(8.46,-7.42),vec2(7.88,-7.54),vec2(7.48,-7.38),vec2(7.62,-8),vec2(7.34,-8.48),vec2(6.74,-8.68),vec2(6.26,-8.46),vec2(6.36,-9.14),vec2(5.88,-9.7),vec2(5.34,-9.74),vec2(4.94,-9.48),vec2(4.98,-1.016e1),vec2(4.64,-1.058e1),vec2(4.18,-1.072e1),vec2(3.56,-1.046e1),vec2(3.64,-1.102e1),vec2(3.3,-1.152e1),vec2(2.76,-1.166e1),vec2(2.22,-1.14e1),vec2(2.28,-1.198e1),vec2(1.92,-1.248e1),vec2(1.34,-1.26e1),vec2(0.86,-1.232e1),vec2(0.9,-13),vec2(0.74,-1.328e1),vec2(0.28,-1.354e1),vec2(-0.24,-1.35e1),vec2(-0.6,-1.324e1),vec2(-0.76,-1.242e1),vec2(-1.22,-1.266e1),vec2(-1.84,-1.25e1),vec2(-2.14,-1.204e1),vec2(-2.08,-1.146e1),vec2(-2.62,-1.172e1),vec2(-3.24,-1.152e1),vec2(-3.52,-11),vec2(-3.42,-1.052e1),vec2(-3.9,-1.076e1),vec2(-4.54,-1.062e1),vec2(-4.88,-1.006e1),vec2(-4.8,-9.54),vec2(-5.32,-9.82),vec2(-5.94,-9.64),vec2(-6.24,-9.1),vec2(-6.1,-8.5),vec2(-6.54,-8.74),vec2(-7.18,-8.58),vec2(-7.5,-8.02),vec2(-7.38,-7.44),vec2(-7.82,-7.62),vec2(-8.36,-7.48),vec2(-8.72,-6.88),vec2(-8.56,-6.32),vec2(-9.08,-6.5),vec2(-9.56,-6.36),vec2(-9.94,-5.72),vec2(-9.74,-5.14),vec2(-1.034e1,-5.26),vec2(-1.086e1,-4.96),vec2(-1.104e1,-4.34),vec2(-1.082e1,-3.82),vec2(-1.128e1,-3.92),vec2(-1.168e1,-3.76),vec2(-1.202e1,-3.1),vec2(-1.18e1,-2.48),vec2(-1.242e1,-2.54),vec2(-1.294e1,-2.02),vec2(-1.294e1,-1.46),vec2(-1.256e1,-1.04),vec2(-1.314e1,-0.92),vec2(-1.352e1,-0.46),vec2(-1.352e1,8.0e-2),vec2(-1.31e1,0.54),vec2(-1.382e1,0.78),vec2(-1.406e1,1.5),vec2(-1.382e1,1.98),vec2(-1.336e1,2.22),vec2(-1.386e1,2.46),vec2(-1.406e1,2.94)); vec2 HEART_MIN_XY = vec2(-70.5, -67.9); vec2 HEART_MAX_XY = vec2(70.6, 51.6); vec2 FACE[26] = vec2[26](vec2(-5.24,2.5),vec2(-5.18,3.56),vec2(-5.04,3.84),vec2(-4.8,3.88),vec2(-3.58,3.3),vec2(-1.88,2.12),vec2(2.16,2.12),vec2(4.02,3.68),vec2(4.78,4.04),vec2(5.18,4.02),vec2(5.38,3.64),vec2(5.44,2.72),vec2(5.12,0),vec2(2.84,-7.52),vec2(2.7,-8.46),vec2(2.36,-9.22),vec2(1.86,-9.8),vec2(1.14,-1.026e1),vec2(0.46,-1.046e1),vec2(-0.36,-1.044e1),vec2(-1.28,-1.008e1),vec2(-1.88,-9.58),vec2(-2.38,-8.8),vec2(-2.64,-7.5),vec2(-4.76,-0.72),vec2(-5.22,2.48)); vec2 MOUTH[35] = vec2[35](vec2(-1.66,-6.76),vec2(-1.56,-6.52),vec2(-1.3,-6.58),vec2(-0.32,-7.72),vec2(0.2,-7.86),vec2(0.58,-7.68),vec2(1.4,-6.66),vec2(1.62,-6.52),vec2(1.84,-6.58),vec2(1.82,-6.84),vec2(1.52,-6.98),vec2(1.22,-7.28),vec2(0.3,-8.66),vec2(0.3,-9.18),vec2(0.4,-9.28),vec2(1.14,-9.04),vec2(1.66,-8.64),vec2(1.8,-8.68),vec2(1.78,-8.82),vec2(1.44,-9.2),vec2(0.98,-9.52),vec2(0.42,-9.78),vec2(2.0e-2,-9.84),vec2(-0.86,-9.46),vec2(-1.54,-8.82),vec2(-1.56,-8.68),vec2(-1.44,-8.64),vec2(-1,-8.98),vec2(-0.18,-9.28),vec2(-8.0e-2,-9.16),vec2(-8.0e-2,-8.74),vec2(-0.14,-8.5),vec2(-0.8,-7.54),vec2(-1.26,-7.02),vec2(-1.64,-6.76)); vec2 EYE_LEFT[10] = vec2[10](vec2(-4.6,2.4),vec2(-4.6,2.72),vec2(-4.46,2.98),vec2(-4.14,3.02),vec2(-3.82,2.8),vec2(-3.48,2.14),vec2(-3.54,1.6),vec2(-4,1.6),vec2(-4.26,1.72),vec2(-4.58,2.38)); vec2 EYE_RIGHT[10] = vec2[10](vec2(3.64,1.8),vec2(3.72,2.34),vec2(4,2.8),vec2(4.32,3.02),vec2(4.68,2.94),vec2(4.78,2.42),vec2(4.48,1.76),vec2(4.2,1.6),vec2(3.7,1.6),vec2(3.66,1.78)); vec2 EAR_LEFT[9] = vec2[9](vec2(-1.092e1,6.08),vec2(-1.084e1,6.26),vec2(-1.058e1,6.3),vec2(-7.02,6.24),vec2(-6.94,4.48),vec2(-7.14,4.38),vec2(-7.84,4.42),vec2(-1.078e1,5.88),vec2(-1.09e1,6.06)); vec2 EAR_RIGHT[10] = vec2[10](vec2(7.22,4.48),vec2(7.42,4.38),vec2(8.12,4.42),vec2(1.106e1,5.88),vec2(1.12e1,6.14),vec2(1.112e1,6.26),vec2(1.086e1,6.3),vec2(7.36,6.28),vec2(7.26,6.18),vec2(7.22,4.5)); bool pointInHeart(vec2 point, float scale, vec2 offset){ int len = 187; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((HEART[i].y > p.y) != (HEART[j].y > p.y)) && (p.x < (HEART[j].x-HEART[i].x) * (p.y-HEART[i].y) / (HEART[j].y-HEART[i].y) + HEART[i].x) ) c = !c; } return c; } bool pointInFace(vec2 point, float scale, vec2 offset){ int len = 26; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((FACE[i].y > p.y) != (FACE[j].y > p.y)) && (p.x < (FACE[j].x-FACE[i].x) * (p.y-FACE[i].y) / (FACE[j].y-FACE[i].y) + FACE[i].x) ) c = !c; } return c; } bool pointInMouth(vec2 point, float scale, vec2 offset){ int len = 35; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((MOUTH[i].y > p.y) != (MOUTH[j].y > p.y)) && (p.x < (MOUTH[j].x-MOUTH[i].x) * (p.y-MOUTH[i].y) / (MOUTH[j].y-MOUTH[i].y) + MOUTH[i].x) ) c = !c; } return c; } bool pointInEyeLeft(vec2 point, float scale, vec2 offset){ int len = 10; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((EYE_LEFT[i].y > p.y) != (EYE_LEFT[j].y > p.y)) && (p.x < (EYE_LEFT[j].x-EYE_LEFT[i].x) * (p.y-EYE_LEFT[i].y) / (EYE_LEFT[j].y-EYE_LEFT[i].y) + EYE_LEFT[i].x) ) c = !c; } return c; } bool pointInEyeRight(vec2 point, float scale, vec2 offset){ int len = 10; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((EYE_RIGHT[i].y > p.y) != (EYE_RIGHT[j].y > p.y)) && (p.x < (EYE_RIGHT[j].x-EYE_RIGHT[i].x) * (p.y-EYE_RIGHT[i].y) / (EYE_RIGHT[j].y-EYE_RIGHT[i].y) + EYE_RIGHT[i].x) ) c = !c; } return c; } bool pointInEarLeft(vec2 point, float scale, vec2 offset){ int len = 9; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((EAR_LEFT[i].y > p.y) != (EAR_LEFT[j].y > p.y)) && (p.x < (EAR_LEFT[j].x-EAR_LEFT[i].x) * (p.y-EAR_LEFT[i].y) / (EAR_LEFT[j].y-EAR_LEFT[i].y) + EAR_LEFT[i].x) ) c = !c; } return c; } bool pointInEarRight(vec2 point, float scale, vec2 offset){ int len = 10; int i, j; bool c = false; vec2 p = (point - offset)/(scale * COORD_SCALE); for (i = 0, j = len-1; i < len; j = i++) { if ( ((EAR_RIGHT[i].y > p.y) != (EAR_RIGHT[j].y > p.y)) && (p.x < (EAR_RIGHT[j].x-EAR_RIGHT[i].x) * (p.y-EAR_RIGHT[i].y) / (EAR_RIGHT[j].y-EAR_RIGHT[i].y) + EAR_RIGHT[i].x) ) c = !c; } return c; } bool pointInSheep(vec2 point, float scale, vec2 offset) { vec2 p = (point - offset)/(scale * COORD_SCALE); if (p.x > HEART_MAX_XY.x || p.y > HEART_MAX_XY.y || p.x < HEART_MIN_XY.x || p.y < HEART_MIN_XY.y) { return false; } bool inHeart = pointInHeart(point, scale, offset); bool inFace = pointInFace(point, scale, offset); bool inMouth = pointInMouth(point, scale, offset); bool inEyeLeft = pointInEyeLeft(point, scale, offset); bool inEyeRight = pointInEyeRight(point, scale, offset); bool inEarLeft = pointInEarLeft(point, scale, offset); bool inEarRight = pointInEarRight(point, scale, offset); return inHeart && (!(inFace || inEarLeft || inEarRight) || (inMouth || inEyeLeft || inEyeRight)); }
3243

33-
float getfrequency(float x) { return .1 + .2 * beatInfo_intensity; /* texture(soundAnalysis.buckets, vec2(floor(x * FREQ_RANGE + 1.0) / FREQ_RANGE, 0.25)).x + 0.06; */ }
44+
float getfrequency(float x) { return .1 + .2 * beatInfo.intensity; /* texture(soundAnalysis.buckets, vec2(floor(x * FREQ_RANGE + 1.0) / FREQ_RANGE, 0.25)).x + 0.06; */ }
3445
float getfrequency_smooth(float x) { float index = floor(x * FREQ_RANGE) / FREQ_RANGE; float next = floor(x * FREQ_RANGE + 1.0) / FREQ_RANGE; return mix(getfrequency(index), getfrequency(next), smoothstep(0.0, 1.0, fract(x * FREQ_RANGE))); }
3546
float getfrequency_blend(float x) { return mix(getfrequency(x), getfrequency_smooth(x), 0.5); }
3647

@@ -92,7 +103,7 @@ void mainImage( out vec4 fragColor, in vec2 fragCoord )
92103
vec2 uv = (fragCoord * 2.0 - iResolution.xy) / iResolution.y;
93104

94105

95-
float logoRadius = LOGO_RADIUS * (1. + 0.2 * (beatInfo_intensity));
106+
float logoRadius = LOGO_RADIUS * (1. + 0.2 * (beatInfo.intensity));
96107
float radiusFalloff = 5.;
97108
float dR = max(length(fragPos) - logoRadius - 0.2, 0.);
98109

0 commit comments

Comments
 (0)