Apple Engine

Apple, iPhone, iOS, その周辺のことについて

iOS で SceneKit を試す(Swift 3) その2 - SceneKit の中身

iOS の描画はざっくり説明すると、
3D 描画のライブラリの上に Core Graphic や Core Animation などが使用され表示しアプリの見た目ができている。

以下、WWDC 2015 の資料より抜粋し修正。

f:id:x67x6fx74x6f:20170529185003p:plain

3DCG を描画する SceneKit の中身は、
Core Graphic と並列処理を行う SIMD の命令、 ローレベルの API のいずれかと、
サービスの Model I/O でできている。

 

APIの説明

ローレベル API
名称 説明
Metal (MetalKit) AppleDirectXApple 製品でしか動かないためハードとのオーバーヘッドが少なく、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 の物理アニメーション、画像をタイル状に配置してマップ作成などができる。

 

今回はここまで。