お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2014/09/05 12:00

イベント

[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

 2014年9月2日の記事でお伝えしたとおり,CEDEC 2014に合わせて,シリコンスタジオが新世代のレンダリングエンジン「Mizuchi」を発表し,その技術デモ「Museum」を披露した。水棲の竜とも蛇とも言われる伝説上の生物「蛟」(みずち)からその名が取られた新製品のデモを見て,その高い写実性に驚いた読者も多いことだろう。


 CEDEC 2014の初日となる9月2日には,発表されたばかりのMizuchiを,シリコンスタジオの開発陣が解説するセッションがあった。専門的な内容を扱うものであるにもかかわらず,満席になるほどの盛況ぶりだったのだが,本稿ではそんな濃密なセッションのエッセンスをお届けしたいと思う。
 なお,登壇したのは,シリコンスタジオの田村尚希氏安田 康氏川瀬正樹氏の3名だ。

左:満席となったセッション会場
右:左から順に安田 康氏(シリコンスタジオ 技術本部Researchグループ ソフトウェアエンジニア),田村尚希氏(同),川瀬正樹氏(シリコンスタジオ 技術本部応用技術部 リード・ソフトウェアエンジニア/シェーダアーキテクト)
画像集#003のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは? 画像集#004のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?


Mizuchiとは何か?


 Mizuchiとは,PlayStation 4(以下,PS4)やXbox One世代のゲームグラフィックスに向けて,ゼロから新規開発されたレンダリングエンジンである。海外のゲームスタジオが開発するエンジンで採用が進んでいる物理ベースレンダリング(Physically Based Rendering,PBR)を導入したのが特徴で,「まるで実写」なCGをリアルタイムレンダリングで実現すべく開発されたのがポイントだ(関連記事)。

これはAlex Roman氏が制作したオフラインレンダリングによるCG映像作品「The Third & The Seventh」のスクリーンショット。Mizuchiベースの技術デモであるMuseumの開発にあたっては,「The Third & The Seventh相当の映像をリアルタイムで実現すること」が目標となった
画像集#005のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

画像集#035のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 物理ベースレンダリングは,エネルギー保存の法則に則ったレンダリング計算を行うのが特徴で,「ある材質の陰影計算を行うとき,入射光と出射光とで光のエネルギーの総和が等しい」ことを大前提にしたアプローチとなる。
 光は,物質の表面に衝突すると,衝突した表面の材質特性に応じて反射したり吸収されたりするが,それを表す関数であるBRDF(Bidirectional Reflectance Distribution Function,双方向反射率分布関数)を用い,(よほど特別な材質でもない限り)少ない基本パラメータで「エネルギー保存」に則って計算していこうというのが物理ベースレンダリングの基本概念だ。

 もう少し具体的に述べると,Mizuchiでは,Epic Gamesの「Unreal Engine 4」(以下,UE4)で採用されたパラメータセットである,

  • BaseColor(ベースカラー)
  • Normal(法線)
  • Shininess(光沢度。UE4では「Roughness」を採用しているが,Mizuchiでは(1−Roughness)で求められるShininessを用いる)
  • Metallic(金属度。1.0に近づくほど鏡面反射にベースカラーが乗りやすくなる)
  • Cavity(微細凹度。遮蔽表現に影響する)

を用いている。BRDFにおける拡散反射のライティングモデルにはランバート(LambartもしくはLambartian)法,鏡面反射のライティングモデルにはクック・トランス(Cook-Torrance)法を採用しているとのことだ。

Mizuchiのシェーディングモデル
画像集#006のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

 材質表現にあたってはいま挙げた5つのパラメータを1つのレイヤーとし,複数のレイヤーを重ねたり,それをマスクで抜いたりすることが可能になっている。このあたりは,UE4や,E3 2014のまとめ記事で紹介した「The Order: 1886」と共通の仕様と述べていいだろう。

Mizuchiの材質レイヤーシステム
画像集#007のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

 Mizuchiでは,材質編集用の専用ツールも用意されており,そこではライティング環境を適宜変えながらのリアルタイムプレビューも可能とのこと。物理ベースライティングである以上,ライティング条件を変えても当然のことながら材質感は変わらないわけだが,それを実際に「ちゃんとそうなっているか」確認できるシステムが構築されているというわけだ。

Mizuchiでは材質を編集するためのツールが用意される
画像集#008のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは? 画像集#009のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

 間接光照明は,事前生成しておいたキューブマップでライティングするイメージベースライティング(Image Based Lighting,以下 IBL)方式を採用。背景オブジェクトなどに対しては,伝統的な事前焼き込みのライトマップなども利用できる。

間接光照明はIBL方式が採用される。IBLは,全方位からの光源としてキューブマップをライティングする技法だ
画像集#010のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは? 画像集#011のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

 IBLに必要なキューブマップの配置は自動ではなく,アーティストが手作業で設定する方式が採用された。冒頭でも紹介したMuseumデモだと,約90個のキューブマップ取得ポイントが設定されているそうだ。解像度は一律256×256テクセル,容量にして約50MBとのことである。

Museumデモにおけるキューブマップ配置例。スライドで球体のある場所が「キューブマップを置いたところ」だ
画像集#012のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

RLRの概念
画像集#028のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 一方,IBLではまかないきれないような局所的な遮蔽や映り込みは,リアルタイムローカルリフレクション(Realtime Local Reflection,以下 RLR)で処理を行っている。

 RLRは,通常のレンダリング結果と深度バッファの内容とを使って,画面座標系で局所的なレイトレーシングを行うテクニックだ。一般的には局所的な映り込み表現を作り出すために用いられるが,Mizuchiにおいては遮蔽感や接地感を出すのに大きく貢献したという。
 MizuchiにおけるRLRは,IBL間接光照明と物理ベースレンダリングによって明るくなりがちな材質に対し,局所的な遮蔽感を与えて映像に説得力を増すのに貢献しているというわけだ。

IBLのみのレンダリング結果(左)と,それにRLRを組み合わせたもの(右)の違い。とくに棚と床面と接線あたりに注目すると,RLRありのほうでは遮蔽感が出ているのが分かる
画像集#013のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは? 画像集#014のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?


Mizuchiで使われるG-Bufferの内訳
画像集#016のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 レンダリング技法としてはディファードレンダリング(Deferred Rendering)を採用しているとのこと。使用するレンダーターゲットは「G-Buffer」も含めて40枚弱となっている。

 Mizuchiはゲーム向けのリアルタイムグラフィックスエンジンだが,現状では,Museumデモのような技術デモ特化仕様となっており,半透明要素処理がなかったり,光源は太陽光に代表される平行光源のみで,点光源やスポットライトには対応していなかったりするそうだ。このあたりは年末の発売に向けて機能強化されるはずだ。
 ちなみに,CEDEC 2014時点における開発期間は実質1年強だそうなので,実装すべき機能はまだまだ多いものと見られる。


「エイリアシング問題」に取り組むこととなった開発チーム


 さて,ひととおりの機能がMizuchiに実装されて,技術デモもそれなりに動くようになってきた時点で,Mizuchiの開発チームは,ある恐ろしい事態に直面したという。
 それはエイリアシングだ。

画像集#029のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
エイリアシング地獄」に悩まされることとなったMizuchi開発チーム
画像集#030のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

Mizuchiの開発において,ジャギーによるエイリアシングとは異なる,時間方向のエイリアシングに悩まされることとなった開発チーム
画像集#031のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 PS4およびXbox One世代のリアルタイムグラフィックスでは,多ポリゴン化されたことで,視点からやや離れた位置にあるオブジェクトで1ピクセル内に複数のポリゴン輪郭が生じたり,1ピクセル内に乱数のようなランダムな方向の法線が折り重なってくるケースも出てくる。
 そしてここに物理ベースレンダリングが乗ってくると,きめ細かな高輝度ハイライトが出やすくなり,画面内の空間周波数はとても高くなる。カメラがゆっくり動くだけで,画面内が「星のきらめき」のようになってしまうこともままあったという。

 こうしたエイリアシングに対しては,MSAAやFXAAといった,静止画として発生しているジャギーや,ポリゴン輪郭に発生しているジャギーを低減する効果のあるエイリアシング処理だと,ほとんど役に立たない。ここで起きているエイリアシングは,時間方向のエイリアシングだからだ。


GDC 2014の時点では,スーパーサンプリングによる,極めてチカラワザ的なアンチエイリアシングを行っていた
画像集#032のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 そのため開発チームは,GDC 2014版のデモを用意するにあたって,一時的な回避手段として「いったん3K〜4K相当の高解像度でレンダリングし,スーパーサンプリングしてからフルHDに圧縮して表示する」というテクニックを使う必要に迫られたという。

 ただ,この手法はあくまでも一時凌ぎだ。抜本的な解決にはならないため,開発チームは改善に乗り出すこととなった。
 そして,その手段としてたどり着いたのが,時間方向の積分的アンチエイリアシング技法である「テンポラルスーパーサンプリング」(Temporal SuperSampling)的なアプローチだ。具体的には,「現在のピクセルに対し,過去フレームの位置にあるカラーをサンプルしてブレンドする」というもので,これは時間方向で積分したことに相当するため,時間方向の誤差拡散になるという副次的なメリットもある。
 ちなみに,「過去フレームにある位置」(=着目しているピクセルの過去位置)は,モーションブラー生成などに利用される,ピクセル単位の速度ベクトルを格納するためのベロシティバッファ活用で算出可能だ。

開発チームは,「エイリアシング地獄」を乗り越えるべく,テンポラルスーパーサンプリングを採用した
画像集#033のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?

画像集#034のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 開発チームが実際にテンポラルスーパーサンプリングを実装したところ,エイリアシングの低減に大きな効果があった。しかし別の問題として,ディテール感がやや甘めになり,また,誤差が拡散される関係で高周波の高輝度成分も若干低減される傾向が確認されたという。
 とはいえ,「エイリアシング地獄」自体は回避できたため,Museumデモではこのアプローチを採択したとのことだった。



Mizuchiプロジェクトは開発者募集中


画像集#002のサムネイル/[CEDEC 2014]新世代レンダリングエンジン「Mizuchi」をシリコンスタジオ開発陣が解説。「ほぼ実写」のリアルタイムCGを動かすためのポイントは?
 近年,アンチエイリアシングに対しては,先端のレンダリング系に取り組んでいるスタジオほど関心が高い。実際,8月に開催されたSIGGRAPH 2014のゲームグラフィックス専門コースセッションでは,誰も申し合わせたわけではないにもかかわらず,半日ひたすらアンチエイリアシング系のセッションが続くという珍事が起こったほどだ。
 今世代のゲームグラフィックスでは,ジャギーを消すためのアンチエイリアシングだけではなく,時間方向のエイリアシングとどう向き合うかについても大きなテーマとなってくる可能性が高そうである。

 なお,シリコンスタジオは,Mizuchiプロジェクトをさらに推し進めるべく,参加したい開発スタッフを募集している。腕に覚えがある人は応募してみてはどうだろうか。

シリコンスタジオのMizuchi告知ページ(エンジニア募集フォームへのリンクあり)

CEDEC 2014 公式Webページ

  • 関連タイトル:

    Mizuchi

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:10月29日〜10月30日