イベント
[GDC 2015]「Maliを使うとUnity 5で何ができるか」をARMがアピール。キーワードは「ローカルキューブマップ」
講演は,いくつかの話題で区切られていたのだが,ここではそのなかから,ローカルキューブマップの話題をピックアップしたものを紹介してみたい。なお,あらかじめ述べておくと,概念自体はUnity 5(あるいは広義のUnity)に特化したものではなく,ほかのゲームエンジンでも活用が可能だと,登壇したARMのシニアエンジニアであるRoberto Lopez Mendez(ロバート ロペス メンデス)氏は述べていたので,Unity 5以外を使ったモバイルゲーム開発で参考になる部分もあるだろう。
キーワードは「ローカルキューブマップ」
ローカルキューブマップとは何だろうか。
もともとキューブマップでは「無限遠にある背景球の景色」を投影するグローバルキューブマップの利用が多いのだが,鏡面反射などにおいては,オブジェクト位置を視点として周囲をレンダリングした画像も使用される。
ローカルキューブマップは,基本的にはそんなグローバルキューブマップと同じように,「ある地点における固有のキューブマップ」を作成する手法だと,Mendez氏は定義していた。Unity 5でいうところの「リフレクションプローブ」のことだと思って差し支えなさそうである。
講演では,ローカルキューブマップとグローバルキューブマップを使ったときで映り込みがどう変わるかの比較画像も下のとおり示されたが,確かに,近景を含む反射画像を無限遠にある背景球からマッピングしたのでは,ちょっと無理が出てきてもしかたないかもしれない。
さて,Mendez氏は,ローカルキューブマップの活用で何ができるのかについて話を進めた。
オブジェクトへの映り込み表現自体は当然のことなので割愛するが,面白かったのは,氏が,影への応用を紹介していたことだ。「キューブマップで影?」と不思議に思う人もいるかもしれないが,これは「全方位シャドウマップ」と呼ばれている技法であり,要するに,モバイルデバイスでも活用できるようになったということでいいだろう。ちなみにPC用の3DMarkだと,「3DMark06」から導入されているような技術だったりする。
全方位シャドウでの影の生成には,事前にキューブマップのα値で影を落とす対象の情報を設定しておく必要がある。たとえば,窓が開いていたら素通しなので1,壁があると0,擦りガラスなどの半透明なものでは透過率に応じて0〜1の間で値を入れておく,といった具合だ。実行時は,そのキューブマップ情報と光源の位置情報を活用することになる。
ある点が照明されているかどうかは,頂点シェーダでその点から光源に向かってベクトルを作成し,ピクセルシェーダでキューブマップとの交点を求めたうえで,そのα値から決めていく。
Mendez氏はここで,「現時点におけるモバイル技術の集大成」として,ARMがUnity 5を使って作り上げたデモ「Ice Cave」を披露した。Ice Caveは,その名のとおり,氷をメインテーマにしたもので,光と影のさまざまな表現,とくにリアルタイムの反射と屈折表現をアピールするものとなっている。
このデモの制作過程では,ローカルキューブマップのほか,ARM傘下のミドルウェアデベロッパであるEnlightenの大域照明ミドルウェアなどを駆使しているとのことだった。
物理ベースのシェーダや高速なシャドウマップなどで一気に表現力を上げたUnity 5の登場で,モバイルゲームも今後,一気にリアルなグラフィックスを目指す方向へ進みそうな気配がある。
UnityエディタでのリアルタイムレイトレーシングにImagination Technologiesの技術が使われていることからか,Unity 5ではPowerVR Graphicsを採用したiPhone 6での事例が多く紹介されていたりするわけだが,ARMとしては,Unity 5がリリースされたこのタイミングで,ハイエンドモバイルグラフィックス市場におけるMaliの存在感をアピールしておきたいところだろう。
ARMのMali公式Webページ
GDC公式Webサイト
4GamerのGDC 2015関連記事一覧
- 関連タイトル:
Mali,Immortalis
- 関連タイトル:
Unity
- この記事のURL: