「トゥームレイダー 美しき逃亡者」で学ぶ3Dゲームグラフィックスの最適セッティング術

後編 2/3

Text by トライゼット 西川 善司

Reflections and Refractions〜反射と屈折の設定
  反射(Reflections)と屈折(Refractions)の表現に関する設定セクションだ。反射と屈折は一般的な光学自然現象だが,TR6では主に水面表現のことを意味しているようである(下図参照)。

部屋の上部が水面に映り込んでいるのが反射のシミュレーション。水面に突っ込んでいるパイプの鏡像も水面に見えている点に注目
さざ波の影響で水面下の金色の金網,パイプなどが歪んで見えている。これが屈折のシミュレーション

RT Reflect/Refract〜反射屈折効果用テクスチャの生成を行うかどうかの設定
  反射と屈折のシミュレーションを行うかどうかの設定。チェック・オンで行う設定になる。なお,RTはRender Targetsの略。ここでも,シーンを別の視点でテクスチャにレンダリングして再使用するテクニックを使うわけだ。

User Clip Planes〜任意のクリップ平面の設定
  描画境界の設定。これをチェック・オンにしないと水面に貼り付けられた鏡像(映り込み)の境界が大ざっぱになって不自然になる(下図参照)。また,映り込み映像レンダリング時に,一部のオブジェクトの描画が省略されてしまうことも確認できた。絶対にオンにしたい設定項目だ

User Clip Planesをオンにしたレンダリング結果 User Clip Planesをオフにしたレンダリング結果。プール右側の水面と壁の境界に注目してほしい。オフにしているとこのように描画境界付近で正しく映り込み映像が水面に貼り付けられずに不自然になってしまう

Room/Character〜映り込み映像の品質の設定
  "映り込み"映像に何を映し込むかを決める設定。本来映り込みというのはシーンのすべてが映り込んでいないと不自然なわけだが,それはつまりシーンを丸ごと別の視点からレンダリングし直すことになるわけで,性能の低いGPUには,とてつもない負荷になる。そこで多くのPC 3Dゲームでは,何を映り込ませるかというのを,スケーラブルに決定できる仕組みを導入している。
  項目「Room」は,映り込ませる映像に背景物を含ませるかの設定で,項目「Character」は,映り込み映像に人物や小道具/大道具オブジェクトを含ませるかの設定になる。
  いずれもチェック・オンで,「含ませる」の設定になるはずなのだが……どうもこの設定状態とは関係なく,強制的に両方ともオンになってしまうようだ……

Texture/Depth〜映り込みテクスチャ形式とZバッファ精度の設定
  前述したように,反射と屈折の効果の処理においても,シーンを別視点からレンダリングしたテクスチャを活用する。
  項目「Texture」は,そのテクスチャの形式を設定するものだ。設定できるのは,

[最良] 32bit A8R8G8B8
  32bit X8R8G8B8
  16bit X1R5G5B5
[推奨] 16bit R5G6B5


など(GPUによって多少の差異有り)。この処理系でもαチャンネルは無関係なので"A"無しを選んでも問題なし。
  生成された映り込み映像を見る限りではテクスチャ解像度自体はそれほど高くなく,しかも水面下の映像とブレンディングされ,遠景は被写界深度効果でかなりボカされてしまうため,16bit系を設定しても32bit系を設定したときとほとんど差異を感じない
  項目「Depth」は,Zバッファ(深度情報)のビット数を設定するもので,

[最良] 32bit Depth D24S8
  32bit Depth D24X8
[推奨] 16bit Depth D16


が選択できる。
  映り込ませようとしている水面から遠い情景ほど色のトーンを落とすような処理を,このZバッファの値を基に行っているようだ。トーンの落とし込みは水面からかなり離れた情景から効いてくるようで,また,映り込み映像の解像度が低いこともあって,この設定を16bit Depth設定にしても32bit Depth設定にしても,最終的な映像にはほとんど差がない
  なお,視点からの距離や角度の関係から映り込み映像と水面下の映像の透過割合を変えるような(フレネル効果)処理はなし。設定項目が多彩な割に,TR6の水面表現のビジュアルは意外にもシンプルだったりする

Cubemaps Reflections〜キューブ環境マップの設定
  キューブ環境マップに関する設定のセクション。
  「環境マップ」とは,そのシーンの情景をテクスチャ化したもの。環境マップを,視線方向,視線角度を吟味した形で3Dオブジェクトにテクスチャとして貼り付ければ映り込み表現になる。これが環境マッピングだ。
  そして「キューブ環境マップ」とは,環境マップを6面体状に配置させたイメージのもの。乱暴な言い方をすれば,全方位の映り込みが実現できるものだ。

TR6の膨大な設定項目もこれで最後

RT Character Reflect〜リアルタイム環境マップの設定
  リアルタイム・キューブ環境マップを有効にするかどうかの設定。
  設定項目名に"Character"とあるので,人物キャラクターを環境マップに反映させるかどうかの設定に思えてしまうが,実質的にキューブ環境マップをリアルタイムにレンダリングするかの設定になっている(下図参照)。
  これは出来ればオンにしたい設定項目だ

RT Character Reflectオン時。ワックス掛けされた床に歪んだ天井が映り込んでいる RT Character Reflectオフ時。床の映り込みがいっさいなくなってしまう

Effects in Reflections〜特殊効果を環境マップに反映させるかどうかの設定
  シーン内の特殊効果をリアルタイム環境マップにも反映させるかどうかの設定。チェック・オンで反映させる設定になる。
  具体的にどう効いてくるのかについて解説しよう(下図参照)。
  例えば,シーン内にGlow効果(光があふれ出す効果)を伴った発光体オブジェクトがあったとして,このシーンを環境マップにレンダリングするときに,そのGlow効果を伴った形でレンダリングするかをここで設定する。
  この設定項目には1〜10の数値が選択できるリストボックスがあるが,これはシーン内の特殊効果をいくつまで環境マップに反映させるかを設定するものだ。先ほどの例でいくと,例えば3と設定した場合,4個め以降の発光体オブジェクトからはGlow効果無しで環境マップにレンダリングされてしまうことになる。
  リアルな映り込みを楽しみたいならば,最高値の10に設定したい

Effects in Reflectionsオン時。上空のヘリのサーチライトから溢れ出る光(Glow効果)が環境マップに反映されているため,地面の環境バンプマッピングにその青白い光が反映されている
Effects in Reflectionsオフ時。サーチライトのGlow効果は地面の環境バンプマッピングに反映されていないことが分かる


Texture/Depth〜環境マップの形式とZバッファ精度の設定
  項目「Texture」が環境マップのテクスチャ形式を設定するもの。そして項目「Depth」はそのレンダリング時に使用するZバッファ精度を設定するもの。
  Textureは,

[最良] 32bit A8R8G8B8
  32bit X8R8G8B8
  16bit X1R5G5B5
[推奨] 16bit R5G6B5


が設定でき,Depthは,

[最良] 32bit Depth D24S8
  32bit Depth D24X8
[推奨] 16bit Depth D16


が設定できる(いずれもGPUによって多少の差異有り)。
  反射と屈折のときと同様で,TR6の環境マップはかなり低い解像度でレンダリングされるうえ,かなり淡く描かれるために,「Texture」は16bit形式,「Depth」は16bit精度に設定してもほとんどビジュアルに差異が表れない

Camera Update〜環境マップレンダリング頻度の設定
  環境マップはそのシーンにあったものをあらかじめ用意しておくタイプと,実際にリアルタイムにそのシーンをレンダリングするタイプがある。後者はリアルなビジュアルが実現できる半面,GPUに多大な負荷がかかる。なお,TR6では後者のシステムを採用している。
  「Camera Update」は,そのリアルタイム環境マップのレンダリング頻度の設定に相当し,

[最良] ALL
  Half
  Third
  Sixth
[最速] Occasional


のうちから選択して設定する。
  何フレームごとにレンダリングするかを設定するもので,最良ケースのALLでは,毎フレームレンダリングする設定になる。Halfは1フレームごと,Thirdは3フレームごと,Sixthは6フレームごと……という設定になり,間隔が開くほどGPU負荷は減るが,その分ビジュアルクオリティは下がる。
  最低設定のOccasionalは,シーンが劇的に変化したときにのみ環境マップを更新する設定で,GPU負荷が最も少ない設定の割にはそれなりのビジュアルが得られるので,パフォーマンスが上がらないときにはこの設定にするといい

Character Update〜環境マップにキャラクタをどのくらいの頻度で反映させるか
  シーン内に出現/配置している3Dオブジェクトを,環境マッピングにどのくらいの頻度でレンダリングするかという設定。設定パラメータの種類とその意味は前出の「Camera Update」とまったく同じだ。

Character Quality〜環境マップ解像度の設定
  環境マップにレンダリングする3Dオブジェクトの品質を設定するもの……というよりも,実は環境マップの解像度を設定するところで,

[最良][推奨] High
  Average
[最速] Low


の三つから選択できる。「Low」にするとかなり解像度が粗くなり,ジャギーも目立つようになる(下図参照)。できれば「High」に設定したい

「High」設定時の床の映り込み 「Low」設定時の床の映り込み。環境マップの解像度が低いためにジャギーが出てしまっている。テクスチャフィルタリングでもごまかしがきかないレベルのギザギザ感だ

次のページへ

(C) Core Design Limited, 2002-2003. Lara Croft, Tomb Raider and Core are resistered trademarks of Core Design, Ltd.