(57)【要約】【課題】インポータンスの分布に応じて好適なワーピング処理を行う。【解決手段】情報処理装置は、３次元シーンの描画に使用するマップの生成に係る投影において、３次元シーンの描画対象となる範囲における重要度の分布を解析する。そして、得られた重要度の分布について主成分分析を行い、該分布の固有ベクトルを取得し、分布の固有ベクトルに基づいて描画対象となる範囲の各部分領域に割り当てるマップの画素数を決定し、マップを生成する。情報処理装置は、分布の固有ベクトルが所定の条件を満たす場合に、該固有ベクトルで規定される方向が予め定められた方向となるように重要度の分布を回転させ、回転後の分布に基づいて各部分領域に割り当てる画素数を決定する。【選択図】図３
2015153144.tif 000002
【特許請求の範囲】
【請求項１】
３次元シーンの描画に使用するマップを生成する情報処理装置であって、
前記マップの生成に係る投影において、前記３次元シーンの描画対象となる範囲における重要度の分布を解析する解析手段と、
前記解析手段により得られた前記重要度の分布について主成分分析を行い、該分布の固有ベクトルを取得する取得手段と、
前記重要度の分布及び前記取得手段により取得された前記分布の固有ベクトルに基づいて、前記描画対象となる範囲の各部分領域に割り当てる前記マップの画素数を決定する決定手段と、
前記決定手段による決定に基づいて前記マップを生成する生成手段と、を有し、
前記決定手段は、前記分布の固有ベクトルが所定の条件を満たす場合に、該固有ベクトルで規定される方向が予め定められた方向となるように前記重要度の分布を回転させ、回転後の分布に基づいて前記各部分領域に割り当てる画素数を決定する
ことを特徴とする情報処理装置。
【請求項２】
前記決定手段は、重要度が高い部分領域ほど多くの画素数を割り当てることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、主成分分析を行うことで前記重要度の分布の共分散行列を取得し、該共分散行列を固有値分解することにより前記分布の固有ベクトルを取得することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記分布の固有ベクトルに係る最小の固有値に対する最大の固有値の比が閾値を超える場合に、前記重要度の分布の回転を行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記決定手段は、前記固有ベクトルで規定される方向と前記予め定められた方向とがなす角が閾値に満たない場合に、前記重要度の分布の回転を行わないことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記予め定められた方向は、前記マップにおける水平方向及び垂直方向であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記マップは、シャドウマップ、反射シャドウマップ、あるいはレイバンドルバッファを含むことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
３次元シーンの描画に使用するマップを生成する生成方法であって、
前記マップの生成に係る投影において、前記３次元シーンの描画対象となる範囲における重要度の分布を解析する解析工程と、
前記解析工程において得られた前記重要度の分布について主成分分析を行い、該分布の固有ベクトルを取得する取得工程と、
前記重要度の分布及び前記取得工程において取得された前記分布の固有ベクトルに基づいて、前記描画対象となる範囲の各部分領域に割り当てる前記マップの画素数を決定する決定工程と、
前記決定工程における決定に基づいて前記マップを生成する生成工程と、を有し、
前記決定工程において、前記分布の固有ベクトルが所定の条件を満たす場合に、該固有ベクトルで規定される方向が予め定められた方向となるように前記重要度の分布が回転され、回転後の分布に基づいて前記各部分領域に割り当てる画素数が決定される
ことを特徴とする生成方法。
【請求項９】
１以上のコンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、生成方法、プログラム及び記録媒体に関し、特に３次元シーンの描画技術に関する。
【背景技術】
【０００２】
３次元ＣＧ（Three-Dimensional Computer Graphics）は、ゲームや映画に限らず、様々な分野において視覚化表現方法として用いられている。このような３次元ＣＧに係る画像生成の技術分野では、近年、より写実的な描写、あるいは上質な描画表現に近づけるために様々な手法が提案されている。
【０００３】
３次元ＣＧにおける描画表現の１つに、配置されたオブジェクトに光が当たった際に生じる影を描画するものがある。オブジェクトによって生じる影を描画するための代表的な方法には、例えばシャドウマッピング（shadow mapping）法がある。シャドウマッピング法では、まず影を発生させる光源からの投影について、描画対象となるフィールドの深度マップ（シャドウマップ：shadow map）を生成しておく。そして生成する画像の各ピクセルに影が生じるか否かを、該ピクセルのオブジェクトと光源との距離が、対応する光路について記録したシャドウマップの画素値（深度値）を上回るか否かにより判断し、影の描画の有無を制御する。即ち、シャドウマッピング法では、光源の対応する位置からあるいは対応する方向に放出した光線が最初にあたる面（フラグメント）までの距離をシャドウマップの各画素が示しており、光線の光路において該距離を超えた位置に存在するフラグメントには影を描画するものと簡易的に判断することができる。
【０００４】
ところで、シャドウマッピング法を用いて描画される影の品質は、生成されるシャドウマップの解像度に左右される。例えば、シャドウマップにおいて同数の画素でカバーされる２つのオブジェクトが存在する場合を考える。このとき、描画する視点から遠い位置に配置されたオブジェクトにより視点から遠い面に生じる影は、生成される画像においても占有する画素数が少ないため、品質は問題となりにくい。一方で、描画する視点に近い位置に配置されたオブジェクトにより視点から近い面に生じる影は、生成される画像において占有する画素数が多くなる。このとき、画像内の影が描画される画素数に比べてシャドウマップにおける対象オブジェクトの画素数が少ない場合は、シャドウマップの１つの画素に基づいて画像の複数の画素に生じた影が描画されることになる。即ち、影にエイリアシングが発生するため、生成された画像では影の品質劣化が生じた印象を観察者に与えうる。
【０００５】
影の品質を改善するためにはシャドウマップの解像度を増加させる方法が考えられるが、シャドウマップの生成に係る演算量の増加やシャドウマップの格納に使用されるメモリ領域が増大するため現実的ではない。このため、生成に係る演算量やデータ量の増加を抑えつつ、高品位な影を描画可能なシャドウマップを生成する様々な提案がなされている（非特許文献１、非特許文献２）。
【０００６】
非特許文献２には、描画を行う視点に関連して光源からの投影におけるフィールドの各領域のインポータンス（重要度）を解析し、インポータンスに応じてシャドウマップにおける該領域に割り当てる光路数を拡大縮小するワーピング手法が提案されている。非特許文献２によれば、生成するシャドウマップの解像度は変更せずにインポータンスの高い局所領域に対してシャドウマップの多くの画素を割り当てるように制御するため、演算量やデータ量の増加を抑えつつ、視点に近い面に生じる影におけるエイリアスの発生を低減することができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ランディマ・フェルナンド（Randima Fernando）、外３名著、「適応的シャドウマップ（Adaptive Shadow Maps）」、SIGGRAPH 2001 Paper、2001年、pp.387-390
【非特許文献２】ポール・ローゼン（Paul Rosen）著、「高速な適応的シャドウマップのための直線的なテクスチャワーピング（Rectilinear Texture Warping for Fast Adaptive Shadow Mapping）」、Interactive 3D Graphics and Games 2012、2012年、pp.151-158
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献２の手法では、フィールドの各領域のインポータンスをインポータンスマップ（importance map）として生成し、インポータンスマップの水平方向及び垂直方向の各々についてインポータンスの分布を解析してマップ内のインポータンスの高い領域を特定している。従って、非特許文献２の手法を用いることで、図６（ａ）に示されるような、局所的にインポータンスが高い領域がインポータンスマップ内に存在する場合には好適にワーピング処理を行うことができる。
【０００９】
一方で、図６（ｂ）に示されるようにインポータンスの高い領域が、水平方向及び垂直方向のいずれとも異なる方向にのみ広がりを有して分布するような場合、非特許文献２のように水平方向及び垂直方向の各々についてインポータンスの分布を解析したとしても好適にワーピング処理を行うことができない。即ち、図６（ｂ）のようにインポータンスの高い領域が分布する場合、水平方向及び垂直方向においてインポータンスは一様な分布を示す。従って、非特許文献２の手法では全域にインポータンスの高い領域が分布していると判断することになり、結果としてシャドウマップにおいてインポータンスの高い領域への割り当て領域の拡大が行われず、影の品質を向上させることができないことがある。
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、インポータンスの分布に応じて好適なワーピング処理を行うことが可能な情報処理装置、生成方法、プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明の情報処理装置は、以下の構成を備えることを特徴とする。具体的には情報処理装置は、３次元シーンの描画に使用するマップを生成する情報処理装置であって、マップの生成に係る投影において、３次元シーンの描画対象となる範囲における重要度の分布を解析する解析手段と、解析手段により得られた重要度の分布について主成分分析を行い、該分布の固有ベクトルを取得する取得手段と、重要度の分布及び取得手段により取得された分布の固有ベクトルに基づいて、描画対象となる範囲の各部分領域に割り当てるマップの画素数を決定する決定手段と、決定手段による決定に基づいてマップを生成する生成手段と、を有し、決定手段は、分布の固有ベクトルが所定の条件を満たす場合に、該固有ベクトルで規定される方向が予め定められた方向となるように重要度の分布を回転させ、回転後の分布に基づいて各部分領域に割り当てる画素数を決定することを特徴とする。
【発明の効果】
【００１２】
このような構成により本発明によれば、インポータンスの分布に応じて好適なワーピング処理を行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図２】本発明の実施形態１に係るＰＣ１００で実行されるシャドウマップ生成処理を例示したフローチャート
【図３】本発明の実施形態１に係るＰＣ１００で実行される回転角決定処理を例示したフローチャート
【図４】本発明の変形例に係る、タイリング処理を行う場合の各タイルにおける回転を例示した図
【図５】本発明の実施形態２に係るＰＣ１００で実行されるシャドウマップ生成処理を例示したフローチャート
【図６】従来技術の説明に係るインポータンスの分布を例示した図
【発明を実施するための形態】
【００１４】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。以下に説明する一実施形態は、情報処理装置の一例としての、３次元シーンの描画に用いる所定の光源に係るシャドウマップを生成可能なＰＣに、本発明を適用した例を説明する。しかし、本発明は、描画対象の３次元シーンのインポータンス解析により、描画に用いる所定のマップを生成することが可能な任意の機器に適用可能である。
【００１５】
《ＰＣ１００の構成》
図１は、本発明の実施形態に係るＰＣ１００の機能構成を示すブロック図である。
【００１６】
ＣＰＵ１０１は、ＰＣ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、ＲＯＭ１０２あるいは記録媒体１０６に格納された各ブロックの動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより各ブロックの動作を制御する。
【００１７】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリ等の記録媒体である。ＲＯＭ１０２は、ＰＣ１００が有する各ブロックの動作プログラムに加え、各ブロックの動作において必要となるパラメータを記憶する。ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を記憶する格納領域としても用いられる。
【００１８】
ＧＰＵ１０４は、後述のシャドウマップ生成処理に係る３次元シーンの描画処理を行う。具体的にはＧＰＵ１０４は、例えば後述の記録媒体１０６に記録された描画オブジェクトに係るモデルデータを読み出し、不図示のＧＰＵメモリに展開する。そしてＧＰＵ１０４は、ＣＰＵ１０１から提供される配置情報に応じてそれらのモデルデータを処理し、シャドウマップの生成対象である３次元シーンに係る画像を例えばＶＲＡＭ１０５に構成する。本実施形態ではＶＲＡＭ１０５は、シャドウマップ生成処理においてシャドウマップを構築するための領域として用いられるものとする。またＶＲＡＭ１０５は、１つの光源に係るシャドウマップ用のインポータンス解析において生成される、インポータンスマップの格納領域としても用いられる。
【００１９】
記録媒体１０６は、例えばＨＤＤ等のＰＣ１００に着脱可能に接続された記録媒体である。本実施形態では記録媒体１０６は、シャドウマップ生成処理に係る３次元シーンを構成する描画オブジェクトや配置情報等のデータ、及び該処理の動作を規定したプログラム等が記録される。また記録媒体１０６には、シャドウマップの生成に係る、描画対象の３次元シーンに配置される光源の配置や属性等の光源パラメータが記録される。
【００２０】
《シャドウマップ生成処理》
このような構成をもつ本実施形態のＰＣ１００のシャドウマップ生成処理について、図２のフローチャートを用いて具体的な処理を説明する。本シャドウマップ生成処理は、例えば配置情報等が決定した３次元シーンの１つの光源について、シャドウマップの生成要求がなされた際に開始されるものとして説明する。より具体的には、３次元シーンに対して描画を行う視点が決定され、該視点に係る画像（出力画像）の描画において使用するシャドウマップの生成要求がなされた際に開始されるものとして説明する。
【００２１】
また、以下の説明では説明を簡単にするために３次元シーンに定義された光源の属性は平行光源であるものとして説明する。しかしながら、本発明の実施において光源の属性は平行光源に限らず、点光源、スポットライト等の他の属性の光源であってもよいことは容易に理解されよう。
【００２２】
Ｓ２０１で、ＧＰＵ１０４は、シャドウマップを生成する光源（対象光源）の投影におけるインポータンスの分布を解析する。本実施形態ではＧＰＵ１０４は、解析したインポータンスの分布を所定の画素数を有するインポータンスマップとして生成し、ＶＲＡＭ１０５に格納する。インポータンスマップは、平行光源である対象光源の光線方向の投影についてレンダリングされる２次元データであり、選択された光線方向において３次元シーン全体あるいは少なくとも描画範囲の全体を含むように定義されるものとする。インポータンスマップは、各画素が、対象光源の投影における対応する領域のインポータンスの値を格納した２次元データとなる。
【００２３】
ここで、対象光源の投影における、３次元シーンの各部分領域のインポータンスを定量化する方法について説明する。本実施形態のシャドウマップ生成処理では、非特許文献２に記載されたインポータンス関数を使用して、各領域のインポータンスを定量化する。非特許文献２では光源の投影におけるインポータンス解析に用いる関数（インポータンス関数）として、
・Desired View Function
・Distance to Eye Function
・Surface Normal Function
・Shadow Edge Function
の３種の関数を定義しており、これらの関数により得られた値の積算により各部分領域のインポータンスを算出している。具体的にはDesired View Functionでは、出力画像に描画される範囲（描画範囲）に含まれている部分領域には１を、描画範囲に含まれない部分領域には０を割り当てる。ここで、描画範囲に含まれるか否かの判断がなされる部分領域は、光源からの光路上における最初のフラグメント（キャスタ）ではなく、キャスタにより影が生じるフラグメント（レシーバ）が対象となる。またDistance to Eye Functionでは、出力画像について決定した視点と各部分領域との距離に反比例した値を割り当てる。Surface Normal Functionは、視線ベクトルとフラグメントの法線ベクトルとの内積を割り当てる。即ち、Distance to Eye FunctionとSurface Normal Functionの積は、出力画像におけるピクセル当たりのレシーバの長さに比例した値であり、インポータンスも該長さに比例した値が割り当てられる。最後にShadow Edge Functionでは、影のエッジ部分（境界）が現れる部分領域に大きい値を割り当てる。つまり、影が投影された際に明部と暗部との境界が現れる部分領域に対して大きい値が割り当てられる。
【００２４】
従って、本ステップではＧＰＵ１０４は、対象光源の光源パラメータと出力画像に係る視点パラメータとをＣＰＵ１０１より受信し、上記のインポータンス関数を使用してインポータンスマップを生成する。
【００２５】
なお、本実施形態ではインポータンスの定量化を上記の４つの関数を用いて行うものとして説明するが、本発明の実施においてインポータンスの定量化はこれに限られるものではない。非特許文献２に記載されるように、対象光源の投影について解析する方法（Forward Analysis）だけでなく、出力画像に係る視点について解析する方法（Backward Analysis）、及びそれらの組み合わせ（Hybrid Analysis）が解析シーンに応じて選択されてよく、解析方法に応じて適宜インポータンスを定量化する関数を選択してもよい。またインポータンスの定量化は非特許文献２に記載のインポータンス関数を用いる方法に限られるものではなく、他の関数を用いてインポータンスを定量化してもよいことは容易に理解されよう。
【００２６】
Ｓ２０２で、ＶＲＡＭ１０５は、生成したインポータンスマップを後のステップにおける演算を考慮してミップマップ化し、ＶＲＡＭ１０５に格納する。
【００２７】
Ｓ２０３で、ＧＰＵ１０４は、解析により得られたインポータンスマップにおけるインポータンスの分布について、ワーピング処理に適した回転角を決定する回転角決定処理を実行する。
【００２８】
〈回転角決定処理〉
ここで、本実施形態のシャドウマップ生成処理において実行される回転角決定処理について、図３のフローチャートを用いて詳細を説明する。本実施形態ではワーピング処理に適した回転角の決定は、主成分分析（ＰＣＡ：Principal Component Analysis）を用いてインポータンスの分布を分析することにより行う。また、本実施形態では主成分分析の処理を高速に実行するために、ミップマップを使用してＧＰＵ１０４が本回転角決定処理を行う。
【００２９】
Ｓ３０１で、ＧＰＵ１０４は、対象光源の投影におけるインポータンスマップについて、２次元座標にインポータンスの重み付けを行った重み付き位置マップｐを生成し、ＶＲＡＭ１０５に格納する。具体的にはＧＰＵ１０４は、各座標を
2015153144.tif 000003
として算出し、重み付き位置マップｐ（ｘ，ｙ）を生成する。ここで、Ｉ（ｘ，ｙ）はインポータンスマップの座標（ｘ，ｙ）におけるインポータンス（画素値）を示している。
【００３０】
Ｓ３０２で、ＧＰＵ１０４は、重み付き位置マップをミップマップ化してＶＲＡＭ１０５に格納する。
【００３１】
Ｓ３０３で、ＧＰＵ１０４は、対象光源の投影におけるインポータンスマップの共分散行列を求める。共分散行列は
2015153144.tif 000004
のように表すことができ、該行列の各成分はインポータンスマップの位置の加重平均、即ち
2015153144.tif 000005
により算出することができる。ここで、インポータンスマップの位置の加重平均は、インポータンスマップ及び重み付き位置マップをミップマップ化している場合、最上層（１×１画素）の画素値をインポータンスマップあるいは重み付き位置マップの最下層の画素数倍した値から容易に算出することができる。即ち、ミップマップの最上層の画素値は最下層の画素群の画素値の平均値となっているため、本ステップにおいて共分散行列は簡素な演算により高速に求めることができる。
【００３２】
Ｓ３０４で、ＧＰＵ１０４は、Ｓ３０３において求めた共分散行列を固有値分解して、インポータンスの分布の主成分である固有ベクトルを取得する。
【００３３】
Ｓ３０５で、ＧＰＵ１０４は、取得したインポータンスの分布の固有ベクトルのうち、大きい方の固有値を有する固有ベクトルの偏角を回転角として出力する。即ち、ＧＰＵ１０４は、インポータンスマップの水平軸と大きい方の固有値を有する固有ベクトルとがなす角の正負を逆転した角度を回転角として出力する。
【００３４】
このように、本実施形態の回転角決定処理では、主成分分析によりインポータンスの分布の固有ベクトルを取得し、該固有ベクトルに基づいてワーピング処理が好適な結果となる、即ちシャドウマップによる影描画が好適な品質となる回転角を決定する。
【００３５】
回転角が決定した後、ＧＰＵ１０４はＳ２０４で、回転角決定処理により決定した回転角だけインポータンスマップを回転する。そしてＳ２０５で、ＧＰＵ１０４は、回転後のインポータンスマップの水平方向及び垂直方向の各々についてインポータンスの分布を解析し、各方向のインポータンスの分布に基づいてワーピングマップを生成する。ワーピングマップの生成は、非特許文献２の方法を用いて生成してよい。具体的にはＧＰＵ１０４は、各方向のインポータンスの分布を、該方向の同一座標を有する画素値から最大値を抽出することで取得する。そしてＧＰＵ１０４は、得られた各方向のインポータンスの分布にブラーを適用した後、各方向のワーピングマップを非特許文献２に記載のワーピングに係る演算式を用いて生成すればよい。
【００３６】
Ｓ２０６で、ＧＰＵ１０４は、ワーピングマップに基づいて、対象光源の投影におけるシャドウマップを生成し、ＶＲＡＭ１０５に格納して本シャドウマップ生成処理を完了する。本ステップで生成されるシャドウマップでは、インポータンスの高い領域にシャドウマップの多くの画素が割り当てられる。即ち、本ステップで生成されるシャドウマップは、対象光源の投影においてワーピング処理を行わずに生成するシャドウマップに比べ、後者のシャドウマップの各画素に対応する各部分領域に割り当てられる画素数がインポータンスに応じて異なっている。つまり、部分領域に割り当てられるシャドウマップの画素数がワーピング処理によって増減される。
【００３７】
なお、本実施形態のシャドウマップ生成処理により生成されたシャドウマップは、回転角決定処理により回転された状態で生成されているため、３次元シーンの描画処理において適用する際には、該回転の影響を解消するように処理をする必要がある。しかしながら、本発明の実施において生成されるシャドウマップはこれに限られるものではなく、適用すべき領域との関係が規定されるのであれば、回転を解消した状態でシャドウマップが生成されるものであってもよい。
【００３８】
また本実施形態では主成分分析を行うために生成したインポータンスマップを回転し、回転後のインポータンスマップに基づいて水平方向及び垂直方向各々のインポータンスの分布を解析するものとして説明したが、本発明の実施はこれに限られるものではない。例えば、より高品質な影を描画するために、対象光源の投影における上向き方向を回転角決定処理により決定した回転角に基づいて変更し、再度生成したインポータンスマップに基づいて各方向のインポータンスの分布を解析するものであってもよい。
【００３９】
また、本実施形態では回転角決定処理において決定される回転角は、大きい方の固有値を有する固有ベクトルの角度の偏角として決定するものとして説明したが、本発明の実施はこれに限られるものではない。即ち、インポータンスの分布の固有ベクトルが、正負問わず水平方向あるいは垂直方向となるように回転することで、インポータンスが図６（ｂ）のような分布である場合でも好適なシャドウマップを生成可能なワーピング処理を実行することができる。このように、固有ベクトルが水平方向あるいは垂直方向となるように回転した場合は描画する影が最良の画質となるが、本発明の実施において、インポータンスの分布の回転態様はこれに限られるものではない。即ち、対象光源の投影におけるインポータンスの分布の固有ベクトルが水平方向あるいは垂直方向とみなせる方向となるようにインポータンスの分布を回転することによっても、描画する影の画質は向上させることができる。
【００４０】
また、本実施形態ではインポータンス解析によってシャドウマップを生成する例について説明したが、本発明の実施において生成するマップはこれに限られるものではない。本発明は、例えばインポータンス解析に基づくRay-bundle Tracing手法によるレイバンドルバッファ（Ray-bundle Buffer）の生成や、トバイアス・リッチェル（Tobias Ritschel）らの「Making Imperfect Shadow Maps View-Adaptive: High-Quality Global Illumination in Large Dynamic Scenes」に記載されるような双方向反射シャドウマップ（Bidirectional Reflective Shadow Maps）の生成等に用いられてもよい。即ち、本発明は、上述したように描画対象の３次元シーンのインポータンス解析に基づく、該３次元シーンの描画に使用するマップの生成において適用可能である。なお、ライトマップを生成する場合、インポータンスはライトマップが適用されるフラグメントにおけるテクセル密度（フラグメントを有する描画オブジェクトの面に適用されるライトマップの、３次元シーン内に定義された系における単位面積当たりの画素数）を用いればよい。
【００４１】
以上説明したように、本実施形態の情報処理装置は、インポータンスの分布に応じて好適なワーピング処理を行うことができる。具体的には情報処理装置は、３次元シーンの描画に使用するマップの生成に係る投影において、３次元シーンの描画対象となる範囲における重要度の分布を解析する。そして、得られた重要度の分布について主成分分析を行い、該分布の固有ベクトルを取得し、分布の固有ベクトルに基づいて描画対象となる範囲の各部分領域に割り当てるマップの画素数を決定し、マップを生成する。情報処理装置は、分布の固有ベクトルが所定の条件を満たす場合に、該固有ベクトルで規定される方向が予め定められた方向となるように重要度の分布を回転させ、回転後の分布に基づいて各部分領域に割り当てる画素数を決定する。
【００４２】
これにより、生成されたマップを３次元シーンの描画に用いることで、描画された画像の品質を向上させることができる。
【００４３】
［変形例］
上述した実施形態１では対象光源の投影について、全範囲のインポータンスの分布を解析することにより好適なシャドウマップを生成するインポータンスマップの回転角を決定する方法について説明したが、本発明の実施はこれに限られるものではない。本発明は、例えば徳吉らの「Adaptive Ray-bundle Tracing with Memory Usage Prediction: Efficient Global Illumination in Large Scenes」に示されるような、シーンの解析範囲を領域分割（タイリング）して行う手法においても適用可能である。即ち、図４に示されるように各タイルについてインポータンス解析を行い、タイルごとに適応的に回転させてワーピング処理を行ってレイバンドルバッファを生成するようにしてもよい。
【００４４】
［実施形態２］
上述した実施形態１及び変形例では、インポータンスの分布を回転することで好適にワーピング処理を行うことができる例について説明した。本実施形態では、インポータンスの分布に応じて回転の有無を判断しながらシャドウマップを生成する方法について説明する。なお、本実施形態の説明においては、上述した実施形態１と同様の構成を有するＰＣ１００に本発明を適用したものとして説明する。
【００４５】
《シャドウマップ生成処理》
以下、本実施形態のＰＣ１００において実行されるシャドウマップ生成処理について、図５を用いて詳細を説明する。本実施形態のシャドウマップ生成処理は、例えば配置情報等が決定した３次元シーンの１つの光源について、シャドウマップの生成要求がなされた際に開始されるものとして説明する。なお、本実施形態のシャドウマップ生成処理の説明では、実施形態１のシャドウマップ生成処理と同様の処理を行うステップについては同一の参照符号を付して説明を省略し、本実施形態に特徴的な処理の説明に留める。また、以下の説明では説明を簡単にするために、実施形態１と同様、３次元シーンに定義された光源の属性は平行光源であるものとして説明する。
【００４６】
Ｓ２０２においてインポータンスマップのミップマップを生成した後、ＧＰＵ１０４はＳ５０１で、対象光源の投影におけるインポータンスマップについて、２次元座標にインポータンスの重み付けを行った重み付き位置マップを生成し、ＶＲＡＭ１０５に格納する。
【００４７】
Ｓ５０２で、ＧＰＵ１０４は、重み付き位置マップをミップマップ化してＶＲＡＭ１０５に格納する。
【００４８】
Ｓ５０３で、ＧＰＵ１０４は、対象光源の投影におけるインポータンスマップの共分散行列を求める。
【００４９】
Ｓ５０４で、ＧＰＵ１０４は、Ｓ５０３において求めた共分散行列を固有値分解して、インポータンスの分布の主成分である固有ベクトルを取得する。なお、Ｓ５０１乃至Ｓ５０４の処理は、上述した実施形態１における回転角決定処理のＳ３０１乃至Ｓ３０４の処理と同様であってよい。
【００５０】
Ｓ５０５で、ＧＰＵ１０４は、シャドウマップの生成においてワーピング処理を行うか否かを判断する。具体的にはＧＰＵ１０４は、取得した固有ベクトルの固有値のうち、小さい方の値が所定の閾値以下であるか否かにより本ステップの判断を行う。ここで、本ステップで使用される所定の閾値は、インポータンスの分布が広範に拡がっているか否かを判断するために定められた値である。即ち、本ステップにおいてＧＰＵ１０４は、小さい方の固有値を有する固有ベクトルが閾値を上回る場合は、インポータンスの分布が局所的な偏りを有するのではなく広範に拡がっていると判断する。分布が広範である場合は、生成するシャドウマップの画素数の関係でワーピング処理によりインポータンスの高い部分領域に対して割り当て可能な画素数が制限されるため、回転の有無に依らず、描画する影の品質の改善効果が低いと考えられる。故に、本実施形態ではＧＰＵ１０４は、小さい方の固有値が所定の閾値を上回る場合にはワーピング処理を行わないものと判断する。従って、ＧＰＵ１０４は、シャドウマップの生成においてワーピング処理を行うと判断した場合は処理をＳ５０７に移し、行わないと判断した場合は処理をＳ５０６に移す。
【００５１】
Ｓ５０６で、ＧＰＵ１０４は、ワーピング処理を行わず対象光源の投影におけるシャドウマップを生成し、ＶＲＡＭ１０５に格納して本シャドウマップ生成処理を完了する。
【００５２】
一方、Ｓ５０５でワーピング処理を行うものと判断した場合、ＧＰＵ１０４はＳ５０７で、小さい方の固有値に対する大きい方の固有値の比率が所定の閾値を上回るか否かにより回転を行うか否かの判断を行う。ここで、本ステップで使用される所定の閾値は、インポータンスの分布が固有ベクトルのいずれかの方向に偏っているか否かを判断するために定められた値である。即ち、小さい方の固有値と大きい方の固有値との差が小さい場合は比率が閾値以下となり、分布が２つの固有ベクトルの方向に同様に拡がっていることになる。つまり、このような場合は分布を回転したとしてもワーピング処理の結果に変化が生じにくいと考えられる。また小さい方の固有値と大きい方の固有値との差が大きい場合は比率が閾値を上回り、固有値が大きい方の固有ベクトルの方向に分布が偏っていることになる。つまり、このような場合は分布を回転することで少なくとも水平方向及び垂直方向のいずれかの方向において、ワーピング処理によってインポータンスの高い部分領域に多くの画素を割り当てることができるため、描画する影の品質を向上させることができると考えられる。従って、ＧＰＵ１０４は、回転を行うと判断した場合は処理をＳ５０８に移す。またＧＰＵ１０４は、回転を行わないと判断した場合は処理をＳ２０５に移し、回転を行っていないインポータンスマップについてワーピングマップを生成する。
【００５３】
Ｓ５０８で、ＧＰＵ１０４は、さらに固有ベクトルとインポータンスマップの水平軸あるいは垂直軸とがなす角の大きさが所定の閾値以上であるか否かを判断する。ここで、本ステップにおける所定の閾値は、例えば１５度等、固有ベクトルがインポータンスマップの水平軸あるいは垂直軸と同様の方向を示すか否かを判断するために定められた値である。より詳しくは、固有ベクトルにより規定される直交する２つの直線を、インポータンスマップの水平軸と垂直軸とにより規定される直交する２つの直線と同様とみなすか否かを判断するために設けられた角度（絶対値）の閾値である。即ち、ＧＰＵ１０４は、固有ベクトルにより規定される直交座標系が、インポータンスマップのｘｙ座標系に近いか否かを判断する。固有ベクトルにより規定される直交座標系がインポータンスマップのｘｙ座標系に近いと判断する場合、回転によるインポータンスの分布の変化が小さいと考えられるため、本実施形態では回転を行わないものと判断する。従って、ＧＰＵ１０４は、固有ベクトルとインポータンスマップの水平軸あるいは垂直軸とがなす角の大きさが所定の閾値以上であると判断した場合は処理をＳ２０３に移して回転角決定処理を行う。このとき、既にインポータンスの分布の固有ベクトルは得られているため、ＧＰＵ１０４は回転角決定処理のＳ３０５の処理のみを行えばよい。また、ＧＰＵ１０４はＳ５０８で、固有ベクトルとインポータンスマップの水平軸あるいは垂直軸とがなす角の大きさが所定の閾値にみたないと判断した場合は処理をＳ２０５に移し、回転を行っていないインポータンスマップについてワーピングマップを生成する。
【００５４】
以上説明したように、本実施形態のＰＣ１００では、インポータンスの分布に応じて回転の有無を判断しながら、好適な品質の影を描画可能なシャドウマップを適応的に生成することができる。
【００５５】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る情報処理装置は、コンピュータを情報処理装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【図１】
2015153144.tif 000006
【図２】
2015153144.tif 000007
【図３】
2015153144.tif 000008
【図４】
2015153144.tif 000009
【図５】
2015153144.tif 000010
【図６】
2015153144.tif 000011