SceneKitのパーティクルをMetalでカスタムレンダリングする

SCNParticleSystemでつくったパーティクルを扱う一般的な手法としては、SCNViewを使い、sceneプロパティに渡すSCNSceneオブジェクトのrootNodeにaddParticleSystemするか、addParticleSystemしたSCNNodeオブジェクトをrootNodeにaddChildNodeする。で、SceneKitは内部でMetalを使っているので、これだけでも「Metalでレンダリングしている」とは言える。

これとは別に、SCNViewを使いたくないケースがある。既にMetalを使ったレンダリングパイプラインがあって、そこにひとつのパスとしてパーティクルエフェクトを挟み込みたい、そのシーンをビューに表示したいわけじゃない、みたいなケース。この場合は、SCNViewを使わず、SCNRendererを使うことになる。

以下、その「SCNRendererを使ってシーンをレンダリングする」実装。(そう、実はSCNParticleSystemが追加されたシーンごとレンダリングするだけなので、パーティクル云々は関係ない。記事タイトルとしては「SCNSceneをMetalでカスタムレンダリングする」や「SCNSceneをSCNViewを使わずSCNRendererでレンダリングする」の方がふさわしい)

SCNRenderer, SCNSceneのセットアップ

ここから先は

2,243字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/