SlideShare ist ein Scribd-Unternehmen logo
1 von 32
AndroidでVulkan事始め
株式会社Aiming
藤井 章暢
アジェンダ
• 自己紹介
• Vulkanとは?
• Vulkanの特徴
• Androidでこと始めるには
• Vulkanの対応状況
• まとめ
自己紹介
• 名前:
– 藤井 章暢
– ふじい あきのぶ
• 職業:
– エンジニア
• 好きなもの:
– ゲーム、犬、きれいな絵
• その他:
– Facebookで色々つぶやいています
Vulkanとは?
What is Vulkan?
Vulkanとは?
• 「Open GL」などのAPI策定を行っている
「Khronos Group」が発表した
グラフィックスAPI
• Windows、Linux、Androidに対応
– Macは対応してません・・・
– Metalを使えということですね、わかります
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)以上必要
– 大抵の端末はまだ対応していない
Vulkanの特徴(メリット編)
Features of Vulkan
Low Level API
• ハードウェアに近いAPI
• コマンド発行のコストが低い
マルチスレッド対応
• マルチスレッド前提のAPI設計なので
CPU処理を分散させやすい
OpenGLは・・・?
• マルチスレッド向き設計ではなかった
ので、1コアが頑張らなければならない
ことがざらにあった。
Vulkanは・・・?
• 各スレッドがCommandBufferに
描画コマンドを積み込んで、
CommandQueueに積み込めば分散可能
SPIR-Vに則ったシェーダ仕様
• VulkanはSPIR-Vという中間言語に
則った仕様でシェーダが動いている
何がメリット?
• 決まったフォーマットがあるので
事前にシェーダをコンパイルしておける
– OpenGLはランタイムでコンパイルする仕様
なので、無駄なオーバーヘッドがかかってた
• SPIR-Vのフォーマットさえ守っていれば
コンパイラに流し込んで動かせる
何がメリット?
• KhronosGroup/glslang
– https://github.com/KhronosGroup/glslang
• SPIR-Vフォーマットで出力できれば
元の言語はなんでもいい
• その気になれば
自分の好きな言語でシェーダーが書ける
Vulkanの特徴(デメリット編)
Features of Vulkan
ざっくりとした違い
• Khronos Vulkanがリリースされたようなのでメモ
• http://qiita.com/eaglesakura/items/6ac27f2157fb18a98531
移植には向かない
• Vulkanに載せ替えたからと言って
速くなるわけではない
– CPU処理を速くするものなので
描画自体が速くなるわけではない
– 余計なオーバーヘッドを下げるには
設計から見直す必要がある
きっちり設計した
レンダラーシステムが必要
• すべての描画設定をプログラムで
制御する必要がある
– OpenGLは途中でブレンドステートや設定を
変更するのは容易
– 対してVulkanは諸々の設定がまとまりなので
ちょっとだけ変更がすごく面倒
自前で管理しないといけない
ものが非常に多い
• ドライバがやってくれていたものを自前で管理する必要がある
– グラフィックメモリ、アロケータ、Etc…
結局どういう人向け?
• 描画処理でかかるオーバーヘッドを
減らしてCPU側に処理時間をかけたい人
– CPU側で頑張る画像処理アプリなど
結局どういう人向け?
• 最新技術を取り入れたい人
– いち早く取り込んで新しい技術の検証に
使いたい場合は自分で取り込むのが最善
• 自社エンジンや自社フレームワークに
組み込みたい人
– 既存のエンジンやフレームワークの対応を
待つのはどうしても時間がかかる
Androidでこと始めるには
Getting Start with Android
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以上
Androidでこと始めるには
• SaschaWillems/Vulkan
– https://github.com/SaschaWillems/Vulkan
– 超優秀なサンプル
– Vulkanの対応する全プラットフォームの
サンプルがあります
– 一部フレームワーク化されているので
ライブラリ作成の参考にもなります
Androidじゃないけど・・・
• akinobufujii/VulkanSamples
– https://github.com/akinobufujii/VulkanSamples
• 藤井が作ったWindows版のサンプルです
• みんな大好き、男気一本ソース
– 汚くてすみません・・・(´・ω:;.:...
• 煮るなり焼くなり好きにしてください
– Android版も公開予定!(予定は未定)
Vulkanの対応状況
Correspondence situation of "Vulkan"
Unity
• Unity5.6からVulkan APIをサポート
– 記事によるとレンダリングパフォーマンスが
最大60%向上したらしい
Unreal Engine 4
• GithubにVulkanに対応した
ソースコードを公開中
– Unreal Engine 4のアカウントと
Githubのアカウントを紐付けないと
ソースコードは見れない
• YouTubeでデモを公開中
– https://www.youtube.com/watch?v=FnKu7MLB7vQ
– Galaxy S7上でのデモ
Cocos2d-x
まとめ
Summary
まとめ
• スマホにも低レベルのレンダリングAPIが
用意されてきた
– ただし、実用化されるにはまだ掛かりそう
• 有名なエンジンやフレームワークも
対応を見せ始めている
• 今のうちに触っておけば、
実用化されるときに困らないかも
知れない
– ただし敷居は高い、めっちゃ高い
ありがとうございました!

Weitere ähnliche Inhalte

Was ist angesagt?

「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについてSEGADevTech
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装tnoho
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだTetsuya Kaneuchi
 
普通の人でもわかる Paxos
普通の人でもわかる Paxos普通の人でもわかる Paxos
普通の人でもわかる Paxostyonekura
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!Genya Murakami
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Daisuke Masubuchi
 

Was ist angesagt? (20)

「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだ
 
普通の人でもわかる Paxos
普通の人でもわかる Paxos普通の人でもわかる Paxos
普通の人でもわかる Paxos
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
PCL
PCLPCL
PCL
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 

Andere mochten auch

MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門yuki maeta
 
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門Akihiro Sugeno
 
ぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそうぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそうYoshinori Sato
 
ゲーム会社で
ゲーム以外のことを開発してる話
ゲーム会社で
ゲーム以外のことを開発してる話ゲーム会社で
ゲーム以外のことを開発してる話
ゲーム会社で
ゲーム以外のことを開発してる話Riou Tomita
 
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話章暢 藤井
 
ゲームエンジンの歴史概要
ゲームエンジンの歴史概要ゲームエンジンの歴史概要
ゲームエンジンの歴史概要Takashi Imagire
 
Common atmospheric phenomena
Common atmospheric phenomenaCommon atmospheric phenomena
Common atmospheric phenomenaJimnaira Abanto
 
10 Claves para auto Motivarse
10 Claves para auto Motivarse10 Claves para auto Motivarse
10 Claves para auto MotivarseSusana Gallardo
 
Chef Robin and Iv-Angelo Interview
Chef Robin and Iv-Angelo InterviewChef Robin and Iv-Angelo Interview
Chef Robin and Iv-Angelo InterviewHasmik Rostomyan
 
Basics of HVAC by Jitendra Jha
Basics of HVAC by Jitendra JhaBasics of HVAC by Jitendra Jha
Basics of HVAC by Jitendra JhaJitendra Jha
 
Suggested order and visuals for oral presentation
Suggested order and visuals for oral presentationSuggested order and visuals for oral presentation
Suggested order and visuals for oral presentationJimnaira Abanto
 
Guía orientadora para la reflexión teórica y la elaboración del trabajo fina...
Guía orientadora para la reflexión teórica y la  elaboración del trabajo fina...Guía orientadora para la reflexión teórica y la  elaboración del trabajo fina...
Guía orientadora para la reflexión teórica y la elaboración del trabajo fina...saladaniela
 
Guia del auditor y contador para el dictamen fiscal
Guia del auditor y contador  para el dictamen fiscalGuia del auditor y contador  para el dictamen fiscal
Guia del auditor y contador para el dictamen fiscalMiguel A. C. Sánchez
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringGo Chiba
 
Looking For New 2017 Kia Soul Overview
Looking For New 2017 Kia Soul OverviewLooking For New 2017 Kia Soul Overview
Looking For New 2017 Kia Soul OverviewRobert Patel
 
#healthy について
#healthy について#healthy について
#healthy についてYuya Oka
 

Andere mochten auch (20)

MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
MessagePack-CSharpってシャープなの?@激突! Aiming x CloverLab [クライアント対決]部門
 
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門
サービスが生まれてから死ぬまで @激突! Aiming x CloverLab [インフラ対決]部門
 
ぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそうぼくとCassandraの6にちせんそう
ぼくとCassandraの6にちせんそう
 
ゲーム会社で
ゲーム以外のことを開発してる話
ゲーム会社で
ゲーム以外のことを開発してる話ゲーム会社で
ゲーム以外のことを開発してる話
ゲーム会社で
ゲーム以外のことを開発してる話
 
スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話スマホ版ログレスにポストエフェクトシステムを導入した話
スマホ版ログレスにポストエフェクトシステムを導入した話
 
Vrushali asinment1
Vrushali asinment1Vrushali asinment1
Vrushali asinment1
 
ゲームエンジンの歴史概要
ゲームエンジンの歴史概要ゲームエンジンの歴史概要
ゲームエンジンの歴史概要
 
Mini clase
Mini claseMini clase
Mini clase
 
Common atmospheric phenomena
Common atmospheric phenomenaCommon atmospheric phenomena
Common atmospheric phenomena
 
Cuadernillo de logica
Cuadernillo de logicaCuadernillo de logica
Cuadernillo de logica
 
10 Claves para auto Motivarse
10 Claves para auto Motivarse10 Claves para auto Motivarse
10 Claves para auto Motivarse
 
Chef Robin and Iv-Angelo Interview
Chef Robin and Iv-Angelo InterviewChef Robin and Iv-Angelo Interview
Chef Robin and Iv-Angelo Interview
 
Basics of HVAC by Jitendra Jha
Basics of HVAC by Jitendra JhaBasics of HVAC by Jitendra Jha
Basics of HVAC by Jitendra Jha
 
Suggested order and visuals for oral presentation
Suggested order and visuals for oral presentationSuggested order and visuals for oral presentation
Suggested order and visuals for oral presentation
 
Guía orientadora para la reflexión teórica y la elaboración del trabajo fina...
Guía orientadora para la reflexión teórica y la  elaboración del trabajo fina...Guía orientadora para la reflexión teórica y la  elaboración del trabajo fina...
Guía orientadora para la reflexión teórica y la elaboración del trabajo fina...
 
Guia del auditor y contador para el dictamen fiscal
Guia del auditor y contador  para el dictamen fiscalGuia del auditor y contador  para el dictamen fiscal
Guia del auditor y contador para el dictamen fiscal
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
 
Asthma
AsthmaAsthma
Asthma
 
Looking For New 2017 Kia Soul Overview
Looking For New 2017 Kia Soul OverviewLooking For New 2017 Kia Soul Overview
Looking For New 2017 Kia Soul Overview
 
#healthy について
#healthy について#healthy について
#healthy について
 

Androidでvulkan事始め