Loading...

Loading...

Scroll

Blog

Development and Information etc...

Categories

Tags

Monthly Archives

Keyword

Back

Creative Coding Drill Vol.3

2016.02.24

Category

Tags

第三回はフラクタルについて。

フラクタルといえばこれ!みたな図形のひとつにマンデルブロ集合というものがあるのは知っていましたが、どうやって実装するのかは知りませんでした。なので今回はフラグメントシェーダのみで実装。

drill3Img

実際のデモは時間経過で色を変えているだけなので今回は静止画のみですが、非常に美しい図形ができました。

マンデルブロ集合は

zn+1 = zk2 + C
z0 = 0

という漸化式で定義される複素数列で n → ∞ の極限で発散しない複素数Cの集合

とのこと。ここで、複素数Cを

c = x + iy

としてXY平面上で考えたものが↑の画像になります。
つまり、フラグメントシェーダで各ピクセル(x, y)においてzn+1を計算し、発散する場合としない場合で違う色で着色していけば、↑の画像が完成します。

発散の条件式は

|zn| > 2

この条件に関しては、こちらのページで解説されているのを参考にさせていいただきました。

また、集合の条件で、「n → ∞ の極限で発散しない複素数Cの集合」とありますが、実際にコンピュータで∞回計算することは不可能なので、今回はn → 600で発散するかどうかを判定しています。この値が∞に近くなればなるほど、正確なマンデルブロ集合が描けることになりますが、コンピュータでは現実的には不可能です。

今回のソースコードはこちらです。

Related Posts

Top