(57)【要約】【課題】三次元仮想空間においてシェーディング点を起点として光源毎にバウンディングボリュームを設定する場合において、シェーディング点に対して影響する光源を特定すること。【解決手段】シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定部と、光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定部と、光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定部とを備える。【選択図】図２
2019128729.tif 000002
【特許請求の範囲】
【請求項１】
三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定をコンピュータに実現させる影響光源特定プログラムであって、
前記コンピュータに、
シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定機能と、
前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定機能と、
前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定機能と
を実現させる影響光源特定プログラム。
【請求項２】
前記コンピュータに、
三次元仮想空間内に配置された複数の前記光源について、最下層において所定数の光源毎にそれらの光源を含む軸平行境界ボックスを設定し、階層を上げる毎にその下の階層の軸平行境界ボックスを所定数含む軸平行境界ボックスを設定する処理を、順次階層を上げながら繰り返すことで、三次元仮想空間内の光源に関する軸平行境界ボックスによる木構造のバウディングボリュームヒエラルキー（以下、ＢＶＨ）を設定するＢＶＨ設定機能を実現させ、
前記交差判定機能は、前記ＢＶＨの何れかのノードにおいて、当該対象ノードの全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと、対象ノードに含まれる全ての軸平行境界ボックスとの交差判定を行い、交差しないと判定された軸平行境界ボックスに含まれる光源についてはシェーディング点に対して影響しない光源であると特定する処理を実行する機能を含む
請求項１記載の影響光源特定プログラム。
【請求項３】
前記ＢＶＨ設定機能は、最下層において、互いに所定距離以内に存在する所定数の光源を１つの軸平行境界ボックスに含ませるように軸平行境界ボックスを設定するようにした
請求項２記載の影響光源特定プログラム。
【請求項４】
前記ＢＶＨ設定機能は、最下層において、それぞれに対応させて設定されたバウンディングボリュームのサイズの差が所定範囲内である所定数の光源を１つの軸平行境界ボックスに含ませるように軸平行境界ボックスを設定するようにした
請求項２又は請求項３に記載の影響光源特定プログラム。
【請求項５】
三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定を行うための影響光源特定方法であって、
シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定処理と、
前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定処理と、
前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定処理と
を含む影響光源特定方法。
【請求項６】
三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定を行うための影響光源特定装置であって、
シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定部と、
前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定部と、
前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定部と
を備える影響光源特定装置。
【請求項７】
三次元仮想空間に定義された仮想点光源を含む光源からの光の影響を考慮したシェーディング点の描画処理をコンピュータに実現させる描画処理プログラムであって、
請求項１から請求項４の何れかに記載の影響光源特定プログラムによる影響光源特定処理である第１の影響光源特定処理と、
仮想点光源を含む光源毎に当該光源を起点として設定される光源起点バウンディングボリュームの形状を決定する光源起点領域形状決定機能と、前記光源毎に光源起点バウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する光源起点領域サイズ決定機能と、前記光源毎に当該光源を起点として設定された光源起点バウンディングボリュームにシェーディング点の位置が含まれるか否かを判定して、光源起点バウンディングボリュームに前記シェーディング点が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定機能とを前記コンピュータに実現させる影響光源特定プログラムによる影響光源特定処理である第２の影響光源特定処理と
を実行させる機能を備え、
前記コンピュータに、
前記第１の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第１描画データを取得する第１描画データ取得機能と、
前記第２の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第２描画データを取得する第２描画データ取得機能と、
取得した前記第１描画データと前記第２描画データの加重平均を演算することで、シェーディング点についての出力描画データを取得する出力描画データ取得機能と
を実現させる描画処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態の少なくとも１つは、三次元仮想空間においてシェーディング点を起点として光源毎にバウンディングボリュームを設定する場合において、シェーディング点に対して影響する光源を特定するための影響光源特定プログラム、影響光源特定方法、影響光源特定装置及び描画処理プログラムに関する。
【背景技術】
【０００２】
近年、グラフィックス描画の分野では、より現実に近いグラフィックス表現を行うために大域照明（グローバルイルミネーション）の適用が行われている。グローバルイルミネーションに係る演算は、１つの点について様々な光源からの光路を考慮して演算を行うため、全ての光路について演算を行おうと思うと演算量が膨大となる。リアルタイムレンダリングの分野では、リアルタイムに演算を行う必要があることから時間的な制約が存在し、写実的なグラフィックスを目指しつつも演算量を低減する必要があるという課題がある。
【０００３】
演算量を低減するための方法として、ライトカリングが行われている。ライトカリングは、三次元仮想空間において光源からの光の影響範囲を所定範囲に限定し、所定範囲の外の点については光源の影響を無視することで演算量を低減させるという手法である。しかし、ライトカリングを行う際、光源からの光の影響範囲を画一的に所定範囲に限定してしまうと、光源からの光が届かない箇所が生じて描画画面が暗くなってしまうという問題があった。
【０００４】
上記のライトカリングの手法の問題点を解決した内容が開示されているものとして、例えば、非特許文献１が挙げられる。この非特許文献１には、光源からの光の影響範囲を決定するバウンディングボリュームのサイズを確率的に変動させる確率的ライトカリングが開示されている。また、非特許文献１には、間接照明を表現するために用いられる仮想点光源（VPL：Virtual Point Light）について、VPLの設置点が鏡面反射を行う材質であるような場合には、光の影響範囲を決定するバウンディングボリュームの形状を球体よりも楕円体（bounding ellipsoid）で表現する方がより現実に近いグローバルイルミネーションが行えることに基づき、バウンディングボリュームに楕円体を採用した場合の交差判定手法が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Stochastic Light Culling for VPLs on GGX Microsurfaces : Yusuke Tokuyoshi，Takahiro Harada : Computer Graphics Forum Volume 36, Issue 4, pages 55-63, July 2017（http://onlinelibrary.wiley.com/doi/10.1111/cgf.13224/abstract）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図９は、シェーディング点に対する仮想点光源（VPL）の影響を計算する場合の従来の概念を表した説明図である。この図９は、非特許文献１において採用されているVPL毎にバウンディングボリュームの形状とサイズを決定し、かつ、サイズについては確率的ライトカリングの手法によって決定するようにした従来例である。この図９に示すように、光源からの光が反射する壁面にVPLを配置するが、このとき壁面の材質が光沢面である場合には、VPLに設定するバウンディングボリュームの形状は楕円体であることが好ましい。そして各VPLのバウンディングボリュームのサイズは、複数のサイズの候補の中から確率によって決定されるので、図９のように、VPL毎のバウンディングボリュームのサイズが異なる状態となる。このように設定されたVPLのバウンディングボリュームにシェーディング点が含まれている場合には、そのVPLからの影響をシェーディング点の描画処理において反映させて演算を行うことになる。
【０００７】
ところで、図９のように、光源→壁面→床面→視点という光の経路を辿る場合、壁面と床面がそれぞれ、拡散面なのか光沢面なのかによって光源からの光が視点に到達するか否かが変化する。図９に示すように、（１）光源→拡散面→拡散面→視点という経路の場合と、（２）光源→光沢面→拡散面→視点という経路の場合については、統計的に見たとき光源からの光が視点に到達することに関する明るさの推定値が期待値と近い、即ち推定値の分散が小さい。しかし、（３）光源→拡散面→光沢面→視点という経路の場合と、（４）光源→光沢面→光沢面→視点という経路の場合については、統計的に見たとき光源からの光が視点に到達することに関する明るさの推定値が期待値と大きく異なる、即ち推定値の分散が大きくなってしまう。高分散の場合、描画画面ごとの光の到達程度にも差が生じるため、複数の描画画面を繋げて動画とした場合に、同一描画点についての輝度が明るくなったり暗くなったりする現象が生じて不快な映像となってしまうおそれがある。すなわち、非特許文献１において採用されているVPL毎にバウンディングボリュームの形状を決定し、かつ、バウンディングボリュームのサイズを確率的に決定する手法だと高分散となってしまう適さない描画シーンが存在するため、低分散とすることができる他の手法が望まれていた。
【０００８】
本発明の少なくとも１つの実施形態の目的は、三次元仮想空間においてシェーディング点を起点として光源毎にバウンディングボリュームを設定する場合において、シェーディング点に対して影響する光源を特定するための影響光源特定プログラム、影響光源特定方法及び影響光源特定装置を提供することである。
【課題を解決するための手段】
【０００９】
非限定的な観点によると、本発明の一実施形態に係る影響光源特定プログラムは、三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定をコンピュータに実現させる影響光源特定プログラムであって、前記コンピュータに、シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定機能と、前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定機能と、前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定機能とを実現させることを特徴とする。
【００１０】
非限定的な観点によると、本発明の一実施形態に係る影響光源特定方法は、三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定を行うための影響光源特定方法であって、シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定処理と、前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定処理と、前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定処理とを含むことを特徴とする。
【００１１】
非限定的な観点によると、本発明の一実施形態に係る影響光源特定装置は、三次元仮想空間に定義された仮想点光源を含む光源からの光が描画画面のシェーディング点に影響するか否かの特定を行うための影響光源特定装置であって、シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定部と、前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定部と、前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定部とを備えることを特徴とする。
【００１２】
非限定的な観点によると、本発明の一実施形態に係る描画処理プログラムは、三次元仮想空間に定義された仮想点光源を含む光源からの光の影響を考慮したシェーディング点の描画処理をコンピュータに実現させる描画処理プログラムであって、シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する領域形状決定機能と、前記光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する領域サイズ決定機能と、前記光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定機能とを前記コンピュータに実現させる影響光源特定プログラムによる影響光源特定処理である第１の影響光源特定処理と、仮想点光源を含む光源毎に当該光源を起点として設定される光源起点バウンディングボリュームの形状を決定する光源起点領域形状決定機能と、前記光源毎に光源起点バウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する光源起点領域サイズ決定機能と、前記光源毎に当該光源を起点として設定された光源起点バウンディングボリュームにシェーディング点の位置が含まれるか否かを判定して、光源起点バウンディングボリュームに前記シェーディング点が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定機能とを前記コンピュータに実現させる影響光源特定プログラムによる影響光源特定処理である第２の影響光源特定処理とを実行させる機能を備え、前記コンピュータに、前記第１の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第１描画データを取得する第１描画データ取得機能と、前記第２の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第２描画データを取得する第２描画データ取得機能と、取得した前記第１描画データと前記第２描画データの加重平均を演算することで、シェーディング点についての出力描画データを取得する出力描画データ取得機能とを実現させることを特徴とする。
【発明の効果】
【００１３】
本願の各実施形態により１または２以上の不足が解決される。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態の少なくとも一つに対応する影響光源特定装置の構成の例を示すブロック図である。
【図２】本発明の実施形態の少なくとも一つに対応する影響光源特定処理のためのシェーディング点を基準とするバウンディングボリュームの設定の例を表した説明図である。
【図３】本発明の実施形態の少なくとも一つに対応する影響光源特定処理の例を示すフローチャートである。
【図４】本発明の実施形態の少なくとも一つに対応する影響光源特定装置の構成の例を示すブロック図である。
【図５】本発明の実施形態の少なくとも一つに対応する影響光源特定処理のためのバウンディングボリュームヒエラルキー（ＢＶＨ）の設定の例を表した説明図である。
【図６】本発明の実施形態の少なくとも一つに対応する影響光源特定のためのＢＶＨを用いた交差判定処理の例を表した説明図である。
【図７】本発明の実施形態の少なくとも一つに対応する交差判定処理の例を示すフローチャートである。
【図８】ＢＶＨにおいて同じ軸平行境界ボックス（ＡＡＢＢ）に含ませる光源の組み合わせについて説明した説明図である。
【図９】シェーディング点に対する仮想点光源（VPL）の影響を計算する場合の従来の概念を表した説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【００１６】
［第１の実施形態］
図１は、本発明の一実施の形態における影響光源特定装置１０Ａの構成の例を示すブロック図である。図１に示す影響光源特定装置１０Ａは、専用マシンとして設計した装置であってもよいが、一般的なコンピュータによって実現可能なものであるものとする。この場合に、影響光源特定装置１０Ａは、一般的なコンピュータが通常備えているであろうＣＰＵ（Central Processing Unit：中央演算処理装置）、ＧＰＵ（Graphics Processing Unit：画像処理装置）、メモリ、ハードディスクドライブ等のストレージを具備しているものとする（図示省略）。また、これらの一般的なコンピュータを本例の影響光源特定装置１０Ａとして機能させるためにプログラムよって各種処理が実行されることは言うまでもない。
【００１７】
本発明に係る影響光源特定装置１０Ａは、三次元仮想空間内に存在する仮想点光源（VPL）を含む光源からの光が描画画面の各シェーディング点（描画点）に対して影響するか否かを判定するためのものである。そして、シェーディング点に対して光源からの光が影響するか否かを判定するために、シェーディング点を基準とするバウンディングボリュームの設定を行うことに特徴を有する。以下、詳細に説明を行う。
【００１８】
図１に示すように、影響光源特定装置１０Ａは、領域形状決定部１１と、領域サイズ決定部１２と、交差判定部１３とを具備している。
【００１９】
領域形状決定部１１は、シェーディング点に与えられる条件に基づいて、当該シェーディング点を起点として設定され当該シェーディング点に対する影響範囲領域を定めるバウンディングボリュームについての全光源に共通する形状を決定する機能を有する。シェーディング点に与えられる条件とは、シェーディング点に設定された材質、表面の粗さの情報などを含む光の反射に影響する様々な条件のことをいう。また、バウンディングボリュームとは、シェーディング点を起点として設定され、シェーディング点毎に全光源について共通する形状を採用するが各光源のそれぞれに対応させてサイズが設定される領域であって、シェーディング点に対する各光源の影響範囲を定める領域のことをいう。このバウンディングボリュームと後述する軸平行境界ボックスとは異なる概念であり、異なる用語として定義するものとする。バウンディングボリュームの形状は、シェーディング点が拡散面である場合には球体（bounding sphere）又は球体に近い形状とし、反射面である場合には楕円体（bounding ellipsoid）の形状とすることが好ましい。具体的な形状の決定方法は、例えば、非特許文献１において開示されているＢＲＤＦ（Bidirectional Reflectance Distribution Function：双方向反射率分布関数）を用いた楕円体の形状決定の手法に基づいてバウンディングボリュームの形状を決定するものであってもよい。なお、シェーディング点に与えられる数値条件などを用いて予め記憶させたテーブルを参照して該当する形状を決定するものであってもよい。また、この領域形状決定部１１におけるバウンディングボリュームの形状を決定する処理は、シェーディング点の材質、表面の粗さの情報などの条件に基づいて、シェーディング点毎若しくはシェーディング点に適用される材質毎に最適なバウンディングボリュームの形状を予め決定して記憶させておき、記憶させた情報を参照してバウンディングボリュームの形状を決定するものであってもよい。この領域形状決定部１１において決定されたバウンディングボリュームの形状は、対象のシェーディング点に対する全ての光源において共通に使用される形状である。
【００２０】
領域サイズ決定部１２は、光源毎に設定するバウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する機能を有する。領域形状決定部１１において、バウンディングボリュームの形状は全ての光源において共通に使用するものとして決定したが、バウンディングボリュームのサイズは、光源毎に設定する必要がある。そして、光源毎のバウンディングボリュームのサイズは、光源の条件等から一意に決定するのではなく、予め候補として用意した複数の候補の中から確率によって何れかのサイズを選択するようにする。ここで、複数の候補は、２以上の実数個のサイズ候補を用意して確率で選択する構成の他、０以上の実数をパラメータとしてバウンディングボリュームのサイズが決定される構成において、確率でパラメータの実数を決定するものも含むものとする。また、複数の候補は、有限の個数である必要はなく無限であってもよい。サイズについての複数の候補は、光源に関わらず一律で用意したものであってもよいし、放射エネルギー（放射輝度）などの光源の光の強さに関する条件に基づいて、候補とするバウンディングボリュームのサイズを変化させるようにしてもよい。確率によって選択する手法であればどのようなものであってもよいが、例えば、光源の光の強さに関する条件から決定される最適なバウンディングボリュームのサイズが選択される確率が最も高くなるようにし、他のサイズについては、最適なバウンディングボリュームのサイズからサイズが変化していくにつれて選択される確率が低くなるように確率を設定することが好ましい。このような所定の確率によってバウンディングボリュームのサイズを決定する処理を、光源毎に行う。すなわち、三次元仮想空間に存在する全ての光源についてバウンディングボリュームのサイズを決定する。
【００２１】
交差判定部１３は、光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定して、バウンディングボリュームに当該光源が含まれる場合に当該光源をシェーディング点に影響する光源として特定する機能を有する。シェーディング点に対して光源が影響するか否かを特定するために、光源毎に設定されたバウンディングボリュームに当該光源の位置が含まれるか否かを判定する。バウンディングボリュームに光源位置が含まれない場合は、その光源はシェーディング点に影響しないものと特定する。バウンディングボリュームに光源位置が含まれる場合は、その光源はシェーディング点に影響するものと特定する。シェーディング点に影響すると判定された光源については、シェーディング点の描画処理において演算の対象となる。
【００２２】
図２は、本発明の実施形態の少なくとも一つに対応する影響光源特定処理のためのシェーディング点を基準とするバウンディングボリュームの設定の例を表した説明図である。この図２において、三次元仮想空間の描画画面外に存在する光源からの光が壁面で反射する状態を表現するためにVPL１、VPL２、VPL３が設けられており、これらVPL１、VPL２、VPL３がシェーディング点に対して影響するか否かを特定するために、シェーディング点を基準とするバウンディングボリュームを設定する。図２では、シェーディング点が光沢面である場合の例として、楕円体の形状のバウンディングボリュームに設定されている。そして、シェーディング点を基準とするバウンディングボリュームは、VPL１、VPL２、VPL３のそれぞれに対応させたサイズで３つ設定されることになる。図２において、VPL１に対して設定したバウンディングボリュームは最もサイズの小さい楕円体であり、この最も小さい楕円体にVPL１の位置は含まれないため、交差判定の結果、VPL１はシェーディング点に影響しない光源であると特定される。次に、VPL２に対して設定したバウンディングボリュームは最もサイズの大きい楕円体であり、この最も大きい楕円体にVPL２の位置は含まれているため、交差判定の結果、VPL２はシェーディング点に影響する光源であると特定される。最後に、VPL３に対して設定したバウンディングボリュームは中サイズの楕円体であり、この中サイズの楕円体にVPL３の位置は含まれないため、交差判定の結果、VPL３はシェーディング点に影響しない光源であると特定される。
【００２３】
図２に示すように、（２）光源→光沢面→拡散面→視点という経路の場合と、（４）光源→光沢面→光沢面→視点という経路の場合については高分散となってしまうが、（１）光源→拡散面→拡散面→視点という経路の場合と、（３）光源→拡散面→光沢面→視点という経路の場合については、低分散となる。すなわち、非特許文献１に開示された従来の手法では高分散となってしまう（３）光源→拡散面→光沢面→視点という経路の場合について低分散とすることができるため、本例の手法を採用することで不快な映像となることを回避できる描画シーンが存在するといえる。
【００２４】
次に、本例の影響光源特定装置１０Ａにおいて行われる影響光源特定処理の流れについて説明を行う。図３は、本発明の実施形態の少なくとも一つに対応する影響光源特定処理の例を示すフローチャートである。この図３に示すように、影響光源特定処理は、先ず、対象のシェーディング点についてのバウンディングボリュームの形状を決定することで開始される（ステップＳ１０１）。続いて、光源毎にバウンディングボリュームのサイズを複数の候補の中から確率によって選択して決定する（ステップＳ１０２）。そして、全ての光源について、光源毎のバウンディングボリュームに当該光源の位置が含まれるか否かの交差判定を行い、含まれる場合には、シェーディング点に対して影響する光源として特定し（ステップＳ１０３）、処理を終了する。
【００２５】
以上のように、本例の影響光源特定装置１０Ａによれば、対象のシェーディング点についての当該シェーディング点を起点とするバウンディングボリュームの形状を決定し、光源毎にバウンディングボリュームのサイズを複数の候補の中から確率によって選択し、光源毎のバウンディングボリュームに当該光源の位置が含まれるか否かの交差判定を行い、含まれる場合には、シェーディング点に対して影響する光源として特定するようにすることで、シェーディング点を起点とするバウンディングボリュームの設定であっても、演算量を低減させつつ画面が暗くなり過ぎる状態を回避可能な描画のための影響光源の特定が可能となる。
【００２６】
［第２の実施形態］
図４は、本発明の一実施の形態における影響光源特定装置１０Ｂの構成の例を示すブロック図である。なお、第１の実施形態における影響光源特定装置１０Ａと同様の構成箇所については同一符号を付して説明を省略する。また、図６に示す影響光源特定装置１０Ｂが、専用マシンとして設計した装置であってもよいが、一般的なコンピュータによって実現可能なものである点についても、第１の実施形態と同様である。
【００２７】
ＢＶＨ設定部１４は、三次元仮想空間内に配置された複数の光源について、最下層において所定数の光源毎にそれらの光源を含む軸平行境界ボックスを設定し、階層を上げる毎にその下の階層の軸平行境界ボックスを所定数含む軸平行境界ボックスを設定する処理を、順次階層を上げながら繰り返すことで、三次元仮想空間内の光源に関する軸平行境界ボックスによる木構造のバウディングボリュームヒエラルキー（以下、ＢＶＨ）を設定する機能を有する。木構造においては、木構造を構成する各軸平行境界ボックスをノードと表現するものとし、階層という場合には、ノードの高さ（あるいは深さ）を意味するものとする。ここで、軸平行境界ボックスとは、ＡＡＢＢ（Axis-Aligned Bounding Box）とも呼ばれるものであり、三次元仮想空間におけるＸ−Ｙ平面に平行な面、Ｘ−Ｚ平面に平行な面、及び、Ｙ−Ｚ平面に平行な面のみによって形成される直方体のことをいう。このＢＶＨ設定部１４では、先ず、三次元仮想空間内に配置された複数の光源について、所定数の光源が１つの軸平行境界ボックスに含まれるように軸平行境界ボックスを設定する。所定数はどのような数であってもよいが、所定数を大きい数に設定してしまうと交差判定の演算量低減の効果が得られない可能性があるので、演算量低減の効果が得られる範囲の数であることが好ましい。一例としては、２個の光源に対して１つの軸平行境界ボックスを設定するようにする。所定数の光源の組み合わせについては、互いに所定距離以内に存在する所定数の光源を１つの軸平行境界ボックスに含ませる条件、それぞれに対応させて設定されたバウンディングボリュームのサイズの差が所定範囲内である所定数の光源を１つの軸平行境界ボックスに含ませる条件、或いは、これら２つの条件を同時に満たす条件などによって決定する。
【００２８】
所定数の光源を含む軸平行境界ボックスは、最下層の軸平行境界ボックスとなる。この最下層の軸平行境界ボックスを設定した後は、最下層の軸平行境界ボックスを所定数含む軸平行境界ボックスを設定する。最下層をレベル１とすると、レベル２の層においては、レベル１の軸平行境界ボックスを所定数、例えば２つ含む軸平行境界ボックスを設定する。この処理を、順次層を上げながら繰り返す。すなわち、レベル３の層においては、レベル２の層において設定した軸平行境界ボックスを所定数含む軸平行境界ボックスを設定し、レベル４の層においては、レベル３の層において設定した軸平行境界ボックスを所定数含む軸平行境界ボックスを設定するというように、順次処理を行うことで、軸平行境界ボックスによる層構造のバウディングボリュームヒエラルキー（以下、ＢＶＨ）を設定する。これを最後まで繰り返すと、三次元仮想空間の全ての光源を含む１つの軸平行境界ボックスが設定されることになるが、どの層まで処理した時点でＢＶＨ設定の処理を終了するかは適宜設定可能である。このようにして設定したＢＶＨは、交差判定部１３Ｂにおける影響光源特定処理の演算量を低減させるために利用される。
【００２９】
なお、ＢＶＨ設定部１４におけるＢＶＨの設定については、例えば、以下の文献に記載のモートンコードを利用したＢＶＨの構築の手法を利用することができる。
［非特許文献２］Fast BVH construction on GPUs. : LAUTERBACH C., GARLAND M., SENGUPTA S., LUEBKE D., MANOCHA D. : Computer Graphics Forum 28, 2 (2009), 375-384.
【００３０】
交差判定部１３Ｂは、第１の実施形態における交差判定部１３の機能に加えて、ＢＶＨの何れかのノードにおいて、当該対象ノード以下の全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと、対象ノードに含まれる全ての軸平行境界ボックスとの交差判定を行い、交差しないと判定された軸平行境界ボックスに含まれる光源についてはシェーディング点に対して影響しない光源であると特定する処理（以下、ＢＶＨ交差判定処理ともいう）を実行する機能を有する。ＢＶＨの何れのノードを選択したとしても、そのノードには軸平行境界ボックスが存在し、その軸平行境界ボックスを下のノードまで辿っていけば最下のノードに光源が必ず含まれる。対象ノード以下の全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと、対象ノードに含まれる全ての軸平行境界ボックスとの交差判定を行うことで、シェーディング点に影響しない光源を特定する。すなわち、対象ノード以下の全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと交差しない軸平行境界ボックスについては、最もサイズの大きいバウンディングボリュームと交差しないのだから、その中に含まれる光源が各光源に対応させて設定されたバウンディングボリュームと交差することはないと判定できる。よって、当該軸平行境界ボックスに含まれる光源については個別の交差判定を省略することが可能となる。このようなＢＶＨ交差判定処理をＢＶＨの最上位階層のノードから順次階層を深くした際に当該ノードに含まれる各ノードについて行うことで、最終的に光源と当該光源のバウンディングボリュームとの交差判定を行う回数を低減させることが可能となる。なお、必ずしもＢＶＨ交差判定処理を全てのノードで実行する必要はなく、例えば、下位の階層付近のノードにおいてはＢＶＨ交差判定処理を実行せずに、直接、光源と当該光源に対応させて設定されたバウンディングボリュームとの交差判定処理を実行するようにしてもよい。
【００３１】
この交差判定部１３Ｂは、ＢＶＨの対象ノード以下の全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと対象ノードに含まれる全ての軸平行境界ボックスとの交差判定を行う処理と、光源と当該光源に対応させて設定されたバウンディングボリュームとの交差判定処理との両方を行うことで、演算処理負荷を低減しつつ、シェーディング点に影響する光源を特定する。
【００３２】
図５は、本発明の実施形態の少なくとも一つに対応する影響光源特定処理のためのバウンディングボリュームヒエラルキー（ＢＶＨ）の設定の例を表した説明図である。この図５は、８つの光源が存在する三次元仮想空間においてＢＶＨを設定した例を表している。最下層のレベル１の階層においては、近接する２つの光源を包含する軸平行境界ボックスとして［１−１］、［１−２］、［１−３］、［１−４］を設定している。１つ上の階層であるレベル２の階層においては、［１−１］と［１−２］の軸平行境界ボックスを包含する軸平行境界ボックスとして［２−１］を設定し、［１−３］と［１−４］の軸平行境界ボックスを包含する軸平行境界ボックスとして［２−２］を設定している。最上層のレベル３の階層においては、［２−１］と［２−２］の軸平行境界ボックスを包含する軸平行境界ボックスとして［３−１］を設定している。図５の例では、［３−１］は最上位のノードであり、［２−１］と［２−２］は［３−１］に含まれるノードであり、［１−１］と［１−２］は［２−１］に含まれるノードであり、［１−３］と［１−４］は［２−２］に含まれるノードである。また、単純化して説明するために、この図５の例では、光源毎に設定されるバウンディングボリュームのサイズとして、サイズＡ、サイズＢ、サイズＣの３種類が用いられており、サイズＡ＞サイズＢ＞サイズＣという大きさの関係になっている。なお、説明の都合上、二次元平面において長方形の軸平行境界ボックスを適用する形で説明を行うが、実際には三次元空間に直方体の軸平行境界ボックスを適用することになる。
【００３３】
図６は、本発明の実施形態の少なくとも一つに対応する影響光源特定のためのＢＶＨを用いた交差判定処理の例を表した説明図である。この図６では、図５のように木構造で構築されたＢＶＨを用いたＢＶＨ交差判定処理について説明する。先ず、図６（ａ）は、最上層のレベル３の階層に含まれる［３−１］のノードについての交差判定を表している。この図６（ａ）では、［３−１］のノードに含まれる［２−１］と、［２−１］に含まれる全光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいサイズＡのバウンディングボリュームとの交差判定を行う。すると、図６（ａ）に示すように、サイズＡのバウンディングボリュームと［２−１］の軸平行境界ボックスとは交差している。同様に、［２−２］についても［２−２］に含まれる全光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最も大きいサイズのバウンディングボリュームとの交差判定を行う。［２−２］では対応するバウンディングボリュームと軸平行境界ボックスとは交差していない場合、［２−２］の軸平行境界ボックスの内側に存在する全ての光源については、シェーディング点に影響しない光源と特定することができる。
【００３４】
図６（ｂ）は、［３−１］のノードから階層を１つ深くした［２−１］のノードにおける交差判定を表している。この図６（ｂ）では、［１−１］の軸平行境界ボックスと、［１−１］に含まれる全光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいサイズＢのバウンディングボリュームとの交差判定を行う。すると、図６（ｂ）に示すように、サイズＢのバウンディングボリュームと［１−１］の軸平行境界ボックスとは交差している。同様に、［１−２］についても［１−２］に含まれる全光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最も大きいサイズのバウンディングボリュームとの交差判定を行う。［１−２］では、対応するバウンディングボリュームと［１−２］の軸平行境界ボックスとは交差していない場合、［１−２］の軸平行境界ボックスの内側に存在する全ての光源については、シェーディング点に影響しない光源と特定することができる。
【００３５】
図６（ｃ）は、［２−１］のノードから階層を１つ深くした［１−１］のノードにおける交差判定を表している。この図６（ｃ）では、光源と、光源に対応させて設定されたサイズＣのバウンディングボリュームとの交差判定を行う。すると、図６（ｃ）に示すように、サイズＣのバウンディングボリュームと光源は交差している。同様にもうひとつの光源についても対応させて設定されたサイズのバウンディングボリュームとの交差判定を行う。もうひとつの光源では、バウンディングボリュームとは交差しない場合、最終的に１つの光源のみがシェーディング点に影響する光源として特定される。
【００３６】
８個の光源に対して個別の交差判定を行う場合、８回の交差判定処理が必要であるが、ＢＶＨ交差判定処理を採用すると、図６の例では、ＢＶＨ交差判定が４回と、個別の光源とバウンディングボリュームとの交差判定が２回の合計６回の交差判定となり、交差判定の回数を低減できることが分かる。よって、ＢＶＨのノード数が増えるほど、ＢＶＨ交差判定処理を導入することによる処理負荷低減効果が大きくなるといえる。
【００３７】
次に、本例の影響光源特定装置１０Ｂにおいて行われる影響光源特定処理の流れについて説明を行う。図７は、本発明の実施形態の少なくとも一つに対応する影響光源特定処理の例を示すフローチャートである。この図７に示すように、影響光源特定処理は、先ず、対象のシェーディング点についてのバウンディングボリュームの形状を決定することで開始される（ステップＳ２０１）。続いて、光源毎にバウンディングボリュームのサイズを複数の候補の中から確率によって選択して決定する（ステップＳ２０２）。そして、三次元仮想空間に存在する光源についてＢＶＨを設定する（ステップＳ２０３）。最後に、設定したＢＶＨを用いてＢＶＨ交差判定処理を実行し、最終的にシェーディング点に影響する光源を特定する処理として、光源とバウンディングボリュームとの個別の交差判定を実行することで、シェーディング点に影響する光源を特定して（ステップＳ２０４）、処理を終了する。
【００３８】
図８は、ＢＶＨにおいて同じ軸平行境界ボックス（ＡＡＢＢ）に含ませる光源の組み合わせについて説明した説明図である。図８（ａ）は、光源位置は近いがそれぞれに対応させて設定されたバウンディングボリュームのサイズが大きく異なる２つの光源を同じ軸平行境界ボックス（ＡＡＢＢ）に含ませた場合を表している。この図８（ａ）の状態でＢＶＨ交差判定処理を行うと、大きいサイズの方のバウンディングボリュームと軸平行境界ボックス（ＡＡＢＢ）とは交差すると判定されるため、光源毎の個別の交差判定に移行することになるが、個別の交差判定では小さいサイズの方のバウンディングボリュームと光源との交差判定では交差しないと判定されるので、１回分の交差判定処理が無駄となる。他方、図８（ｂ）は、光源位置が近く、かつ、それぞれに対応させて設定されたバウンディングボリュームのサイズが近い２つの光源を同じ軸平行境界ボックス（ＡＡＢＢ）に含ませた場合を表している。図８（ｂ）のように、２つのバウンディングボリュームのサイズは共に光源を含む軸平行境界ボックス（ＡＡＢＢ）に届かない大きさであるため、ＢＶＨ交差判定処理を行うと、大きいサイズの方のバウンディングボリュームと軸平行境界ボックス（ＡＡＢＢ）とは交差しないと判定される。このように判定されると、個別の交差判定をせずに、２つの光源についてシェーディング点に影響しない光源であることを特定できる。仮に、図８（ｂ）の２つの光源に設定されたバウンディングボリュームが共に各光源と交差するサイズであった場合には、ＢＶＨ交差判定処理の後の２回の個別の交差判定において２つの光源がシェーディング点に影響する光源であると特定されることになるので、２回の個別の交差判定が無駄にならない。すなわち、それぞれに対応させて設定されたバウンディングボリュームのサイズが近い光源を同じ軸平行境界ボックス（ＡＡＢＢ）に含ませるようにすることで、無駄のない交差判定を行うことが可能となり、結果として、全体の処理負荷を低減することが可能となる。
【００３９】
以上のように、本例の影響光源特定装置１０Ｂによれば、対象のシェーディング点についての当該シェーディング点を起点とするバウンディングボリュームの形状を決定し、光源毎にバウンディングボリュームのサイズを複数の候補の中から確率によって選択し、複数の光源について、最下層において所定数の光源毎にそれらの光源を含む軸平行境界ボックスを設定し、階層を上げる毎にその下の階層の軸平行境界ボックスを所定数含む軸平行境界ボックスを設定する処理を、順次階層を上げながら繰り返すことで、三次元仮想空間内の光源に関する軸平行境界ボックスによる木構造のＢＶＨを設定し、ＢＶＨの対象ノード以下の全ての軸平行境界ボックスに含まれる全ての光源のそれぞれに対応させて設定されたバウンディングボリュームの中で最もサイズの大きいバウンディングボリュームと、対象ノードに含まれる全ての軸平行境界ボックスとの交差判定を行い、交差しないと判定された軸平行境界ボックスに含まれる光源についてはシェーディング点に対して影響しない光源であると特定する処理を少なくともＢＶＨの何れかのノードにおいて実行するようにしたので、全ての光源について光源毎に設定されたバウンディングボリュームとの交差判定を個別に実行する場合に比較して、処理負荷を低減しつつ、シェーディング点に影響する光源を特定することが可能となる。
【００４０】
［第３の実施形態］
前記第１及び第２の実施形態における影響光源特定処理は、対象のシェーディング点についての当該シェーディング点を起点とするバウンディングボリュームの形状を決定し、光源毎にバウンディングボリュームのサイズを複数の候補の中から確率によって選択した場合におけるバウンディングボリュームに当該光源の位置が含まれているか否かによって、当該光源がシェーディング点に影響する光源であるか否かを特定するものであったが、この第１及び第２の実施形態における影響光源特定処理と、非特許文献１において開示されている影響光源特定処理の両方を併用して、シェーディング点の描画処理を実現するものであってもよい。
【００４１】
前記第１及び第２の実施形態における影響光源特定処理を第１の影響光源特定処理とし、非特許文献１において開示されている影響光源特定処理を第２の影響光源特定処理とする。ここで、第２の影響光源特定処理は、仮想点光源を含む光源毎に光源起点バウンディングボリュームの形状を決定する光源起点領域形状決定部と、前記光源毎に光源起点バウンディングボリュームのサイズを複数の候補の中から確率的に選択して決定する光源起点領域サイズ決定部と、前記光源毎に当該光源を起点として設定された光源起点バウンディングボリュームにシェーディング点の位置が含まれるか否かを判定して、光源起点バウンディングボリュームに前記シェーディング点が含まれる場合に当該光源をシェーディング点に影響する光源として特定する交差判定部とを備えた影響光源特定装置によって、第２の影響光源特定処理が実現されるものとする。
【００４２】
シェーディング点の描画処理を実現する描画処理装置は、第１の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第１描画データを取得する第１描画データ取得部と、第２の影響光源特定処理によってシェーディング点に影響する光源と特定された光源のシェーディング点に対する影響を演算することでシェーディング点についての第２描画データを取得する第２描画データ取得部と、取得した前記第１描画データと前記第２描画データの加重平均を演算することで、シェーディング点についての出力描画データを取得する出力描画データ取得部とを備える。
【００４３】
ここで、この第３の実施形態における加重平均とは、Multiple Importance Samplingによる加重平均であるものとする。このMultiple Importance Samplingによる加重平均については、以下の文献に記載の手法を採用することができる。
［非特許文献３］Optimally Combining Sampling Techniques for Monte Carlo Rendering. : E. Veach and L. J. Guibas. : In SIGGRAPH ’95. 419-428.
【００４４】
ここで、第１の影響光源特定処理は、図２に示すように、（２）光源→光沢面→拡散面→視点という経路の場合と、（４）光源→光沢面→光沢面→視点という経路の場合については高分散となってしまい、第２の影響光源特定処理は、図９に示すように、（３）光源→拡散面→光沢面→視点という経路の場合と、（４）光源→光沢面→光沢面→視点という経路の場合については高分散となってしまっていた。しかし、本例の描画処理装置のように、第１描画データと第２描画データの加重平均を演算してシェーディング点についての出力描画データを取得した場合、（１）〜（４）の全てのパターンについて低分散となる結果が得られる。第１の影響光源特定処理及び第２の影響光源特定処理の両方において高分散となってしまう（４）のパターンについても、加重平均を行うことによって分散の影響を平均化して低分散とすることが可能となっている。
【００４５】
以上のように、本例の描画処理装置によれば、第１の影響光源特定処理によってシェーディング点に影響する光源と特定された光源に基づく演算により得られたシェーディング点についての第１描画データと、第２の影響光源特定処理によってシェーディング点に影響する光源と特定された光源に基づく演算により得られたシェーディング点についての第２描画データとで、加重平均を行うことで出力する描画データを得るようにしたので、第１の影響光源特定処理と第２の影響光源特定処理のそれぞれにおいて高分散となってしまう描画シーンについて、加重平均によって低分散とすることができ、結果として、連続する画像の同一描画点についての輝度が明るくなったり暗くなったりする現象を防止して快適な映像を得ることが可能となる。
【００４６】
以上に説明したように、本願の各実施形態により１または２以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【符号の説明】
【００４７】
１０Ａ、１０Ｂ        影響光源特定装置
１１              領域形状決定部
１２              領域サイズ決定部
１３、１３Ｂ        交差判定部
１４              ＢＶＨ設定部
【図１】
2019128729.tif 000003
【図２】
2019128729.tif 000004
【図３】
2019128729.tif 000005
【図４】
2019128729.tif 000006
【図５】
2019128729.tif 000007
【図６】
2019128729.tif 000008
【図７】
2019128729.tif 000009
【図８】
2019128729.tif 000010
【図９】
2019128729.tif 000011