Skip to content

Commit 282bde1

Browse files
committed
i give up
1 parent fc6faef commit 282bde1

2 files changed

Lines changed: 25 additions & 18 deletions

File tree

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ uniform vec2 u_pointB;
88
uniform vec2 u_pointC;
99
uniform float u_time;
1010

11+
uniform vec3 u_color1;
12+
uniform vec3 u_color2;
13+
1114
bool withTime = false;
12-
float lineDarken = 0.5;
13-
float noiseStrength = 0.5; // 0.25
14-
float distanceStrength = 0.2;
15+
float noiseStrength = 0.75;
16+
float darkenStrength = 0.5;
17+
float distanceStrength = 0.25;
1518

1619
vec3 bg = vec3(0.0);
17-
vec3 rColor = vec3(1.000, 0.600, 0.600);
18-
vec3 gColor = vec3(0.086, 0.858, 0.768);
1920

2021
highp float rand(vec2 co) {
2122
highp float a = 12.9898;
@@ -27,7 +28,7 @@ highp float rand(vec2 co) {
2728
}
2829

2930
// Return minimum distance between line segment vw and point p
30-
float getColorFromDistance(vec2 v, vec2 w, vec2 p) {
31+
float getDistance(vec2 v, vec2 w, vec2 p) {
3132
vec2 l = v - w;
3233
float l2 = dot(l, l); // i.e. |w-v|^2 - avoid a sqrt
3334
if (l2 == 0.0) return distance(p, v); // v == w case
@@ -37,7 +38,8 @@ float getColorFromDistance(vec2 v, vec2 w, vec2 p) {
3738
// We clamp t from [0,1] to handle points outside the segment vw.
3839
float t = clamp(dot(p - v, w - v) / l2, 0.0, 1.0);
3940
vec2 projection = v + t * (w - v); // Projection falls on the segment
40-
return 1.0 - pow(distance(p, projection), distanceStrength);
41+
// return pow(distance(p, projection), distanceStrength);
42+
return pow(distance(p, projection), distanceStrength);
4143
}
4244

4345
float getPosition(vec2 p1, vec2 p2, vec2 px) {
@@ -51,18 +53,18 @@ void main() {
5153
vec2 pb = u_pointB.xy / u_resolution.xy;
5254
vec2 pc = u_pointC.xy / u_resolution.xy;
5355

54-
float r = getColorFromDistance(pa, pb, px);
55-
float g = getColorFromDistance(pa, pc, px);
56+
float d1 = getDistance(pa, pb, px);
57+
float c1 = 1.0 - getDistance(pa, pb, px);
58+
float d2 = getDistance(pa, pc, px);
59+
float c2 = 1.0 - getDistance(pa, pc, px);
5660

57-
bool rOrNot = getPosition(pa, pb, px) > 0.0;
58-
bool gOrNot = getPosition(pa, pc, px) > 0.0;
61+
bool isBeyondc1 = getPosition(pa, pb, px) > 0.0;
62+
bool isBeyondc2 = getPosition(pa, pc, px) > 0.0;
5963

6064
float noiseFactor = noiseStrength * rand(px) + 1.0 - noiseStrength;
61-
float darkFactor = rOrNot || !gOrNot ? lineDarken : 1.0;
65+
float darkFactor = isBeyondc1 || !isBeyondc2 ? (1.0 - (darkenStrength * max(c1, c2))) : 1.0 / (d1 * d2);
6266

63-
vec3 color1 = r * rColor;
64-
vec3 color2 = g * gColor;
65-
vec3 color = color1 + color2;
67+
vec3 color = c1 * u_color1 + c2 * u_color2;
6668

6769
gl_FragColor = vec4(color * darkFactor * noiseFactor, 1.0); // R,G,B,A
6870
}

sketches/v2/sketches/shader.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import palettes from "../palettes.js";
22
import configBuilder, { webGLSetup, ConfigValue } from "../utils.js";
33

44
new p5((p) => {
5-
let bg, colors, shader, pointA, pointB, pointC;
5+
let bg, colors, shader, pointA, pointB, pointC, color1, color2;
66

77
const c = configBuilder(p, {
88
padding: new ConfigValue({
@@ -11,11 +11,11 @@ new p5((p) => {
1111
max: 0.5,
1212
step: 0.05,
1313
}),
14-
seed: 852,
14+
seed: 9372,
1515
});
1616

1717
p.preload = () => {
18-
shader = p.loadShader("/sketches/v2/sketches/basic.vert", "/sketches/v2/sketches/basic.frag");
18+
shader = p.loadShader("/sketches/v2/sketches/basic.vert", "/sketches/v2/sketches/reflect.frag");
1919
};
2020

2121
const randomWithPadding = (numnum) => {
@@ -33,6 +33,9 @@ new p5((p) => {
3333
pointB = [randomWithPadding(p.width), randomWithPadding(p.height)];
3434
pointC = [randomWithPadding(p.width), randomWithPadding(p.height)];
3535

36+
color1 = [p.random(255) / 255, p.random(255) / 255, p.random(255) / 255];
37+
color2 = [p.random(255) / 255, p.random(255) / 255, p.random(255) / 255];
38+
3639
/*
3740
pointA = [p.width * 0.25, p.height * 0.75];
3841
pointB = [p.width * 0.75, p.height * 0.5];
@@ -46,6 +49,8 @@ new p5((p) => {
4649
shader.setUniform("u_pointA", pointA);
4750
shader.setUniform("u_pointB", pointB);
4851
shader.setUniform("u_pointC", pointC);
52+
shader.setUniform("u_color1", color1);
53+
shader.setUniform("u_color2", color2);
4954
p.shader(shader);
5055
p.rect(0, 0, p.width, p.height);
5156
};

0 commit comments

Comments
 (0)