category: " old "

MetalのGPGPUによるパーティクルデモ

読み込んだテクスチャをパーティクルに分解して動かすデモ。動きは滝のように画像がパーティクルに分解して落下していくのをイメージ。

画像サイズが512*512、1ピクセル=1パーティクルに分解するので、約26万個のパーティクルを動かしているが、60FPSを維持している。約100万まで増やすとiPhone6+で30FPSぐらいとなる。

そんなに複雑な計算をさせていないとはいえ、さすがGPGPUといったところ。なお、処理時間のほとんどはGPGPUの部分でCPUは余力がある様子。

動作イメージ

Read On →

Metal組み込み関数

Metalのシェーダで利用できる関数のまとめ

HLSL/GLSLは各言語との対比

  • (空白) : 同じ
  • ー : 該当なし
  • △ : 同等の関数があるが詳細が異なる
  • (関数名) : 挙動は同じだが、名前が別の関数がある

Read On →

MetalのGPGPUによるPerlinノイズ

GPGPUでリアルタイムにパーリンノイズを生成しテクスチャに書き込んで表示するデモ。

パーリンノイズはGPU Gems2の改良パーリンノイズで、それを元にした数種類を選択可能。 デモでは3次元ノイズを生成し、z値だけを時間で加算していきノイズを変化させている。

動作イメージ

Read On →

MetalKitのSwift版サンプル

元ネタのApple公式のMetalKitEssentialsをSwiftで書き直し+αしたもの。 内容は主にMetalKitを使って、obj形式のモデルをテクスチャありで表示させるだけ。 シェーダもいたってシンプルでライトもなし。
ちなみに、MetalKitはiOS9以降でしか使えないので注意。

Read On →