WWDC 2015
METAL
METAL
m/
METAL Freamwork
OpenGLに変わるレンダリングエンジン
A6チップ以降のデバイスから使用可能
El CaptainよりOSXにも対応
METAL OSX & iOS
METAL とは
OpenGLに変わるiOS、OSX専用のレンダリングエン
ジン。
OpenGLは多数の実行環境(OS)に対応しているため、
命令系統が多岐にわたり処理が重くなっている。
MetalはiOS、OSX専用で作られているため処理速度を
確保できている。
METAL OSX
OpenGLと比較すると10倍の描画速度
レンダリングも50%高速化
ドローコールの高速化
El CaptainよりOSXに対応
Adobe Creative Cloudは8倍高速化
METAL iOS
OpenGLと比較すると10倍の描画速度
ドローコールの高速化
モバイルバッテリー消費の軽減
A7以降のチップセット限定
CPU、GPUとのメモリー共有が可能
DrowCall SetPass
SetPassとは
レンラリングクラスからCPUで演算した結果をレンダ
リングエンジンに受け渡して描画する動作
描画対象は2D、3D全てが対象
UIであっても、パーティクルであっても、描画するた
めにCPUでの処理を飛び越えて描画される事はない
DrowCallとは
CPUの描画準備処理
CPU側からGPU側に描画内容を渡すための呼び出し
の事で、OpenGLのglDrawElements()などが該当
イメージ
Render
GPU
OpenGLドライバ
CPU
Materialクラス
DrowCall
SetPass
描画速度を上げる
METAL対応にすれば確かに速度は確保出来る
しかし、描画速度をあげるだけでなく、描画のため
の準備も高速化する必要がある
SpriteKit、SceneKitを使用する事で改善できるか?
WWDCセッション
Metalセッション
What's New Metal, Part1
What's New Metal, Part2
Metal Perfomance Optimaization Techniques
Working with Metal:Advanced
What's New Metal, Part1
What's New Metal, Part1
Metal in Review
New Features
Metal App Thinning
Metal in Review
Metalでは今まで必要としてたCPUパワー
を大幅に削減し、ボトルネックを回避!
Metalを使う事により、より効率
的なマルチスレッドを実現します。
今まではそれぞれの処理の脇でHigh-Efficiency GPU
Accessを行っていましたが、最新のバージョンでは
Shader(マテリアル)処理の統合を実現しているようです。
今回の発表で、iOSだけでなく、
OSXでも使用可能になりました
そして、それらをサポートする
ためのツールも充実しています。
Metal OSXにおいては、私が使っているUnityのDebug画面に
も最適化を及ぼすようです。
Unity側からMetalを使用した事例の提示があったようです。
Metal入門
MTLDeviceの生成
CAMetalLayerの生成
Vertex Bufferの生成
Vertex Shaderの生成
Fragment Shaderの生成
Render Pipelineの生成
Command Queueの生成
Command Bufferの生成
Render Pass Descriptorの生成
Render Command Encoderの生成
…ハードル高くね?
New Features
OS XのMetal仕様
2012年以降のモデルであれば使用可能
iOSで仕様できるMetal仕様
iPhone5以降のデバイスで使用可能
画像圧縮フォーマット一覧
Metal App Thinning
メモリサイズによる最適な
テクスチャーフォーマット一覧
Xcodeでそれぞれのデバイスに合わせて指定が可能
→Jsonファイルで管理される
ビルド時は全てまとめてコンパイルされる
なのでファイルサイズは肥大する
Demoを見せたかったのですが、
Xcord7がiOS8.4に対応していないでござる…
ご静聴ありがとうございました。

WWDC 2015 情報共有会