36
WWDC 2015 METAL

WWDC 2015 情報共有会

  • Upload
    -

  • View
    3.882

  • Download
    1

Embed Size (px)

Citation preview

WWDC 2015METAL

METAL

\m/

METAL Freamwork

OpenGLに変わるレンダリングエンジン

A6チップ以降のデバイスから使用可能

El CaptainよりOSXにも対応

METAL OSX & iOS

METAL とはOpenGLに変わるiOS、OSX専用のレンダリングエンジン。

OpenGLは多数の実行環境(OS)に対応しているため、命令系統が多岐にわたり処理が重くなっている。

MetalはiOS、OSX専用で作られているため処理速度を確保できている。

METAL OSXOpenGLと比較すると10倍の描画速度

レンダリングも50%高速化

ドローコールの高速化

El CaptainよりOSXに対応

Adobe Creative Cloudは8倍高速化

METAL iOSOpenGLと比較すると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に対応していないでござる…

ご静聴ありがとうございました。