GPGPU

浮動小数点数を pack して得た整数を同じサイズの浮動小数点数として保存してはならない

やってしまいました。

ここに vec2 の変数があります。

vec2 v;

各要素の精度を 16 ビットまで落として、一つの 32 ビット整数に pack します。

uint a = packHalf2x16(v);

そのままでは出力できなかったので、同じく 32 ビットの浮動小数点数である float に変換して書き出します。

float output = uintBitsToFloat(a);

次読んだときにはデータは消えていました。

Read more… 浮動小数点数を pack して得た整数を同じサイズの浮動小数点数として保存してはならない

このエントリーをはてなブックマークに追加

Vorticity Confinement で渦度を強調する

数日前から作っていた冷気のシミュレーションが完成しました。冷たいボールのような何かから舞い降りる冷気を観察できます。流体計算は Stable Fluids をベースに、移流計算に MacCormack 法を用いて Vorticity Confinement を加えたものになっています。

シミュレーションは WebGL を用いて全て GPU 上で行われます。あまり古くないPCやスマホならそれなりに快適に動作してくれるはずです。

Play: Chill

この記事ではシミュレーション中で使われている手法の Vorticity Confinement について解説します。

Read more… Vorticity Confinement で渦度を強調する

このエントリーをはてなブックマークに追加