(57)【要約】【課題】３次元シーンにおける鏡面反射を、高速かつ好適に再現する。【解決手段】情報処理装置は、間接照明バッファよりも低い解像度を有する低解像度間接照明バッファと、生成する間接照明バッファの各画素に対応する３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報とを取得する。そして低解像度間接照明バッファを高解像度化することで間接照明バッファを生成する。このとき情報処理装置は、高解像度化により生成される間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる低解像度間接照明バッファの画素に対応するオブジェクトとの鏡面反射のローブの類似度に基づいて生成する。【選択図】図３
2014215720.tif 000002
【特許請求の範囲】
【請求項１】
３次元シーンを描画に使用する鏡面反射用の間接照明バッファを生成する情報処理装置であって、
前記間接照明バッファを描画する視点パラメータを決定する決定手段と、
前記間接照明バッファよりも低い解像度を有する低解像度間接照明バッファと、生成する前記間接照明バッファの各画素に対応する前記３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報とを取得する取得手段と、
前記取得手段により取得された前記低解像度間接照明バッファを高解像度化することで前記間接照明バッファを生成する生成手段と、を有し、
前記生成手段は、前記高解像度化により生成される前記間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる前記低解像度間接照明バッファの画素に対応するオブジェクトとの、前記決定手段により決定された視点パラメータと各オブジェクトの前記鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成する
ことを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記類似度に応じて複数の前記生成に用いる画素の画素値を重み付け加算することで、前記高解像度化により生成される前記間接照明バッファの画素の画素値を算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記生成手段はさらに、前記高解像度化により生成される前記間接照明バッファの画素の画素値を、該画素に対応するオブジェクトと前記生成に用いる画素に対応するオブジェクトの距離及び深度値に応じて、複数の前記生成に用いる画素の画素値を重み付け加算することで算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、異なる時間について生成された複数の前記低解像度間接照明バッファを取得し、
前記生成手段はさらに、前記生成に用いる画素が含まれる前記低解像度間接照明バッファが生成された時間に応じて複数の前記生成に用いる画素の画素値を重み付け加算することで、前記高解像度化により生成される前記間接照明バッファの画素の画素値を算出する
ことを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記鏡面反射のローブは、対象のオブジェクトの反射特性で規定される双方向反射分布関数により定義され、
前記類似度は、２つの画素に対応するオブジェクトについての双方向反射分布関数の内積で規定される
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記生成手段は、２つの画素に対応するオブジェクトについての双方向反射分布関数を近似した球面ガウス関数の内積を求めることで前記類似度を算出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
３次元シーンを描画した画面を生成する情報処理装置であって、
前記画面を描画する視点パラメータを決定する決定手段と、
前記決定手段により決定された視点パラメータに基づいて、前記画面の各画素に対応する前記３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報を取得する取得手段と、
前記取得手段により取得された前記反射特性及び前記鏡面反射方向の特定に用いる情報を用いて、前記視点パラメータに対応し、かつ前記画面よりも低い解像度を有する少なくとも鏡面反射用の低解像度間接照明バッファを生成する第１の生成手段と、
前記第１の生成手段により生成された前記低解像度間接照明バッファを高解像度化することで、前記画面と同一の解像度を有する鏡面反射用の間接照明バッファを生成する第２の生成手段と、
前記第２の生成手段により生成された前記間接照明バッファを使用し、前記視点パラメータについて前記３次元シーンを描画した前記画面を描画する描画手段と、を有し、
前記第２の生成手段は、前記高解像度化により生成される前記間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる前記低解像度間接照明バッファの画素に対応するオブジェクトとの、前記決定手段により決定された視点パラメータと各オブジェクトの前記鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成する
ことを特徴とする情報処理装置。
【請求項８】
前記第２の生成手段は、前記類似度に応じて複数の前記生成に用いる画素の画素値を重み付け加算することで、前記高解像度化により生成される前記間接照明バッファの画素の画素値を算出することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記第２の生成手段により生成された前記間接照明バッファのうち、生成に用いられた前記低解像度間接照明バッファの画素との前記類似度が所定の値以下である領域の画素について、前記反射特性及び前記鏡面反射方向の特定に用いる情報を用いて前記画面と同一の解像度で部分的に間接照明バッファを生成し、更新する更新手段をさらに有することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記描画手段は、少なくとも２段階の描画処理により前記画面を描画し、
前記取得手段は、前記描画手段の前段の描画処理において描画された、後段の描画処理において参照される所定のチャネルの中間バッファから前記反射特性及び前記鏡面反射方向の特定に用いる情報を取得し、
前記描画手段は、前記後段の描画処理において、前記間接照明バッファを使用して前記画面を描画する
ことを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
３次元シーンを描画に使用する鏡面反射用の間接照明バッファを生成する情報処理装置の制御方法であって、
前記情報処理装置の決定手段が、前記間接照明バッファを描画する視点パラメータを決定する決定工程と、
前記情報処理装置の取得手段が、前記間接照明バッファよりも低い解像度を有する低解像度間接照明バッファと、生成する前記間接照明バッファの各画素に対応する前記３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報とを取得する取得工程と、
前記情報処理装置の生成手段が、前記取得工程において取得された前記低解像度間接照明バッファを高解像度化することで前記間接照明バッファを生成する生成工程と、を有し、
前記生成手段は前記生成工程において、前記高解像度化により生成される前記間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる前記低解像度間接照明バッファの画素に対応するオブジェクトとの、前記決定工程において決定された視点パラメータと各オブジェクトの前記鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成する
ことを特徴とする情報処理装置の制御方法。
【請求項１２】
３次元シーンを描画した画面を生成する情報処理装置の制御方法であって、
前記情報処理装置の決定手段が、前記画面を描画する視点パラメータを決定する決定工程と、
前記情報処理装置の取得手段が、前記決定工程において決定された視点パラメータに基づいて、前記画面の各画素に対応する前記３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報を取得する取得工程と、
前記情報処理装置の第１の生成手段が、前記取得工程において取得された前記反射特性及び前記鏡面反射方向の特定に用いる情報を用いて、前記視点パラメータに対応し、かつ前記画面よりも低い解像度を有する少なくとも鏡面反射用の低解像度間接照明バッファを生成する第１の生成工程と、
前記情報処理装置の第２の生成手段が、前記第１の生成工程において生成された前記低解像度間接照明バッファを高解像度化することで、前記画面と同一の解像度を有する鏡面反射用の間接照明バッファを生成する第２の生成工程と、
前記情報処理装置の描画手段が、前記第２の生成工程において生成された前記間接照明バッファを使用し、前記視点パラメータについて前記３次元シーンを描画した前記画面を描画する描画工程と、を有し、
前記第２の生成手段は前記第２の生成工程において、前記高解像度化により生成される前記間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる前記低解像度間接照明バッファの画素に対応するオブジェクトとの、前記決定工程において決定された視点パラメータと各オブジェクトの前記鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成する
ことを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータを、請求項１乃至１０のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及び記録媒体に関し、特に３次元シーン描画に係る照明計算技術に関する。
【背景技術】
【０００２】
３次元ＣＧ（Three-Dimensional Computer Graphics）は、ゲームや映画に限らず、様々な分野において視覚化表現方法として用いられている。このような３次元ＣＧ生成の技術分野では、近年、より写実的な描写、あるいは上質な描画表現に近づけるために様々な手法が提案されている。
【０００３】
３次元ＣＧをより写実的な描写とするための表現手法として、大域照明（Global Illumination）による影響を反映させる手法がある。該手法では、１つの描画オブジェクトについて、定義された照明（光源）によって直接生じた陰影を描画するだけでなく、該光源から放出された光が他の描画オブジェクトによって反射されることで現れる間接照明も考慮して陰影を描画することで、よりリアリティ味のある描画表現を提供することができる。
【０００４】
一方で大域照明に係る処理は、複雑な光の伝搬を追跡するレイトレーシング手法等を用いるため、一般に計算量が多いことが知られている。このような大域照明をゲームのようなリアルタイムの画面描画が要求される場面で利用するために、様々な効率化手法が提案されている。効率化手法の１つに、所謂遅延レンダリング（Deferred Rendering）がある（特許文献１、非特許文献１）。該手法では、描画範囲に含まれる複数のオブジェクトの各々について照明計算を実行しながら描画するのではなく、前段の描画処理で照明計算を行わずに描画範囲全体について照明計算に用いるジオメトリ（G-Buffer）を描画する。そして、該ジオメトリを利用して最終的な出力画面に必要な照明計算のみを行った後に後段の描画処理を実行して最終出力画面を描画することで、不要な照明計算を排除して効率的に画面生成を行う。
【０００５】
また近年では、表示装置の高解像度化（表示領域の多画素化）に伴い、例えば家庭用のゲーム装置には、表示装置の画素数に対応した画面をリアルタイムに描画可能な性能が望まれる。つまり、大域照明に係る処理の計算量は描画する画面の画素数に比例するため、画素数が多くなるほど描画処理に要する時間が増大する。非特許文献２には、最終的な出力画面よりも低い解像度で大域照明演算を行うことで計算量を削減し、その後不足する画素をアップサンプリング処理において補間することで描画処理を効率化する方法を提案している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５１５５４６２号公報
【非特許文献】
【０００７】
【非特許文献１】オレス・シィシュコフツォフ（Oles Shishkovtsov）著、「スタルケルにおける遅延シェーディング （Deferred Shading in S.T.A.L.K.E.R.）」、ＧＰＵジェムス２（GPU Gems 2）,アディソン・ウェスレー（Addison-Wesley）、2005年、pp.143-166
【非特許文献２】ロベール・ヘルツォーク（Robert Herzog）、外３名著、「ＧＰＵにおける時空アップサンプリング（Spatio-temporal upsampling on the gpu）」、インタラクティブ３次元グラフィックス及びゲーム  ２０１０論文  エーシーエム・シーグラフ・シンポジウム（Proc. i3D 2010 : ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games）、2011年、p.91−98
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献２のように、低解像度で行った大域照明の演算結果（間接照明バッファ）をアップサンプリングする場合、補間により生成される画素（補間画素）の値は、演算結果を有する周囲の画素（周囲画素）を
・該周囲画素に描画されたオブジェクトの深度値
・該周囲画素に描画されたオブジェクト面の法線ベクトル
・該周囲画素と補間画素との距離
・該周囲画素がサンプリングされた時期
に応じて重み付け加算することで算出されている。
【０００９】
遅延レンダリングでは、後段の描画処理が行われる前に、G-Bufferの情報に基づいて間接照明バッファが生成される。具体的には、例えばG-Bufferとして出力された法線やPhong exponent等の反射パラメータの情報を考慮して大域照明演算を行うことで、拡散反射や鏡面反射用の間接照明バッファが生成される。非特許文献２では、これらの間接照明バッファを低解像度で生成した後、上述の重み付けパラメータに基づいて高解像度化することで、最終的な出力画面に使用する間接照明バッファを生成している。
【００１０】
しかしながら、法線ベクトルに応じて反射方向が規定される拡散反射と異なり、鏡面反射は視線方向に応じて反射方向が変化するものであるため、上述のような重み付けパラメータでは鏡面反射を好適に再現することができなかった。
【００１１】
本発明は、上述の問題点に鑑みてなされたものであり、３次元シーンにおける鏡面反射を、高速かつ好適に再現する情報処理装置、制御方法、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
前述の目的を達成するために、本発明の一態様に係る情報処理装置は、以下の構成を備えることを特徴とする。具体的には情報処理装置は、３次元シーンを描画に使用する鏡面反射用の間接照明バッファを生成する情報処理装置であって、間接照明バッファを描画する視点パラメータを決定する決定手段と、間接照明バッファよりも低い解像度を有する低解像度間接照明バッファと、生成する間接照明バッファの各画素に対応する３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報とを取得する取得手段と、取得手段により取得された低解像度間接照明バッファを高解像度化することで間接照明バッファを生成する生成手段と、を有し、生成手段は、高解像度化により生成される間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる低解像度間接照明バッファの画素に対応するオブジェクトとの、決定手段により決定された視点パラメータと各オブジェクトの鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成することを特徴とする。
【００１３】
前述の目的を達成するために、本発明の別の態様に係る情報処理装置は、以下の構成を備えることを特徴とする。具体的には情報処理装置は、３次元シーンを描画した画面を生成する情報処理装置であって、画面を描画する視点パラメータを決定する決定手段と、決定手段により決定された視点パラメータに基づいて、画面の各画素に対応する３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報を取得する取得手段と、取得手段により取得された反射特性及び鏡面反射方向の特定に用いる情報を用いて、視点パラメータに対応し、かつ画面よりも低い解像度を有する少なくとも鏡面反射用の低解像度間接照明バッファを生成する第１の生成手段と、第１の生成手段により生成された低解像度間接照明バッファを高解像度化することで、画面と同一の解像度を有する鏡面反射用の間接照明バッファを生成する第２の生成手段と、第２の生成手段により生成された間接照明バッファを使用し、視点パラメータについて３次元シーンを描画した画面を描画する描画手段と、を有し、第２の生成手段は、高解像度化により生成される間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる低解像度間接照明バッファの画素に対応するオブジェクトとの、決定手段により決定された視点パラメータと各オブジェクトの鏡面反射方向の特定に用いる情報とで規定される視線方向についての鏡面反射のローブの類似度に基づいて生成することを特徴とする。
【発明の効果】
【００１４】
このような構成により本発明によれば、３次元シーンにおける鏡面反射を、高速かつ好適に再現することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図２】本発明の実施形態に係るＰＣ１００において実行されるゲーム処理を例示したフローチャート
【図３】本発明の実施形態に係るＧＰＵ１０４が実行する鏡面反射用の間接照明バッファのアップサンプリング処理を例示したフローチャート
【図４】鏡面反射のローブを説明するための図
【図５】信用度の低いアップサンプリング処理が行われたと想定される個所を示した図
【発明を実施するための形態】
【００１６】
［実施形態］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、大域照明が適用されたゲーム画面を生成可能なＰＣに、本発明を適用した例を説明する。しかし、本発明は、鏡面反射用の間接照明バッファから、より高い解像度を有する間接照明バッファを生成することが可能な任意の機器に適用可能である。
【００１７】
《ＰＣ１００の構成》
図１は、本発明の実施形態に係るＰＣ１００の機能構成を示すブロック図である。
【００１８】
ＣＰＵ１０１は、ＰＣ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、ＲＯＭ１０２あるいは記録媒体１０６に格納された各ブロックの動作プログラムを読み出して実行する。
【００１９】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、ＰＣ１００が有する各ブロックの動作プログラムに加え、各ブロックの動作に必要な各種パラメータを格納する。ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データを記憶する格納領域としても用いられる。
【００２０】
ＧＰＵ１０４は、後述の表示部１０７に表示するゲーム画面の生成を行う。ＧＰＵ１０４は、ＣＰＵ１０１より描画命令及びゲーム画面の描画に用いるカメラの位置及び方向の情報（視点パラメータ）を受信すると、該描画命令に係る描画オブジェクトを記録媒体１０６から読み出し、内蔵する不図示のＧＰＵメモリに格納する。ＧＰＵ１０４は、描画オブジェクトをキャッシュメモリに展開した後、所定の演算を行って接続されたＶＲＡＭ１０５に描画することで、ゲーム画面を生成する。
【００２１】
なお、本実施形態では、リアルタイムにゲーム画面を生成して提供するゲームコンテンツの、ゲーム画面の描画時に行われる大域照明演算について説明する。上述したように、大域照明演算は計算量が多い処理であるため、本実施形態のＧＰＵ１０４は、ゲーム画面の生成に係る描画処理において、２段階の描画処理を含む遅延レンダリングを行い、計算量を低減する。
【００２２】
遅延レンダリングでは、描画オブジェクトごとに陰影処理（Shading）→描画の流れをとる所謂Forward Renderingとは異なり、前段の描画処理では陰影処理を行わずに、最終的に生成されるゲーム画面の全体を示すジオメトリについて所定のチャネルの中間バッファ（G-Buffer）を描画する。具体的には前段の描画処理では、ジオメトリについて間接照明（大域照明）や直接照明の演算、あるいは後段の描画処理に用いられるNormalバッファ、Diffuseバッファ、Specularバッファ、及びDepthバッファ等が描画される。またこの他に、照明演算に使用される、ゲーム画面の各画素に対応する描画オブジェクトの反射特性を示すバッファが生成される。反射特性は、例えばBlinn-Phong反射モデルのPhong exponent等の、描画オブジェクトの材質（マテリアル）等に応じて変化する、鏡面反射の鋭さを示すパラメータであってよい。なお、前段の描画処理で生成される各種中間バッファは、最終的に出力するゲーム画面と同一の解像度を有する。
【００２３】
また後段の描画処理では、中間バッファに基づいてジオメトリに必要な照明演算及びテクスチャの適用を行うことで、最終的な出力であるゲーム画面を生成する。このように、遅延レンダリングを実行することで、遮蔽により不要となる演算を排除し、ジオメトリについて必要最小限の処理でゲーム画面を生成することができる。
【００２４】
なお、本実施形態ではこのような２段階の描画処理によりゲーム画面を生成する遅延レンダリングを行うものとして説明するが、本発明の実施はこれに限られるものではない。即ち、本発明は演算量の低減のために少なくとも２段階の描画処理を行ってゲーム画面を生成する態様において適用されるものであってもよいし、上述したForward Renderingでゲーム画面を生成する態様において適用されるものであってもよい。また、前段の描画処理で生成する中間バッファは上述のバッファに限られるものではなく、他のチャネルのバッファが描画されてもよい。
【００２５】
記録媒体１０６は、例えばＨＤＤ等の、ＰＣ１００に着脱可能に接続される記録装置である。本実施形態では記録媒体１０６には、ゲームコンテンツの提供に係るゲーム処理のプログラムと、画面の描画処理において用いられる各描画オブジェクトのデータ（モデル、テクスチャ、反射特性の情報等）や、３次元シーンに配置される光源情報等が記録されているものとする。
【００２６】
表示部１０７は、例えばＬＣＤ等の表示装置である。表示部１０７は、ＰＣ１００と一体となって形成されていてもよいし、ＰＣ１００の外部に有線あるいは無線で接続されていてよい。
【００２７】
《ゲーム処理》
このような構成をもつ本実施形態のＰＣ１００において実行される、ゲームコンテンツに係るゲーム画面を生成して表示部１０７に表示するゲーム処理について、図２のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、ＣＰＵ１０１が、例えば記録媒体１０６に記憶されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本ゲーム処理は、例えばゲームコンテンツに係るアプリケーションが起動された際に開始され、１フレームごとに繰り返し実行されるものとして説明する。
【００２８】
Ｓ２０１で、ＣＰＵ１０１は、不図示のユーザインタフェースを介して入力されたユーザによる操作入力を反映し、ゲーム画面の生成に必要なゲーム進行に係る各種パラメータを変更する。ゲーム進行に係る各種パラメータには、ゲーム画面を生成する視点パラメータや３次元シーン内に存在するキャラクタ等の位置情報等を含む。
【００２９】
Ｓ２０２で、ＣＰＵ１０１は、Ｓ２０１において変更された視点パラメータについての３次元シーンの描画命令をＧＰＵ１０４に伝送する。
【００３０】
Ｓ２０３で、ＧＰＵ１０４は、描画命令に従って描画範囲に含まれる３次元シーン内の描画オブジェクトを特定し、対応するデータを用いて前段の描画処理を実行し、所定のチャネルの中間バッファ（G-Buffer）を描画する。本実施形態で描画される中間バッファは、上述したようにNormalバッファ、Diffuseバッファ、Specularバッファ、Depthバッファ、及びゲーム画面の各画素に対応する描画オブジェクトのPhong exponentを記録したバッファ（反射特性バッファ）であるものとする。なお、対応するデータは、例えば初めて描画される際にＧＰＵ１０４により記録媒体１０６から読み出され、ＧＰＵメモリに格納されるものとする。
【００３１】
Ｓ２０４で、ＧＰＵ１０４は、生成するゲーム画面よりも低い解像度を有する間接照明バッファを生成する。間接照明バッファは、ray tracing、voxel cone tracing等の大域照明演算を行う手法を用いて生成される。間接照明バッファは、上述したように反射の種類によってその特性が異なるため、本実施形態では拡散反射用及び鏡面反射用のそれぞれについて生成されるものとする。なお、本発明は鏡面反射用の間接照明バッファをアップサンプリングにより生成した場合の再現度の低下を改善するものであるため、以下の説明では鏡面反射用の間接照明バッファについて主に説明する。拡散反射用の間接照明バッファについては、従来のように法線ベクトル等に応じた重み付け加算によりアップサンプリングにおける画素補間が行われてよい。
【００３２】
Ｓ２０５で、ＧＰＵ１０４は、Ｓ２０４において生成した低解像度の間接照明バッファをアップサンプリングし、ゲーム画面と同一の解像度を有する間接照明バッファを生成するアップサンプリング処理を実行する。
【００３３】
〈アップサンプリング処理〉
ここで、本ステップで実行されるアップサンプリング処理のうち、鏡面反射用の間接照明バッファのアップサンプリング処理について、図３のフローチャートを用いて詳細を説明する。
【００３４】
Ｓ３０１で、ＧＰＵ１０４は、アップサンプリングにより生成される画素のうち、まだ画素値の算出が完了していない画素（対象画素）を選択する。
【００３５】
Ｓ３０２で、ＧＰＵ１０４は、低解像度の鏡面反射用の間接照明バッファ（低解像度間接照明バッファ）の画素から、対象画素の画素値の生成に参照する画素（参照画素）を特定する。参照画素は、例えば生成する間接照明バッファにおいて対象画素を中心とする所定の領域に含まれる画素のうち、低解像度間接照明バッファに対応画素が存在する画素であってよい。
【００３６】
Ｓ３０３で、ＧＰＵ１０４は、参照画素の各々について、対象画素との鏡面反射のローブの類似度に対応する重み係数を算出する。
【００３７】
反射のローブは、各画素に対応する描画オブジェクトの物体表面における反射特性を表す双方向反射分布関数（ＢＲＤＦ：Bidirectional Reflectance Distribution Function）により規定される。物体表面がランバート面のように一様に拡散される反射特性を示す場合はＢＲＤＦは定数となる。しかしながら、鏡面反射のように視点に依存して反射特性が変化する場合はＢＲＤＦはそれぞれ視線方向を考慮する必要がある。
【００３８】
ところで、ＢＲＤＦで規定されるローブの類似度を、２つの画素に対応するオブジェクト表面におけるＢＲＤＦの正規化した分布における内積として定義するものとすると、ＢＲＤＦの内積に必ずしも解析解があるとは限らないという問題がある。このため、本実施形態では内積やノルムの解析解が与えられている球面ガウス関数（spherical Gaussian）に近似可能なＢＲＤＦモデルを使用することでローブの類似度を算出する。特に、voxel cone tracingにより大域照明演算を行う場合、使用されるＢＲＤＦはガウス分布に近似可能であることが前提となっているため、本実施形態に記載の方法と親和性は高い。しかしながら、本発明の実施はこれに限られるものではなく、２つの画素に対応するオブジェクト表面における鏡面反射のローブの類似度を算出可能なものであれば実施可能である。即ち、本発明は、現存のＢＲＤＦの内積を得る近似手法が適用可能なケースに限られるものではなく、ローブの類似度を定量的に与える手法が適用可能なケースについて実施可能である。
【００３９】
以下、球面ガウス関数に近似可能なＢＲＤＦについて、鏡面反射のローブの類似度に対応する重み係数を与える重み関数の導出について説明する。
【００４０】
まず入射方向ωから入射し、視線方向ωoに反射される反射のＢＲＤＦ：ｆ（ωo, ω）は、入射方向と反射方向（視線方向）のhalfway vector：ωh及び法線ｎに関する分布関数を有する。このような分布関数のいくつかは、文献「All-Frequency Rendering of Dynamic, Spatially-Varying Reflectance」に記述されるように、
2014215720.tif 000003
として球面ガウス関数に近似して表現できる。さらに、該球面ガウス関数を球面ワーピングにより入射方向ωに関する分布に変換すると、
2014215720.tif 000004
となる。ここで、ωrは完全鏡面反射する方向であり、視線方向と法線を用いて
2014215720.tif 000005
として規定される。
【００４１】
本実施形態では、対象画素ｉ及び参照画素ｊについてのＢＲＤＦを
2014215720.tif 000006
と近似し、鏡面反射のローブの類似度を、正規化した分布におけるこれらの内積として規定し、これを重み関数として使用する。
【００４２】
球面ガウス関数は、
2014215720.tif 000007
で定義され、該式におけるξが図４に示すようなローブの軸ベクトル、λがマテリアルに依存するローブの鋭さを示し、μがローブの振幅を示している。球面ガウス関数の内積の解析解は
2014215720.tif 000008
として与えられ、該内積からノルムも
2014215720.tif 000009
として与えられる。
【００４３】
即ち、対象画素ｉ及び参照画素ｊについての重み関数ｗi,jは、これらの式より
2014215720.tif 000010
として導出される（０≦ｗi,j≦１）。
【００４４】
つまり、対象画素及び参照画素について、反射特性バッファのPhong exponentを変換して得られた鋭さλと、視点パラメータと各画素に対応するオブジェクト面の３次元的位置及びその法線ベクトルにより規定される完全鏡面反射する方向とから、鏡面反射のローブの類似度である重み関数を算出することができる。なお、対応するオブジェクト面の３次元的位置は、視点パラメータとDepthバッファ、該面の法線ベクトルはNormalバッファから取得できる。なお、対応するオブジェクト面の３次元的位置は視点パラメータとDepthバッファから算出される必要はなく、例えば３次元的位置を示す別のバッファをG-Bufferとして描画し、それを利用するものとしてもよい。
【００４５】
ＧＰＵ１０４は、該重み関数に従って各参照画素について重み係数を算出し、処理をＳ３０４に移す。
【００４６】
Ｓ３０４で、ＧＰＵ１０４は、Ｓ３０３において算出した各参照画素についての重み係数を用いて、アップサンプリングにより生成される対象画素の画素値を算出する。具体的には対象画素の画素値Ｓiは、各参照画素の画素値Ｓjを用いて
2014215720.tif 000011
として算出できる。即ち、本アップサンプリング処理では、鏡面反射のローブの類似度に応じて対象画素への参照画素の反映度を変更することができるため、法線ベクトルの類似度に応じて補間を行う従来手法に比べて、より好適な鏡面反射用の間接照明バッファを生成することができる。なお、本実施形態では発明の理解のために、Bilateral upsamplingの補間演算のうちの、鏡面反射のローブの類似度に基づく重み付け演算のみを説明するが、この他にも上述したような各画素に対応する描画オブジェクトの距離及び深度に応じた重み付け演算を考慮してもよい。
【００４７】
Ｓ３０５で、ＧＰＵ１０４は、アップサンプリングにより生成される画素のうち、まだ画素値の算出が完了していない画素が存在するか否かを判断する。ＧＰＵ１０４は、まだ画素値の算出が完了していない画素が存在すると判断した場合は処理をＳ３０１に戻し、存在しないと判断した場合は本アップサンプリング処理を完了し、ゲーム処理のＳ２０６に処理を移す。
【００４８】
なお、本実施形態のアップサンプリング処理では説明を簡単にするため、対象画素を順に選択して画素値の算出を行うものとして説明したが、本アップサンプリング処理はＧＰＵ１０４の複数の演算コアにより並列実行されてもよいことは容易に理解されよう。
【００４９】
Ｓ２０６で、ＧＰＵ１０４は、G-Bufferを参照し、必要なデカルテクスチャの適用、直接照明演算処理を行い、ゲーム画面を描画する（後段の描画処理の完了）。
【００５０】
Ｓ２０７で、ＣＰＵ１０１は、ＧＰＵ１０４によりＶＲＡＭ１０５に描画されたゲーム画面を表示部１０７に伝送して表示させ、本ゲーム処理を完了する。
【００５１】
このように、本実施形態のゲーム処理では、鏡面反射用の間接照明バッファの生成を
１．低い解像度で大域照明演算を行うことで演算量を低下させ、
２．アップサンプリング時に各描画オブジェクトの反射特性に応じた鏡面反射のローブ
の類似度に応じて補間する
ことができるため、好適に鏡面反射を再現した間接照明バッファを得ることができる。
【００５２】
なお、対象画素の生成に参照された参照画素についての重み係数が、いずれも非類似と判断する所定の値以下である場合は、補間により対象画素の画素値を算出することが好ましくないと考えられる。例えば図５のように各画素の生成に用いられた参照画素の重み係数の総和を示した分布において、該総和が所定の値以下となる領域（図において黒に近い色味）については、好適に対応するオブジェクト面における鏡面反射を再現できておらず、信用度が低いと考えられる。このため、低解像度ではなくゲーム画面の解像度で、あるいは低解像度間接照明バッファを生成した解像度よりも高い解像度で追加サンプリング（大域照明演算）を行うことで、より正しい値に更新してもよい。なお、図５の例ではアップサンプリングにより生成される画素についての参照画素は同数であるものとし、重み係数の総和を示した分布で追加サンプリングの有無を判断するものとして説明したが、判断に使用する分布の生成基準がこれに限られないことは容易に理解されよう。
【００５３】
このように鏡面反射のローブの類似度を示した重み係数を用いて追加サンプリングの有無を判断することで、より正確な鏡面反射用の間接照明バッファを得ることができる。即ち、アップサンプリング処理では補間処理を行うため、従来の法線ベクトルを使用する手法のように適切な重み付けが行われなかった場合には、得られる間接照明バッファに不整合が生じる。このようにして生じた不整合には、検出が容易なエイリアシングやフリッカリングも含まれるが、検出が困難あるいは不可能なボケも含まれる。つまり、ボケが生じた、従来手法では不整合を検出して追加サンプリングする判断に至らなかった領域についても、上述の重み係数の分布を用いることで検出し、画質を向上させることができる。
【００５４】
また、本実施形態では１つの低解像度間接照明バッファから、ゲーム画面の描画に用いる間接照明バッファをアップサンプリングにより生成するものとして説明したが、参照される低解像度間接照明バッファは１つに限定される必要はない。即ち、ラウンドロビン式に各々サンプリング位置を変更しながら複数のフレームにおいてサンプリングされた低解像度間接照明バッファをアップサンプリングに使用してもよい。この場合、サンプリングした時期に応じて適用される重み係数を異ならせる（例えば生成されたフレームが古いほど係数を小さく）ことで、視点移動や光源移動を考慮しながら重み付け演算に使用することができる。なお、このような時間方向の低解像度間接照明バッファを使用する場合、複数の低解像度間接照明バッファを保持しておく必要はない。つまり、例えばゲーム画面と同一解像度を有するバッファを用意しておき、アップサンプリング処理後に現フレームについて生成した低解像度間接照明バッファを用いて対応画素を更新したものを次フレームの処理で参照するようにしてよい。
【００５５】
以上説明したように、本実施形態の情報処理装置は、３次元シーンにおける鏡面反射を、高速かつ好適に再現することができる。具体的には情報処理装置は、間接照明バッファよりも低い解像度を有する低解像度間接照明バッファと、生成する間接照明バッファの各画素に対応する３次元シーン内のオブジェクトの反射特性及び該オブジェクトの位置における鏡面反射方向の特定に用いる情報とを取得する。そして低解像度間接照明バッファを高解像度化することで間接照明バッファを生成する。このとき情報処理装置は、高解像度化により生成される間接照明バッファの画素を、少なくとも、該画素に対応するオブジェクトと該画素の生成に用いる低解像度間接照明バッファの画素に対応するオブジェクトとの鏡面反射のローブの類似度に基づいて生成する。
【００５６】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る情報処理装置は、コンピュータを情報処理装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【図１】
2014215720.tif 000012
【図２】
2014215720.tif 000013
【図３】
2014215720.tif 000014
【図４】
2014215720.tif 000015
【図５】
2014215720.tif 000016