Metal から広がるフレームワーク群
はじめに
- Metal とはなにか?
- またそれから派生したフレームワークを把握する
Metal 登場前 (iOS 2 〜)
- iOS 2 以降の時代、3D グラフィック処理をするためには OpenGL ES が案内されていた
- OpenGL ES の ES は Embedded Systems.(組み込みシステム)
- 以下にあるように iOS12 以降は OpenGL ES の機能が非推奨になったため、これ以降は Metal を使用するべきとなった
Important OpenGL ES was deprecated in iOS 12. To create high-performance code on GPUs, use the Metal framework instead. See Metal.
Metal (iOS 8)
- iOS 8 で Metal が新たに追加された
- OpenGL ES は純粋に 3Dグラフィックスレンダリング機能の提供だけだったが
- Metal はそれに加えて GPU を使用したデータの並列計算の役割ももつ
- この Metal から、さまざまなフレームワークが派生する
MetalKit (iOS 9)
- iOS 9 では MetalKit が登場する
- 3D グラフィックをレンダリングする場合、Metal を直接使用するよりも、このフレームワークを使用した方がより簡易に開発できる
- Metal のレンダリング系のユーティリティ、サブセットと考えれば良い
Apple Developer にある Metal / MetalKit サンプルプロジェクト
- Creating and Sampling Textures | Apple Developer Documentation
- Using Metal to Draw a View’s Contents | Apple Developer Documentation
- Device Selection and Fallback for Graphics Rendering | Apple Developer Documentation
ほかに Metal の上に構築されているフレームワーク
Core Image, SpriteKit は Metal 公開前から存在するため、のちに Metal により内部を書き換えられと思われる。
- Core Image (iOS 5)
- フィルタを使用して静止画、ビデオを加工
- SpriteKit (iOS 7)
- 2D ゲーム、2D コンテンツ作成。
- SceneKit (iOS 8)
- 3D ゲーム、3D コンテンツ作成。物理シミュレーション、パーティクルなどの物理ベースのレンダリングを簡単に実現できる。
- MPS(Metal Performance Shaders) (iOS 9)
MPS から構築されるフレームワーク
画像は Core ML から引用
さらに Core ML から派生するフレームワークがある。
- Vision (iOS 11)
- 画像認識
- Natural Language (iOS 12)
- 自然言語の分析
- Speech (iOS 10)
- SoundAnalysis (iOS 13)
- オーディオ解析