【西川善司のモバイルテックアラカルト】第18回: スマホ向けプロセッサの最大手ARMの最新グラフィックス技術

前回に引き続き今回も、3月にサンフランシスコで行われたゲーム開発者会議(Game Developer Conference:GDC2016)で見かけたさまざまなスマートフォンに関連した先端グラフィックス技術の展示を紹介していこうと思います。今回は、日本で発売されているスマートフォンでも非常に採用率が高いARMに関連した話題です。

ARMのGPU、Maliシリーズとは?

ARMのスマホ向けGPUコアは「Mali」という名称です。

ARM系CPUを搭載した最近のオクタコア(8コア)モデルのスマホでは、Mali-T628 MP6からMali-T760 MP8を採用しているものが多いようですが、発表されているMaliシリーズの最新モデルはMali-T800シリーズになります。

Mali-Tシリーズは、700型番以上のモデルになると、かなり最新のPC向けGPUに近い性能フィーチャーを備えており、高機能かつ高性能です。

最新のPC向けGPUは、プログラム的にポリゴンの増減が可能な「ジオメトリシェーダ」やプログラム的にポリゴンを分割する「テッセレーションステージ」に対応していますが、これらの機能までサポートするARM製GPUコアはMali-T760、Mali-T860、Mali-T880の3つになります(2016年5月現在)。

いわゆるAPIの世代で区分すると、この3つのGPUは、OpenGL ES3.2とDirectX 11に対応していることになります。

演算性能的には、それぞれ最大構成の16コアの状態で

  • Mali-T760:326GFLOPS(600MHz時)
  • Mali-T860:380GFLOPS(700MHz時)
  • Mali-T880:490GFLOPS(900MHz時)

となり、プレイステーション3(PS3)の224GFLOPSを大きく上回ることになります。

Mali-T880に関していえば、PS3の2倍以上のグラフィックス性能があることになりますね。ちなみにMali-T880は、12コアのMP12(286GFLOPS前後?)が、最近発表されたサムスンのGalaxy S7シリーズに採用されています。

Mali-T880のブロック構成図

Vulkanベースの自社制作デモを公開

GDC 2016のARMブースでは、3つの興味深い展示がありました。

1つめは、ARMの自社開発チームが開発した、都市シーンを自由に飛び回って眺めることができるデモです。

正式名称がないようなので本稿では「都市デモ」と呼びますが、この都市デモは前回お話しした、スマホ/タブレット向けの最新グラフィックスAPIともいえるVulkanを駆使してできています。

Vulkanベースで制作された都市デモ。実際にはOpenGLで制作したものをVulkanベースに移植したと見られる

シーン全体は500万ポリゴンだとのことですが、これをリアルタイム隠面除去(カリング)を実践して十数分の1に削減しています。

カリング処理は、他者に遮蔽されているオブジェクトを描画対象から外したり、描画対象になっていても視点からは見えない背面ポリゴンを描画対象から除外したりする処理系のことです。

この都市デモでは、レンダリングパイプラインをハイダイナミックレンジ(HDR)レンダリングに対応させているため、逆光時には明部表現主体の露光になったり、暗がりに来たときには暗部基準の階調になり情報量の多い描画になったり……と、かなりリアルなコントラスト感が楽しめるようになっています。

また、太陽が天球を往来する仕組み(Time of the day)表現にも対応しているため、太陽の位置によって都市内のビルや樹木の影の出方がリアルタイムに変化します。

ブースにいたARM担当者によれば、海岸に打ち寄せる「波打ち際」の表現にも注目してほしいとのことでした。

たしかに、泡沫(うたかた)の泡が立体感を持って砂浜の上を往復するリアルな波の姿が、映像からも見て取れます。

都市デモの展示コーナー

ブースでの都市デモはGalaxy S6 Edgeで動作していた。ちなみに、Galaxy S6 EdgeのGPUはMali-T760 MP8(112GFLOPS)である

昨年公開の「Ice Cave」がGear VRに対応されて再公開

UNITYは、スマホ/タブレット向けとして最も採用率が高いゲームエンジンです。

日本法人のサポートも手厚いことと、そして各種関連書籍がたくさん出版されているため、日本の開発者の間でも人気が高いゲームエンジンですが、そのUNITYの最新版であるUNITY 5が、Maliへの最適化を図り、そのショーケースとして「ICE CAVE」というデモを昨年のGDC 2015で発表しました。

それがこちらです。

UNITY 5で制作されたARM技術デモ「ICE CAVE」

ゲームエンジンのUNITY 5は、VR対応をしてきたことから、今年のGDC 2016では、ARMは、このICE CAVEデモをVRに対応させて、再公開したのです。これが「興味深い展示」の2つめです。

ICE CAVEをGear VR向けに移植したバージョンが公開に

このデモでは、屈折、反射、そして半影(ソフトシャドウ)表現が見どころとされており、床面に周囲の情景が映り込んでいたり、氷でできたような透明な彫刻越しに向こう側の情景が歪んで見えたりするさまなどが楽しめます。

間接光表現に関しては、ARMが買収して吸収した間接光再現ミドルウェアのEnlightenを利用して実装しています。

このデモで用いられた反射と屈折表現に関しての技術解説は、ARMの開発者向けコミュニティページに公開されていますので、興味のある人は参照してみてください。

UNITYベースの技術デモ「ICE CABE」がVR対応になって再登場

UE4がVulkan対応に。技術デモ「ProtoStar」がMaliで実動公開!

前回、紹介した新世代グラフィックスAPIのVulkanですが、ハイエンドゲーム開発向けのゲームエンジンとして有名な「Unreal Engine 4」(UE4)もVulkanに対応することとなりました。

UE4は、もともとはPCや家庭用ハイエンドゲーム機向けゲームエンジンとしてリリースされたものでしたが、昨今のスマホ/タブレットのグラフィックス性能の加速度的な進化に呼応する形で、近年は携帯端末への対応に積極的でした。

今回の「Vulkan対応アナウンス」は、その方向性をさらに強めていこうとするメッセージ性が感じられます。

GDC 2016のARMブースでは、UE4開発元のEPIC GAMES自らが開発した「ProtoStar」という名前のスマホ/タブレット向けのインタラクティブ技術デモを公開していました。

これが「興味深い展示」の3つめです。

UE4ベースの技術デモ「ProtoStar」

公式映像は上のものになりますが、実際にボクが会場で触れている様子もカメラに収めてきたので、それも参考までにあわせて下に掲載しておきます。

会場に展示されていたデモ機を実際に触っている様子

UE4は、ライティング/シェーディングの処理に「物理ベースレンダリング」(Physically Based Rendering:PBR)技術を採用しているのが特徴です。

これはシーン中に登場する材質の反射率、反射特性を現実世界の材質と同じように再現し、その陰影計算に関しても入射光量と出射光量の総和が等しくなる「エネルギー保存の法則」に基づいて行われます。

スマホ/タブレットで動いているものとは思えない、それこそ最新PC/家庭用ハイエンドゲーム機に近いビジュアルを実現できているのはそうした理由からです。

UE4は高度なグラフィックス技術を駆使するため、まともに動かすためにはGPUパワーが相当に必要で、これまでリアルタイムデモはほとんどPC向けGPUをそのまま実装したNVIDIAのTEGRAシリーズでしか実動できませんでした。

しかし、今回のGDC 2016で公開された「ProtoStar」は、Mali T-760 MP8(8コアGPU)を搭載するサムスンのGalaxy S6 Edgeで動作していました。

Vulkan対応UE4の技術デモ「ProtoStar」は、ARMのMali T-760 MP8(8コアGPU)を搭載するサムスンのGalaxy S6 Edgeで動作していた

今年以降、スマホ/タブレット向けのプロセッサ(SoC:System on a Chip)の製造プロセスも16nmのFinFETプロセスに移行していきますので、集積度(≒チップ規模)と動作クロックは劇的に進化します。

早ければ2016年内、遅くても来年中くらいには、ハイエンド機のスマホ/タブレット向けのGPUで、グラフィックス性能的にPS3相当のゲームが普通に動かせるようなものがどんどん出てくるはずです。楽しみですね。

(C) ARM Ltd. Copyright 1995-2016