iOS で SceneKit を試す(Swift 3) その2 - SceneKit の中身
iOS の描画はざっくり説明すると、
3D 描画のライブラリの上に Core Graphic や Core Animation などが使用され表示しアプリの見た目ができている。
以下、WWDC 2015 の資料より抜粋し修正。
3DCG を描画する SceneKit の中身は、
Core Graphic と並列処理を行う SIMD の命令、
ローレベルの API のいずれかと、
サービスの Model I/O でできている。
APIの説明
ローレベル API
名称 | 説明 |
---|---|
Metal (MetalKit) | Apple 版 DirectX。 Apple 製品でしか動かないためハードとのオーバーヘッドが少なく、CPU オーバーヘッドを少なく設計され、CPUとGPUでメモリが共有が行われている。 C++11 ベースの Metal シェーダーは事前コンパイルされて実行される。GLSL も変換して使用することもできるらしい。 |
OpenGL(ES) | 汎用 3DCG ライブラリ。Metal 比べて処理が大幅に遅い。Android で Valkun という Metal に近いものが使えるようになったため、使用されるケースが減る可能性もある。 |
サービス
名称 | 説明 |
---|---|
Model I/O | 3D オブジェクト、そのマテリアルやテクスチャの入出力。 ライト、テクスチャへのライトの描画など処理ができるライブラリ。 |
GameController | 対応しているゲームコントローラーの操作を使用できるようにするライブラリ。iOS の場合ゲームコントローラー必須にした場合審査に落ちる。 |
ReplayKit | iOS 操作中の音や映像をキャプチャできる。iOS 10 から Periscope などのライブ動画アプリ経由で配信できる。 |
GamePlayKit | Min-Max などゲームに使用する AI、経路探索、乱数、指定した物体に追従するエージェント、ステートマシン、コンポーネント化などゲーム開発をサポートする。 |
ハイレベル API
名称 | 説明 |
---|---|
SceneKit | 3DCG ライブラリ。今後説明するので割愛 |
SpriteKit | SceneKit の 2DCG 版。SceneKit の同様の機能と、連番のテクスチャアニメーション、2D の物理アニメーション、画像をタイル状に配置してマップ作成などができる。 |
今回はここまで。