😎

RealityKit でカスタムジオメトリを設定するメモ

2024/06/09に公開

背景

TinyUSDZ https://github.com/syoyo/tinyusdz を使って iOS, VisionOS 系で USDZ モデルを表示したい...

3D のライブラリは SceneKit と RealityKit がありますが,

SceneKitとRealityKitの比較
https://zenn.dev/noby111/books/3f370e126df73b/viewer/d6cc56

こちらをみると今後(本メモの執筆時点は 2024/06)は RealityKit がメインとなるようである.
RealityKit だと環境推定とか PBR シェーディングとかもぺろっとやってくれるようなので, メッシュとマテリアルの情報だけ渡せばよしなにレンダリングしてくれそ?

https://developer.apple.com/documentation/realitykit

RealityKit だと一応 USDZ モデルをデフォで読めるようですが, いろいろカスタマイズしたいのを考えると, TinyUSDZ で自前で USD モデルを読み, RealityKit にジオメトリデータとかを与えたいところ
(モーションを付け替えたりとか, USD 読んだあとにプロシージャルにモデルを変形させたり, マテリアル張替とか)

方法

GLTFKit2 を見ていたら glTF のモデルを RealityKit に変換するのがあった.

https://github.com/warrenm/GLTFKit2

自前でメッシュとか設定できました!

Getting Started with RealityKit: Procedural Geometries
https://maxxfrazer.medium.com/getting-started-with-realitykit-procedural-geometries-5dd9eca659ef

これらを参考にすればカスタムメッシュを設定できるでしょう!

特に複雑なことはなく, OpenGL, glTF 的な感じのデータ構造のようです
(オフィシャル(?)だとサンプルコードがログインしないと取得できなかったり, ドキュメントとかが貧祖でわかりずらいよね...)

Discussion