狠狠撸
Submit Search
础苍诲谤辞颈诲で惫耻濒办补苍事始め
?
Download as PPTX, PDF
?
4 likes
?
7,780 views
章暢 藤井
Follow
2017/3/11に行った「激突!Aiming VS CloverLab」での登壇資料です
Read less
Read more
1 of 32
Download now
Download to read offline
More Related Content
础苍诲谤辞颈诲で惫耻濒办补苍事始め
1.
AndroidでVulkan事始め 株式会社Aiming 藤井 章暢
2.
アジェンダ ? 自己紹介 ? Vulkanとは? ?
Vulkanの特徴 ? Androidでこと始めるには ? Vulkanの対応状況 ? まとめ
3.
自己紹介 ? 名前: – 藤井
章暢 – ふじい あきのぶ ? 職業: – エンジニア ? 好きなもの: – ゲーム、犬、きれいな絵 ? その他: – Facebookで色々つぶやいています
4.
Vulkanとは? What is Vulkan?
5.
Vulkanとは? ? 「Open GL」などのAPI策定を行っている 「Khronos
Group」が発表した グラフィックスAPI ? Windows、Linux、Androidに対応 – Macは対応してません??? – Metalを使えということですね、わかります
6.
Vulkanとは? ? 2016年2月16日 LunarG社から Windows、Linuxの Version1.0
SDKをリリース – 1ヶ月に2~3回アップデートしている ? Android NDK, Revision 12から 正式サポート開始(2016年6月) ? API Level 24(Android 7.0)以上必要 – 大抵の端末はまだ対応していない
7.
Vulkanの特徴(メリット編) Features of Vulkan
8.
Low Level API ?
ハードウェアに近いAPI ? コマンド発行のコストが低い
9.
マルチスレッド対応 ? マルチスレッド前提のAPI設計なので CPU処理を分散させやすい
10.
OpenGLは???? ? マルチスレッド向き設計ではなかった ので、1コアが頑張らなければならない ことがざらにあった。
11.
Vulkanは???? ? 各スレッドがCommandBufferに 描画コマンドを積み込んで、 CommandQueueに積み込めば分散可能
12.
SPIR-Vに則ったシェーダ仕様 ? VulkanはSPIR-Vという中間言語に 則った仕様でシェーダが動いている
13.
何がメリット? ? 決まったフォーマットがあるので 事前にシェーダをコンパイルしておける – OpenGLはランタイムでコンパイルする仕様 なので、無駄なオーバーヘッドがかかってた ?
SPIR-Vのフォーマットさえ守っていれば コンパイラに流し込んで動かせる
14.
何がメリット? ? KhronosGroup/glslang – https://github.com/KhronosGroup/glslang ?
SPIR-Vフォーマットで出力できれば 元の言語はなんでもいい ? その気になれば 自分の好きな言語でシェーダーが書ける
15.
Vulkanの特徴(デメリット編) Features of Vulkan
16.
ざっくりとした違い ? Khronos Vulkanがリリースされたようなのでメモ ?
http://qiita.com/eaglesakura/items/6ac27f2157fb18a98531
17.
移植には向かない ? Vulkanに載せ替えたからと言って 速くなるわけではない – CPU処理を速くするものなので 描画自体が速くなるわけではない –
余計なオーバーヘッドを下げるには 設計から見直す必要がある
18.
きっちり設計した レンダラーシステムが必要 ? すべての描画設定をプログラムで 制御する必要がある – OpenGLは途中でブレンドステートや設定を 変更するのは容易 –
対してVulkanは諸々の設定がまとまりなので ちょっとだけ変更がすごく面倒
19.
自前で管理しないといけない ものが非常に多い ? ドライバがやってくれていたものを自前で管理する必要がある – グラフィックメモリ、アロケータ、Etc…
20.
結局どういう人向け? ? 描画処理でかかるオーバーヘッドを 減らしてCPU側に処理時間をかけたい人 – CPU側で頑張る画像処理アプリなど
21.
結局どういう人向け? ? 最新技術を取り入れたい人 – いち早く取り込んで新しい技術の検証に 使いたい場合は自分で取り込むのが最善 ?
自社エンジンや自社フレームワークに 組み込みたい人 – 既存のエンジンやフレームワークの対応を 待つのはどうしても時間がかかる
22.
Androidでこと始めるには Getting Start with
Android
23.
Androidでこと始めるには ? まずは公式のサンプルを動かそう – googlesamples/vulkan-basic-samples –
https://github.com/googlesamples/vulkan-basic-samples ? 必要環境: – Android Studio 2.2.2以上 – Android SDK API Level 24以上 – Android NDK Revision 12以上
24.
Androidでこと始めるには ? SaschaWillems/Vulkan – https://github.com/SaschaWillems/Vulkan –
超優秀なサンプル – Vulkanの対応する全プラットフォームの サンプルがあります – 一部フレームワーク化されているので ライブラリ作成の参考にもなります
25.
Androidじゃないけど??? ? akinobufujii/VulkanSamples – https://github.com/akinobufujii/VulkanSamples ?
藤井が作ったWindows版のサンプルです ? みんな大好き、男気一本ソース – 汚くてすみません???(??ω:;.:... ? 煮るなり焼くなり好きにしてください – Android版も公開予定!(予定は未定)
26.
Vulkanの対応状況 Correspondence situation of
"Vulkan"
27.
Unity ? Unity5.6からVulkan APIをサポート –
記事によるとレンダリングパフォーマンスが 最大60%向上したらしい
28.
Unreal Engine 4 ?
GithubにVulkanに対応した ソースコードを公開中 – Unreal Engine 4のアカウントと Githubのアカウントを紐付けないと ソースコードは見れない ? YouTubeでデモを公開中 – https://www.youtube.com/watch?v=FnKu7MLB7vQ – Galaxy S7上でのデモ
29.
Cocos2d-x
30.
まとめ Summary
31.
まとめ ? スマホにも低レベルのレンダリングAPIが 用意されてきた – ただし、実用化されるにはまだ掛かりそう ?
有名なエンジンやフレームワークも 対応を見せ始めている ? 今のうちに触っておけば、 実用化されるときに困らないかも 知れない – ただし敷居は高い、めっちゃ高い
32.
ありがとうございました!
Download