FC2ブログ

22世紀少年


    [GTC 2014]賢い人工知能はGPUで作る。NVIDIAが取り組むGPGPUの新たな活用分野「機械学習」とは何か?


    ビジュアルコンピューティングについて語るJen-Hsun Huang氏(Co-Founder and CEO, NVIDIA)。左手にあるのは次世代GPU「Pascal」のモジュールだ
     NVIDIA主催のGPU技術者会議「GPU Technology Conference 2014」(以下,GTC 2014)。そこで同社のJen-Hsun Huang(ジェンスン・フアン)CEO氏が行った基調講演から,本稿では,「機械学習」(Machine Learning)に関する話題をレポートしたい。
     直接ゲームに関係する話ではないうえ,少々難しい話題でもあるのだが,進化し続けるGPUが現在,そして将来にどういった用途に使われるかのヒントにもなると思うので,ぜひチェックしてもらえれば幸いだ。

    [GTC 2014]Maxwellの次に来る次世代GPU「Pascal」。「NVLink」と3次元メモリがその“次世代性能”を切り開く



    ビジュアルコンピューティングを支える「機械学習」とはなにか?


     先のレポートでも述べたとおり,NVIDIAはGTC 2014の大きなテーマとして「ビジュアルコンピューティング」を掲げている。
     ここでいうビジュアルコンピューティングとは,映像や図形をコンピュータに入力して,それをなんらかのアルゴリズムで処理し,人間にとって有意な結果を映像や図形で示すものといったところだろうか。「数値に対して演算を施し,演算結果をまた数値で返す」といったオーソドックスな数値演算とは異なり,人間にとって理解しやすいビジュアルが軸となっているのがポイントだ。

     そして,そんなビジュアルコンピューティングのホットトピックとしてHuang氏が取り上げたのが機械学習である。当該分野における最先端の研究を紹介しつつ,こうした先端研究の現場でいかにGPUが活用されているかをアピールするという形で,このパートは進行した。

    「ビジュアルコンピューティングで次に来るテーマは機械学習だ」と力説するHuang氏
    CUDA

     機械学習とは,膨大なデータの集合を解析して,そこに何らかの意味や法則性,判断の基準となる要素などを見つけ出し,それをもとにアルゴリズムを強化していくという概念だ。コンピュータ(=機械)がデータの中から何かを「学習」していくので,機械学習と呼ばれている。
     機械学習を応用できる分野は非常に幅広い。ゲーマーに身近な例でいえば,「Kinect」を使った顔認識や動き認識なども,機械学習の応用によって実現されている。最近流行のキーワードである「ビッグデータ」も,データから有意な情報を引き出す機械学習があってこそ,初めて成り立つ話だ。

     さて,その機械学習で,とくにGPGPUの応用が進んでいる分野に,「Deep Learning」や「Deep Neural Networks」(DNN)と呼ばれるものがある。DNNでは,特徴抽出器で抽出した「特徴要素」を,階層化された「知識モデル」として構築する。階層の上に行くほど知識モデルは抽象化されており,下層の知識モデルは上層の知識モデルを組み合わせて形成する,ニューラルネットワーク構造になっているというものだ。

     Huang氏は,Googleが2012年に発表した論文「Building high-level features using large scale unsupervised learning」をもとに,顔認識を例にとしてDNNの動作を解説した。
     下のスライドは,左から右に向かって,顔認識の処理が進んでいることを示すものだ。まず人間の顔写真が入力されると,写真からさまざまな「輪郭線」が抽出される(左から2番め)。そして輪郭線パーツの集合体から顔の各部位を形成(左から3番め)。こうして作られた各部位をもとに,部位の位置や大きさの集合体として,人の顔を認識する(右端)。

    顔認識を例に,ニューラルネットワークによる機械学習の概念を説明するスライド
    CUDA

     スタンフォード大学とGoogleの共同研究では,CPUコアを16基搭載するマシン1000台によって,10億個のシナプス(コネクション)を備えたニューラルネットワークを構築し,部位データとなる200×200ピクセルの画像を1000万件も入力したという。そして,このシステムに3日間YouTubeを見せ続けたところ,人間の顔と猫の顔が区別できるようになったそうだ。

    ※ Synapse Connection。ここでは知識モデル同士の結合といった意味

     このシステムは,いわば「生後3日めの人工知能」といったところだが,これが人と猫の顔をどうやって区別しているのかを調べたところ,これに,「人とは何か」「猫とは何か」という問いを行って,人間と猫の顔をどうやって区別しているのかを確認したところ,下記のスライドに示したような画像が示されたのだそうだ。

    生後3日めの人工知能による「人間とは?」(中央)と「猫とは?」(右)に対する答え
    CUDA

     この研究で用いられたシステムは,「Google Brain」と呼ばれるスーパーコンピュータだ。サーバー1台につき,8コアのCPUが2個搭載されており,これを1000台使っているので,システム全体では1万6000コアが稼動していたことになる。ちなみに,価格はおよそ500万ドル(約5億950万円)で,ピーク時の消費電力は600kWだったという。

    Google Brainのシステム構成と,それを人間の脳と比較したスライド
    CUDA

     「Google Brainと人間の脳を比較すると,Google Brainは10億コネクション規模で1000万の画像を処理したが,人間の脳は1000億ニューロン×1000コネクションで5億の画像を処理できる。つまり単純計算では,脳のほうが500万倍も処理能力が高いことになる。Google Brainが30EFLOPS(エクサフロップス)なので,人間の脳はさしずめ150YFLOPS(ヨタフロップス)だ。Yottaという英語の意味は分からないけどね(笑)」と,Huang氏。
     ちなみに,テラ(Tera)が10の12乗で,ペタ(10の15乗),エクサ(10の18乗),ゼタ(10の21乗)と続き,ヨタ(Yotta)はその上となる10の24乗だ。脳がいかにとんでもない演算能力を持っているかが分かるだろう。

    各種生命体のニューロン数を比較したグラフ。左端に描かれたスポンジ・ボブは,海綿動物なのでニューロンはゼロ……
    CUDA

     Google Brainは1万6000コアものCPUで実現されたシステムで,500万ドルもの費用がかかっている。到底簡単に構築できるものではない。そこで登場するのがGPUだ。Huang氏は「Google Brainと同等の人工知能を,GPUで実装したらどうなるだろうか」と問いかける。

     ここで氏は,2013年にGoogle Brainで実行したのと同じ機械学習の実験を,NVIDIAとスタンフォード大学の研究チームが共同で行った事例を紹介した。
     使われたのは,3台のGPUサーバーを用いたマシン。サーバー1台にはデュアルGPU仕様のカードが2枚差さっているので,トータルでは12基のGPUからなるシステムというわけだ。
     Huang氏はこのシステムが,「トータル性能でGoogle Brainを上回っただけでなく,価格や消費電力は100分の1以下になった」と報告し,GPUのパワーが機械学習の研究でイノベーションを起こすことを訴えた。

    Google Brain(左)と,NVIDIAおよびスタンフォード大学が構築したGPUベースのシステム(右)。GPUシステムなら予算は3万3000ドル,消費電力も4kWで済み,しかも性能で上回るという
    CUDA


    GPGPUで広がる機械学習の可能性


     続けてHuang氏は,GPUによる機械学習のデモを披露した。Huang氏が大好きなフェラーリのスーパーカーとNVIDIA製品の写真を,コンピュータは区別できるのか,というシンプルな実験だ。

     機械学習では,大量のデータを与えて学習させるることが必要だ。実験でも,与えた画像データが少ない状態では正解率が低く,データを増やすと正解率が上がっていく様子が披露された。

    CUDACUDA
    左の写真は,学習のために与えたデータで,それぞれ2例しかない。右の写真は学習をもとに分類させた結果だが,不正解だらけで車は1つも識別できていない

    CUDACUDA
    次に学習させるデータを増やしてみると(左),正解率が大幅に向上したという(右)

     大量のデータセットを用いても,完璧に見分けられるというわけではない。デモでは,緑色のフェラーリをNVIDIA製品と誤認したり,PlayStation Vita(以下,PS Vita)をNVIDIA製品と誤認するという場面では,来場者の笑いを誘っていた。
     ちなみに,緑色のフェラーリをNVIDIA製品と誤認したのは,元データに緑色のフェラーリがなく,一方,NVIDIA製品には緑色が使われていることが多いため,「緑色=NVIDIA製品」だと学習してしまったからだ。また,PS VitaをNVIDIA製品として誤認したのは,写真の印象が「SHIELD」に似ていたためだ。

    CUDACUDA
    緑色のフェラーリ(左)やPS Vita(右)の写真を見て,「NVIDIA」と誤認した例。もちろん,こうなることを前提したNVIDIA流のジョークだ

    犬種の識別デモに使われたニューヨーク大学のシステムの概要。120万枚の画像から1000クラスの知識を構築するのに2週間かかったという
    CUDA
     次に披露されたのは,ニューヨーク大学が用意した機械学習マシンを使って犬の種類を当てるという,来場者も参加したデモである。来場者に「#nvdogs」のハッシュタグを付けた犬の写真をTwitterへ投稿してもらい,それを見た機械学習マシンが犬種を当てるという内容だった。来場者を加えたのは,「これはやらせじゃありませんよ」ということを示すためである。
     このデモで使用された機械学習マシンは,7基のGPUを搭載するシステムとのこと。120万枚のデータセットを認識して,1000クラスの知識(※この例では犬の種類)を構築する学習時間に,2週間を要したという。

     デモで,Twitterに投稿された犬の写真を機械学習マシンに入力すると,瞬時に「Cairn Terrier」や「Hungarian Pointer」と犬種が判別されていた。Huang氏はおどけて,「答えが合っているかどうか,犬に詳しくない私には分からないんだが」とジョークを飛ばしていたが,実際にはすべて正解していたようだ。
     余談だが,ニューヨーク大学の機械学習マシンによる犬種識別デモは,一般にも公開されている。興味がある人は試してみよう(関連リンク)。

    CUDACUDA
    Twitterに投稿された犬の写真を入力すると,次々と犬種を見分けてみせた。人の手が写り込んだ写真でも正確に判定していたのには,少々驚かされた

     NVIDIAはこれまで,GPGPUを,石油探査やコンピュータ支援エンジニアリング(CAE),産業シミュレーションや新薬開発といった,比較的,短期間で成果が現れやすい分野に売り込んでいた。もちろん,これらは今後もGPGPUが使われる分野ではある。
     それに対してGTC 2014では,機械学習という新しい領域にGPGPUを訴求してきたわけだ。機械学習は今まさに急速な発展を見せている分野であり,強力な演算能力を持つコンピュータが求められている。Huang氏が基調講演の大きなテーマとして機械学習を取り上げたのは,この分野にGPGPUのビジネスチャンスを見出せると考えているためだろう。

    「機械学習を研究している企業や研究機関が,CUDAを活用し始めている」Huang氏は誇らしげにアピールしていた
    CUDA

    GTC公式Webサイト(英語)


    スポンサーサイト



    テーマ : ■■■ニュース!(ゲーム&業界)■■■
    ジャンル : ゲーム

    tag : GTC GPU Technology Conference

    [GDC 2014]Havokの最新技術をブースで体験。2014年の第2四半期にリリース予定という最新版の実力は?


     Game Developers Conference 2014(以下,GDC 2014)のHavok.comブースで,多くのゲームタイトルで使われているミドルウェア「Havok」最新版のテクノロジーデモが行われていた。

     Havokは,モデルの挙動や特殊効果などの物理演算を担当するエンジンを筆頭に,CGアニメーションやAIなど,ゲーム制作におけるさまざまなシーンで使用されているミドルウェアだ。「The Last of Us」PS3),「Assassin's Creed IV: Black Flag」PC / PS4 / PS3 / Xbox One / Xbox 360 / Wii U),「Dead Rising 3」(Xbox One)など,数多くのゲームタイトルが実際に採用しており,主人公とぶつかったNPCが後ずさりしたり,爆弾が爆発して兵士が吹っ飛んだり,衣服が風でたなびいたりなど,CGでリアルな表現をするには欠かせない存在となっている。

    Havok
     ここ数年でいうと,物理シミュレーションである「Havok Physics」はほぼ1年おきにアップグレードされており,今回のデモで紹介されたのは,最新バージョンの「2014年版」だ。2014年版では,“新世代物理エンジン”としてアーキテクチャが作り直された「2013年版」よりさらに最適化が進み,その一世代前となる「2012年版」と比べると,最大で5倍ほど性能が向上しているという。
     ちなみに,2013年版が正式にリリースされたのは2013年後半のこと。PlayStation 4やXbox OneでこれまでにリリースされたHavok対応ゲームの多くは,2012年版を利用していたそうだ。
     本稿では,そんな最新版のHavokでどのようなことができるか紹介されたデモの模様をレポートしていきたい。


    最新版では無数のオブジェクトの演算処理がスムーズに行え,流体表現も向上


     Havokの中核となるHavok Physicsでは,衝突処理や流体表現が最新版のトピックとなる。
     衝突処理に関しては,2つのシチュエーションで実演があった。1つめのデモは,建物の中から無数の岩が転がって出てくるというもの。建物の柱の部分に岩が堆積していったり,転がってきた岩が入り口付近に溜まっている岩を外に押し出したりと,6万3000個以上ものオブジェクトの衝突処理が個別にしっかりと行われていることを確認できた。

    Havok

    Havok
     もう1つが,銃口から空き缶が飛び出す不思議な銃を持った兵士が,市街地で銃を撃ちまくるというデモだ。こちらは,銃から飛び出した空き缶が建物の壁に当たってはね返ったり,空き缶同士が空中で衝突して方向を変えたりと,オブジェクトの衝突処理が,リアルタイムの物理演算でスムーズに行えることが分かりやすかった。

    Havok
     流体表現は,風や煙を表現する演算処理のデモを使った紹介がされている。
     何万枚もの木の葉が降り注いでいる市街地につむじ風を発生させると,木の葉が渦を巻いて舞い上がっていく。さらに,この処理がリアルタイムの演算で行われていることを分かりやすく証明するために,先ほどの“空き缶銃”を持った兵士が使用された。兵士がつむじ風に向かって空き缶を撃ち込むと,空き缶がつむじ風に巻き込まれ,木の葉と同じように渦を巻いて舞い上がっていったのである。

    Havok

    Havok
     煙の表現では,気体というオブジェクトに対する衝突処理で表現を行っているとのこと。ステージに配置した煙に,空き缶を撃ち込んだり兵士を突っ込ませたりすると,アクションに合わせて煙の形が変化するという視覚効果を実現できることが紹介された。

    Havok Destructionでは脆性破壊が可能に


     破壊を司る「Havok Destruction」では,CGモデルから「破壊されたオブジェクト」を演算処理によって生成することで,より自然な破壊表現と,オブジェクト生成の工数削減を実現することができるようになる。
     新しいランタイムでは,脆性(ぜいせい)破壊が可能になり,衝突判定がオブジェクト全体に影響するといった,より高度な物理シミュレーションができるようになったという。なお,脆性破壊とは,物体に力を加えたとき,歪みなどといった変形をほとんど伴わず破壊に至ること。ガラスや陶器などが壊れるケースがこれにあたる。
     デモでは,走行する自動車が別の自動車に衝突し,フロントガラスが割れる表現が披露された。金属でできた車体部分は歪みが生じる形で処理されており,素材によって壊れ方が変わるという,よりリアリティの高い破壊表現ができるようになるというわけだ。

    Havok

    Havok
     そのほか,衣服などにおける布のリアルタイム変形をサポートした「Havok Cloth」のデモとしては,「BEYOND: Two Souls」での使用例が紹介された。
     2013年に発売されたこの作品では,2012年版以前のバージョンが使用されているわけだが,風になびく防寒着や,素材のしなやかさが感じ取れるほどのパーティドレスなど,その動きは実に自然なものとなっている。
     具体的な解説は残念ながら行われなかったが,2014年版ではどこまで表現力が向上しているのか,こちらも期待したい。

     Havok.comによれば,2014年版のリリースは,2014年の第2四半期を予定しているとのこと。ミドルウェアという性質上,2014年版を使用したゲームが登場するのはしばらく先の話になると思われるが,Havok採用タイトルの表現力がどれほどすごいものになるのか,今から楽しみである。

    Game Developers Conference公式Webサイト



    テーマ : ■■■ニュース!(ゲーム&業界)■■■
    ジャンル : ゲーム

    tag : GDC Game Developers Conference

    [GDC 2014]PowerVRがついにリアルタイムレイトレーシングエンジンを統合。ゲームグラフィックスはハイブリッド時代へ


    Imaginationのブースで,実動デモを食い入るように見る来場者達
    PowerVR
     2014年3月19日の記事でお伝えしたとおり,組み込み機器向けグラフィックスIPの大手であるImagination Technologies(以下,Imagination)は,北米時間3月17~21日に開催されたGDC 2014で,新しいGPUコアIP「PowerVR Wizard」を発表した。製品型番は「PowerVR GR6500」だ。
     展示会場となる「Expo」ではプロトタイプとなるテストシリコンによる実動デモが行われ,来場者の注目を集めていた。

     PowerVR Wizardの目玉は,レイトレーシングユニット(Ray Tracing Unit,以下 RTU)の搭載である。
     Imaginationは,2010年12月に,レイトレーシング用プロセッサを開発するベンチャー企業,Caustic Graphicsを買収済み(関連記事)。この旧Caustic Graphicsが開発したRTUを,基礎設計から見直して最適化し,PowerVRへの統合を果たしたものが,今回のPowerVR Wizardとなる。

     もっとも,製品としてのPowerVR Wizardは,開発コードネーム「Rogue」と呼ばれていたPowerVR Series6シリーズに属する上位モデル「PowerVR Series6XT」にRTUを統合したものである。Imaginationの担当者も「“PowerVR WizardのRTU抜き”はPowerVR Series6の新製品そのもの」と述べていたが,実際,下に示したブロック図でも,PowerVR Wizardならではの部分は紺色のところだけで,基本的なグラフィックスIPコア部分はPowerVR Series6XTと変わっていない。
     ImaginationはIP企業なので,PowerVR WizardのデザインをSoC(System-on-a-Chip)メーカーなどといった顧客に販売するカスタマーに販売するわけだが,要は,「今回の発表によって,PowerVR Series6XTに,RTU付きのラインナップが加わった」というわけだ。

    PowerVR Wizardのブロック図
    PowerVR


    RTUとは何か?


     PowerVR WizardのRTUとは一体どのようなものなのだろう。「RTUなのだから,当然,レイトレーシングをするユニット」なのは漠然と分かるが,それで何ができるのか気になる読者も多いと思う。

     結論から先に述べると,RTUは,DirectX 11で採用されているテッセレータのような,特定用途専用の固定機能エンジンである。しかも,RTUという命名からするとやや語義矛盾的なのだが,RTU自体はレイトレーシングにおける実際の描画処理を行わない。レイ(ray,光線)を投げる処理のみを行う。
     「レイを投げる」ことを「レイをキャストする」などと言うこともあるが,いずれにせよ,分かりやすい言葉で言い換えると,「指示された方向に何があるのかを探査する」という意味になる。つまりRTUというのは,「指示された開始地点から指示された方向に向かって探査する」処理を行うものなのだ。

     どこを調査するのかというと,それはもちろん,3Dグラフィックスで描画されたCG世界の中となる。
     冒頭で紹介したように,PowerVR Wizardの中身は「PowerVR Series6XT+RTU」なわけだが,ごくごく普通のGPUといえるPowerVR Series6XTでCGをレンダリングすると,頂点シェーダなどが働いて,PowerVR Series6XTの中でジオメトリがセットアップされる。平たく言うと,仮想世界が組み上がる。
     通常のレンダリングパイプラインでは,このセットアップされたジオメトリを,視点から見た視界(=2次元平面)で切り取って,さらにピクセルへ分解する。これがラスタライズ処理というヤツだ。続けて,この各ピクセルでピクセルシェーダを起動させ,テクスチャを貼ったり,ライティングを行ったりする。

     それに対してPowerVR Wizardでは,ラスタライズ処理によってピクセルに分解された,各ピクセル位置に対応するジオメトリ世界,いわば「頂点シェーダによってセットアップされた仮想世界」の一点から,RTUによってレイを投げるようになっている。

    統合開発環境「Unity 5」には,Imaginationの開発したレイトレーシングエンジンが組み込まれた。これはCPUベースでの実行となる
    PowerVR
     レイトレーシングでは,視点の位置からスクリーン上の各ピクセルに向かってレイを飛ばすことで描画を行っていく。レイが空間内で最初にぶつかったオブジェクトが,すなわち視点から見えているオブジェクトというわけだ。オブジェクトと衝突したあとは,表面で反射させたレイが光源に到達するまで繰り返し,明るさを計算するのが基本である。
     基本どおりにやるのもよいのだが,このあたりはプログラマーのアイデア次第でいろいろ応用ができる。たとえば,オブジェクトの表面から光源(※太陽など)に向かってレイを投げるとしよう。投げられたレイが第三者にぶつからず,光源にまで辿り着いた場合,レイを投げる起点に光が当たっていることになる。通常のレンダリングでいえば「ライティングされるべき場所」というわけだ。ここでピクセルシェーダを起用してライティングやシェーディングをすれば,そのピクセルの色が決定される。

     では,投げる起点から光源までの間にレイが第三者に当たってしまったらどうかというと,そう,そこは影になるのだ。ここでピクセルシェーダを起用して“影色”を付ければ,そのピクセルは影色で描かれる。
     ここまで読んでもらうと分かってもらえたと思うが,PowerVR WizardのRTUとは,プログラマーの知りたい情報を得るためにジオメトリ世界の中でレイを投げて,何かに衝突するかどうかを検出する装置(ユニット)なのだ。

    RTUがあれば,シャドウマップなしに,広大なシーンに対して1ピクセル単位の影生成を行える
    PowerVR


    RTUが生み出す「ハイブリッドレンダリング」とは何か


     「そんな面倒臭いことをして何の意味が?」と思うことなかれ。先ほどの例で挙げた「影か否かの判定」は非常にすごいことなのだ。

     現在の一般的な3Dグラフィックスのライティングシステムに,影か否かを判定する仕組みはない。なので,デプスバッファ(=デプステクスチャ)にシーンの深度をレンダリングしてシャドウマップを生成し,このシャドウマップ情報を基にピクセルシェーダで当該ピクセルが影か否かを判断する「デプスシャドウ技法」が考案されて実用化されている。
     ただ,デプスシャドウ技法において,影の精細度はデプステクスチャ(=シャドウマップ)の解像度に依存してしまう。たとえば4km×4kmの世界を4096×4096テクセルのシャドウマップで影を生成するとしたら,1×1テクセルに格納できる影の情報は約1m×1mという広い範囲になる。影の解像度としてはとてつもなく粗い解像度になってしまうのだ。

     GPUと組み合わされるグラフィックスメモリ容量が有限である以上,確保できるシャドウマップの解像度には限界がある。そのため,現在のゲームグラフィックスでは,近場しか影を表示しなかったり,遠くの影は適当に手を抜いたりするのが常態化している。
     一方,レイトレーシングであれば,影の解像度は確実に1ピクセル単位で生成できる。レイをピクセル単位で飛ばすのだから,ピクセル単位の影を生成できるのは自明なことである。

     これまでの3Dグラフィックスレンダリングは有効に活用しつつ,特定の表現手段や局所的な表現手段にレイトレーシングを用いる。このテクニックをImaginationは「Hybrid Rendering」(ハイブリッドレンダリング)法と命名し,今回,強く訴求している。


    広がるハイブリッドレンダリングの世界


     ここまで影の話を進めてきたが,RTUでできるのは影の処理だけではない。
     Imaginationのブースでは,実際に部分的なレイトレーシングを使ったハイブリッドレンダリングの事例をデモンストレーションしていた。そのうちのいくつかを紹介しよう。

     1つは,映り込み(Reflection)の表現だ。
     現在の3Dゲームグラフィックスにおいて,映り込み表現は実のところ,とても難しいテーマの1つとなっている。

    PowerVR
    局所的な映り込み表現は,通常のレンダリング手法では難しいテーマ。RTUはこうした表現には強い
    PowerVR
    ガラスに投射される情景と,ガラス越しに見える車内の情景。両方を正確に表現するにあたって,RTUによるハイブリッドレンダリングは有効だ
     映り込み表現においては,「周囲の情景をテクスチャにレンダリングし,これを無限遠に存在するものとして扱い,3Dモデル上にテクスチャマッピングする」という環境マッピング技法がオーソドックスだ。しかし環境マッピングの概念だと,「2台の車が並んだときに,相手の車が自分の車に映り込む」といった表現の実現は難しい。CrytekがCryENGINEで採用しているような,画面座標系のポストプロセス処理を使う手立てはあるものの,画面外に存在するものまで映り込ませることはできないという制限もある。

     そこで,RTUの出番だ。プレイヤー視線の反射ベクトル方向に当該ピクセルからレイを投げて,第三者のオブジェクトに衝突したときは,当該オブジェクトの衝突箇所でピクセルシェーダを起動してライティングなりシェーディングなりを行って結果を持ち帰ることにすれば,正確な映り込みを実現できる。
     ブースでは「画面に見えていない,視点側の後ろを走るクルマの映り込み」が実現するさまを確認できた。

    RTUを使った映り込み表現の実演

    Clik to Play
    Clik to Play

     ブースでは,ガラス瓶や水面などを通すことで歪んで見える情景のデモも実演された。これはガラス瓶の表面上のピクセルから視線が屈折する方向へレイを投げることによって実現されている。

    レストラン内の光が,「半透明の瓶が持つ色」の影を屋外に映しだしている。これはレイトレーシングを使わない限り実現できない表現だ
    PowerVR

     なお,RTUは再帰的に,あるいは反復的にレイを投げられるので,たとえば,「投げたレイが第三者に衝突したら,そこからまた別のレイを投げる」なんてことも可能だ。「合わせ鏡」のような,無限にレイを投げ合うような情景の再現は難しいとしても,間接照明や大域照明といった表現などを行うことはできるだろう。
     また,1点から複数のレイを投げることもできる。これは,物理的に正しいソフトシャドウ表現(半影表現)を近似するのに有効だ。


    RTUの性能を考察しつつ,まとめ


     さて,現時点でPowerVR WizardのRTUは,1秒間に3億本のレイを投げられると説明されている。
     ちょっとイメージが湧きにくいので,もう少し具体的に分析してみよう。

     仮に毎秒30コマの映像を作るとすれば,1フレームあたりに投げられるレイの数は1000万本ということになる。なので,1280×720ドットの100万画素の場合,1ピクセルあたりのレイ数は10本だ。これを60fps化すれば5本となり,さらに1920×1080ドットの200万画素化すれば2.5本となっていく。
     もちろんこれは理論値でしかなく,実際に衝突を取ってくるまでの時間はシーンに依存するので,実際のところ,実効性能はよく分からない。ただ,できることの規模感は,こうやって計算してみると,なんとなく見えてくるのではないだろうか。

    PowerVR
     まとめると,RTUは「レイをジオメトリ空間に投げて衝突をとる固定ユニット」なので,実際の衝突を取ったあとのライティングやシェーディングといった計算は,従来のGPUでいうところのプログラマブルシェーダユニットをそのまま利用できる。ここがポイントだ。

     つまり,PowerVR Wizardは,従来のGPUに最低限の固定ユニットを組み合わせて,プログラマブルシェーダユニットを必要に応じて起用しつつレイトレーシンクを行えるGPUなのだ。この発想は,別に「PowerVRだからできた」というわけでもなく,NVIDIAやAMDなどといった他社のGPUにも応用できるので,技術としてその有効性が確立されてくれば,ほかのGPUベンダーが採用に乗り出してくる可能性はある。

     ちなみにブースの担当者は「RTUの応用は,グラフィックスレンダリング用途に留まらない可能性も秘めている」とも語っていた。
     たとえば,ジオメトリ空間内で第三者との衝突を取れる以上,それこそ物理シミュレーションなどにおける衝突判定にも応用できるという。あるいは,障害物を回避して移動するためのAIや,もっとシンプルに,スニーキングゲームなどで必要となる可視判定処理にも使える可能性がある。

     期待を込めて述べるならば,RTUには,今後のGPUが向かうべき拡張の方向性を指し示しているほどの可能性を感じる。今後,どういった影響が業界へもたらされるかにも注目していきたい。


    ●マメ情報

     Imaginationは,ハイブリッドレンダリングをソフトウェア実装したデモを「OpenRL Hybrid Example」として公開している。実行にはImagination製のレイトレーシングライブラリ「OpenRL」のRuntimeが必要だ。興味のある人は下記リンク先から入手のうえ,実行してみてほしい。

    PowerVR Wizard製品情報ページ(OpenRL Hybrid Example公開中)
    OpenRL SDK&Runtime配布ページ

    OpenRL Hybrid Example。筆者のノートPCでも実行できた
    PowerVR


    tag : GDC Game Developers Conference

    [GDC 2014]実写にしか見えないCGが新世代ゲーム機で動く。シリコンスタジオが「物理ベースレンダリング」の新型エンジンを発表

     ポストエフェクトミドルウェア「YEBIS」やゲームエンジン「OROCHI」などで知られるシリコンスタジオは,Game Developers Conference 2014(以下,GDC 2014)に,毎年恒例のブースを出展していた。
     中でも注目の話題は,新世代ゲーム機向けに開発したという,物理ベースレンダリング(Physically Based Rendering,以下 PBR)ベースとなる新開発のエンジンである。開発コンセプトは「新世代ゲーム機向けの物理ベースレンダリングエンジン」で,実写レベルのCGをリアルタイムレンダリングで実現するのが目標になっているという。

    実写レベルのCGをリアルタイムレンダリングで実現する。これが新エンジンの目標となる。この目標に向けて,まずは優先順位の高い要素を実装していき,ほぼ同時に,技術デモの制作にも乗り出したのだそうだ
    ミドルウェア/開発ツール

     シリコンスタジオは従来から,製品には日本神話などにインスパイアされた和名を付けてきた。そのため今回も名称は気になるところだが,「商標などの問題がクリアになっていない」とのことで,公式には「名称未公開」というステータスになっている(※現地では名称を聞けたのだが,明かしてほしくないとのことだった)。そのため本稿では以下,便宜的に「新PBRエンジン」と呼ぶことにしたい。


    PlayStation 4&Xbox One世代を狙う物理ベースレンダリングエンジン


     シリコンスタジオ製のレンダリングエンジンとしては「DAIKOKU」が存在するが,今回の新PBRエンジンは,その後継的存在として位置づけられるという。ただし,現時点で決まっているのは,将来的に同社のオールインワンゲームエンジンであるOROCHIへ統合されることのみ。単体リリースされるかどうかは未定とのことだ。

    新PBRエンジンは,ゲームエンジンであるOROCHIへの統合を想定して開発が進められている
    ミドルウェア/開発ツール

     ちなみにOROCHIは,スクウェア・エニックス製アーケードタイトルであるガンスリンガー ストラトスシリーズで採用されていることで有名だが,タイトル名こそ非公開であるものの,国産ゲームデベロッパが開発したPlayStation 3(以下,PS3)やPlayStation Vita用の著名タイトルに採用された実績もあるとのこと。そんなOROCHIで将来的に今回の新PBRエンジンを統合するのは,OROCHIをPlayStation 4(以下,PS4)やXbox One世代のゲームグラフィックス表現に対応させるためという理解でよさそうである。


    「シャイニネス」の活用が鍵となる新PBRエンジンの仕組み


     さて,新PBRエンジンは,ディファードレンダリング(Deferred Rendering)とフォワードレンダリング(Forward Rendering)の両技法に対応している。新鋭のレンダリング技法である「Forward+」(フォワードプラス)への対応は見送られたそうだ。
     基本的なマテリアルを「ベースカラー」や「シャイニネス」(Shininess)といったパラメータで表現し,これらの基本マテリアルを多層構造で重ね合わせていくような概念で,より複雑なマテリアル表現を可能にするという。
     ちなみにシャイニネスとは,光沢具合を表すパラメータで,表面状態の「粗さ」を表す「ラフネス」(Roughness)の対義語的な用語だが,「シャイニネスを上げる=ラフネスを下げる」というイメージでいい。

     そして重要なのは,新PBRエンジンが,物理ベースレンダリングを採用するということもあり,BRDF(Bidirectional Reflectance Distribution Function,双方向反射率分布関数)の概念を導入していることだ。
     光のエネルギーは,物質の表面に衝突すると,衝突した表面の材質特性に応じて反射したり屈折したりしてから外に出て行く。BDRFはこれを表した関数のことだが,要するに新PBRエンジンは,入射光の総和と出射光の総和が一致する,エネルギー保存の法則に則ったシェーディングモデルを実装しているのである。

     新PBRエンジンでBRDFは,拡散反射のライティングモデルとして,PS3以前からある「Lambert」(以下,ランバート)法を採用している。また,鏡面反射のライティングモデルには,従来の「Blinn-Phong」モデルよりもハイライトのピークまでが柔らかい「Trowbridge-Reitz」(GGX)を採用しているとのことだ。
     GGXの計算量はBlinn-Phongモデルよりも多いのだが,現行世代のGPUなら十分にリアルタイムの処理が実現可能ということで採択されたという。

    新PBRエンジンによるサンプル映像。なお,レンズのピンぼけ効果は「YEBIS 2」によるものだ。実は,YEBISも「3」へのバージョンアップが計画されている
    ミドルウェア/開発ツール

     ライティングは,基本的にイメージベースドライティング(IBL)モデルを採用しており,事前に生成したキューブ環境マップを光源にしてライティングを行うイメージだ。
     「キューブ環境マップでライティングすると,すべてが環境マッピングによる(鏡のような)映り込み表現になってしまわないか」と懸念する人がいるかもしれないが,シリコンスタジオ側によれば,きちんと対策も取っているという。具体的には,シャイニネス(つまりは逆ラフネス)のパラメータに対応する「ぼやけたキューブ環境マップ」を,MIP-MAP(ミップマップ)のテクスチャ階層と似たようなイメージで持つように設計されているとのこと。つまり,粗い面の光沢は「ぼやけたキューブ環境マップ」を参照してライティングすることで,ぼやけた光沢が出るようにしているわけだ。

    この画面の右上にある2つのキューブ環境マップ(※十字型の画像)はIBL用に用意されたもの。見たところ屋外の情景に使うもののようなので、屋外に向いた材質のライティングに使われていると思われる。右端の荒いキューブマップはシャイニネスの低い素材のIBLで使うものだ
    ミドルウェア/開発ツール

     もう1つ,ランバート法の拡散反射では,視線によって見えたり見えなかったりする「視線依存のハイライト」を表現できないのではないかと思った人もいるだろう。実際,カプコンは,自社開発のゲームエンジン「Panta Rhei」(関連記事)で,視線依存のハイライトを表現可能な拡散反射モデル「Oren-Nayar」(オーレン・ネイヤー)法を採用していたが,この点,新PBRエンジンにはシャイニネスの仕組みがあるため,ザラザラしたした材質であっても,視線依存の鈍いハイライトを表現可能だ。
     ちなみに,この「ランバート法+GGX」という組み合わせの物理ベースレンダリングエンジンは,「Unreal Engine 4」でも採用されている。

    ミドルウェア/開発ツールミドルウェア/開発ツール
    SIGGRAPH 2013でEpic Gamesが披露したスライドより。Unreal Engine 4も拡散反射モデルにランバート法,鏡面反射モデルにGGXを採用したことを明らかにしている

     動的なキャラクターの局所的な映り込みは,画面座標系でレイトレーシングを行う「リアルタイムローカルリフレクション」(RLR)を実装することで対応している。これは,Crytekの「Crysis 2」で注目を集めた表現だ(関連記事)。この表現を行うときにも,材質に設定されたシャイニネスの効果がきちんと反映されるので,毎回鏡のようになってしまうことなく,鈍い映り込みも出るようになっている。

     なお,新PBRエンジンは,リアルタイムの間接照明や大局照明を今のところ実装していない。開発担当者によれば,「現状のIBLとRLRの仕組みだけでかなりのレベルに到達しているので,業界動向を静観しつつ導入を検討したい」とのことだった。DirectX 11世代GPUの新要素であるテッセレーションステージも現時点では未対応だが,これも「将来的には対応したい」とのコメントが得られている。

    ミドルウェア/開発ツールミドルウェア/開発ツール


    ショートムービー仕立ての技術デモはプリレンダムービーにしか見えない


     今回,新PBRエンジン上で動作するデモとしては,未来の図書館を舞台に1人(?)まじめに働くロボットの孤独を描いた作品が公開された。担当者によれば,Alex Roman氏が制作したCGショートムービー「The Third&The Seventh」にインスパイアされたモノだそうで,わずか数分程度の作品なのだが,映像をぱっと見た感じでは,ほとんどプリレンダムービーにしか見えない。

    「プリレンダ」と言われたらほとんどの人が信じると思うが,新PBRエンジンのリアルタイムデモを撮影したものだ。一編のショートフィルムスタイルにはなっているが,もちろん視点の移動は自由自在
    ミドルウェア/開発ツール
    ミドルウェア/開発ツール
    ミドルウェア/開発ツール

     先ほども述べたとおり,新PBRエンジンは,ディファードレンダリングとフォワードレンダリングの両方に対応しているが,このデモでは前者を使っているとのこと。デモ機は「GeForce GTX 780 Ti」を搭載しており,レンダリング解像度は説明員いわく「3K相当」で,スーパーサンプリングして1920×1080ドット表示しているという。フレームレートは30fpsだ。

     マテリアルは,制作に参加した2人のアーティストが2~3か月かけて制作。モデリングにも非常に時間をかけており,劇中に出てくるレトロなカメラモデルだけで,300万ポリゴンを使っているそうだ。今回はあくまで技術デモであるため,ポリゴンモデルの「Level of Detail」化システムなどは導入していないため,1フレームあたり1000万ポリゴンを超えることはザラだという。

    ※ 視点からの距離に応じてポリゴン数を調整したり,あるいは低ポリゴンモデルに切り換えたりする仕組み。

    現状は過剰なほどのポリゴン数でモデリングされているが,最適化せずとも普通に動いてしまっているので,そのまま公開してしまったのだとか
    ミドルウェア/開発ツール

    デモ中は一瞬しか現れないが,図書館にはさまざまな小物が置いてあり,それぞれの小物に,異なった材質(マテリアル)表現が適用されている。ライティングだけでなく,映り込む情景までもが,その材質パラメータの違いによって異なる表情を見せる
    ミドルウェア/開発ツールミドルウェア/開発ツールミドルウェア/開発ツール

     なお,新PBRエンジンで実装されている動的光源は,今のところキューブ環境マップによるIBLと,太陽光である平行光源のみ。デモでもこの2種類しか使われていない。
     担当者によれば,「将来的にはそのほかの光源も実装したい」とのことで,クラシックな点光源などではなく,エリアライト(面光源)を実装しようと検討しているそうだ。

     動的光源を面光源で実装する手法は,Guerrilla Gamesの「KILLZONE SHADOW FALL」でも実現されている。シリコンスタジオ側では,新PBRエンジンのキューブ環境マップによるIBLを応用して,3Dテクスチャのような形で持つ方式を検討しているようだ。

    こちらは,GDC 2014で開かれた「KILLZONE SHADOW FALL」のセッションより。「点光源にさよならして,面光源の概念を標準化する」という記述が見られる
    ミドルウェア/開発ツール

     今回は会場でリアルタイムデモが披露されただけで,誰でも見られるムービーはまだ公開されていない。ただ,近日中にシリコンスタジオのYouTubeチャンネルにアップロードされる予定があるとのことなので,公開されたらぜひとも,新PBRエンジンの実力をその目で確認してほしいと思う。

    シリコンスタジオのYouTubeチャンネル



    テーマ : ■■■ニュース!(ゲーム&業界)■■■
    ジャンル : ゲーム

    tag : GDC Game Developers Conference

    [GDC 2014]DirectX 12,ついに発表。その特徴に迫る


    会場のスタッフは皆「XII」Tシャツを着ており,お祭りムード
    DirectX
     北米時間2014年3月20日,予告されていたとおりではあるが,Microsoftは,Game Developers Conference(以下,GDC)2014で「DirectX 12」を正式に発表した。
     DirectX 11が発表されたのは2009年。Windows 7とほぼ同時期にリリースされたことを憶えている人もいることだろう。2012年にWindows 8とDirectX 11.1が,2013年にはWindows 8.1とDirectX 11.2がリリースされているが,メジャーバージョンアップとしては本当に久しぶりということになる。

    現地時間20日,朝一発めのセッションであるにもかかわらず,会場はオープン前から長蛇の列ができた。当然,会場は超満員状態に
    DirectX
    DirectXの歴史
    DirectX


    DirectX 12登場の背景


     「GPUの性能はどんどん向上している。CPUは,1コアあたりの性能向上率はそれほどでもなくなっている一方,CPUのコア数自体は増加傾向にある。では,そんな状況にあって,ゲーム開発者は一体何を欲しているのか」。DirectX 12の開発は,この問いかけが起点になっているという。

    今日(こんにち)のプロセッサ技術トレンドは,「コア数増大」方向に舵を切っている。このアーキテクチャを効率よく扱えないプラットフォームは存在価値が低いと言わざるを得ないが,DirectXは大丈夫なの?
    DirectX

    Anuj Gosalia氏
     セッションで登壇したMicrosoftのAnuj Gosalia氏によれば,ゲーム開発者が強く求めているものの1つに,ゲーム機ライクな「GPUを直接ドライブ(≒駆動)できるようなAPI」があったとされる。そして切望されるもう1つの要素が,「ゲームアプリケーションとGPUの間のオーバーヘッドを極力なくすこと」だったそうだ。

     氏は,そうした要望に応える形で提供されることとなるのがDirectX 12であると位置づけていた。

    ゲーム開発者は何を求めているのか?
    DirectX

     なお,DirectXとは,Microsoftが自社プラットフォームに提供するマルチメディアプログラミングAPIのことで,本来はサウンドやネットワーク,入力インタフェース関連などまでを網羅したものとなるが,今回発表されたのは「DirectX 12」の3DグラフィックスAPI部分「Direct3D 12」になる。
     ただ,慣例的に「DirectX≒Direct3D」とされる傾向が強く,本セッションでもそのように扱われていたため,本稿もそれに倣い,Direct3D 12とDirectX 12を基本的に区別しない。この点はご了承のほどを。

    DirectX
     さて,今回発表されたDirectX 12だが,結論からいうと,実効パフォーマンスを改善する目的のアーキテクチャ改変がアップデートの中心となっている。「Direct」(ダイレクト)と言いながら,あまりダイレクト感がなくなってきたDirectXに,近代流のダイレクト感を持ち込もうとする方向の改変なのだ。

     DirectXが誕生した1990年代中期は,さまざまなメーカーがそれぞれ独特なアーキテクチャに基づくGPUを用意しており,そして,そこには機能差もあったことから,“違い”を吸収するための抽象化レイヤーを分厚くする必要があった。当時のGPUは,データやパラメータを与えて「GPUの機能を呼び出す」というプログラミングモデルだったこともあり,ゲームアプリケーションとGPUまでの“距離感”が相当に大きかった,という表現も可能だろう。

     しかし現在,PC向けGPUのメジャープレイヤーはIntelとNVIDIA,AMDの3社のみであり,モバイルデバイスや組み込み機器向けGPUですらも,3社いずれかのアーキテクチャに似た構造となった。かつてのような分厚い抽象化レイヤーはもはや必要なくなってきている。
     そこでMicrosoftは,1990年代に構築された古い土台をすべて取り去って,すっきりした透明性の高いアーキテクチャへと,DirectXを改変することにしたのである。

    DirectX 12の進化ポイント
    DirectX

     またMicrosoftは,WindowsベースのPCだけでなく,Windows PhoneとXbox OneにもDirectX 12を提供する計画があると今回明らかにしており,グラフィックスAPIを一気に刷新する心づもりでいる。一時期は「DirectXはもう終わり」とまことしやかに囁かれるほどだったが,ここで心機一転の再スタートを図ろうということなのだ。

    DirectX 12はすべてのMicrosoftプラットフォームに提供される
    DirectX


    DirectX 12は何がどうすごいのか


     現状のDirectXは,「DirectX APIを通じてパラメータをドライバに受け渡し,ドライバ側がGPUに向けて(描画)コマンドとパラメータ列を形成して発行する」構造になっているが,ここに問題が2つある。

     1つは,DirectXが提供している「APIを利用してDirectX側が作り出すコマンドとパラメータのペア」が,GPU内部のハードウェアを直接ドライブするようにはなっていない点だ。これは,「DirectXのアーキテクチャが古すぎて,実在する最新世代のGPUアーキテクチャとかけ離れすぎてしまった」と考えれば分かりやすいだろうか。

    DirectX 7~8時代,DirectX APIとGPUアーキテクチャは1対1にかなり近い構造だったのだが(左),DirectX 9以降で,ここに開きが生じ始めた(右)
    DirectXDirectX

    上のスライドで言う「開いたところ」を埋める存在がDirectX 12だ。実のところ,AMDのMantleもまさにこの立ち位置にいる
    DirectX
     この問題を解決するために導入されるのが「Pipeline State Object」(以下,PSO)という概念だ。
     詳細は後日あらためてお伝えしたいと思うが,誤解を恐れずに簡略化して言うと,PSOというのは,グラフィックスパイプラインとGPU内部ハードウェアとの対応を一意的に定義づけて利用する仕組みのこと。PSOを定義づけておけば,それ以降はGPUに対し「これからお願いする描画は,PSOで定義した工程表(パイプライン)ベースでお願いします」と発注できる。
     従来のDirectXでは「頂点シェーダでこの処理を行う」「ピクセルシェーダでこの処理を行う」といった感じの,細切れな指示になっていたため,処理のストール(stall,停止)が生じやすかった。その点PSOなら,GPUはあらかじめ定義された工程表に基づいて,すぐに処理に取りかかれるのである。

     もう1つは,コマンドを伝送する仕組みそのものの問題だ。
     従来のDirectXでは,APIを通して,「描画の件なんですがね」「第一パラメータは●●です」「第二パラメータは××です」といった感じに,コマンドを逐次的に発行していた。砂時計にたとえるなら,上がCPU,下がGPUで,上下は大きく開いているのに,中央部がぎゅっとすぼまったイメージ。砂粒(≒仕事)は1本の線状でしか,GPUのほうに落ちていかないのである。

     その点,DirectX 12では,あらかじめ確保しておいたメモリバッファ上で描画コマンドやパラメータを形成しておき,これをドライバへ一気に渡せるようになった。当然,メモリバッファ上に描画コマンドやパラメータを形成する処理は複数のCPUスレッドで並列に実行できる。つまり,マルチスレッドを効果的に利用できるということだ。砂時計でいえば,中央のすぼまった部分が押し広げられたようなイメージだろうか。

    DirectX 12における根幹的な進化ポイント。主にオーバーヘッドを減らし,大量に仕事を発注できる仕組みを実装したという感じ
    DirectX

     「ドライバを通じてGPU側に伝送される前の描画コマンド」はドライバ側でGPUのネイティブ命令に変換されるので,ここにまだ抽象化レイヤーは存在することになるが,まとまった量の描画コマンド列を一気に発行できる以上,効率は従来比で格段に改善する。
     さらにDirectX 12では,この「GPU側で直接実行できるように変換されたネイティブコマンド列」を保存しておける仕組みも導入された。これは「Bundles」(バンドル)と呼ばれ,そのままBundlesを再発行してGPUを駆動することもできる。うまく活用すれば,抽象化レイヤーを超えた先で,超高効率でGPUをドライブすることも可能なのだ。

    DirectX 12では抽象化部分はものすごく薄く設計されている。もちろん,すべてのメーカーのGPUに対応する必要があるため,最低限の抽象化部分は残っているが,その抽象化を超えた先でのGPUドライブの仕組みも提供される。ここはDirectX 12の大きな進化ポイントといえるだろう。Mantle的とも言えるが
    DirectX

     また,テクスチャや各種データテーブルなどといった,レンダリングに必要な素材を,アプリケーション側が任意のスタイルでその素性を定義しつつグラフィックスメモリ上に置き,実際のレンダリング時には各種シェーダから自由にアクセスする仕組みも新設されている。DirectXのAPIを介して「これはテクスチャです」としていちいち宣言したり定義したりすることなく,かなりのダイレクト感をもって,グラフィックスメモリ上にデータや素材を自在に置けるようになったのである。

     CPUのプログラムにおいて,当該プログラムの開発者は,プログラム実行の各局面に応じて,確保したメモリ空間を好きに使っていた。そういった自由なメモリの使い方がGPUでもできるようになったことになる。
     もっともこれは,家庭用ゲーム機のGPUプログラミングでは結構前からそうだったので,概念的に新しいものではない。DirectX 12が,家庭用ゲーム機的なGPUプログラミング哲学を取り入れたという認識のほうが正しいので,この点は押さえておく必要があろう。

    素材やリソース周りの取り扱いの改善ポイント。CPUプログラム的な自由な取り扱いが可能になった
    DirectX


    DirectX 12のβ版は2014年後半リリース。正式リリースは2015年か


     DirectX 12にはどの程度の性能を期待できるのか。
     セッションでは,「3DMark 11」の「High Temple」を,従来どおりのDirectX 11で動作させたものと,DirectX 12に対応させて動作させたものとで,CPU負荷に違いが出るかどうかが披露された。

     その結果が下のスライドだが,DirectX 11では,4つあるCPUスレッドのうち1つで極端に負荷が高くなっている。それに対し,Bundlesを活用しているDirectX 12では,CPU負荷が極端に低い。

    DirectX
    DirectX 11での実行結果。テキストで表示された「O+」のバーが長いほど当該スレッドのCPU負荷が高いことを示すが,ここでは「Thread 0」の負荷が高い
    DirectX
    DirectX 12での実行結果。「Thread 0」のCPU負荷は極端に下がっている

     処理の内訳も下のとおり示された。下の図は,上の「Thread 0」~「Thread 3」がDirectX 11,下の「Thread 0」~「Thread 3」がDirectX 12のそれぞれ内訳だ。「App Logic」はアプリケーション実行負荷。「Direct3D」はDirect3DのAPIオーバーヘッド,「UM Driver」はユーザーモードドライバ負荷,「Kernel」はOSカーネル負荷,「KM Driver」はカーネルモードドライバ負荷,「Present」は描画表示負荷を示しているが,違いは一目瞭然といえる。

    DirectX 11(上)とDirectX 12(下)のそれぞれにおける処理の内訳
    DirectX

     セッションでは,NVIDIAによる評価版のDirectX 12ドライバ上で動作する「Forza Motorsport 5」の技術デモが公開された。こちらは性能を示すものではなく,「実際にゲームが動いている」ことを示すための目的で公開されたようだ。「PC版のForza Motorsport 5がDirectX 12ベースで開発されている」ことを示すものではないので,その点は注意してほしい。

    「Forza Motorsport 5」ベースのDirectX 12技術デモ

    Clik to Play
    Clik to Play

     気になるDirectX 12の提供時期だが,2014年後半にプレビュー版(β版)がリリースされる予定となっている。正式版は「2015年のクリスマス商戦に臨むPCゲームのリリースに間に合うような形で提供したい」という形で予告されたので,常識的に考えれば,正式リリースは2015年ということになるだろう。

    DirectX 12のプレビューは2014年後半に登場。ゲーム開発者に向けては早期アクセスが提供されるという
    DirectX


    DirectX 12にまつわる疑問に答えてみる


     最後に,セッション後の質疑応答や,セッション後に筆者が関係者に取材した情報を基に,想定される質問と回答を用意してみた。こちらも合わせて参考にしてもらえればと思う。


    Q:DirectX 12はどのOSに提供されるのか

    A:
     Windows 7とWindows 8.x(もしくはその後継OS)と見られる。間もなくサポートが終了するので当たり前といえばそれまでだが,Windows XPへの提供は「ない」と公式に否定されている。


    Q:DirectX 12はWindows以外にも提供されるのか

    A:
     セッションのレポートでも触れたとおり,Windows PhoneとXbox Oneには提供される見込み。Xbox One向けのゲームタイトルのPC向け移植やWindows Phoneへの移植が容易になるはずだ。

    Windows 7&8以降のPCだけでなく,Windows PhoneやXbox OneにもDirectX 12は提供される
    DirectX


    Q:DirectX 12の対応GPUは?

    A:
     当面はDirectX 11世代のGPUが対応製品となる見込み。NVIDIAならFermi世代,AMDならGraphics Core Next世代ということになる。


    Q:DirectX 12向けに開発されたゲームはDirectX 11環境で動作するのか。逆に,DirectX 11向けのタイトルはDirectX 12で動作する?

    A:
     DirectX 11とDirectX 12は,名前こそ「DirectX」ながら,基本アーキテクチャが異なるため,相互に互換性はない。
     実のところ,この仕切り直しは,DirectX 10の時も起こった。DirectX 10では基本アーキテクチャがDirectX 9から一新されたため,過渡期のPCゲームでは,タイトルによって,DirectX 9バイナリとDirectX 10バイナリの2つが提供されたりしていたが,DirectX 12の登場直後は同じようなことが起こるだろう。


    Q:DirectX 12で実現されているのは性能向上のためのアーキテクチャ改変“だけ”で,新しいシェーダステージの追加や,新機能の搭載はない?

    A:
     Microsoftの公式回答は「現時点では未定」。ただし,現段階でも「プログラマブルブレンド」(Programmable Blend)パイプラインと,順不同半透明描画(Order Independent Transparency),コンサバティブ・ラスタライゼーション(Conservative Rasterization)などの搭載は決定している。

    コンサバティブ・ラスタライゼーションは,ポリゴンモデルのボクセル分解化処理などに有効とされる。「Unreal Engine 4」の発表時にデモがあった「SVO-GI」では,この処理を自前のシェーダで実装していた
    DirectX


    Q:聞けば聞くほど,DirectX 12のコンセプトはMantleのそれと非常によく似ている。PSOやコマンドバッファの概念,素材の取り扱い概念はMantleと同じではないのか

    DirectX 12発表を喜ぶ関係者達。左から順にTurn 10 StudiosのChris Tector氏,MicrosoftのAnuj Gosalia氏,IntelのEric Mentzer氏,AMDのRaja Koduri氏,NVIDIAのTony Tamasi氏,QualcommのEric Demers氏
    DirectX
    A:
     そのとおり。経緯は不明ながら,仕様にはよく似ている部分がある。これまでAMD(や旧ATI Technologies)もしくはNVIDIAの提唱する「独自機能」がDirectXに採用されたことは過去にたくさんあるので,今回もそのパターンという可能性はあるが,この点についてMicrosoft,そしてAMDから公式の言及はない。
     この件に関して現時点で言えることは,AMDがDirectX 12を歓迎していることと,DirectX 12の登場によってMantleの立ち位置が微妙になることの2点だけだ。


    Q:DirectX 12で,Compute Shaderはどう扱われるのか

    A:
     Compute Shaderの取り扱いは未定。Mantleのような「非同期でのGPGPUとグラフィックスレンダリングの同時発行」も,対応するかどうかは未定とされている。


    Q:DirectX 12が登場したことで,PlayStation 4に何らかの影響はある

    A:
     直接的には「ない」が,間接的には「ある」と思われる。
     実のところ,現在PlayStation 4(以下,PS4)の開発者に向けて提供されているグラフィックスライブラリの1つに,「疑似DirectX 11ライブラリ」がある。そして,聞くところによれば,PCゲームを開発して,それをPS4にポーティングするスタイルのゲームスタジオは,この疑似DirectX 11ライブラリを活用することが多いという。正式にDirectX 12がリリースされた後は,“疑似DirectX 12ライブラリ”が提供されるはずだが,そこにタイムラグが発生したりする可能性はあるだろう。
     逆に言えば,PS4ネイティブに開発しているゲームスタジオへの影響は間接的にもあまりない。


    Q:DirectSoundとかDirectInputとか,他のDirectXファミリーはどうなるのか

    A:
     未定とのこと。ただ,「現在のところ話せる段階にはないが,最終版のDirectX 12には,これまでのDirectXと同じように,グラフィックス以外のAPIも含まれるだろう」とのコメントは得られている。


    テーマ : ■■■ニュース!(ゲーム&業界)■■■
    ジャンル : ゲーム

    tag : GDC Game Developers Conference DirectX

    今 Amazon で最も売れてるゲーム


    プロフィール
    22世紀少年
    22世紀少年
    人気ブログランキング

    お買い得ゲーム
    カテゴリ
    最新記事
    最新コメント
    月別アーカイブ
    ユーザータグ

    PCゲーム PS3 PS4 3DS ポケモン ペルソナ FF 周辺機器 Conference EA Game Developers GDC PSP ペルソナ4 荒木飛呂彦 Titanfall ジョジョ キングダムハーツ E3 聖剣伝説 洋ゲー GTA 未来への遺産 Earth NINTENDO ポケットモンスター キャサリン Beyond メロエッタ 任天堂 ポケモンドール Steam コミコン LEGO Online GPU ジョジョの奇妙な冒険 Sim Nintendo Sid Civilization: エレクトロニック・アーツ Vita Civilization ホワイト2 ブラック2 メロエッタのキラキラリサイタル マックでDS ニンテンドーWi-Fi 幻のポケモン コネクション ベストウイッシュ キュレムVS 聖剣士ケルディオ ブラックキュレム ゆめしま フェスミッション チャンピオンズトーナメント ポケモンワールドトーナメント 隠れ特性 グローバルリンク ゆめポイント ひんやり穴 ドリームワールド おもいでリンク ホワイトキュレム ポケモンチャレンジ ポケモン立体図鑑BW ポケモン全国図鑑Pro ARサーチャー ポケモンだいすきクラブ LL ノーティドッグ プレイステーション3 ケルディオ Theft ベルゼブモン リ:デジタイズ デジモンワールド オメガモン HUNTER×HUNTER エクスペンダブルス2 ハンター×ハンター ワンダーアドベンチャー デジモン スクウェアエニックス シム ナルト Sims3 ソニー フィレンツェ ファイナルファンタジー アーカイブス ドルフ・ラングレン 中島愛 ズルッグ GAMING マヨナカアリーナ LOUNGE Comic‐Con ニンテンドー3DS International アトラス ATLUS FPS PlayStation キッザニア Halo Grand Auto カプコン アーケオス アセンブルロボット グラフィックボード グラフィックカード トロゲーム  ASUSTeK マザーボード XBOX パックマン GameSpy レトロゲーム ゲームボーイ ゲーミングマウス GTC Wizardry DirectX シムシティ Technology SCEA America Entertainment Computer Sony ドラゴンボール トロピコ トロピコ5 TROPICO WARS STAR バットマン アーカム・ナイト ウィッチャー WITCHER ZOIDS MOD インディーズゲーム どうぶつの森 アーケードスティック Razer Meier’s Tropico インディーゲーム Sims ドラクエ キーボード ボードゲーム Meier's City RTS プリキュア Activision アクティビジョン デッドプール メルヘンワールド ゲノセクト ポルナレフ DIO 承太郎 スクウェア・エニックス MARVEL Deadpool ニンテンドーダイレクト ポータル CUUSOO レゴ YouTube リアルスティール 海外ゲーム アイズオブヘヴン Xbox360 ユークス ヴァニラ・アイス ロードローラーだッ! バイオハザード ドラえもん 空条承太郎 アップデート PCパーツ ブラウザゲーム ストラテジー 都市建設 PixelJunk PSVITA アイカツ Cギアスキン カウントダウン エニックス スクウェア ピカチュウ すばらしきこのせかい ポートロイヤル ビギニングカップ 公式Wi-Fi大会 シミュレーション エンターテインメントバー 

    Amazonゲームランキング
    アンケート投票
    ゲームに関するアンケートです。良かったら投票してみて下さい。
    ブログランキング
    アクセスランキング
    検索ワードランキング
    レンタルCGI
    ページ内Google検索
    FC2ライブ
    現在配信中のライブ
    オススメリンク
    カウンター
    オンラインカウンター
    現在の閲覧者数:
    リンク
    ブロとも申請フォーム

    この人とブロともになる

    RSSリンクの表示
    QRコード
    QR