橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

Three.jsでセル・オートマトン

img

Fuse

当時お気に入りだったセル・オートマトンのシミュレーターアプリ"Sablo"を批判されたので、「おもしろいセル・オートマトンつくったる」と一念発起して作ったのがこれ。導火線に火付けて、ダイナマイトを爆発させられます。

fuse

GLSL 触り始めてから GPGPU 的な事をやりたくなってきたのもあって、かなり楽しかったです。

「前のフレームの計算結果を利用して新しいフレームを計算する」という部分で突っかかったので、一応メモ。

shader.uniforms.buffer.value = this.srcRenderTarget
renderer.render(dstRenderTarget)

[srcRenderTarget, dstRenderTarget] = [dstRenderTarget, srcRenderTarget]

WebGLRenderTargetはそのままテクスチャとしても扱えるので、2つターゲットを用意してあげて、前フレームで描画に使ったの RenderTarget をシェーダのuniformsにセットしてやりつつ、お互いに代わる代わるオフスクリーン描画してあげれば良いみたいです。このサイトのソースを参考にしています。


無駄に楽しくなってきて、ついでに投稿機能も付けてしまいました。MySQL が PHP の gd も勉強できたので結果よかった。ちょこちょことピカチュウやカップル、下品なイラストなどが投稿されているんだけど、おkのchain reactionの模式図は面白い。「原爆」ってキャプションはともかくとして。

imgFuse #27