3/28

日記

2026/03/28

GLSL

マンデルブロ集合

複素数の学び直しする。

マンデルブロ集合は漸化式が無限大に発散しないような複素数Cの集まり。
Z₀=0 、Zn+1=Zn²+C
このCを複素数平面状に書いていくとマンデルブロ集合みたいな画が得られる。らしい。

i : 二乗すると-1になる数

複素数:a + bi と表される数

複素数平面:x軸を実軸、y軸を虚軸として複素数を平面上に描くことができるようにした。平面の点(x,y)のようなもの。シェーダーではその点をvec2(x,y)でもつ。

複素数平面の絶対値:絶対値を「原点からの距離」とすると、|a + bi| = √a²+b²

漸化式は、|Zn|>2となるような項が見つかった時点で、確実に発散する。

以上の条件を見たうえで、マンデルブロ集合のshaderを見てみる。むずい。

偏微分と勾配

偏微分は、f(x,y)のような場合で他の変数は固定したまま、ある一つの変数だけで微分する。
x,y方向の瞬間的な変化を表す。

偏微分は「軸1本ずつの変化率」、勾配は「それらをまとめた、最も増えやすい向きと速さ

==vnoise21(p) の勾配==

vec2 grad(vec2 p){
    float eps = 0.001;
    return 0.5 * (vec2(
            vnoise21(p + vec2(eps, 0.0)) - vnoise21(p - vec2(eps, 0.0)),
            vnoise21(p + vec2(0.0, eps)) - vnoise21(p - vec2(0.0, eps))
    )) / eps;
}

続きは明日。。。。

内省

今日は図書カードを作った。あっさり。無限数ある本を自由に借りたりできるの、ワクワクする。
明日本を数冊借りて、月曜は読書にふけってみようかな。

I'll bollow a few books tomorrow and maybe spend Monday reading.