(57)【特許請求の範囲】
【請求項１】
コンピュータに、シーンの大域照明に係り定められた複数の仮想光源の空間分布及び各仮想光源のパラメータを示す二次元マップに基づき行われる輝度演算であって、該複数の仮想光源をより少ない所定数の合成仮想光源に近似して行われる輝度演算について、前記所定数の合成仮想光源それぞれのパラメータを決定する処理を行わせるプログラムであって、
前記プログラムは、
前記二次元マップに対応して生成された、前記シーンのインポータンスマップであって、要求された領域のインポータンスの総和が得られるデータ構造を有するインポータンスマップを取得する処理と、
前記所定数の合成仮想光源の各々について、インポータンスの総和が所定値となる合成領域を前記インポータンスマップにおいて設定する処理と、
前記所定数の合成仮想光源の各々について、設定された前記合成領域に対応する前記二次元マップの領域に基づいて該合成仮想光源のパラメータを決定する処理と、を有し、
各合成仮想光源に設定された前記合成領域に係るインポータンスの総和を前記所定数の合成仮想光源について合計した値が、前記インポータンスマップ全域のインポータンスの総和と対応するプログラム。
【請求項２】
各合成光源に設定された前記合成領域に係るインポータンスの総和が、前記インポータンスマップ全域のインポータンスの総和を前記所定数で除した値に対応する請求項１に記載のプログラム。
【請求項３】
前記二次元マップも前記データ構造を有し、
各合成仮想光源のパラメータは、該合成仮想光源について設定された前記合成領域に対応する前記二次元マップの領域のパラメータの総和に基づいて決定される請求項１または２に記載のプログラム。
【請求項４】
各合成仮想光源が、該合成仮想光源につき設定された前記合成領域の大きさと、該合成領域に対応する前記二次元マップの領域のパラメータの総和に基づく値に基づいて定められる、該合成仮想光源を定義する位置を中心とした仮想球光源である請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
パラメータが決定された前記所定数の合成仮想光源に基づき、前記シーンの大域照明に係る輝度演算処理を、前記コンピュータにさらに実行させる請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記データ構造が、空間分解能が異なる複数のレベルを有するミップマップであり、
ミップマップの各画素値が、最も空間分解能が高いレベルのミップマップの、該画素に対応する領域の画素値の総和に基づく請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記二次元マップが、リフレクティブシャドウマップまたは環境マップである請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
請求項１乃至７のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
シーンの大域照明に係り定められた複数の仮想光源の空間分布及び各仮想光源のパラメータを示す二次元マップに基づき行われる輝度演算であって、該複数の仮想光源をより少ない所定数の合成仮想光源に近似して行われる輝度演算を実行する輝度演算装置であって、
前記二次元マップに対応して生成された、前記シーンのインポータンスマップであって、要求された領域のインポータンスの総和が得られるデータ構造を有するインポータンスマップを取得する取得手段と、
前記所定数の合成仮想光源の各々について、インポータンスの総和が所定値となる合成領域を前記インポータンスマップにおいて設定する設定手段と、
前記所定数の合成仮想光源の各々について、設定された前記合成領域に対応する前記二次元マップの領域に基づいて該合成仮想光源のパラメータを決定する決定手段と、を有し、
各合成仮想光源に設定された前記合成領域に係るインポータンスの総和を前記所定数の合成仮想光源について合計した値が、前記インポータンスマップ全域のインポータンスの総和と対応する輝度演算装置。
【請求項１０】
シーンの大域照明に係り定められた複数の仮想光源の空間分布及び各仮想光源のパラメータを示す二次元マップに基づき行われる輝度演算であって、該複数の仮想光源をより少ない所定数の合成仮想光源に近似して行われる輝度演算を実行する輝度演算方法であって、
前記二次元マップに対応して生成された、前記シーンのインポータンスマップであって、要求された領域のインポータンスの総和が得られるデータ構造を有するインポータンスマップを取得する取得工程と、
前記所定数の合成仮想光源の各々について、インポータンスの総和が所定値となる合成領域を前記インポータンスマップにおいて設定する設定工程と、
前記所定数の合成仮想光源の各々について、設定された前記合成領域に対応する前記二次元マップの領域に基づいて該合成仮想光源のパラメータを決定する決定工程と、を有し、
各合成仮想光源に設定された前記合成領域に係るインポータンスの総和を前記所定数の合成仮想光源について合計した値が、前記インポータンスマップ全域のインポータンスの総和と対応する輝度演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、記録媒体、輝度演算装置及び輝度演算方法に関し、特に輝度演算に係る演算量を低減する技術に関する。
【背景技術】
【０００２】
近年、グラフィックス描画の分野では、より写実的なグラフィックス表現を行うために大域照明（グローバルイルミネーション）の適用を行うことがなされている。グローバルイルミネーションに係る演算は、１つの点について様々な光源からの光路を考慮して演算を行うため、その再現精度に応じて演算量が増加し得る。特にリアルタイムレンダリングの分野では時間的制約が伴うため、グローバルイルミネーションについては演算量を低減する様々な手法が提案されている。
【０００３】
１つの手法として、光源が照らしているオブジェクトの各点について定められた位置と双方向反射分布関数（ＢＲＤＦ：Bidirectional Reflectance Distribution Function）のパラメータを含むリフレクティブシャドウマップ（ＲＳＭ：Reflective Shadow Map）を用いる手法がある。ＲＳＭを用いる手法では、ＲＳＭの各画素がシーンに定義された光源に起因する間接照明（仮想点光源（ＶＰＬ：Virtual Point Light））の各種パラメータを示しており、該画素を参照することで、演算対象点の放射輝度への各ＶＰＬの寄与を算出することができる。
【０００４】
一方で、ＲＳＭの全ての画素をＶＰＬとして考慮する（放射輝度の演算において全ＶＰＬの寄与を総和する）ことは、寄与度が低いＶＰＬについても演算を行うことになるため、通常はランダムサンプリングを行って近似解を得る方式が採用される。即ち、演算対象の物体表面上のある点ｘについて、視点への方向ωに係る放射輝度Ｌ（ｘ，ω）を求めるレンダリング方程式
0006619598.tif 000002
（ここで、Ｌin（ｘ，ω'）は入射放射輝度、ｆとｎは物体表面のＢＲＤＦと法線）
をＲＳＭの分解能レベルに限定したとしても演算量が多くなり得るため、ＶＰＬのランダムサンプリングを行って加重平均を行うモンテカルロ積分が採用される。
【０００５】
非特許文献１には、ＲＳＭに基づく二次元の確率密度関数（ＰＤＦ：Probability Density Function）を表すインポータンスマップ（確率密度はインポータンスを正規化したもの）を定義し、ｋ平均（k-means）法を用いて該マップを所定数のクラスタに分類（インポータンスが高いほど細かく分類）し、各クラスタに対応する領域のＶＰＬを解析的に放射輝度を演算可能な１つの仮想光源に近似することで、ＲＳＭの分解能を低減し、放射輝度の演算量を低減する手法が開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】ローマン・プラツキン（Roman Prutkin）、外２名著、「リアルタイムグローバルイルミネーションに係るリフレクティブシャドウマップのクラスタリング（Reflective shadow map clustering for real-time global illumination）」、Eurographics 2012 Short Papers、pp.9-12、２０１２年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１に記載のｋ平均法は各画素について、各クラスタとの距離の算出の処理を行うため一般に演算量が多い。ｋ平均法を用いて１つの画像に含まれる画素をクラスタリングする処理は、一般には画素とクラスタとの距離尺度として画素間の距離のみを使用し、図４のようにオーバーラップや間隙を有することなく、画像内の画素をボロノイ図状に分類することができる。非特許文献１では、このようなｋ平均法について異なる尺度を導入して演算の効率化は行っているが、やはりインポータンスマップの画素数と分類するクラスタ数とに応じた演算量が必要であり、演算を高速化しにくい態様であった。
【０００８】
本発明の少なくとも１つの実施形態は、上述の問題点に鑑みてなされたものであり、輝度演算に係る演算量を低減するプログラム、記録媒体、輝度演算装置及び輝度演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前述の目的を達成するために、本発明の少なくとも１つの実施形態に係るプログラムは、コンピュータに、シーンの大域照明に係り定められた複数の仮想光源の空間分布及び各仮想光源のパラメータを示す二次元マップに基づき行われる輝度演算であって、該複数の仮想光源をより少ない所定数の合成仮想光源に近似して行われる輝度演算について、所定数の合成仮想光源それぞれのパラメータを決定する処理を行わせるプログラムであって、プログラムは、二次元マップに対応して生成された、シーンのインポータンスマップであって、要求された領域のインポータンスの総和が得られるデータ構造を有するインポータンスマップを取得する処理と、所定数の合成仮想光源の各々について、インポータンスの総和が所定値となる合成領域をインポータンスマップにおいて設定する処理と、所定数の合成仮想光源の各々について、設定された合成領域に対応する二次元マップの領域に基づいて該合成仮想光源のパラメータを決定する処理と、を有し、各合成仮想光源に設定された合成領域に係るインポータンスの総和を所定数の合成仮想光源について合計した値が、インポータンスマップ全域のインポータンスの総和と対応する。
【発明の効果】
【００１０】
このような構成により本発明の少なくとも１つの実施形態によれば、輝度演算に係る演算量を低減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図２】本発明の実施形態に係るＰＣ１００において実行される合成仮想光源生成処理を例示したフローチャート
【図３】本発明の実施形態に係るＰＣ１００において実行される輝度演算処理を例示したフローチャート
【図４】ｋ平均法を用いた仮想光源のクラスタリングを説明するための図
【図５】本発明の実施形態に係る仮想光源のクラスタリングを説明するための図
【図６】本発明の実施形態に係る仮想光源のクラスタリングを説明するための別の図
【発明を実施するための形態】
【００１２】
［実施形態］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、輝度演算装置の一例としての、リアルタイムグローバルイルミネーションを適用した画面を描画可能なＰＣに、本発明を適用した例を説明する。しかし、本発明は、描画機能を有さずとも放射輝度の演算を行うことが可能な任意の機器に適用可能である。
【００１３】
《ＰＣ１００の構成》
図１は、本発明の実施形態に係るＰＣ１００の機能構成を示すブロック図である。
【００１４】
制御部１０１は、例えばＣＰＵ等であり、ＰＣ１００が有する各ブロックの動作を制御する。制御部１０１は、記憶媒体１０２に記憶されている各ブロックの動作プログラムを読み出し、メモリ１０３に展開して実行することにより各ブロックの動作を制御する。
【００１５】
記憶媒体１０２は、例えば書き換え可能なＲＯＭやＨＤＤ、あるいは所定の光学ドライブに装填されることにより読み取り可能になる光学メディア等の着脱可能な記録媒体を含む、恒久的にデータを保持可能に構成された不揮発性の記憶装置である。記憶媒体１０２は、ＰＣ１００が有する各ブロックの動作プログラムに加え、各ブロックの動作において必要なパラメータ、及び大域照明演算を伴うアプリケーションデータやプログラム等を格納する。
【００１６】
メモリ１０３は、例えばＲＡＭ等の揮発性の記憶装置である。メモリ１０３は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域として用いられる。
【００１７】
描画部１０４は、例えばＧＰＵ等のゲーム画面に係る描画処理を行う描画装置である。描画部１０４は、ゲームに係る処理の結果生成された描画命令に応じてゲーム画面の描画を行う。また、ＧＰＵは複数処理の並行演算処理能力に長けているため、描画部１０４は制御部１０１、クラスタリング部１０５、輝度演算部１０６が実行する処理を代替して行ってもよい。また描画部１０４は、描画対象のシーンに係るインポータンスマップやＲＳＭ（または環境マップ）の生成も行う。インポータンス（確率密度に比例）は、例えば輝度の高さ、描画対象点との距離等、どのような基準に基づいて定められるものであってもよい。なお、以下の説明において、特に輝度演算における重要度の側面で言及する際には「インポータンス」、輝度演算において考慮される寄与度の側面で言及する際には「確率密度」を主に用いて説明するが、両者は同義で用いられている文言として理解されてよい。
【００１８】
クラスタリング部１０５は、シーンに定義される複数の仮想光源（ＶＰＬ）をクラスタリングし、後述する輝度演算処理において演算の対象となる、予め定められた数の光源を生成する処理を行う。本実施形態の輝度演算処理では、合成仮想光源生成処理後の光源、即ちクラスタ数の光源のみを演算対象（サンプリング対象）として寄与を考慮する。換言すれば、輝度演算処理においてサンプリング対象となるクラスタについては、該クラスタ内に定義された全ＶＰＬの輝度を表現し得るよう、クラスタごとのサイズ、該クラスタ内のＶＰＬの放射輝度の総和に応じたパラメータを用いて、各クラスタ内の複数のＶＰＬが１つの仮想光源として近似される。本実施形態で行われる輝度演算処理では、シーン内の光源の情報（各種パラメータ）は上述したようなＲＳＭや環境マップ等、画像ベースで取得される。
【００１９】
輝度演算部１０６は、後述する輝度演算処理を実行し、描画部１０４により描画されるゲーム画面において、該画面内に配置される各オブジェクトの輝度を画素単位で求める。即ち、輝度演算部１０６は、クラスタリングの結果得られたクラスタごとに生成された光源（合成仮想光源）からの寄与を加算することで各画素の輝度を演算する。
【００２０】
表示制御部１０７は、輝度演算部１０６により描画されたゲーム画面を、ＰＣ１００に接続された表示装置に所定の頻度（フレームレート）で出力する表示制御を行う。表示装置は、ＰＣ１００に外部接続するものであってもよいし、ＰＣ１００と同一の筐体に内蔵されるものであってもよい。
【００２１】
操作入力部１０８は、例えばアナログスティックやボタン、キーボード、マウス、タッチ検出センサ等の、ＰＣ１００が有する操作入力を行うためのユーザインタフェースである。操作入力部１０８は、なされた操作入力を検出すると該操作入力を識別するための情報を制御部１０１に伝送する。本実施形態のＰＣ１００では、操作入力部１０８により受け付けられた操作入力に応じて、表示出力される画面の描画内容が変化し得るため、毎フレームの画面描画に際し、操作入力に応じた各種処理がなされる。
【００２２】
《解決手法概要》
以下、上述の課題を解決するために、輝度演算処理に際し、寄与を考慮する光源数を低減しつつ、好適な輝度表現がなされる合成仮想光源の生成を行うクラスタリング手法について説明する。本手法では、クラスタリングにおいては演算量低減のためにｋ平均法は用いず、合成仮想光源のパラメータ取得も効率化するためにクラスタ内のＶＰＬのパラメータの平均から求める。
【００２３】
〈ＦＩＳ：Filtered Importance Sampling〉
ところで、輝度演算に係るモンテカルロ積分における分散を低減するために、Krivanekらが提案（Jaroslav Krivanek、外１名著、"Real-time shading with filtered importance sampling"、Eurographics Symposium on Rendering 2008、Volume 27 Number 4、pp.1147-1154、2008年）するＦＩＳ（Filtered Importance Sampling）がある。
【００２４】
Krivanekらが基にしているインポータンスサンプリングは、演算対称点の反射方向の分布（ＢＲＤＦ）に従って確率密度関数（ＰＤＦ）を定義し、これに基づきサンプリングを行う方向を決定している。具体的には、確率密度の高い方向に対しては密なサンプリングを行い、確率密度が低い方向に対しては疎なサンプリングを行う。Krivanekらの手法では、更にサンプリング用に設定したサンプリング方向の確率密度に従って、環境マップ（天球をマッピングした画像）からパラメータ取得が行われる。このとき環境マップは予めミップマップ化されており、サンプリング方向の確率密度に対応するミップレベルの環境マップから、サンプリング方向の領域に係る画素の値が光源のパラメータとして取得される。即ち、Krivanekらの手法では環境マップが予めフィルタリング（ミップマップ化）されており、サンプリング時には確率密度に応じた面積（確率密度が高いほど重みが高いため、面積が小さくなる）の領域に相当するミップレベルの画素（該領域の平均に基づく画素値を有する）からパラメータを取得できるため、演算量の低減が実現される。
【００２５】
より詳しくは、通常のインポータンスに応じたサンプリング（インポータンスサンプリング）では、レンダリング方程式は
0006619598.tif 000003
で近似される（ここで、ωiはサンプリング方向のベクトル、ｆはＢＲＤＦとコサイン項の積、Ｌeは環境マップから取得される放射輝度、ｐはＰＤＦ）ため、
0006619598.tif 000004
であることが理想的となる。しかしながら、上記の式を満たすＰＤＦを効率的に計算するのは難しい。そこで
0006619598.tif 000005
という簡単なＰＤＦを用いることが多い。しかしながら、画像で与えられる全周囲の環境マップから輝度を取得する場合、環境マップのダイナミックレンジが広くなり得るため上記条件が成立しがたく、ノイズの要因となる。
【００２６】
一方で、ＦＩＳではミップレベルｌiが考慮されるため、レンダリング方程式は
0006619598.tif 000006
で近似される。なお、ｌiは最大のミップレベル（最下層（分解能が高い）のミップレベル）をｌmaxとすると
0006619598.tif 000007
となる。即ち、密度（Ｎ・ｐ(ωi)）が高ければ分解能の高い環境マップから値取得がなされ、密度が低ければ分解能の低い環境マップから値取得がなされる。ここで、ミップマップから対応する領域のフィルタリングされた値を取得するためＬeは１つのサンプリング方向あたり１つの値を参照すればよい。ＦＩＳでは
0006619598.tif 000008
であるとき、推定値がフィルタリングされた値のみとなるので、ノイズを低減することができる。
【００２７】
このようにKrivanekらによるＦＩＳでは、描画対象のシーンに係る画面の画素について、該画素に描画されるオブジェクトのＢＲＤＦに応じて、サンプリングする環境マップのミップレベルを異ならせることで演算量を低減している。一方、本発明はインポータンスマップに応じた光源のクラスタリングにおいて好適な輝度演算結果を担保しつつ、演算量の低減を実現する。
【００２８】
〈光源クラスタリングへのＦＩＳの応用〉
KrivanekらのＦＩＳでは、決定したサンプル点について、該サンプル点の確率密度に応じて参照するミップレベルの画像から値取得が行われる。本発明における合成光源のパラメータはＲＳＭのクラスタ内の画素の平均値から求められるので、ＦＩＳを用いることで重複や間隙のある近似的なクラスタリングが実現可能であるように思える。しかしながら実際には、KrivanekらのＦＩＳを単純にｋ平均法に代替して適用する場合、好適な輝度演算結果とならない場合がある。これは、ＰＤＦの二次元分布であるインポータンスマップに設定したクラスタの中心点の値（確率密度）に応じてクラスタサイズ（ミップレベルに対応）を定めるた場合、図４のようなｋ平均法で重複や間隙のないクラスタリングを行う場合とは異なり、クラスタの重複や間隙の度合いが極めて大きくなり得ることによる。
【００２９】
例えば、ＰＤＦの１次元（ｘ方向）の分布が図５（ａ）に中間色で示されるようであり、サンプル点（円）が図示されるように設定された場合、確率密度が急峻に低下したサンプル点５０１においてはインポータンスが低いため、クラスタサイズ５０２が大きくなる。即ち、サンプル点５０１と近辺のサンプル点との間でそれぞれを領域内に含むクラスタに重複（オーバーラップ）が生じる。結果、クラスタについて１つの合成仮想光源を定義した場合に、サンプル点５０１に係る合成仮想光源が不自然なエネルギ増を引き起こし、良好な近似とならない（理想値からの誤差が増加する）可能性があった。換言すれば、設定されたサンプル点の間で確率密度に差がある場合、ＦＩＳを応用する手法では１つのＶＰＬが複数のクラスタに分類され得るため、フレーム間でサンプル点が変化する際等、特定の画素が明滅するようなフリッカを生じる可能性があった。これは、全クラスタ内の確率密度を合計した場合に、最大値である１を超え得ることによる。
【００３０】
また、ｋ平均法ではなくＦＩＳの技術を光源のクラスタリングに応用した場合、クラスタの重複だけでなく、設定されるサンプル点の位置及び該点の確率密度に応じて定められた矩形領域（クラスタ）の面積によっては、クラスタ間に間隙も生じうる。即ち、シーンに係る複数のＶＰＬをより少ない数の合成仮想光源に近似したとしても、考慮されないＶＰＬが発生し得る。つまり、全クラスタに係る合成仮想光源のエネルギの総和と、シーンに係る複数のＶＰＬのエネルギの総和との間に差が生じ得、結果、理想的な輝度値からの誤差を有する近似解が輝度演算処理において得られることになる。このことも、全クラスタ内の確率密度を合計した場合に、最大値である１にならないことの要因となる。
【００３１】
本実施形態のＰＣ１００では、このような近似による理想値との誤差を低減し得るよう、各サンプル点に係るクラスタ内の確率密度の総和が等しくなり、かつ全クラスタの確率密度の合計が１となるようにするクラスタリング処理を行う。即ち、各クラスタ内の確率密度の総和がサンプル数の逆数、即ちクラスタ数の逆数となるように、以下の式に基づき各サンプル点に係るクラスタの面積を決定する。
0006619598.tif 000009
ここで、Ωiは１つのクラスタを指し、Ｎがクラスタ数またはサンプル数を示す。
【００３２】
このようにすることで、図５（ａ）のような設定したサンプル点の確率密度が周囲のサンプル点に比べて低い場合であっても、図５（ｂ）に示すようにサンプル点周囲のＰＤＦの分布に応じてクラスタサイズ５０３が決定されることになる。結果、クラスタ間のオーバーラップを低減することができる。また、図６に示されるようにクラスタ間のオーバーラップや間隙は生じうるが、各クラスタで確率密度の総和が１／Ｎとなるよう面積が決定されているため、輝度演算にて全サンプルについて総和演算を行えばトータルで確率密度１（１００％：シーン全体分）が担保される。このとき、各クラスタについて定義した面積は、図４のようにオーバーラップや間隙なくクラスタリングした場合に近い面積を有しており、全クラスタの面積の総和がインポータンスマップの面積と近似的に等しくなる。
【００３３】
従って、本実施形態のＰＣ１００では仮想光源の合成仮想光源生成処理において、合成仮想光源のパラメータとなる値を、ＦＩＳのように単に各クラスタに含まれるサンプル点の確率密度に対応したミップレベルのＲＳＭや環境マップから取得するのではなく、クラスタ内の確率密度の総和を考慮したミップレベルのマップから取得する。より詳しくは、インポータンスマップにおいて各クラスタ内の確率密度の総和がクラスタ数の逆数となるように（数式１）、サンプル点各々についてクラスタを決定する。このとき、クラスタサイズは、合成仮想光源のパラメータ取得において参照されるＲＳＭや環境マップとの対応付けがなされる、ミップレベルを用いて
0006619598.tif 000010
のように近似される。
【００３４】
ここで、インポータンスマップは使用するＲＳＭまたは環境マップの最高分解能と同じ画素数で構成されており、ＲＳＭまたは環境マップと同様にミップマップ化されているものとする。つまり、インポータンスマップもミップマップ化することで、特定の正方領域内の確率密度の総和を対応するミップレベルの画素から取得することができるため、上記式のミップレベルｌiは二分法により解くことが可能である。またこのようにミップマップ化したインポータンスマップのミップレベルは、合成仮想光源のパラメータ取得に係るマップのミップレベルと対応しているため、クラスタのサイズがミップレベルにより定まった後は、ＦＩＳ同様に該ミップレベルのＲＳＭ等からパラメータ取得を容易に行うことができる。
【００３５】
また、このようにして得られたｌiを用いることで、各クラスタ内のエネルギｑの総和についても同様に
0006619598.tif 000011
として近似することができる。
【００３６】
《合成仮想光源生成処理》
このような本実施形態のＰＣ１００において実行される合成仮想光源生成処理について、図２のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、制御部１０１が例えば記録媒体１０２に記憶されている対応する処理プログラムを読み出し、メモリ１０３に展開して実行することにより実現することができる。なお、本合成仮想光源生成処理は、画面に係るシェーディング処理に先立って実行されるものとして説明する。また、以下の合成仮想光源生成処理では、ＲＳＭを参照して仮想光源の各種パラメータを取得するものとして説明する。
【００３７】
Ｓ２０１で、描画部１０４は、描画対象のシーンについて定義される仮想光源（ＶＰＬ）の情報を含むミップマップ化されたＲＳＭを生成する。ＲＳＭは、描画対象のシーンについての深度、法線、反射率、面の粗さ等の、シェーディングに係る反射の演算に必要な各種パラメータのチャネルを有する。
【００３８】
Ｓ２０２で、描画部１０４は、描画対象のシーンについて、所定の基準に従ってＰＤＦの二次元分布であるインポータンスマップを生成する。上述したように、何を基準としてインポータンスとすべきかは、アプリケーションごとにデザイナ等によって定められるものであってよい。本ステップにおいて生成されるインポータンスマップは、ＲＳＭに対応して生成されるものであり、ＲＳＭの最大解像度と同一の画素数を有するものとする。
【００３９】
Ｓ２０３で、描画部１０４は、Ｓ２０２において生成したインポータンスマップをミップマップ化する。
【００４０】
Ｓ２０４で、クラスタリング部１０５は、演算に考慮する仮想光源数を低減すべく、合成仮想光源を生成するサンプル点をインポータンスマップ（最大解像度）上に設定する。サンプル点の設定は、確率密度の分布に応じて行われるものであり、クラスタリング部１０５は予め定められたクラスタの数（Ｎ）だけサンプル点を設定する。
【００４１】
Ｓ２０５で、クラスタリング部１０５は、各サンプル点について内部の確率密度の総和が１／Ｎとなるクラスタを決定する。クラスタリング部１０５は各サンプル点につき、ミップマップ化したインポータンスマップから該サンプル点を含む領域に対応する画素を順次ミップレベルを変化させながら参照し、領域の確率密度の総和が１／Ｎとなるミップレベルを探索する。
【００４２】
Ｓ２０６で、クラスタリング部１０５は、各サンプル点について探索したミップレベルに基づき、ミップマップ化されたＲＳＭの対応する画素から、合成仮想光源生成に必要な各種パラメータを取得する。上述したように、本実施形態のインポータンスマップとＲＳＭとは同一の最大解像度を有する画像からミップマップ化されたものであるため、クラスタリング部１０５は、各サンプル点について、探索により得られたミップレベルのＲＳＭの対応する位置の画素からパラメータを取得する。
【００４３】
Ｓ２０７で、クラスタリング部１０５は、取得した各種パラメータに基づき、各サンプル点について合成仮想光源を生成する。合成仮想光源は、例えばクラスタ内に定義されている複数のＶＰＬを１つの仮想球面光源として表現するものであってよく、該仮想球面光源の各種パラメータの設定に取得されたパラメータが用いられる。また本実施形態のＰＣ１００では、後述する輝度演算処理における演算を効率化するために、サンプル点のＢＲＤＦと合成仮想光源の拡がり（クラスタの面積に相当）を球面ガウス関数で近似した仮想球面ガウス関数光源（ＶＳＧＬ：Virtual Spherical Gaussian Light）として合成仮想光源を定義する手法を用いる。球面ガウス関数近似を行って放射輝度演算を行う手法は、Yusuke Tokuyoshi著、"Virtual spherical gaussian lights for real-time glossy indirect illumination"、SIGGRAPH Asia 2014 Technical Briefs、Article No. 17、pp.1-4、2014年に開示される。なお、合成仮想光源はＶＳＧＬで定義される必要はなく、従来の光源クラスタリングで用いられている手法で定義されてよいことは言うまでもない。
【００４４】
本合成仮想光源生成処理により、ＲＳＭを用いて間接照明に係る輝度演算を行う手法において、ＲＳＭに定義される複数のＶＰＬを、その確率密度の分布に応じた所定数のＶＳＧＬで近似することができ、演算量を低減することができる。また単純にミップマップ化したインポータンスマップから値を取得してクラスタを定めることができるため、設定したクラスタの中心点と各画素との距離を都度算出するｋ平均法を用いる場合よりも演算量を低減できる。さらに、本実施形態の合成仮想光源生成処理では、単純にＦＩＳを適用してクラスタサイズを定めるのではなく、クラスタ内の確率密度の総和を全クラスタにつき合計した場合に１を超えないようクラスタサイズを定めるため、光源近似に係る誤差を低減することができる。
【００４５】
《輝度演算処理》
次に、合成仮想光源生成処理により生成されたクラスタ数のＶＳＧＬからの寄与を演算する輝度演算処理（シェーディング処理）について、図３のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、制御部１０１が、例えば記録媒体１０２に記憶されている対応する処理プログラムを読み出し、メモリ１０３に展開して実行することにより、輝度演算部１０６に実現させることができる。なお、本輝度演算処理は、例えば生成する画面の各画素に描画されるオブジェクトの情報が確定した後に開始されるものとして説明する。
【００４６】
Ｓ３０１で、輝度演算部１０６は、描画する画面のうちのまだ間接光源に起因する輝度の影響を演算していない画素（対象画素）を選択する。
【００４７】
Ｓ３０２で、輝度演算部１０６は、生成したＶＳＧＬの各々からの対象画素への寄与に基づく対象画素の放射輝度を演算し、結果を格納する。放射輝度は、レンダリング方程式をＶＳＧＬごとに解析的に解くことにより得られる。
【００４８】
Ｓ３０３で、輝度演算部１０６は、描画する画面の全ての画素について間接光源に起因する輝度の演算を完了したか否かを判断する。輝度演算部１０６は、演算が完了していると判断した場合は本輝度演算処理を完了し、演算が完了していないと判断した場合は処理をＳ３０１に戻す。
【００４９】
このように、合成仮想光源生成処理と、合成仮想光源生成処理により生成された合成仮想光源についてのみ寄与を考慮する輝度演算処理を行うことで、全体として間接照明に係る描画表現を行うための演算量の低減が実現される。
【００５０】
［変形例］
上述した実施形態では、いずれのミップレベルのＲＳＭからパラメータ取得を行うかの決定に際し、ミップマップ化されたインポータンスマップを用いて各クラスタの確率密度の総和を探索するものとして説明した。これは、各ミップレベルの画素がマップ内の正方領域に対応しており、拡がり（形状）を球状の合成仮想光源として近似しやすい側面があったが、本発明の実施は上記手法に限られるものではない。本発明は、インポータンスマップを用いた探索において、所定の矩形領域の画素の総和値を簡易的に（１オーダーで）取得可能なデータ構造を用いるものであれば適用可能であり、例えばＳｕｍｍｅｄ  Ａｒｅａ  Ｔａｂｌｅ（ＳＡＴ）等を用いても演算量の低減を実現することが可能である。
【００５１】
なお、ＳＡＴを用いる場合は、ミップマップのように各ミップレベルの画素に対応する領域が固定的なケースとは異なり、動的に矩形状を設定でき、かつ矩形領域内の総和値を厳密に取得できるため、オーバーラップがより少なく、かつ好適な近似結果を得ることができる。
【００５２】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る輝度演算装置は、コンピュータを該輝度演算装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【符号の説明】
【００５３】
１０１：制御部、１０２：記録媒体、１０３：メモリ、１０４：描画部、１０５：クラスタリング部、１０６：輝度演算部、１０７：表示制御部、１０８：操作入力部
【図１】
0006619598.tif 000012
【図２】
0006619598.tif 000013
【図３】
0006619598.tif 000014
【図４】
0006619598.tif 000015
【図５】
0006619598.tif 000016
【図６】
0006619598.tif 000017