イベント
[GDC 2016]Epic Games,「Unreal Engine 4」をVulkan APIで実装したスマホ向けデモ「ProtoStar」のソースコードを公開
下に示したのはそのデモをムービーにしたものだが,Game Developers Conference 2016(以下,GDC 2016)には,そんなProtoStarデモをEpic Gamesがいかにして開発したのかを語る技術セッション「Vulkan on Mobile with Unreal Engine 4 Case Study」(モバイルデバイス上におけるVulkan,UE4におけるケーススタディ)があったので,いくつかの発表とともに,簡単にレポートしてみたい。
「UE4 Vulkan」のソースコードをGithubで近日公開
さて,そんなProtoStarだが,これは,UE4上で,Vulkan APIを用いて動作するリアルタイムデモだ。セッションでは「UE4 Vulkan」と呼んでいたので,本稿でもそう呼ぶが,Smedberg氏によると,UE4 Vulkanの開発は,ないないづくしの状況から始まったという。
そもそもスマートフォンにはUE4をインプリメントするだけのグラフィックス機能がないというところから始まって,Vulan APIが正式に決まらない,Vulan APIのドライバがない,割ける人員も時間もないといった具合だ。
それもあり,なんとか動いた最初期のプロトタイプは,下のとおり,トンデモない画面になったとのことである。
そんなProtoStarを完成させた経験からSmedberg氏は,「Galaxy S7のようなモバイルデバイスにおけるバッテリー駆動時間への影響を抑えながら,PC並みのグラフィックス表現を可能にするには,とくにVulkanのマルチスレッドレンダリングが効果的」と語っていた。UE4 VulkanベースとなるProtoStarデモでは,1フレームあたりの「GPUに対するコマンド実行数」が非常に多いが,それをマルチスレッドで実装しているという。
スレッドの同期にあたっては,GPUの同期用にセマフォ,CPUスレッドの同時用にはフェンス(※メモリバリアのこと)を用いているそうだ。
また,Vulkanではコマンドバッファの記録(レコード)を行うことができるので,それをインスタンス化して,多数の「同じ動きのオブジェクト」を1回のコマンドで描画しているとも氏は語っていた。ProtoStarデモには多数の隕石が出てくるのだが,おそらくはそういったオブジェクトにコマンドバッファのレコーディング機能を用いているのだろう。
ちなみにSmedberg氏は,コマンドバッファのレコーディング機能について,VR(Virtual Reality,仮想現実)にも有効ではないかとも述べていた。いわく,「片眼の描画を行って,そのコマンドバッファを記録してもう片眼を描く,といったことに使える」とのことだ。
興味がある人は,Unreal Engine公式Webサイトをチェックしてほしいとのことである。
Samsungがゲームデベロッパ向けの開発支援プログラムを開始予定
セッションでは,ProtoStarデモのプラットフォームとなったGalaxy S7のメーカーであるSamsungから,Jungwoo Kim氏も登壇した。Kim氏によると,SamsungとEpig Games,そしてARMが連携してデモ開発のプログラムをスタートさせたのは,今から3年前だという。
Jungwoo Kim氏(Principal Engineer, Samsung Mobile Graphics Team, Samsung Electronics) |
SamsungとARM,Epic Gamesの協業は,3年前にスタートしたとのこと |
どのような支援プログラムになるにせよ,VulkanやUE4といった要素が絡んできそうなので,来月の発表にも注目しておくといいかもしれない。
Epic GamesのProtoStar紹介ページ
- 関連タイトル:
Unreal Engine
- 関連タイトル:
Vulkan
- この記事のURL: