
連載
【西川善司】3D立体視談義その4〜同じゲームでも3Dテレビの立体視プレイ時だとクオリティが下がる?
西川善司 / グラフィックス技術と大画面とMAZDA RX-7を愛するジャーナリスト
![]() |
(善)後不覚 |
3D立体視対応テレビ(以下,便宜的に「3Dテレビ」と表記)が続々とリリースされ,ソニーはPlayStation 3(以下,PS3)における立体視ゲーム環境を実現するためのファームウェアをリリースしました。さらにMicrosoftもXbox 360で立体視ゲームへ対応すると表明。これらの影響もあって,現地時間2010年6月15日から米ロサンゼルス市で開催されていたE3 2010も,立体視ゲームに関係した展示が目立っていた印象です。
しかし,立体視対応に関しては未調整な部分も多かったようで,展示されているタイトルによっては,立体視を有効化するとプレイしにくかったり,映像クオリティが下がったりしているタイトルもありました。
今回は,この辺りの話題を取り上げたいと思います。
![]() |
ゲームをどうやって立体視に対応させるか
なにやら難しいイメージがつきまとう立体視ですが,一般的なリアルタイム3Dグラフィックスを利用した3Dゲームを立体視に対応させるのは,意外に簡単です。
これまで,1視点から視錐台(しすいだい,3Dグラフィックスにおいて描画対象となる空間のこと。視点から四角錐状に視野は広がるが,その一部を切り取ったものになる)をスクリーンに投影してレンダリングしていた3Dグラフィックスを,もう1視点,6〜7cm離してレンダリングするだけです。そう,人間の左右の目の間隔ぶんだけ離してレンダリングしてやればいいんですね。
![]() |
アクティブシャッター機構付きの立体視メガネをかけて立体視を行うタイプなら,メガネ側の液晶シャッターの開閉タイミングに合わせて“左右の目用”となるレンダリング結果を表示していくだけで立体視が実現されます。
![]() |
細かいことですが,「左右の目に向けた映像をそれぞれレンダリングする」場合は,ゲーム内時間における同時刻の映像を左右分レンダリングしなければなりません。「左目用の映像をレンダリングして,AI処理や物理シミュレーションといったゲームロジックを進めて(≒時間をΔtだけ進めて)から,右目用の映像をレンダリングする」というような,ゲームループを一周させるごとに左右の目それぞれに向けた映像を交互にレンダリングするような手法だと,左右の目で異なる映像を見てしまうことになり,正しい立体像を知覚できません。そればかりか,例えば3Dテレビ側における立体視映像生成時のフレームレート変換が介入したときに,激しいクロストーク(=右目と左目から見る別々の映像が一部重なってしまう現象)に見舞われてしまうこともあります。
さて,ゲームの立体視化にあたって一番の関心事となるのが,単位時間あたりにレンダリングするフレーム数,すなわちフレームレート(fps,frame per second)です。
非立体視時(平面表示時。以下便宜的に「2D表示時」と表記)に毎秒60コマ(60fps)のゲームがあったとして,これを立体視に対応させようとしたとしましょう。
3Dテレビで1080pの60Hz(60fps)の立体視を行えないことは前回説明したとおりです。規格上の制限により,60fpsのフレームレートを確保したまま3Dテレビで立体視を行うためには,解像度が720pになってしまいます。
また,2D表示時に60fpsですから,そのまま立体視に対応させる場合は,左右の目それぞれに向けて60fpsを維持しなければなりません。単位時間あたり2倍のレンダリングフレーム数が要求されるわけですね。“2D表示時換算”で120fpsのレンダリングができなければ,「2D表示時のプレイ感覚そのままの立体視」は実現できないことになります。
クオリティを犠牲にしてフレームレートを確保する
立体視化アプローチ
PS3やXbox 360は――Wiiは立体視にもハイビジョンにも対応していないので,ここでは触れません――ハードウェアの表示能力的には,720pで60fpsの立体視出力が可能です。低負荷なシーンに限定すれば,720pの120fpsレンダリングを行って,720p/60Hz(左右とも60fpsの720p表示)の立体視出力すら可能だと思われます。
しかし,一般的なPS3やXbox 360のゲームでは,「720pないしは1080pのレンダリング解像度で30fpsや60fpsのレンダリングを行う」ことで,GPUがその性能限界に達してしまっているケースがほとんど。PS3やXbox 360のGPUが,解像度もフレームレートも犠牲にせず,2D表示時のグラフィックスを立体視に対応させることは,事実上不可能なのです。
余談ですが,前回も簡単に触れたように,この点で有利なのはPCゲームです。なにしろ,最新のハイエンドGPUではNVIDIA SLIやATI CrossFireXといったマルチGPUソリューションが用意されているため,手軽にGPU性能を強化できます。グラフィックスクオリティや解像度,フレームレートを維持したまま立体視に対応させようとして,難しかったらグラフィックスカードを増設してマルチGPU動作させてしまえばいい。
付け加えるなら,NVIDIAの「3D Vision」なら,Dual-Link DVI接続を前提とするため,3Dテレビでは実現できないとされる,1080p/左右60fpsの立体視も余裕で実現できます。
閑話休題。話をPS3やXbox 360に戻しつつ,ここまでをまとめると,
- PS3やXbox 360では,720p/左右60fpsの立体視ソリューションが事実上標準となる
- 2D表示時に30〜60fps表示することを前提に設計され,すでにGPU性能を限界まで引き出しているPS3やXbox 360のタイトルをどうやって立体視に対応させるかが課題
ということになります。
2.に関して,どのような選択肢があるのか考えてみることにしますが,実のところ「取るべき道」は2つあります。
1つは,2Dプレイ時のフレームレート維持を優先しつつ,立体視に対応させる道。2D表示時60fpsのゲームならば,立体視時に720p/左右60fpsレンダリングすることを優先させるソリューション,ということになります。
2D表示時の60fpsでGPU負荷がギリギリですから,そのままでは2倍のフレームレートを実現することはとうてい無理です。そこで,この選択肢では,1フレームあたりのレンダリングコスト(≒グラフィックス処理の負荷)を下げるアプローチをとることになります。
この方法の最も基本的かつ直接的な実現方法は「レンダリング解像度を下げる」アプローチです。もともと1280×720ドットでレンダリングしていたとすれば,レンダリングコストが半分になる720×640ドットなどでレンダリングして,スケーラ−で1280×720ドットに拡大して出力してしまうわけです(※この例では長方画素レンダリングになるので縦横“非”等倍拡大になります)。
このアプローチではCPU処理部分やジオメトリ負荷に変化がないため,場合によっては大きな効果が見込めない可能性もありますが,ピクセルシェーダヘビーなグラフィックスの場合は,大きな負荷低減に結びつきます。ちなみに,PS3専用タイトルで立体視対応の「KILLZONE 3」では,この手法が取り入れられているそうです。
本手法の弱点は,(低解像度でレンダリングしているのだから当然ですけど)解像感が下がるところにあります。ただ,動きの激しいアクションゲームでは気にならないかもしれません。
![]() |
また,「立体視対応時にはLOD(Level of Detail)処理を2D表示時よりも数段階アグレッシブに効かせる」というのも,対策としてはアリです。当該シーンに登場する背景物を減らしたり,ポリゴン数を減らしたキャラクターモデルを利用したり,負荷の高いシェーダを剥がしたりといった,遠距離オブジェクトの描画に適用するLOD処理を近距離から適用してしまうわけですね。
この方法だと,ピクセルレンダリング負荷だけでなく,CPU負荷やジオメトリ負荷も低減できる一方,レンダリング解像度は変えていないため,解像感を維持できます。ただ,ビジュアル的に地味に見えたり,やり過ぎると前世代のゲームみたいに見えてしまったりということはあるかもしれません。
このように,立体視にあたって,解像度やLODといった部分で映像のクオリティを犠牲にする代わりに,フレームレートを維持するというアプローチは,フレームレートがゲーム性を大きく左右する格闘ゲームやFPS,音楽ゲームなどで有効な手法といえるでしょう。
フレームレートを犠牲にしてクオリティを維持する
立体視化アプローチ
もう1つは,フレームレートの確保をあきらめ,1フレームあたりのビジュアルクオリティを維持するソリューションです。
つまり,2D表示時に720p/60fpsだったゲームを立体視表示させるにあたって,720p/左右60fpsをあきらめて,720p/左右30fpsにするということです。3Dテレビの立体視規格には720p/30Hzの規格があるので,この設定でも出力できます。
このアプローチの場合,2D表示時には両目で60fpsの映像を見ることになるのに対し,立体視時は左右の目それぞれが30fpsで見ることになるため,視覚上のフレームレートは半分になってしまいます。
格闘ゲームやFPS,音楽ゲームといったアクションタイトルにこのアプローチは適さないでしょうが,ターン性ストラテジーやいわゆるJRPG,シミュレーションといった,フレームレートがそれほど重要でないタイトルであれば,実害は少ないでしょう。
ところで,2D表示時ですでに30fps止まりのゲームはどうしたらよいのでしょうか。グラフィックスリッチなタイトルだと,2D表示時の30fpsを前提にしてグラフィックスを設計していくことが珍しくないため,結構なタイトルがこのケースに当てはまります。とくに,1080pのレンダリングにこだわるタイトルでは,この傾向が強いといえます。
しかし,こうした“30fpsゲーム”で,クオリティを維持しつつ立体視を実現しようとすると,左右15fpsになってしまうわけで,個人差はあるにしても,かなりの多くの人がカクカク感を覚えてしまうことでしょう。なのでこの場合は,1つめのアプローチとして挙げた「フレームレートを維持しつつの立体視化」を選択すべきでしょうね。
![]() |
まとめ
というわけで,今世代の据え置き型ゲーム機は,もともと立体視を前提に設計されていたりしないため,立体視対応には何らかの犠牲を払う必要があることが分かってもらえたかと思います。
PCはともかく,PS3やXbox 360では,ハードウェア要求性能的に,立体視はかなり無理があると感じているのですが,とはいえ,せっかく3Dテレビの販売が本格化してきているので,なんとか,この流れだけは消さないように,個人的には応援していきたいと思っています。
ただ,過度な期待は禁物,男はキン持つといったあたりは心構えとしてあったほうがいいかと思いますね。
さて,4回にわたって続けてきた立体視談義。実は,まだまだやり足りないほどネタがあるのですが,いい加減,読者もうんざりし始めるかなと思うので,次回は話題を変えたいと思います。
■■西川善司■■ テクニカルジャーナリスト。4Gamerの連載「3Dゲームエクスタシー」をはじめ,オンライン/オフラインのさまざまなメディアに寄稿したり,バカゲーを好んでプレイしたり,大画面にときめいたり,観切れないほどBlu-rayビデオを買ったり,オヤジギャグを炸裂させたりして毎日を過ごしている。 |
- この記事のURL: