(57)【要約】【課題】  レイトレーシング処理装置及びその方法を提供する。【解決手段】  レイトレーシング処理装置及び方法に係り、該レイトレーシング処理方法は、入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断する段階、及び、該判断結果により、保存されている加速構造探索データを読み取り、読み取られたデータに基づいて、レンダリングを行う段階を含む。【選択図】      図６
2015090712.tif 000002
【特許請求の範囲】
【請求項１】
レイトレーシング処理方法であって、
入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断する段階と、
前記判断結果により、保存されている加速構造探索データを読み取り、読み取られたデータに基づいて、レンダリングを行う段階と、
を含む、方法。
【請求項２】
前記方法は、さらに、
前記入力された光線の特徴情報に基づいて、前記入力された光線と類似した以前の光線を決定する段階と、を含み、
前記光線の特徴情報は、前記光線の始点情報及び方向情報を含む、
請求項１に記載の方法。
【請求項３】
前記方法は、さらに、
前記入力された光線の特徴情報を抽出し、抽出された特徴情報により、入力された光線のキーを決定する段階と、を含み、
前記入力された光線のキーを決定する段階は、
複数の光線の特徴情報に基づいて設定された複数のグループ情報及び前記複数のグループそれぞれに対応するキー情報が保存されたデータベースを検索し、前記入力された光線が属するグループを抽出し、前記抽出されたグループに対応するキーを前記入力された光線のキーに決定する、
請求項１または２に記載の方法。
【請求項４】
前記グループ情報は、前記グループに含まれる光線の始点情報及び方向情報であり、
前記入力された光線のキーを決定する段階は、
前記入力された光線の始点情報及び方向情報を前記複数のグループ情報と比較し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを前記入力された光線のキーに決定する、
請求項３に記載の方法。
【請求項５】
前記判断する段階は、
前記入力された光線のキーとＴＲＶ（traversal）キャッシュに保存されている複数のタグデータとを比較して判断し、
前記読み取る段階は、
前記入力された光線のキーと一致するタグデータが存在する場合、前記一致するタグデータに対応する加速構造探索データを読み取る、
請求項３に記載の方法。
【請求項６】
前記加速構造探索データは、前記類似した以前の光線が交差するノードクラスタに係るデータ、リーフノードに係るデータ、及び、プリミティブに係るデータのうち少なくとも一つを含む、
請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記加速構造探索データが、前記ノードクラスタに係るデータである場合、
前記レンダリングを行う段階は、
前記ノードクラスタに含まれるノードを探索し、前記入力された光線が交差するリーフノードを検出する、
請求項６に記載の方法。
【請求項８】
前記加速構造探索データが、前記リーフノードに係るデータである場合、
前記レンダリングを行う段階は、
前記入力された光線が、前記リーフノードに交差するか否かを検査する、
請求項６に記載の方法。
【請求項９】
前記方法は、さらに、
前記加速構造探索データが、前記プリミティブに係るデータである場合、
前記プリミティブに係るデータを、ＩＳＴ（intersection  test）ユニットに伝送する段階とを含む、
請求項６に記載の方法。
【請求項１０】
前記加速構造探索データが、前記プリミティブに係るデータである場合、
前記レンダリングを行う段階は、
前記入力された光線が、前記プリミティブに交差するか否かを検査する、
請求項６または９に記載の方法。
【請求項１１】
レイトレーシング処理装置であって、
入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断するＴＲＶ（traversal）キャッシュと、
前記保存されている加速構造探索データを読み取り、前記読み取られたデータに基づいて、前記入力された光線の加速構造探索を行うＴＲＶ演算部と、
を含む装置。
【請求項１２】
前記装置は、さらに、
前記入力された光線の特徴情報に基づいて、前記入力された光線と類似した以前の光線を決定するキー決定部とを含み、
前記光線の特徴情報は、前記光線の始点情報及び方向情報を含む、
請求項１１に記載の装置。
【請求項１３】
前記装置は、さらに、
前記入力された光線の特徴情報を抽出し、抽出された特徴情報により、入力された光線のキーを決定するキー決定部とを含み、
前記キー決定部は、
複数の光線の特徴情報に基づいて設定された複数のグループ情報及び前記複数のグループそれぞれに対応するキー情報が保存されたデータベース（ＤＢ）を含み、
前記データベース（ＤＢ）を検索し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを前記入力された光線のキーに決定する、  請求項１１または１２に記載の装置。
【請求項１４】
前記グループ情報は、前記グループに含まれる光線の始点情報及び方向情報であり、
前記キー決定部は、
前記入力された光線の始点情報及び方向情報を前記複数のグループ情報と比較し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを前記入力された光線のキーに決定する、
請求項１３に記載の装置。
【請求項１５】
前記ＴＲＶキャッシュは、
光線のキーを示すタグデータ及び前記タグデータに対応する加速構造探索データを保存し、
前記入力された光線のキーと複数のタグデータとを比較し、前記ＴＲＶキャッシュに前記入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断し、
前記ＴＲＶ演算部は、
前記入力された光線のキーと一致するタグデータが存在する場合、前記一致するタグデータに対応する加速構造探索データを読み取る、
請求項１１乃至１４のいずれか一項に記載の装置。
【請求項１６】
前記加速構造探索データは、前記類似した以前の光線が交差するノードクラスタに係るデータ、リーフノードに係るデータ、及び、プリミティブに係るデータのうち少なくとも一つを含む、
請求項１１乃至１５のいずれか一項に記載の装置。
【請求項１７】
前記加速構造探索データが、前記ノードクラスタに係るデータである場合、
前記ＴＲＶ演算部は、
前記ノードクラスタに含まれるノードを探索し、前記入力された光線が交差するリーフノードを検出する、
請求項１６に記載の装置。
【請求項１８】
前記加速構造探索データが、前記リーフノードに係るデータである場合、
前記ＴＲＶ演算部は、
前記入力された光線が、前記リーフノードに交差するか否かを検査する、
請求項１６に記載の装置。
【請求項１９】
前記装置は、
前記加速構造探索データが、前記プリミティブに係るデータである場合、
前記入力された光線が、前記プリミティブに交差するか否かを検査する前記ＩＳＴ（intersection  test）演算部をさらに含む、
請求項１６に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイトレーシング（ray  tracing）処理装置及びその処理方法に関する。さらに具体的には、類似した光線に対して、以前の探索結果を活用することができるレイトレーシング処理装置及びその処理方法に関する。
【背景技術】
【０００２】
一般的に、３Ｄレンダリング（3-dimensional  rendering）は、三次元客体データを、与えられたカメラ視点（viewpoint）で見える映像に合成（synthesis）する映像処理をいう。レンダリング方法は、三次元客体を画面に投映（projection）しながら映像を生成するラスター化（rasterization）法や、カメラ視点から映像の各ピクセルに向かった光線に沿って入射する光の経路を追跡して映像を生成するレイトレーシングなどがある。
【０００３】
このうち、レイトレーシングは、光の物理的性質（反射、屈折、透過など）を、レンダリング結果に反映するので、高品質映像を生成することができるという長所があるが、相対的に演算量が膨大であり、高速レンダリングに困難が伴う。レイトレーシング性能において演算量が多く要求される要素は、レンダリング対象になるシーンオブジェクト（scene  object）を空間的に分割した加速構造またはアクセラレーション構造（ＡＳ：acceleration  structure）の生成及び探索（ＴＲＶ：traversal）、及び光線とプリミティブ（primitive）との交差検査（ＩＳＴ：intersection  test）である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、類似した光線に対して、以前の探索結果を活用することにより、加速構造探索（ＴＲＶ）に該当する演算量を低減させることができるレイトレーシング処理装置及びその処理方法を提供することである。
【課題を解決するための手段】
【０００５】
一実施形態によるレイトレーシング処理方法は、光線を入力される段階、前記入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断する段階、前記判断結果によって、保存されている加速構造探索データを読み取る段階、及び前記読み取られたデータに基づいて、レンダリングを行う段階を含む。
【０００６】
一実施形態による前記処理方法は、前記入力された光線の特徴情報に基づいて、前記入力された光線と類似した以前の光線を決定する段階をさらに含み、前記光線の特徴情報は、前記光線の始点（origin）情報及び方向（direction）情報を含むことを特徴とする。
【０００７】
一実施形態による前記処理方法は、前記入力された光線の特徴情報を抽出し、抽出された特徴情報によって、入力された光線のキー（key）を決定する段階をさらに含み、前記入力された光線のキーを決定する段階は、複数の光線の特徴情報に基づいて設定された複数のグループ情報、及び前記複数のグループそれぞれに対応するキー情報が保存されたデータベースを検索し、前記入力された光線が属するグループを抽出し、前記抽出されたグループに対応するキーを、前記入力された光線のキーに決定することを特徴とする。
【０００８】
一実施形態による前記グループ情報は、前記グループに含まれる光線の始点情報及び方向情報であり、前記入力された光線のキーを決定する段階は、前記入力された光線の始点情報及び方向情報を、前記複数のグループ情報と比較し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを、前記入力された光線のキーに決定することを特徴とする。
【０００９】
一実施形態による前記判断する段階は、前記入力された光線のキーと、ＴＲＶキャッシュに保存されている複数のタグデータとを比較して判断することを特徴とする。
【００１０】
一実施形態による前記読み取る段階は、前記入力された光線のキーと一致するタグデータが存在する場合、前記一致するタグデータに対応する加速構造探索データを読み取ることを特徴とする。
【００１１】
一実施形態による前記加速構造探索データは、前記類似した以前の光線が交差するノードクラスタに係るデータ、リーフノードに係るデータ、及びプリミティブに係るデータのうち少なくとも一つを含むことを特徴とする。
【００１２】
一実施形態による前記加速構造探索データが、前記ノードクラスタに係るデータである場合、前記レンダリングを行う段階は、前記ノードクラスタに含まれるノードを探索し、前記入力された光線が交差するリーフノードを検出することを特徴とする。
【００１３】
一実施形態による前記加速構造探索データが、前記リーフノードに係るデータである場合、前記レンダリングを行う段階は、前記入力された光線が、前記リーフノードに交差するか否かを検査することを特徴とする。
【００１４】
一実施形態による前記処理方法は、前記加速構造探索データが、前記プリミティブに係るデータである場合、前記プリミティブに係るデータをＩＳＴユニットに伝送する段階をさらに含むことを特徴とする。
【００１５】
一実施形態による前記加速構造探索データが、前記プリミティブに係るデータである場合、前記レンダリングを行う段階は、前記入力された光線が、前記プリミティブに交差するか否かを検査することを特徴とする。
【００１６】
一実施形態による前記処理方法は、前記判断結果、前記加速構造探索データが保存されていない場合、前記入力された光線の加速構造探索を行い、探索結果を保存する段階をさらに含むことを特徴とする。
【００１７】
一実施形態による前記保存する段階は、前記入力された光線のキーを、ＴＲＶキャッシュのタグデータとして保存し、前記探索結果、前記入力された光線が交差するノードクラスタ、リーフノード及びプリミティブのうち少なくとも一つに係るデータを、前記タグデータに対応させて保存することを特徴とする。
【００１８】
一実施形態によるレイトレーシング処理装置は、入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断し、前記判断結果によって、前記保存されている加速構造探索データを読み取るＴＲＶキャッシュ、及び前記読み取られたデータに基づいて、前記入力された光線の加速構造探索を行うＴＲＶ演算部を含む。
【００１９】
一実施形態による前記装置は、前記入力された光線の特徴情報に基づいて、前記入力された光線と類似した以前の光線を決定するキー決定部をさらに含み、前記光線の特徴情報は、前記光線の始点（origin）情報及び方向（direction）情報を含むことを特徴とする。
【００２０】
一実施形態による前記入力された光線の特徴情報を抽出し、抽出された特徴情報によって、入力された光線のキーを決定するキー決定部をさらに含み、前記キー決定部は、複数の光線の特徴情報に基づいて設定された複数のグループ情報、及び前記複数のグループそれぞれに対応するキー情報が保存されたデータベース（ＤＢ）を含み、前記データベース（ＤＢ）を検索し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを、前記入力された光線のキーに決定することを特徴とする。
【００２１】
一実施形態による前記グループ情報は、前記グループに含まれる光線の始点情報及び方向情報であり、前記キー決定部は、前記入力された光線の始点情報及び方向情報を、前記複数のグループ情報と比較し、前記入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを、前記入力された光線のキーに決定することを特徴とする。
【００２２】
一実施形態による前記ＴＲＶキャッシュは、光線のキーを示すタグデータ、及び前記タグデータに対応する加速構造探索データを保存し、前記入力された光線のキーと複数のタグデータとを比較し、前記ＴＲＶキャッシュに前記入力された光線と類似した以前の光線に係る加速構造探索データが、保存されているか否かを判断することを特徴とする。
【００２３】
一実施形態による前記ＴＲＶキャッシュは、前記入力された光線のキーと一致するタグデータが存在する場合、前記一致するタグデータに対応する加速構造探索データを読み取ることを特徴とする。
【００２４】
一実施形態による前記加速構造探索データが、前記ノードクラスタに係るデータである場合、前記ＴＲＶ演算部は、前記ノードクラスタに含まれるノードを探索し、前記入力された光線が交差するリーフノードを検出することを特徴とする。
【００２５】
一実施形態による前記加速構造探索データが、前記リーフノードに係るデータである場合、前記ＴＲＶ演算部は、前記入力された光線が、前記リーフノードに交差するか否かを検査することを特徴とする。
【００２６】
一実施形態による処理装置は、前記加速構造探索データが、前記プリミティブに係るデータである場合、前記入力された光線が、前記プリミティブに交差するか否かを検査する前記ＩＳＴ演算部をさらに含むことを特徴とする。
【００２７】
一実施形態による前記ＴＲＶ演算部は、前記判断結果、前記加速構造探索データが保存されていない場合、前記入力された光線の加速構造探索を行い、探索結果を、前記ＴＲＶキャッシュに伝送することを特徴とする。
【００２８】
一実施形態による前記ＴＲＶキャッシュは、前記入力された光線のキーを、前記ＴＲＶキャッシュのタグデータとして保存し、前記伝送された探索結果を、前記タグデータに対応する加速構造探索データとして保存することを特徴とする。
【００２９】
一実施形態による前記探索結果は、前記入力された光線が交差するノードクラスタまたはリーフノードに係るデータを含むことを特徴とする。
【発明の効果】
【００３０】
本発明によれば、フレーム間の類似性により、以前フレームに係る光線探索結果を現在フレームに活用することにより、現在フレームのレイトレーシング処理に必要な演算量を低減させることができる。
入力された光線の探索遂行時、以前に探索された類似光線が交差したノードを優先的に探索し、加速構造の探索をさらに迅速に行うことができる。
また、入力された光線の交差検査遂行時、以前に探索された類似光線が交差したプリミティブに対して優先的に交差検査を行い、レイトレーシングの処理をさらに迅速に行うことができる。
これにより、レイトレーシング処理装置の処理能力及び処理速度が向上する。
【図面の簡単な説明】
【００３１】
【図１】一般的なレイトレーシング方法について説明するための図面である。
【図２】一実施形態によるレイトレーシング処理システムを示す図面である。
【図３】一実施形態による加速構造について説明するための図面である。
【図４】一実施形態によるレイトレーシング処理方法について説明するための図面である。
【図５】連続したフレームに係るレンダリング映像を示す図面である。
【図６】一実施形態によるＴＲＶユニットのブロック図である。
【図７】一実施形態による光線のキーを決定する方法について説明するための参照図である。
【図８】一実施形態によるレイトレーシング処理方法を示すフローチャートである。
【図９】図８によるレイトレーシング処理方法について説明するための参照図である。
【図１０】一実施形態によるレイトレーシング処理方法を示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下、図面を参照しながら、実施形態について詳細に説明する。
【００３３】
図１はレイトレーシング（ray  tracing）法について説明するための図面である。図１に図示されているように、三次元モデリングは、光源８０、第１物体３１、第２物体３２、第３物体３３を含む。図１で、第１物体３１、第２物体３２及び第３物体３３は、二次元物体のように表現されているが、それは、説明の便宜のためのものであり、第１物体３１、第２物体３２及び第３物体３３は、三次元物体である。図１では、第１物体３１の反射率及び屈折率が０より大きく、第２物体３２及び第３物体３３の反射率及び屈折率が０である場合が図示されている。言い換えれば、第１物体３１は、光を反射させて屈折させ、第２物体３２及び第３物体３３は、光を反射させもせず、屈折させもしない場合を示している。
【００３４】
図１のような三次元モデリングで、レンダリング装置（例えば、レイトレーシング処理装置）は、三次元映像を生成するために、視点（viewpoint）１０を決定し、決定された視点１０によって、画面１５を決定することができる。視点１０及び画面１５が決定されれば、レイトレーシング処理装置は、視点１０から、画面１５の各ピクセルに対して光線を生成することができる。例えば、図１に図示されているように、画面１５の解像度が４＊３である場合、１２個のピクセルに対して、それぞれ光線を生成することができる。以下では、１つのピクセル（例えば、ピクセルＡ）に係る光線についてのみ説明する。
【００３５】
図１を参照すれば、視点１０からピクセルＡに対して、一次光線（primary  ray）４０が生成される。一次光線４０は、三次元空間を通過し、第１物体３１に達する。ここで、第１物体３１は、プリミティブ（primitive）と呼ばれる決定された単位領域の集合でもって構成され、例えば、プリミティブは、三角形、四角形のような多角形でもある。以下、プリミティブが三角形であるものを例として挙げて説明する。
【００３６】
なお、一次光線４０と第１物体３１との交差点（hit  point）では、シャドー光線（shadow  ray）５０、反射光線（reflection  ray）６０及び屈折光線（refraction  ray）７０を生成することができる。このとき、シャドー光線５０、反射光線６０及び屈折光線７０を二次光線という。シャドー光線５０は、交差点から光源８０の方向に生成される。反射光線６０は、一次光線４０の入射角に対応する方向に生成され、第１物体３１の反射率による加重値を適用される。屈折光線７０は、一次光線４０の入射角及び第１物体３１の屈折率に対応する方向に生成され、第１物体３１の屈折率による加重値を適用される。
【００３７】
該レイトレーシング処理装置は、シャドー光線５０を介して、交差点が光源８０に露出しているか否かを判断する。例えば、図１に図示されているように、シャドー光線５０が第２物体３２と出合えば、当該シャドー光線５０が生成された交差点に影が生成される。また、該レイトレーシング処理装置は、屈折光線７０及び反射光線６０が他の物体に達するか否かを判断する。例えば、図１に図示されているように、屈折光線７０の進行方向には、いかなる物体も存在せず、反射光線６０は、第３物体３３に達する。それにより、該レイトレーシング処理装置は、第３物体３３の交差点の座標及び色相情報を確認し、また第３物体３３の交差点から、シャドー光線９０を生成する。このとき、該レイトレーシング処理装置は、シャドー光線９０が、光源８０に露出されているか否かを判断する。一方、第３物体３３の反射率及び屈折率は０であるので、第３物体３３に係る反射光線及び屈折光線は、生成されない。
【００３８】
前述のように、該レイトレーシング処理装置は、ピクセルＡに係る一次光線４０、及び一次光線４０から派生される全ての光線を分析し、分析結果によって、ピクセルＡの色相値を決定する。ピクセルＡの色相値の決定は、一次光線４０の交差点の色相、反射光線６０の交差点の色相、シャドー光線５０が光源８０に達するか否かに影響される。該レイトレーシング処理装置は、前記のような過程を、画面１５の全てのピクセルに対して遂行し、画面１５を構成することができる。
【００３９】
図２は、一実施形態によるレイトレーシング処理システムを示す図面である。
【００４０】
図２を参照すれば、レイトレーシング処理システムは、レイトレーシング処理装置１００、外部メモリ２５０及び加速構造生成装置２００を含む。また、レイトレーシング処理装置１００は、光線生成ユニット１１０、ＴＲＶユニット（Traversal  unit）１２０、ＩＳＴユニット（intersection  unit）１３０及びシェーディングユニット（shading  unit）１４０を含む。
【００４１】
光線生成ユニット１１０は、一次光線、及び一次光線によって派生される光線を生成することができる。光線生成ユニット１１０は、図１で説明したように、視点１０から一次光線を生成し、一次光線とオブジェクトとの交差点で、二次光線を生成することができる。このとき、二次光線は、一次光線がオブジェクトと交差した地点で生成された反射光線、屈折光線またはシャドー光線でもある。また、光線生成ユニット１１０は、二次光線とオブジェクトとの交差点で三次光線を生成することができる。光線生成ユニット１１０は、光線がオブジェクトと交差しなくなるまで、光線を続けて生成するか、あるいは決定された回数内で光線を生成することができる。
【００４２】
ＴＲＶユニット１２０は、光線生成ユニット１１０から生成された光線に係る情報を受信することができる。生成された光線は、一次光線、及び一次光線によって派生された光線（二次光線、三次光線など）をいずれも含む。例えば、一次光線の場合、ＴＲＶユニット１２０は、生成された光線の始点（origin）及び方向（direction）に係る情報を受信することができる。また、二次光線の場合、ＴＲＶユニット１２０は、二次光線の出発点及び方向に係る情報を受信することができる。二次光線の出発点は、一次光線がオブジェクトと交差した地点を示す。また、始点または出発点は、座標で表現され、方向は、ベクトルで表現される。
【００４３】
ＴＲＶユニット１２０は、外部メモリ２５０から、加速構造（ＡＳ：acceleration  structure）に係る情報を読み取る。このとき、加速構造（ＡＳ）は、加速構造生成装置（acceleration  structure  generator）２００によって生成され、生成された加速構造は、外部メモリ２５０に保存される。加速構造生成装置２００は、三次元空間上のオブジェクトの位置情報を含む加速構造を生成することができる。加速構造生成装置２００は、三次元空間を階層的ツリー状に分割する。加速構造生成装置２００は、さまざまな形態の加速構造を生成することができる。例えば、加速構造生成装置２００は、ＫＤツリー（Ｋ−dimensional  tree）、ＢＶＨ（bounding  volume  hierarchy）を適用し、三次元空間上オブジェクトの関係を示す加速構造を生成することができる。それについては、図３を参照しつつ詳細に説明する。
【００４４】
図３は、一実施形態による加速構造について説明するための図面である。
【００４５】
以下、説明の便宜のために、加速構造のノードに記載された数字でもって、各ノードを指称する。例えば、数字１が記載され、円形に図示されたノード３５１は、第１ノード３５１であり、数字２が記載され、四角形で図示されたノード３５２は、第２ノード３５２であり、数字５が記載され、点線になった四角形で図示されたノード３５５は、第５ノード３５５と指称する。加速構造は、トップノード（top  node）、内部ノード（inner  node）リーフノード（leaf  node）及びプリミティブ（primitive）を含む。
【００４６】
図３で、第１ノード３５１は、トップノードを示す。トップノードは、上位ノードを有さず、下位ノードのみ有する最上位ノードである。例えば、第１ノード３５１の下位ノードは、第２ノード３５２及び第３ノード３５３であり、第１ノード３５１の上位ノードは存在しない。また、第２ノード３５２は、内部ノードもある。内部ノードは、上位ノード及び下位ノードをいずれも有するノードである。例えば、第２ノード３５２の上位ノードは、第１ノード３５１であり、第２ノード３５２の下位ノードは、第４ノード３５４及び第５ノード３５５である。また、第８ノード３５８は、リーフノードである。リーフノードは、下位ノードを有さず、上位ノードだけ有する最下位ノードである。例えば、第８ノード３５８の上位ノードは、第７ノード３５７であり、第８ノード３５８の下位ノードは存在しない。一方、リーフノードは、リーフノードに存在するプリミティブを含む。例えば、図３に図示されているように、リーフノードである第６ノード３５６は、１個のプリミティブを、リーフノードである第８ノード３５８は、３個のプリミティブを、リーフノードである第９ノード３５９は、２個のプリミティブを含む。
【００４７】
再び図２を参照すれば、ＴＲＶユニット１２０は、読み取った加速構造に係る情報を探索し、光線が交差するリーフノードを検出することができる。
【００４８】
ＩＳＴユニット１３０は、ＴＲＶユニット１２０から、光線が交差するリーフノードを受信することができる。ＩＳＴユニット１３０は、受信したリーフノードに含まれるプリミティブに係る情報（幾何データ）を、外部メモリ２５０から読み取ることができる。ＩＳＴユニット１３０は、読み取ったプリミティブに係る情報を利用して、光線とプリミティブとの交差検査を行うことができる。例えば、ＩＳＴユニット１３０は、ＴＲＶユニット１２０から受信したリーフノードに含まれた複数のプリミティブのうちいずれのプリミティブに光線が交差しているかということを検査することができる。それにより、光線が交差するプリミティブを検出し、検出されたプリミティブと光線とが交差した地点（hit  point）を計算することができる。計算された交差点は、座標形態でシェーディングユニット１４０に出力される。
【００４９】
シェーディングユニット１４０は、交差点に係る情報及び交差点の物質特性に基づいて、ピクセルの色相値を決定することができる。また、シェーディングユニット１４０は、交差点物質の基本色相及び光源による効果などを考慮し、ピクセルの色相値を決定することができる。例えば、図１のピクセルＡの場合、シェーディングユニット１４０は、一次光線４０、及び二次光線である屈折光線７０、反射光線６０、シャドー光線５０による効果をいずれも考慮し、ピクセルＡの色相値を決定することができる。
【００５０】
一方、レイトレーシング処理装置１００は、外部メモリ２５０から、レイトレーシングに必要なデータを受信することができる。外部メモリ２５０は、加速構造または幾何データ（geometry  data）を保存することができる。加速構造は、加速構造生成装置２００によって生成され、外部メモリ２５０に保存される。また、幾何データは、プリミティブに係る情報を示す。プリミティブは、三角形、四角形などの多角形でもあり、幾何データは、オブジェクトに含まれるプリミティブの頂点及び位置に係る情報を示すことができる。例えば、プリミティブが三角形である場合、幾何データは、三角形の三点に係る頂点座標、法線ベクトルまたはテクスチャ座標を含む。
【００５１】
図４は、図２に図示されたレイトレーシング処理装置１００のレイトレーシング処理方法について説明するための図面である。従って、図２で説明した内容は、図４のレイトレーシング処理方法にも同様に適用される。図４を参照すれば、レイトレーシング処理装置１００は、光線を生成する（Ｓ４１０）。このとき、光線は、視点から生成された一次光線、及び一次光線によって派生された光線を含む。レイトレーシング処理装置１００は、外部メモリ２５０から加速構造を読み取り、生成された光線に基づいて、加速構造を探索する（Ｓ４２０）。それにより、レイトレーシング処理装置１００は、光線が交差するリーフノードを検出することができる。レイトレーシング処理装置１００は、光線が交差するリーフノードを検出するまで、加速構造を続けて探索することができる。
【００５２】
例えば、レイトレーシング処理装置１００は、光線・ノード交差検査を行い、リーフノードを検出することができる。レイトレーシング処理装置１００は、いずれか１つの経路に沿って加速構造を探索し、探索された経路上のリーフノードに光線が交差していないのであるならば、他の経路に加速構造を探索することができる。例えば、図３を参照すれば、レイトレーシング処理装置１００は、第１ノード３５１の下位ノードである第２ノード３５２または第３ノード３５３から探索を始めることができる。もし第２ノード３５２から探索を始める場合、レイトレーシング処理装置１００は、第３ノード３５３に係る情報を、別途のメモリに保存しておくことができる。
【００５３】
レイトレーシング処理装置１００は、光線が第２ノード３５２に交差するか否かを判断し、第２ノード３５２と光線とが交差する場合、第２ノード３５２の下位ノードである第４ノード３５４及び第５ノード３５５のうちいずれか一つに対して探索を行うことができる。第４ノード３５４と光線とが交差するか否かを探索する場合、レイトレーシング処理装置１００は、残りのノードである第５ノード３５５に係る情報を、前記別途のメモリに保存しておくことができる。第４ノード３５４と光線とが交差する場合、レイトレーシング処理装置１００は、第４ノード３５４の下位ノードである第６ノード３５６及び第７ノード３５７のうちいずれか一つに対して探索を行うことができる。第６ノード３５６と光線とが交差するか否かを探索する場合、レイトレーシング処理装置１００は、残りのノードである第７ノード３５７に係る情報を、前記別途のメモリに保存しておくことができる。第６ノード３５６と光線とが交差する場合、レイトレーシング処理装置１００は、第６ノード３５６をリーフノードとして、検出することができる。
【００５４】
このように、レイトレーシング処理装置１００は、いずれか１つの経路に沿って探索を行い、リーフノードを検出することができ、他の経路のノードに係る情報は、別途のメモリに保存しておき、１つの経路探索を終えた場合、最も最近保存しておいたノードからさらに探索を行うことができる。例えば、第６ノード３５６をリーフノードとして検出した後、最も最近保存しておいた第７ノード３５７から、さらに探索を行うことができる。それにより、レイトレーシング処理装置１００は、１つの経路探索を終え、再びトップノードから経路探索を行わず、経路探索が終わった経路と最も隣接した経路を探索することにより、演算量を低減させることができる。
【００５５】
一方、レイトレーシング処理装置１００は、検出されたリーフノードを、ＩＳＴユニットに伝送することができる。レイトレーシング処理装置１００は、検出されたリーフノードに含まれたプリミティブが光線と交差するか否かを検査することができる。このとき、レイトレーシング処理装置１００は、外部メモリ２５０から、プリミティブに係る情報（幾何データ２５２）を読み取ることができ、読み取ったプリミティブに係る情報を利用して、光線とプリミティブとの交差検査を行うことができる（Ｓ４３０）。
【００５６】
レイトレーシング処理装置１００は、ＴＲＶユニット１２０から受信したリーフノードに含まれたプリミティブのうち、いずれのプリミティブに光線が交差しているかを検査することができる。例えば、検出されたリーフノードに、３個のプリミティブ（第１プリミティブないし第３プリミティブ）が含まれる場合、レイトレーシング処理装置は、第１プリミティブと光線との交差検査、第２プリミティブと光線との交差検査及び第３プリミティブと光線との交差検査を行い、光線が交差するプリミティブを検出することができる。それにより、レイトレーシング処理装置１００は、光線が交差するプリミティブを検出し、検出されたプリミティブと光線とが交差した地点を計算することができる。
【００５７】
レイトレーシング処理装置１００は、交差検査に基づいて、ピクセルのシェーディングを行うことができる（Ｓ４４０）。言い換えれば、交差点に係る情報、及び交差点の物質の特性に基づいて、ピクセルの色相値を決定することができる。
【００５８】
レイトレーシング処理装置１００は、Ｓ４４０段階を終了すれば、Ｓ４１０段階に進む（iteration）。レイトレーシング処理装置１００は、１つのピクセルに係るシェーディング後、他のピクセルのシェーディングを行うために、再び、Ｓ４１０段階ないしＳ４４０段階を遂行して、画面を構成する全てのピクセルについて、Ｓ４１０段階ないしＳ４４０段階を反復的に遂行する。
【００５９】
図５は、連続したフレームに係るレンダリング映像を示している。図５を参照すれば、図５（ａ）は、Ｎ番目フレーム（第１フレーム）５１０に該当するレンダリング映像を示し、図５（ｂ）は、（Ｎ＋１）番目フレーム（第２フレーム）５２０に該当するレンダリング映像を示している。
【００６０】
一般的に、グラフィック処理は、自然なアニメーション効果を出すために、隣接したフレーム間の差を小さくし、それを迅速に連続再生するために、連続したフレームに係るレンダリング映像は、相当な類似性を有する。例えば、図５に図示された、第１フレーム５１０及び第２フレーム５２０を比較すれば、第２フレーム５２０において、陰影領域を除いた残りの領域に位置するピクセルは、第１フレーム５１０及び第２フレーム５２０において同一である。全体的に、第１フレーム５１０及び第２フレーム５２０は、非常に類似しているといえる。
【００６１】
従って、レイトレーシング処理装置１００は、第１フレーム５１０に係るレンダリング結果を利用して、第２フレーム５２０に係るレンダリングを行うことができる。例えば、第１フレーム５１０における第１光線と、第２フレーム５２０における第２光線との始点及び方向が類似しているのであれば、レイトレーシング処理装置１００は、第１光線に係る探索結果を、第２光線の探索遂行時に活用することができる。さらに具体的に説明すれば、レイトレーシング処理装置１００のＴＲＶユニット１２０は、第２光線に係る探索を行うとき、第１光線が交差したノードクラスタ、リーフノードに対して、優先的に探索することができる。また、レイトレーシング処理装置１００のＩＳＴユニット１３０は、第２光線に係る交差検査の遂行時、第１光線に交差したプリミティブに対して、優先的に交差検査を行うことができる。
【００６２】
図６は、一実施形態によるＴＲＶユニットのブロック図である。図６を参照すれば、ＴＲＶユニット１２０は、キー（key）決定部６１０、ＴＲＶ演算部６３０及びＴＲＶキャッシュ６２０を含む。
【００６３】
キー決定部６１０は、入力された光線の特徴を抽出し、抽出された特徴によって、入力された光線のキーを決定することができる。このとき、光線の特徴は、光線の始点情報及び方向情報を含み、キー決定部６１０は、データベース（ＤＢ）を検索し、光線の始点情報及び方向情報に対応するキーを検索することができる。光線のキーを決定する方法については、図７を参照しながら、以下で詳細に説明する。
【００６４】
図７を参照すれば、光線は、ベクトルで表現することができる。例えば、第１光線は、第１始点７０１及び第１方向を有する第１光線ベクトル７１０で表現され、第２光線は、第２始点７０２及び第２方向を有する第２光線ベクトル７２０で表現される。それにより、光線の始点は、座標で示すことができ、光線の方向は、基準線と光線ベクトルとがなす角度で示すことができる。このとき、キー決定部６１０は、始点または方向が一定範囲内にある光線を、同一グループとして決定し、同一グループに含まれる光線については、同一キーを付与することができる。光線をグループに分類するために、光線が存在する領域７６０を一定サイズに分割し、所定個数のセルを形成することができる。例えば、図７に図示されているように、光線が存在する領域は３２個のセルを含む。
【００６５】
また、基準線と光線ベクトルとがなす角度範囲（０°ないし３６０°）を一定角度ずつ分割し、所定個数の区間を設定することができる。例えば、３６０°を４５°ずつ分割するならば、第１区間は、０°ないし４５°、第２区間は、４５°ないし９０°、第３区間は、９０°ないし１３５°に設定することができ、それにより、８個の区間を設定することができる。それにより、光線の始点が同一のセルに含まれ、光線方向（基準線と光線ベクトルとがなす角度）が同一区間に含まれる場合、同一グループと決定することができる。
【００６６】
例えば、図７に図示されているように、第１光線ベクトルの始点７０１と、第２光線ベクトルの始点７０２とが同一セル７５０に含まれ、第１光線ベクトルの方向（基準線と第１光線ベクトルとがなす角度ａ１）と、第２光線ベクトルの方向（基準線と第２光線ベクトルとがなす角度ａ２）とが第１区間（０°ないし４５°）に含まれる場合、第１光線と第２光線は、同一グループであると決定することができる。従って、第１光線と第２光線とのキーは、同一値を有することができる。
【００６７】
なお、図７に図示されているように、視点に係る区間を３２個（３２個のセル）に設定し、方向に係る区間を８個（第１区間ないし第８区間）に設定した場合、キー決定部６１０は、２５６（＝３２＊８）個の区間データと、それに対応するキーとをデータベース（ＤＢ）に保存することができる。データベースは、ハッシュテーブルの構造を有することができる。それにより、キー決定部６１０は、入力された光線が、いずれの区間に属するかということを判断し、当該区間に対応するキーを、入力された光線のキーとして決定することができる。
【００６８】
ＴＲＶキャッシュ６２０は、タグ部及びデータ部を含み、タグ部は、光線のキーを示すタグデータを保存し、データ部は、前記タグデータに対応する光線の加速構造探索データを保存することができる。このとき、光線のタグデータは、以前の光線キーを示すデータでもある。例えば、以前に、互いに類似していない第１光線及び第２光線について探索を行った場合、第１光線のキーを示す第１タグデータ、及び第２光線のキーを示す第２タグデータがタグ部に保存される。
【００６９】
また、第１光線の探索結果を示す第１加速構造探索データ、及び第２光線の探索結果を示す第２加速構造探索データがデータ部に保存される。また、光線の加速構造探索データは、以前の光線の探索結果、以前の光線と交差するノードクラスタに係るデータ、リーフノードに係るデータ、プリミティブに係るデータのうち少なくとも一つを含む。このとき、ノードクラスタは、加速構造であり、以前の光線に交差するリーフノード、リーフノードのすぐ上の上位ノード、前記上位ノードに係る下位ノードを含むいくつかの下位ノードからなるクラスタでもある。例えば、以前の光線がリーフノードである、図３の第８ノード３５８に交差した場合、ノードクラスタ３１０は、第７ノード３５７、第８ノード３５８及び第９ノード３５９を含む。また、以前の光線がリーフノードである、図３の第６ノード３５６に交差した場合、ノードクラスタ３２０は、第４ノード３５４、第６ノード３５６及び第７ノード３５７を含む。
【００７０】
一方、ＴＲＶキャッシュ６２０は、入力された光線のキーと複数のタグデータとを比較し、ＴＲＶキャッシュ６２０に入力された光線のキーと同一キーを有する以前の光線の加速構造探索データが、保存されているか否かを判断することができる。このとき、入力された光線のキー及び複数のタグデータのうちいずれか一つが一致する場合、キャッシュヒットとして判断し、入力された光線のキーと一致するタグデータが存在しない場合、キャッシュミスとして判断する。
【００７１】
ＴＲＶ演算部６２０は、キャッシュヒットである場合、ＴＲＶキャッシュ６２０から読み取られた加速構造探索データに基づいて、入力された光線の加速構造探索を行うことができる。このとき、加速構造探索データがノードクラスタである場合、入力された光線がノードクラスタに含まれるノードに交差するか否かを探索することができ、ノードクラスタに含まれるノードのうち、最上位ノードから探索を行うことができる。また、加速構造探索データがリーフノードである場合、入力された光線がリーフノードに交差するか否かを探索することができる。
【００７２】
なお、キャッシュミスである場合、入力された光線が、加速構造内のいずれのリーフノードに関連するかということを探索することができる。キャッシュミスである場合、図４で説明したように、加速構造に含まれるノードに対して、光線・ノード交差検査を行い、リーフノードを検出することができる。
【００７３】
図８は、一実施形態によるレイトレーシング処理方法を示すフローチャートである。図８を参照すれば、レイトレーシング処理装置１００は、光線を生成して入力する（Ｓ８１０）。レイトレーシング処理装置１００は、入力された光線の特徴を抽出し、抽出された特徴によって、入力された光線のキーを決定することができる（Ｓ８２０）。このとき、抽出された光線の特徴は、光線の始点情報及び方向情報を含み、抽出された光線の始点情報及び方向情報により、入力された光線のキーを決定することができる。
【００７４】
レイトレーシング処理装置１００は、入力された光線の始点情報及び方向情報を、データベースに保存されている複数のグループ情報と比較し、入力された光線が属するグループを抽出し、抽出されたグループに対応するキーを、入力された光線のキーとして決定することができる。レイトレーシング処理装置１００は、入力された光線のキーと同一キーを有する以前の光線に係る加速構造探索データが、ＴＲＶキャッシュ６２０に保存されているか否かを判断する（Ｓ８３０）。
【００７５】
例えば、図９に図示されているように、レイトレーシング処理装置１００は、入力さた光線のキーと、ＴＲＶキャッシュ６２０のタグデータＴＤ１，ＴＤ２，ＴＤ３とをそれぞれを比較し、一致するかを判断することができる。そのとき、レイトレーシング処理装置１００は、入力された光線のキーと一致するタグデータが存在する場合、キャッシュヒットとして判断し、入力された光線のキーと一致するタグデータが存在しない場合、キャッシュミスとして判断する。
【００７６】
判断結果、キャッシュヒットである場合（入力された光線のキーと同一キーを有する以前の光線に係る加速構造探索データが、ＴＲＶキャッシュ６２０に保存されている場合）、レイトレーシング処理装置１００は、当該加速構造探索データを読み取る（Ｓ８４０）。例えば、レイトレーシング処理装置１００は、図９に図示されているように、入力された光線のキーと、第２タグデータＴＤ２とが一致する場合、第２タグデータＴＤ２に対応する第２キャッシュデータ（加速構造探索データ）ＣＤ２を、ＴＲＶ演算部６３０に出力する。
【００７７】
レイトレーシング処理装置１００は、読み取られた加速構造探索データに基づいて、入力された光線に係る加速構造探索を行う（Ｓ８５０）。例えば、レイトレーシング処理装置１００は、読み取られた加速構造探索データが、ノードクラスタである場合、入力された光線がノードクラスタに含まれるノードに交差するか否かを探索することができ、ノードクラスタに含まれるノードのうち、最上位ノードから探索を行うことができる。また、レイトレーシング処理装置１００は、読み取られたデータがリーフノードである場合、入力された光線が、リーフノードに交差するか否かを探索することができる。
【００７８】
なお、判断結果、入力された光線のキーと同一キーを有する以前の光線に係る加速構造探索データが、ＴＲＶキャッシュ６２０に保存されていない場合（キャッシュミスである場合）、レイトレーシング処理装置１００は、入力された光線に係る加速構造探索を行う（Ｓ８５０）。このとき、レイトレーシング処理装置１００は、図４で説明したように、加速構造に含まれるノードについて、光線・ノード交差検査を行い、リーフノードを検出することができる。
【００７９】
一方、レイトレーシング処理装置１００は、入力された光線のキーをＴＲＶキャッシュ６２０のタグ部６２１に保存し、それに対応するデータ部６２２の領域に、前記加速構造探索結果データを保存することができる。例えば、レイトレーシング処理装置１００は、入力された光線に係る加速構造探索を行い、入力された光線が交差するノードクラスタ及びリーフノードのうち少なくとも一つを検出し、前記検出されたノードクラスタまたはリーフノードに係るデータを保存することができる。
【００８０】
図１０は、実施形態によるレイトレーシング処理方法を示すフローチャートである。図１０のＳ９１０段階、Ｓ９２０段階及びＳ９３０段階は、それぞれ図８のＳ８１０段階、Ｓ８２０段階及びＳ８３０段階と同一であるので、それらについては、同一説明を省略し、図８の説明で代替する。
【００８１】
Ｓ９３０段階での判断結果、キャッシュヒットである場合（入力された光線のキーと同一キーを有する以前の光線に係る加速構造探索データが、ＴＲＶキャッシュ６２０に保存されている場合）、レイトレーシング処理装置１００は、当該加速構造探索データを読み取る（Ｓ９４０）。
【００８２】
一方、読み取られた加速構造探索データが、以前の光線が交差するプリミティブに係るデータである場合、レイトレーシング処理装置１００は、入力された光線が、前記プリミティブと交差するか否かを検査し、交差する場合、入力された光線と前記プリミティブとの交差点を計算することができる（Ｓ９５０）。なお、Ｓ９３０段階での判断結果、入力された光線のキーと同一キーを有する以前の光線に係る加速構造探索データが、ＴＲＶキャッシュ６２０に保存されていない場合（キャッシュミスである場合）、レイトレーシング処理装置１００は、入力された光線に係る加速構造探索を行う（Ｓ９６０）。このとき、レイトレーシング処理装置１００は、図４で説明したように、加速構造に含まれるノードについて、光線・ノード交差検査を行い、リーフノードを検出することができる。
【００８３】
レイトレーシング処理装置１００は、入力された光線のキーを、ＴＲＶキャッシュ６２０のタグ部６２１に保存し、それに対応するデータ部６２２の領域に、前記加速構造探索結果データを保存することができる。例えば、レイトレーシング処理装置１００は、入力された光線に係る加速構造探索を行い、入力された光線が交差するノードクラスタ及びリーフノードのうち少なくとも一つを検出し、前記検出されたノードクラスタまたはリーフノードに係るデータを保存することができる。
【００８４】
以上において図示して説明したように、実施形態によるレイトレーシング処理装置は、以前の光線の探索結果をＴＲＶキャッシュに保存し、以前の光線と類似した光線が入力される場合、ＴＲＶキャッシュに保存された以前の光線の探索結果を利用することができる。それにより、フレーム間の類似性を利用して、以前のフレームに係る光線探索結果を現在フレームに活用することにより、現在フレームのレイトレーシング処理に必要な演算量を低減させることができる。
【００８５】
一方、キャッシュメモリシステム及びその動作方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードでもって具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全種の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ（read-only  memory）、ＲＡＭ（random-access  memory）、ＣＤ（compact  disc）−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またインターネットを介した伝送のようなキャリアウェーブの形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
【００８６】
以上、本発明の実施形態について図示して説明したが、本発明は、前述の特定実施形態に限定されるものではなく、特許請求の範囲で請求する本発明の要旨を外れることなく、発明が属する技術分野で当業者によって、多様な変形実施が可能であるということは言うまでもなく、こうした変形実施は、本発明の技術的思想や展望から個別的に理解されられるものではないのである。
【産業上の利用可能性】
【００８７】
本発明のレイトレーシング処理装置及びその方法は、例えば、映像生成関連の技術分野に効果的に適用可能である。
【符号の説明】
【００８８】
１０        視点
１５        画面
３１        第１物体
３２        第２物体
３３        第３物体
４０        一次光線
６０        反射光線
７０        屈折光線
８０        光源
９０        シャドー光線
１００      レイトレーシング処理装置
１１０      光線生成ユニット
１２０      ＴＲＶユニット
１３０      ＩＳＴユニット
１４０      シェーディングユニット
２００      加速構造生成装置
２５０      外部メモリ
２５１      加速構造
２５２      幾何データ
３５１      第１ノード
３５２      第２ノード
３５３      第３ノード
３５４      第４ノード
３５５      第５ノード
３５６      第６ノード
３５７      第７ノード
３５８      第８ノード
３５９      第９ノード
５１０      第１フレーム
５２０      第２無フレーム
６１０      キー決定部
６２０      ＴＲＶキャッシュ
６２１      タグ部
６２２      データ部
６３０      ＴＲＶ演算部
７０１      第１始点
７０２      第２始点
７１０      第１光線ベクトル
７２０      第２光線ベクトル
７５０      セル
７６０      領域
【図１】
2015090712.tif 000003
【図２】
2015090712.tif 000004
【図３】
2015090712.tif 000005
【図４】
2015090712.tif 000006
【図５】
2015090712.tif 000007
【図６】
2015090712.tif 000008
【図７】
2015090712.tif 000009
【図８】
2015090712.tif 000010
【図９】
2015090712.tif 000011
【図１０】
2015090712.tif 000012