狠狠撸
Submit Search
惭别迟补濒で罢别蝉蝉别濒濒补迟颈辞苍
?
1 like
?
1,098 views
M
mike-neko
Follow
第71回 Cocoa勉強会関西 での発表用スライドです。デモコードはhttps://github.com/mike-neko/MetalTessellationにあります。
Read less
Read more
1 of 25
Download now
Download to read offline
More Related Content
惭别迟补濒で罢别蝉蝉别濒濒补迟颈辞苍
1.
Metal で Tessellation
2.
デモ プロジェクト ?GitHub https://github.com/mike-neko/MetalTessellation ?macOS 10.12 (Sierra) ?Xcode
8.2.1 バッテリー消費が激しい
3.
Metal とは
4.
Metal とは? ?グラフィックAPI ? 利用用途:3Dゲーム ?GPGPU ?
GPUを利用して計算処理 ? 利用用途:画像加工、機械学習 GPUを扱うフレームワーク
5.
Metal 動作環境 iPhone7 /
7+ を買えばOK A7 (iPhone5S) A8 (iPhone6 TV4) A9 (iPhone6S) iOS 8 iOS_GPUFamily1_v1 iOS_GPUFamily2_v1 iOS 9 iOS_GPUFamily1_v2 iOS_GPUFamily2_v2 iOS_GPUFamily3_v1 iOS 10 iOS_GPUFamily1_v3 iOS_GPUFamily2_v3 iOS_GPUFamily3_v2 tvOS 9 tvOS_GPUFamily1_v1 tvOS 10 tvOS_GPUFamily1_v2 First family of Mac GPUs (2012 ~ 2013 newer) OS X 10.11 OSX_GPUFamily1_v1 macOS 10.12 OSX_GPUFamily1_v2 バージョンによって使える機能が異なる
6.
Metal 設計思想 速度重視 過去と決別した新しいAPI ? 互換性重視
→ 最新のハードに特化 ? 歴史的経緯 → モダンでシンプルな作り (マルチスレッド?プリコンパイルなど) ? 重たい描画API → 低レベルの軽いAPI プログラマの責任↑(負担 ? 自由 ?) 資料がすくない
7.
Tessellation とは
8.
Tessellation とは? ?WWDC2016で発表 ?グラフィックAPI A7 (iPhone5S)
A8 (iPhone6 TV4) A9 (iPhone6S) iOS 8 iOS_GPUFamily1_v1 iOS_GPUFamily2_v1 iOS 9 iOS_GPUFamily1_v2 iOS_GPUFamily2_v2 iOS_GPUFamily3_v1 iOS 10 iOS_GPUFamily1_v3 iOS_GPUFamily2_v3 iOS_GPUFamily3_v2 tvOS 9 tvOS_GPUFamily1_v1 tvOS 10 tvOS_GPUFamily1_v2 First family of Mac GPUs (2012 ~ 2013 newer) OS X 10.11 OSX_GPUFamily1_v1 macOS 10.12 OSX_GPUFamily1_v2
9.
Demo 1 Tessellation
10.
Tessellation とは? 1. GPUでの処理 2.
ポリゴンを分割 3. 分割方法はプログラマブル 効率良く高品質な描画
11.
Tessellation とは? 1. GPUでの処理 2.
ポリゴンを分割 3. 分割方法はプログラマブル
12.
Tessellation Off (0, -1,
0) (1, 1, 0) (-1, 1, 0) CPU0,-1,0,1,1,0,-1,1,0 binary data GPU Graphics Memory Vertex Shader Rasterizer Fragment Shader 頂点座標
13.
Tessellation On Vertex Shader CPU GPU Graphics Memory Rasterizer
Fragment Shader 0,-1,0,1,1,0,-1,1,0 binary data 頂点座標 Tessellation係数 + Tessellator 0,-1,0,1,1,0,-1,1,0, 0.5,-1,0,1,1,0,-1,1,0, 0,-1,0,0.5,1,0,-1,1,0, …
14.
1. GPUでの処理 メモリバンドを消費しない ? データ転送はボトルネックになりやすい CPUより高速 GPUの負荷↑ ?
毎フレーム処理なので重くなる
15.
Tessellation とは? 1. GPUでの処理 2.
ポリゴンを分割 3. 分割方法はプログラマブル
16.
2. ポリゴンを分割 ディテールが向上する ? より滑らかに、より詳細に描画できる GPUの負荷↑ ただ分割するだけでは形は変わらない 滑らかに描画する処理が必要
17.
Demo 2 Phong Tessellation
18.
Phong Tessellation ローポリを滑らかに表示させる ? Tessellationでポリゴンを分割 ?
増えた頂点を丸くなるように補間 思い通りの形にならないこともある
19.
Demo 3 Displacement mapping
20.
Displacement mapping モデルに細かな凸凹をつける ? 高さの情報をテクスチャに持たせて調整 繊細な表現が可能 ?かなり細かいポリゴンが必要 Tessellationと相性が良い やはりGPUの負荷↑
21.
Tessellation とは? 1. GPUでの処理 2.
ポリゴンを分割 3. 分割方法はプログラマブル
22.
3. プログラマブル ?必要に応じて分割数を動的に変更できる ? LOD(Level
of Detail)で負荷を調整 近くはハイポリ、遠くはローポリ Tessellationならシームレス 描画品質は維持しつつGPUの負荷↓
23.
まとめ 1. GPUでの処理 2. ポリゴンを分割 3.
分割方法はプログラマブル
24.
まとめ 1. GPUでの処理 CPUやメモリバスの負荷を上げずに 2. ポリゴンを分割 描画のクオリティを向上させ 3.
分割方法はプログラマブル GPUの負荷も抑えることができる 効率良く高品質な描画
25.
以上 ご静聴ありがとうございました
Download