3/20
2026/03/20
GLSL
vec3配列
vec3[4] colors = vec3[] (
vec3(1.0, 0.0, 0.0),
vec3(0.0, 1.0, 0.0),
vec3(0.0, 0.0, 1.0),
vec3(1.0, 1.0, 0.0)
);ボロノイノイズ
複数の点をループさせて、その距離から色付するのをセルラーノイズという。
すべてのピクセルで点の数だけループさせるので、重い。
ボロノイノイズは、周辺のグリッドセル(3x3)だけ見れば良いので、ループ回数が少なく効率的。
vec2 i_st = floor(st);
vec2 f_st = fract(st);
float m_dist = 1.0;
for(int y = -1; y <= 1; y++) {
for(int x = -1; x <= 1; x++) {
vec2 neighbor = vec2(float(x), float(y));
vec2 point = random2(i_st + neighbor);
point = sin(uTime + point * 6.3465) * 0.5 + 0.5;
vec2 diff = neighbor + point - f_st;
float dist = length(diff);
m_dist = min(m_dist, dist);
}
}
color += m_dist;こんだけの行で美しい動きとか使えるのかと感動。

floor int 違い
floorは負の方へ切り捨てする。
intは0の方向へ切り捨てする。
よって、
正の数なら同じ結果。
負の数だと違う。
fract(-1.5) = -2
int(-1.5) = -1
uProgress(0,1)からprogress(0,1,0)
float progress = 1.0 - abs((uProgress - 0.5) * 2.0);としていたが、sinでいけたな。float progress = sin(uProgress * 3.14159265);
こっちのが滑らか
ポートフォリオ制作
戻る進むボタンだと瞬時にURLが変わるためNavigateを呼ばなくて良かったんだ。進む・戻るボタンでもちゃんと動作するようになったかな。
内省
一日の終わる前に今日の復習と、次の日の予定立てと、日記(このサイト)書く時間設けよう。
だいたい10分くらいだろう。この10分超大事な気がする。
国民健康保険料が届いて、高すぎて絶句。間違えてないか月曜確認しに行く。