解説: Life Universe
公開からだいぶ時間が経ってしまいましたが、Life Universe の技術解説を書きます。
English version is here.
公開からだいぶ時間が経ってしまいましたが、Life Universe の技術解説を書きます。
English version is here.
虹色のゼリーを粉砕できるシミュレーションを作りました。
シミュレーションは WebGL 2.0 の機能をふんだんに利用した GPGPU で行われています。機種依存のバグが多すぎてスマホの対応が大変でした(まだ対応できていないスマホもあります)。
欲しかったので作ってしまいました。HGSL 開発リポジトリはこちら。Haxe の環境を VSCode に導入すれば誰でも使えます。
以下開発経緯や言語の特長、技術的解説、苦労した話などが続きます。
WebGL 2.0 で使える GLSL ES 3.0 における各種データ型やコンストラクタの挙動を自分用にまとめます[1]。
先日とある方からの報告により発覚したのでメモ。
WebGL で浮動小数点数テクスチャ (float, half-float) を使うときに注意しておかないと、特定のデバイスで「本当はサポートされているのに浮動小数点数テクスチャが使えない」状況に陥ります。
長々と開発中だった SandVox Simulator を公開しました。Falling-sand game と呼ばれているゲームの一種で、それの3D版です。スマホとPCどちらからでも遊べます。ある程度のスペックがあれば……。
以下では開発に至った経緯や小話、技術関連の話と近況について書いておきます。
数日前から作っていた冷気のシミュレーションが完成しました。冷たいボールのような何かから舞い降りる冷気を観察できます。流体計算は Stable Fluids をベースに、移流計算に MacCormack 法を用いて Vorticity Confinement を加えたものになっています。
シミュレーションは WebGL を用いて全て GPU 上で行われます。あまり古くないPCやスマホならそれなりに快適に動作してくれるはずです。
Play: Chill
この記事ではシミュレーション中で使われている手法の Vorticity Confinement について解説します。
Sea of Papers の技術解説です。大量の紙切れが宙を漂いながら浮かんでいく様子を眺めます。以前の布とは違い、物理演算を GPGPU で行いました。スマホでも動きます。