(57)【要約】【課題】  レイトレーシング・システムでの加速構造探索装置及びその探索方法を提供する。【解決手段】  加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得し、獲得された情報に基づいて、複数の子ノードそれぞれが光線と交差するか否かということを判断し、光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定し、決定された次のターゲットノードのタイプに対応する動作を遂行することにより、加速構造の探索に必要となる時間を短縮する、レイトレーシング・システムでの加速構造探索装置及び方法である。【選択図】      図３
2015225673.tif 000002
【特許請求の範囲】
【請求項１】
加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する段階と、
前記獲得された情報に基づいて、前記複数の子ノードそれぞれが光線と交差するか否かを判断する段階と、
前記光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定する段階と、
前記決定された次のターゲットノードのタイプに対応する動作を遂行する段階と、を含むレイトレーシング・システムでの加速構造探索方法。
【請求項２】
前記次のターゲットノードを決定する段階は、
前記光線と交差する１つの子ノードが存在する場合、前記１つの子ノードを、前記次のターゲットノードと決定し、前記光線と交差する２以上の子ノードが存在する場合、前記２以上の子ノードのうち、前記光線との交差距離が最も近い子ノードを、前記次のターゲットノードとして決定することを特徴とする請求項１に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項３】
前記次のターゲットノードを決定する段階は、
前記光線と交差する子ノードが存在しない場合、前記加速構造において、前記ターゲットノードに属していないノードのうち、いずれか１つのノードを抽出する段階と、
前記抽出されたノードを、前記次のターゲットノードとして決定する段階と、を含むことを特徴とする請求項１に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項４】
前記次のターゲットノードのタイプに対応する動作を遂行する段階は、
前記次のターゲットノードがインナーノードである場合、前記次のターゲットノードの少なくとも１つの子ノードに移動し、前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブが、前記光線と交差するか否かを判断することを特徴とする請求項１に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項５】
前記次のターゲットノードのタイプに対応する動作を遂行する段階は、
前記少なくとも１つのプリミティブそれぞれに対して、前記光線と交差するか否か判断した場合、前記光線と交差する他の子ノードを探索する段階をさらに含むことを特徴とする請求項４に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項６】
前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブに対して既設定のバウンディングボックスと、前記光線とが交差するか否かを判断する段階をさらに含むことを特徴とする請求項４に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項７】
ルートノードに含まれる前記ターゲットノードがリーフノードである場合、前記ターゲットノードに含まれる少なくとも１つのプリミティブを分割する段階と、
前記分割された少なくとも１つのプリミティブに基づいて、前記ターゲットノードの子ノードを生成する段階と、をさらに含むことを特徴とする請求項１に記載のレイトレーシング・システムでの加速構造探索方法。
【請求項８】
加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する情報獲得部と、
前記獲得された情報に基づいて、前記複数の子ノードそれぞれが光線と交差するか否かを判断する交差検査部と、
前記光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定し、決定された次のターゲットノードのタイプに対応する動作を遂行する制御部と、を含むレイトレーシング・システムでの加速構造探索装置。
【請求項９】
前記制御部は、
前記光線と交差する１つの子ノードが存在する場合、前記１つの子ノードを、前記次のターゲットノードと決定し、前記光線と交差する２以上の子ノードが存在する場合、前記２以上の子ノードのうち、前記光線との交差距離が最も近い子ノードを、前記次のターゲットノードとして決定することを特徴とする請求項８に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１０】
前記制御部は、
前記光線と交差する子ノードが存在しない場合、前記加速構造において、前記ターゲットノードに属していないノードのうちいずれか１つのノードを抽出し、前記抽出されたノードを、前記次のターゲットノードとして決定することを特徴とする請求項８に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１１】
前記制御部は、
前記次のターゲットノードがインナーノードである場合、前記次のターゲットノードの少なくとも１つの子ノードに移動し、前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブが、前記光線と交差するか否かということを判断することを特徴とする請求項８に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１２】
前記制御部は、
前記少なくとも１つのプリミティブそれぞれに対して、前記光線と交差するか否かということを判断した場合、前記光線と交差する他の子ノードを探索することを特徴とする請求項１１に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１３】
前記交差検査部は、
前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブに対して既設定のバウンディングボックスと、前記光線とが交差するか否かを判断する段階をさらに含むことを特徴とする請求項１１に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１４】
前記制御部は、
ルートノードに含まれる前記ターゲットノードがリーフノードである場合、前記ターゲットノードに含まれる少なくとも１つのプリミティブを分割し、前記分割された少なくとも１つのプリミティブに基づいて、前記ターゲットノードの子ノードを生成することを特徴とする請求項８に記載のレイトレーシング・システムでの加速構造探索装置。
【請求項１５】
請求項１に記載の方法をコンピュータに実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイトレーシング・システムでの加速構造探索装置及びその探索方法に関する。
【背景技術】
【０００２】
一般的に、３Ｄレンダリング（３−dimensional  rendering）は、三次元客体データを、与えられたカメラ視点（view  point）で見える映像に合成（synthesis）する映像処理をいう。
【０００３】
レンダリング方法は、三次元客体を画面に投影（projection）しながら映像を生成するラスター化（rasterization）方法や、カメラ視点から、映像の各ピクセルに向かった光線に沿って入射する光の経路を追跡し、映像を生成するレイトレーシング（raytracing）などがある。
【０００４】
このうちレイトレーシングは、光の物理的性質（反射、屈折、透過など）をレンダリング結果に反映するので、高品質映像を生成することができるという長所があるが、相対的に演算量が膨大であり、高速でレンダリングするのに困難が伴う。
【０００５】
レイトレーシングにおいて、演算量が多く要求される要素は、レンダリング対象になるシーンオブジェクト（scene  object）を空間的に分割した加速構造（ＡＳ：acceleration  structure）の生成及び探索（ＴＲＶ：traversal）と、光線とプリミティブとの交差検査（ＩＳＴ：intersection  test）とである。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、加速構造探索の遂行時、子ノードと光線との交差検査を効率的に行うレイトレーシング・システムでの加速構造探索装置及び探索方法を提供することである。
【課題を解決するための手段】
【０００７】
前記課題を解決するために本発明の一実施形態によるレイトレーシング・システムでの加速構造探索方法は、加速構造に含まれるターゲットノードに係わる複数の子ノード（child  node）の情報を獲得する段階と、前記獲得された情報に基づいて、前記複数の子ノードそれぞれが光線と交差するか否かということを判断する段階と、前記光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決める段階と、前記決定された次のターゲットノードのタイプに対応する動作を遂行する段階と、を含む。
【０００８】
他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記光線と交差するか否かということを判断する段階は、前記複数の子ノードそれぞれに対して並列して、前記光線と交差するか否かということを判断する。
【０００９】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記光線と交差するか否かということを判断する段階は、第１子ノード及び第２子ノードに対してそれぞれ獲得した情報に基づいて、前記第１子ノード及び前記第２子ノードそれぞれが、前記光線と交差するか否かということを同時に判断する。
【００１０】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記次のターゲットノードを決定する段階は、前記光線と交差する１つの子ノードが存在する場合、前記１つの子ノードを、前記次のターゲットノードと決定し、前記光線と交差する２以上の子ノードが存在する場合、前記２以上の子ノードのうち、前記光線との交差距離が最も近い子ノードを、前記次のターゲットノードとして決定する。
【００１１】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記次のターゲットノードを決定する段階は、前記光線と交差する子ノードが存在しない場合、前記加速構造において、前記ターゲットノードに属していないノードのうちいずれか１つのノードを抽出する段階と、前記抽出されたノードを、前記次のターゲットノードとして決定する段階と、を含む。
【００１２】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記次のターゲットノードのタイプに対応する動作を遂行する段階は、前記次のターゲットノードがインナー（inner）ノードである場合、前記次のターゲットノードの少なくとも１つの子ノードに移動し、前記次のターゲットノードがリーフ（leaf）ノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブ（primitiveが、前記光線と交差するか否かということを判断する。
【００１３】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記次のターゲットノードのタイプに対応する動作を遂行する段階は、前記少なくとも１つのプリミティブそれぞれに対して、前記光線と交差するか否かということを判断した場合、前記光線と交差する他の子ノードを探索する段階をさらに含む。
【００１４】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブに対して既設定のバウンディングボックスと、前記光線との交差いかんを判断する段階をさらに含む。
【００１５】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索方法において、ルートノードに含まれる前記ターゲットノードがリーフノードである場合、前記ターゲットノードに含まれる少なくとも１つのプリミティブを分割する段階と、前記分割された少なくとも１つのプリミティブに基づいて、前記ターゲットノードの子ノードを生成する段階をさらに含む。
【００１６】
前記課題を解決するために本発明の一実施形態によるレイトレーシング・システムでの加速構造探索装置は、加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する情報獲得部と、前記獲得された情報に基づいて、前記複数の子ノードそれぞれが光線と交差するか否かということを判断する交差検査部と、前記光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定し、決定された次のターゲットノードのタイプに対応する動作を遂行する制御部と、を含む。
【００１７】
他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記交差検査部は、前記複数の子ノードそれぞれに対して並列して、前記光線と交差するか否かということを判断する。
【００１８】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記交差検査部は、第１子ノード及び第２子ノードに対してそれぞれ獲得した情報に基づいて、前記第１子ノード及び前記第２子ノードそれぞれが、前記光線と交差するか否かということを同時に判断する。
【００１９】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記制御部は、前記光線と交差する１つの子ノードが存在する場合、前記１つの子ノードを、前記次のターゲットノードと決定し、前記光線と交差する２以上の子ノードが存在する場合、前記２以上の子ノードのうち、前記光線との交差距離が最も近い子ノードを、前記次のターゲットノードとして決定する。
【００２０】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記制御部は、前記光線と交差する子ノードが存在しない場合、前記加速構造において、前記ターゲットノードに属していないノードのうちいずれか１つのノードを抽出し、前記抽出されたノードを、前記次のターゲットノードとして決定する。
【００２１】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記制御部は、前記次のターゲットノードがインナーノードである場合、前記次のターゲットノードの少なくとも１つの子ノードに移動し、前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブが前記光線と交差するか否かということを判断する。
【００２２】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記制御部は、前記少なくとも１つのプリミティブそれぞれに対して、前記光線と交差するか否かということを判断した場合、前記光線と交差する他の子ノードを探索する。
【００２３】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記交差検査部は、前記次のターゲットノードがリーフノードである場合、前記リーフノードに含まれた少なくとも１つのプリミティブに対して既設定のバウンディングボックスと、前記光線との交差いかんを判断する。
【００２４】
さらに他の一実施形態によるレイトレーシング・システムでの加速構造探索装置において、前記制御部は、ルートノードに含まれる前記ターゲットノードがリーフノードである場合、前記ターゲットノードに含まれる少なくとも１つのプリミティブを分割し、前記分割された少なくとも１つのプリミティブに基づいて、前記ターゲットノードの子ノードを生成する。
【発明の効果】
【００２５】
本発明の加速構造探索の遂行時、処理速度を向上させ、必要となる時間を短縮させることにより、子ノードと光線との交差検査を効率的に行うことができる。
【図面の簡単な説明】
【００２６】
【図１】一般的なレイトレーシング方法について説明するための図面である。
【図２】レイトレーシング・システムを示す図面である。
【図３】一実施形態による、レイトレーシング・システムでの加速構造探索装置を示すブロック図である。
【図４】一実施形態による、ターゲットノードの子ノードについての情報が保存される資料構造について説明するための図面である。
【図５】一実施形態による、レイトレーシング・システムでの加速構造探索方法について説明するためのフローチャートである。
【図６】一実施形態による加速構造探索装置が、光線と交差する子ノードのタイプによって、対応する動作を遂行する方法について具体的に説明するためのフローチャートである。
【図７】一実施形態による、レイトレーシング・システムでの状態ダイヤグラムを図示した図面である。
【図８】一実施形態による、レイトレーシング・システムでの加速構造探索装置について、さらに具体的に説明するためのブロック図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照し、開示された実施形態について詳細に説明する。
【００２８】
図１は、レイトレーシング方法について説明するための図面である。図１に図示されているように、三次元モデリングは、光源８０、第１物体３１、第２物体３２、第３物体３３を含んでもよい。図１において、第１物体３１、第２物体３２及び第３物体３３は、二次元物体のように表現されているが、それは、説明の便宜のためであり、第１物体３１、第２物体３２及び第３物体３３は、三次元物体である。
【００２９】
このとき、第１物体３１は、反射率及び屈折率が０より大きく、第２物体３２及び第３物体３３は、反射率及び屈折率が０であると仮定することができる。すなわち、第１物体３１は、光を反射及び屈折させ、第２物体３２及び第３物体３３は、光を反射させもせず、屈折させもしないと仮定することができる。
【００３０】
図１のような三次元モデリングにおいて、レンダリング装置（例えば、レイトレーシング装置）は、三次元映像を生成するために、視点１０を決定し、決定された視点１０によって、画面１５を決定することができる。
【００３１】
視点１０と画面１５とが決定されれば、レイトレーシング装置１００（図２）は、視点１０から、画面１５の各ピクセルに対して光線を生成することができる。
【００３２】
例えば、図１に図示されているように、画面１５の解像度が４＊３の場合、１２個のピクセルに対してそれぞれ光線を生成することができる。
【００３３】
以下では、説明の簡明化のため、１つのピクセル（ピクセルＡ）に対する光線についてのみ説明するが、他のピクセルについても同様である。
【００３４】
図１を参照すれば、視点１０から、ピクセルＡに対して、一次光線（primary  ray）４０が生成される。一次光線４０は、三次元空間を通過し、第１物体３１に逹する。ここで、第１物体３１は、決定された単位領域（以下、プリミティブ（primitive）とする）の集合によって構成され、例えば、プリミティブは、三角形、四角形などの多角形でもある。以下では、プリミティブが三角形であるということを例として挙げて説明する。
【００３５】
一方、一次光線４０と第１物体３１との交差点（hit  point）では、シャドー光線（shadow  ray）５０、反射光線（reflection  ray）６０及び屈折光線（refraction  ray）７０を生成することができる。このとき、シャドー光線５０、反射光線６０及び屈折光線７０を二次光線という。
【００３６】
シャドー光線５０は、交差点から光源８０の方向に生成される。反射光線６０は、一次光線４０の入射角に対応する方向に生成され、第１物体３１の反射率による加重値が適用される。屈折光線７０は、一次光線４０の入射角、及び第１物体３１の屈折率に対応する方向に生成され、第１物体３１の屈折率による加重値が適用される。
【００３７】
レイトレーシング装置１００は、シャドー光線５０により、交差点が光源８０に露出されているか否かということを判断する。例えば、図１に図示されているように、シャドー光線５０が第２物体３２と出合えば（遭遇するならば）、当該シャドー光線５０が生成された交差点に影が生成される。
【００３８】
また、レイトレーシング装置１００は、屈折光線７０及び反射光線６０が、他の物体に逹するか否かということを判断する。例えば、図１に図示されているように、屈折光線７０の進行方向には、いかなる物体も存在せず、反射光線６０は、第３物体３３に逹する。それにより、レイトレーシング装置１００は、第３物体３３の交差点の座標及び色相情報を確認し、また第３物体３３の交差点から、シャドー光線９０を生成する。このとき、レイトレーシング装置１００は、シャドー光線９０が光源８０に露出されているか否かということを判断する。
【００３９】
一方、第３物体３３の反射率及び屈折率が０であるので、第３物体３３に対する反射光線及び屈折光線は生成されない。
【００４０】
前述のように、レイトレーシング装置１００は、ピクセルＡに対する一次光線４０、及び一次光線４０から派生される全ての光線を分析し、分析結果によって、ピクセルＡの色に関する値（例えば、色相値）を決定する。ピクセルＡの色相値の決定は、一次光線４０の交差点の色相、反射光線６０の交差点の色相、シャドー光線５０が光源８０に逹するか否かということによる影響を受ける。
【００４１】
レイトレーシング装置１００は、前記のような過程を、画面１５の全てのピクセルに対して遂行し、画面１５を構成することができる。
【００４２】
図２は、レイトレーシング・システムを示す図面である。図２を参照すれば、レイトレーシング・システムは、レイトレーシング装置１００、外部メモリ２５０及び加速構造生成装置２００を含んでもよい。
【００４３】
また、レイトレーシング装置１００は、光線生成ユニット１１０、ＴＲＶユニット（traversal  unit）１２０、ＩＳＴユニット（intersection  unit）１３０及びシェーディングユニット（shading  unit）１４０を含んでもよい。
【００４４】
光線生成ユニット１１０は、一次光線、及び一次光線によって派生される光線を生成することができる。光線生成ユニット１１０は、図１で説明したように、視点１０から一次光線を生成し、一次光線とオブジェクトとの交差点で、二次光線を生成することができる。このとき、二次光線は、一次光線がオブジェクトと交差した地点で生成された反射光線、屈折光線またはシャドー光線でもある。
【００４５】
また、光線生成ユニット１１０は、二次光線とオブジェクトとの交差点で、三次光線を生成することができる。光線生成ユニット１１０は、光線がオブジェクトと交差しなくなるまで、光線を続けて生成するか、あるいは定められた回数内で、光線を生成することができる。
【００４６】
ＴＲＶユニット（１２０）は、光線生成ユニット１１０から生成された光線に対する情報を受信することができる。生成された光線は一次光線及び一次光線から派生し光線（二次光線、三次光線など）を皆含む。例えば、一次光線の場合、ＴＲＶユニット１２０は、生成された光線の視点及び方向に係わる情報を受信することができる。また、二次光線の場合、ＴＲＶユニット１２０は、二次光線の出発点及び方向に係わる情報を受信することができる。二次光線の出発点は、一次光線がオブジェクトと交差した地点を示す。また、視点または出発点は、座標で表現され、方向は、ベクトル又はベクターでも表現される。
【００４７】
ＴＲＶユニット１２０は、外部メモリ２５０から、加速構造（ＡＳ）に係わる情報を読み取ることができる。加速構造は、処理を高速化するために利用可能なツリー構造を含む。
【００４８】
このとき、加速構造は、加速構造生成装置（acceleration  structure  generator）２００によって生成され、生成された加速構造は、外部メモリ２５０に保存される。
【００４９】
加速構造生成装置２００は、三次元空間上のオブジェクトの位置情報を含む加速構造を生成することができる。加速構造生成装置２００は、三次元空間を階層的ツリー状に分割する。加速構造生成装置２００は、さまざまな形態の加速構造を生成することができる。例えば、加速構造生成装置２００は、ＫＤ次元ツリー（ＫＤ−tree：Ｋ−dimensional  tree）、バウンディング階層空間（ＢＶＨ：bounding  volume  hierarchy）を適用し、三次元空間上のオブジェクトの関係を示す加速構造を生成することができる。
【００５０】
該加速構造は、ルートノード（root  node）、インナーノード（inner  node）、リーフノード（leaf  node）及びプリミティブを含んでもよい。ここで、該ルートノードは、親ノード（parent  node）を有さず、子ノード（child  node）だけ有する最上位ノードである。また、該インナーノードは、親ノード及び子ノードをいずれも有するノードである。該リーフノードは、子ノードは有さず、親ノードだけ有する最下位ノードである。一方、リーフノードは、リーフノードに存在するプリミティブを含んでもよい。
【００５１】
ＴＲＶユニット１２０は、読み取った加速構造に係わる情報を探索し、光線が交差するリーフノードを検出することができる。
【００５２】
ＩＳＴユニット１３０は、ＴＲＶユニット１２０から、光線が交差するリーフノードを受信することができる。
【００５３】
ＩＳＴユニット１３０は、受信したリーフノードに含まれたプリミティブに係わる情報（幾何データ）を、外部メモリ２５０から読み取ることができる。
【００５４】
ＩＳＴユニット１３０は、読み取ったプリミティブに係わる情報を利用して、光線とプリミティブとの交差検査を行うことができる。
【００５５】
例えば、ＩＳＴユニット１３０は、ＴＲＶユニット１２０から受信したリーフノードに含まれた複数のプリミティブのうち、いずれのプリミティブに光線が交差したかということを検査することができる。
【００５６】
それにより、光線が交差するプリミティブを検出し、検出されたプリミティブと光線とが交差した地点（hit  point）を計算することができる。
【００５７】
計算された交差点（hit  point）は、座標形態で、シェーディングユニット１４０に出力される。
【００５８】
シェーディングユニット１４０は、交差点に係わる情報、及び交差点の物質特性に基づいて、ピクセルの色相値を決定することができる。また、シェーディングユニット１４０は、交差点の物質の基本色相、及び光源による効果などを考慮し、ピクセルの色相値を決定することができる。
【００５９】
例えば、図１のピクセルＡの場合、シェーディングユニット１４０は、一次光線４０、及び二次光線である屈折光線７０、反射光線６０、シャドー光線５０による効果をいずれも考慮し、ピクセルＡの色相値を決定することができる。
【００６０】
一方、レイトレーシング装置１００は、外部メモリ２５０から、レイトレーシングに必要なデータを受信することができる。外部メモリ２５０は、加速構造または幾何データ（geometry  data）を保存することができる。
【００６１】
該加速構造は、加速構造生成装置２００によって生成され、外部メモリ２５０に保存される。
【００６２】
また、該幾何データは、プリミティブに係わる情報を示す。該プリミティブは、三角形、四角形などの多角形でもあり、該幾何データは、オブジェクトに含まれるプリミティブの頂点及び位置に係わる情報を示すことができる。例えば、該プリミティブが三角形である場合、幾何データは、三角形の三点に係わる頂点座標、法線ベクトルまたはテクスチャ座標を含んでもよい。
【００６３】
一方、レイトレーシング装置１００は、加速構造を探索し、光線に交差するリーフノードを検出することができる。レイトレーシング装置１００は、いずれか１つの経路に沿って加速構造を探索し、探索が完了すれば、他の経路の加速構造を探索することができる。他の経路の加速構造を探索する場合、レイトレーシング装置１００は、探索の効率を高めるため、探索されていないノード（node）情報をスタック（stack）に保存することができる。ここで、該スタックは、レイトレーシング装置１００に含まれる臨時記憶装置でもある。ただし、それは一実施形態であるのみ、該スタックは、レイトレーシング装置１００の外部に存在し、レイトレーシング装置１００に含まれた複数個のモジュールとそれぞれ通信することもできる。
【００６４】
図３は、一実施形態によるレイトレーシング・システム１０での加速構造探索装置３００を示すブロック図である。図３を参照すれば、加速構造探索装置３００は、情報獲得部３１０、交差検査部３２０及び制御部３３０を含んでもよい。
【００６５】
また、図３に図示された、情報獲得部３１０、交差検査部３２０及び制御部３３０は、加速構造探索遂行のためのものであり、図２のＴＲＶユニット１２０に含まれる構成でもある。ただし、それに限定されるものではない。
【００６６】
情報獲得部３１０は、加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する。ここで、ターゲットノードは、インナーノードまたはルートノードでもある。情報獲得部３１０は、次に探索するためのノード（以下、次のターゲットノード）を決定するために、ターゲットノードに係わる複数の子ノードの情報を獲得することができる。
【００６７】
情報獲得部３１０は、ルートノードから、加速構造の探索を始めることができる。一実施形態によるルートノードは、子ノードを有することができる。情報獲得部３１０は、ルートノードの次のターゲットノードを決定するために、ルートノードに係わる複数の子ノードの情報を獲得することができる。
【００６８】
他の一実施形態によって、ルートノードが子ノードを有さないリーフノードである場合、情報獲得部３１０は、リーフノードに含まれた少なくとも１つのプリミティブを分割し、子ノードを生成するように、加速構造生成装置２００を制御することができる。加速構造生成装置２００がリーフノードに含まれた少なくとも１つのプリミティブを分割し、子ノードを生成する場合、情報獲得部３１０は、生成された子ノードについての情報を獲得することができる。
【００６９】
一方、ターゲットノードの子ノードについての情報は、ターゲットノードの次のターゲットノードを決定するのに必要な情報を含んでもよい。一実施形態によるターゲットノードの子ノードについての情報には、子ノードが保存されているメモリアドレス、子ノードを示すインデックス、子ノードのタイプ情報、及び子ノードのバウンディングボックス情報などが含まれる。ここで、バウンディングボックスは、三次元空間上で独立して動く物体を含む最小六面体空間である。
【００７０】
ターゲットノードの子ノードについての情報については、以下、図４を参照して具体的に説明する。
【００７１】
図４は、一実施形態による、ターゲットノードの子ノードについての情報が保存される資料構造について説明するための図面である。図４を参照すれば、ターゲットノードの子ノードについての情報は、既設定の形態の資料構造４００を有することができる。例えば、ターゲットノードの子ノードについての情報には、子ノードを識別することができる識別情報４１４，４１６が含まれる。子ノードがインナーノードである場合、該識別情報４１４，４１６は、子ノードを示すインデックス情報を示すことができる。一方、子ノードがリーフノードである場合、識別情報４１４，４１６は、子ノードに含まれたプリミティブの開始インデックスを示すところに使用される。
【００７２】
また、子ノードがリーフノードである場合、子ノードに含まれるプリミティブの個数を示すために、ターゲットノードの子ノードについての情報には、子ノードそれぞれのプリミティブの個数を示すプリミティブ個数情報４２２，４２４が含まれてもよい。一方、子ノードがインナーノードである場合、プリミティブ個数情報４２２，４２４は、０に設定されもする。
【００７３】
ターゲットノードの子ノードについての情報には、子ノードのバウンディングボックス情報４３２，４３４が含まれてもよい。また、ターゲットノードの子ノードについての情報には、ターゲットノードの親ノードについての情報４１２がさらに含まれてもよい。ただし、それは一実施形態であるのみ、ターゲットノードの子ノードについての情報には、前述の情報以外の他の情報が含まれてもよい。
【００７４】
一実施形態による情報獲得部３１０は、既設定形態の資料構造４００に含まれた子ノードそれぞれに係わる情報を同時に獲得し、ターゲットノードの子ノードそれぞれについての情報を獲得するために、反復的にターゲットノードを探索しないこともある。情報獲得部３１０は、子ノードが保存されているメモリアドレスを介して、それぞれの子ノードを探索することができ、子ノードを示すインデックスを介して、子ノードを識別することができる。一方、ターゲットノードがインナーノードである場合、子ノードを示すインデックスは、ターゲットノードに含まれる少なくとも１つのプリミティブをそれぞれ示すことができる。
【００７５】
また、情報獲得部３１０は、子ノードのタイプ情報及び子ノードのバウンディングボックス情報４３２，４３４を獲得し、１回の探索過程だけで、次に探索するノード及び次に探索するノードに対して遂行する動作を決定する情報を提供することができる。
【００７６】
一方、本明細書では、説明の便宜上、ターゲットノードが、２個の子ノードを有する場合を一例として挙げて説明する。ただし、それは一実施形態であるにすぎず、本発明はターゲットノードが２個の子ノードを有する場合に限定されない。
【００７７】
交差検査部３２０は、獲得された複数の子ノードの情報に基づいて、複数の子ノードそれぞれが、光線と交差するか否かということを判断する。交差検査部３２０は、子ノードのバウンディングボックス情報４３２，４３４に基づいて、子ノードそれぞれのバウンディングボックスが光線と交差するか否かということを並列的に判断することができる。
【００７８】
一実施形態による交差検査部３２０は、子ノードそれぞれのバウンディングボックスが光線と交差するか否かということを同時に判断することができる。例えば、交差検査部３２０は、第１子ノードのバウンディングボックス情報４３２と、第２子ノードのバウンディングボックス情報４３４を基に、第１子ノードのバウンディングボックスと、第２子ノードのバウンディングボックスとがそれぞれ光線と交差するか否かということを同時に判断することができる。
【００７９】
一方、交差検査部３２０は、ターゲットノードに含まれた子ノードが３個以上である場合にも、それぞれの子ノードに対して、同時に光線と交差するか否かということを判断することができる。ただし、それは一実施形態であるにすぎず、他の一実施形態によって、既設定の順序に基づいて、複数の子ノードのうち、一部子ノードをグルーピングし、グルーピングされた子ノード別にそれぞれのバウンディングボックスに対する交差検査を行うこともできる。
【００８０】
制御部３３０は、光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定する。制御部３３０は、交差検査部３２０から、光線と交差する少なくとも１つの子ノードに係わる情報を獲得することができる。
【００８１】
制御部３３０は、光線と交差する子ノードが２個以上である場合、交差距離に基づいて、次のターゲットノードを決定することができる。例えば、制御部３３０は、光線と交差する第１子ノード及び第２子ノードに対して、第１子ノードと光線との交差距離が、第２子ノードと光線との交差距離より短い場合、第１子ノードを次のターゲットノードとして決定することができる。
【００８２】
また、制御部３３０は、光線と交差する子ノードのうち、次のターゲットノードとして決定されていない他の子ノードを、スタックに保存することができる。例えば、第１子ノード及び第２子ノードのうち、制御部３３０は、次のターゲットノードとして決定されていない第２子ノードをスタックに保存することができる。
【００８３】
制御部３３０は、決定された次のターゲットノードのタイプに対応する動作を遂行する。一実施形態による制御部３３０は、決定された次のターゲットノードのタイプを判別することができる。ここで、ターゲットノードのタイプは、インナーノードまたはリーフノードを含んでもよい。制御部３３０は、次のターゲットノードがインナーノードである場合、それに係わる情報を情報獲得部３１０に伝送し、前述の一連の過程がさらに遂行される。
【００８４】
例えば、次のターゲットノードがインナーノードＡである場合、制御部３３０は、インナーノードＡをターゲットノードと決定し、インナーノードＡに係わる情報を情報獲得部３１０に伝送する。情報獲得部３１０は、インナーノードＡをターゲットノードと決定し、インナーノードＡの子ノードに係わる情報を獲得することができる。また、交差検査部３２０は、インナーノードＡの子ノードについて獲得した情報を基に、インナーノードＡの子ノードそれぞれに、交差検査を行うことができる。制御部３３０は、インナーノードＡの子ノードのうち、光線と交差する少なくとも１つの子ノードを抽出し、抽出された少なくとも１つの子ノードのうちから、次のターゲットノードを決定することができる。
【００８５】
一方、次のターゲットノードがリーフノードＢである場合、制御部３３０は、リーフノードＢについての情報を、ＩＳＴユニット１３０（図２）に伝送する。ＩＳＴユニット１３０では、リーフノードＢに含まれた少なくとも１つのプリミティブそれぞれに対して、反復して光線との交差検査を行う。他の例によって、制御部３３０は、外部メモリ２５０に保存されたリーフノードＢに含まれた少なくとも１つのプリミティブに係わる情報が、ＩＳＴユニット１３０に伝送されるように、外部メモリ２５０を制御することもできる。
【００８６】
制御部３３０は、次のターゲットノードが存在しない場合には、一連の探索過程を終了し、光線に対して探索された結果を、シェーディングユニット１４０に伝送する。シェーディングユニット１４０は、光線とプリミティブとの交差点に係わる情報、及び交差点の物質特性に基づいて、光線に対応するピクセルの色相値を決定することができる。また、シェーディングユニット１４０は、交差点物質の基本色相、及び光源による効果などを考慮し、ピクセルの色相値を決定することができる。
【００８７】
一方、制御部３３０は、複数の子ノードのうち、光線と交差する子ノードが存在しない場合、スタックに保存されている他のノードを抽出し、次のターゲットノードとして決定することができる。ここで、他のノードは、一実施形態によって、加速構造において、ターゲットノードに属していないノードのうちいずれか１つのノードを意味する。例えば、制御部３３０は、加速構造において、ターゲットノードと同一の親ノードを有する他のノードを、次のターゲットノードとして決定することができる。
【００８８】
図５は、一実施形態による、レイトレーシング・システムでの加速構造探索方法について説明するためのフローチャートである。
【００８９】
段階５１０で、加速構造探索装置３００は、加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する。ここで、該ターゲットノードは、インナーノードまたはルートノードでもある。加速構造探索装置３００は、次に探索するためのノード（次のターゲットノード）を決定するために、ターゲットノードに係わる複数の子ノードの情報を獲得することができる。ここで、複数の子ノードの情報には、子ノードが保存されているメモリアドレス、子ノードを示すインデックス、子ノードのタイプ情報、及び子ノードのバウンディングボックス情報などが含まれてもよい。
【００９０】
段階５２０で、加速構造探索装置３００は、複数の子ノードそれぞれが、光線と交差するか否かということを判断する。一実施形態による加速構造探索装置３００は、子ノードのバウンディングボックス情報４３２，４３４（図４）を基に、子ノードそれぞれのバウンディングボックスが光線と交差するか否かということを並列的に判断することができる。加速構造探索装置３００は、獲得した複数の子ノードの情報に基づいて、１回の探索過程で、複数の子ノードそれぞれが光線と交差するか否かということを同時に判断することができ、探索に必要となる時間を短縮させることができる。
【００９１】
段階５３０で、加速構造探索装置３００は、光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定する。加速構造探索装置３００は、光線と交差する子ノードが２個以上である場合、交差距離に基づいて、次のターゲットノードを決定することができる。例えば、加速構造探索装置３００は、光線と交差する複数の子ノードのうち、光線との交差距離が相対的にさらに短い子ノードを、次のターゲットノードとして決定することができる。加速構造探索装置３００は、光線と交差する複数の子ノードのうち、次のターゲットノードとして決定されていない子ノードは、スタックに保存することができる。
【００９２】
段階５４０で、加速構造探索装置３００は、決定された次のターゲットノードのタイプに対応する動作を遂行する。加速構造探索装置３００は、決定された次のターゲットノードのタイプを判別することができる。ここで、ターゲットノードのタイプは、インナーノードまたはリーフノードを含んでもよい。加速構造探索装置３００は、次のターゲットノードがインナーノードである場合、次のターゲットノードに対して、前述の一連の過程である段階５１０ないし段階５４０を反復してさらに遂行することができる。
【００９３】
一方、次のターゲットノードがリーフノードである場合、加速構造探索装置３００は、次のターゲットノードについての情報を、ＩＳＴユニット１３０（図２）に伝送する。ＩＳＴユニット１３０では、次のターゲットノードに含まれた少なくとも１つのプリミティブそれぞれに対して、反復して光線との交差検査を行う。
【００９４】
また、加速構造探索装置３００は、次のターゲットノードが存在しない場合には、一連の探索過程を終了し、光線に対して探索された結果を、シェーディングユニット１４０に伝送する。
【００９５】
図６は、一実施形態による加速構造探索装置３００が、光線と交差する子ノードのタイプによって対応する動作を遂行する方法について、具体的に説明するためのフローチャートである。
【００９６】
段階６１０で、加速構造探索装置３００は、加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する。ここで、該ターゲットノードは、インナーノードまたはルートノードでもある。一方、段階６１０は、図５を参照して説明した段階５１０と対応する。
【００９７】
段階６１５で、加速構造探索装置３００は、複数の子ノードそれぞれが、光線と交差するか否かということを判断する。加速構造探索装置３００は、獲得した複数の子ノードの情報に基づいて、複数の子ノードそれぞれが、光線と交差するか否かということを同時に判断することができる。
【００９８】
段階６２０で、加速構造探索装置３００は、光線と交差する子ノードが２以上であるか否かということを判断する。
【００９９】
段階６２５で、加速構造探索装置３００は、光線と交差する２以上の子ノードのうち、光線との交差距離が最も近い子ノードを、次のターゲットノードとして決定する。加速構造探索装置３００は、光線と交差する２以上の子ノードのうち、次のターゲットノードとして決定されていない子ノードを、スタックに保存することができる。
【０１００】
段階６３０で、加速構造探索装置３００は、光線と交差する１つの子ノードを、次のターゲットノードとして決定する。加速構造探索装置３００は、判断結果、光線と交差する子ノードが一つである場合、１つの子ノードを、次のターゲットノードとして決定することができる。
【０１０１】
段階６３５で、加速構造探索装置３００は、スタックに保存されたノードが存在するか否かということを判断する。加速構造探索装置３００は、光線と交差する子ノードが存在しない場合、スタックに保存されている他のノードが存在するか否かということを判断する。ここで、他のノードは、加速構造において、前記ターゲットノードに属していないノードを示すことができる。
【０１０２】
段階６４０で、加速構造探索装置３００は、スタックから抽出したノードを、次のターゲットノードとして決定する。加速構造探索装置３００は、スタックに保存された子ノードが存在する場合、スタックから子ノードを抽出することができる。加速構造探索装置３００は、抽出した子ノードを、次のターゲットノードとして決定することができる。
【０１０３】
段階６４５で、加速構造探索装置３００は、決定された次のターゲットノードのタイプが、インナーノードであるか否かということを判断する。加速構造探索装置３００は、決定された次のターゲットノードのタイプが、インナーノードである場合、次のターゲットノードをターゲットノードに変更し、段階６１０の過程に戻り、前述の一連の過程を反復して遂行することができる。例えば、加速構造探索装置３００は、決定された次のターゲットノードであるインナーノードＡに対して、インナーノードＡをターゲットノードとして設定し、インナーノードＡに係わる子ノードの情報を獲得することができる。それ以後の過程は、前述の段階６１５ないし６４０と同一である。
【０１０４】
段階６５０で、加速構造探索装置３００は、光線についての情報を、ＩＳＴユニットに伝送する。加速構造探索装置３００は、決定された次のターゲットノードのタイプがリーフノードである場合、光線についての情報を、ＩＳＴユニットに伝送することができる。ＩＳＴユニットは、次のターゲットノードに含まれるプリミティブが、光線と交差するか否かということを判断することができる。
【０１０５】
段階６５５で、加速構造探索装置３００は、光線に係わる情報を、シェーディングユニットに伝送する。加速構造探索装置３００は、加速構造内に、探索するノードが存在しない場合、探索の結果として獲得した情報を、シェーディングユニット１４０（図２）に伝送する。ここで、探索の結果として獲得した情報は、三次元空間に含まれるそれぞれの物体、または物体を構成するプリミティブと、光線との交差情報を含んでもよい。  シェーディングユニット１４０は、光線とプリミティブとの交差点に係わる情報、及び交差点物質の特性に基づいて、光線に対応するピクセルの色相値を決定することができる。また、シェーディングユニット１４０は、交差点の物質の基本色相、及び光源による効果などを考慮し、ピクセルの色相値を決定することができる。
【０１０６】
図７は、一実施形態による、レイトレーシング・システムでの状態ダイヤグラムを図示した図面である。
【０１０７】
一実施形態によるレイトレーシング・システムには、第１状態、第２状態及び第３状態が存在する。ここで、第１状態は、加速構造に含まれるノードを探索する段階である。第２状態は、加速構造に含まれるノードのうち、リーフノードに含まれたプリミティブに対して交差検査を行う段階である。第３状態は、加速構造に含まれるノードをいずれも探索した場合、探索過程で獲得した交差情報を基に、ピクセルの色相値を決定し、ノードの探索を終了する段階である。
【０１０８】
一実施形態によるレイトレーシング・システムは、ターゲットノードに係わる複数の子ノードそれぞれに対して同時に交差検査を行うことにより、レイトレーシング・システムでの状態を、前述のように、３段階に簡略化することができる。
【０１０９】
以下では、図７を参照し、一実施形態によるレイトレーシング・システムでの状態変化について説明する。
【０１１０】
段階７１２で、加速構造探索装置３００は、ルートノードに係わる子ノードの情報を獲得することができる。
【０１１１】
段階７１４で、加速構造探索装置３００は、獲得した情報を基に判断した結果、次のターゲットノードがインナーノードである場合、次のターゲットノードの子ノードについての情報を獲得することができる。段階７１２及び段階７１４の過程は、次のターゲットノードがインナーノードである場合、続けて反復して遂行される。
【０１１２】
段階７１６で、加速構造探索装置３００は、次のターゲットノードがリーフノードである場合、リーフノードについての情報を、ＩＳＴユニット１３０に伝送する。
【０１１３】
段階７１８で、加速構造探索装置３００は、次のターゲットノードが存在しない場合、探索過程を終了し、探索結果をシェーディングユニット１４０に伝送する。
【０１１４】
段階７１２ないし段階７１８は、レイトレーシング・システムの第１状態に含まれてもよい。
【０１１５】
段階７２２で、ＩＳＴユニット１３０は、リーフノードに含まれた少なくとも１つのプリミティブに対して反復して交差検査を行う。ＩＳＴユニット１３０は、光線と、少なくとも１つのプリミティブとの交差点の存在いかんを判断し、以前交差点との距離を比較し、距離がさらに短い交差点を選択することができる。
【０１１６】
段階７２４で、ＩＳＴユニット１３０は、リーフノードに対する交差検査を完了した後、次のターゲットノードを探索するために、第１状態に再び戻ることができる。
【０１１７】
段階７２６で、ＩＳＴユニット１３０は、リーフノードに対する交差検査を完了し、スタックに保存された子ノードが存在しない場合、交差検査結果をシェーディングユニット１４０に伝送する。
【０１１８】
前述の段階７２４及び段階７２６は、レイトレーシング・システムの第２状態に含まれてもよい。
【０１１９】
一方、レイトレーシング・システムでの第３状態では、シェーディングユニット１４０が獲得した交差情報に基づいて、光線に対応するピクセルの色相値を決定する。
【０１２０】
図８は、一実施形態によって、レイトレーシング・システム１０での加速構造探索装置３００について、さらに具体的に説明するためのブロック図である。
【０１２１】
レイトレーシング・システム１０は、複数個のＦＩＦＯ（first-in  first-out）１２１，１２２，１２３，１３２，１３４、光線生成ユニット１１０、ＴＲＶユニット１２０、ＩＳＴユニット１３０及びシェーディングユニット１４０を含んでもよい。図８では、一実施形態による加速構造探索装置３００がＴＲＶユニット１２０に含まれる場合について説明する。
【０１２２】
光線生成ユニット１１０は、一次光線、及び一次光線によって派生される光線を生成することができる。光線生成ユニット１１０は、一次光線を生成し、一次光線とオブジェクトの交差点で、二次光線を生成することができる。このとき、該二次光線は、一次光線がオブジェクトと交差した地点で生成された反射光線、屈折光線またはシャドー光線でもある。
【０１２３】
また、光線生成ユニット１１０は、光線がオブジェクトと交差しなくなるまで、光線を続けて生成するか、決定された回数内で光線を生成することができる。
【０１２４】
ＴＲＶユニット１２０は、光線生成ユニット１１０から生成された光線に係わる情報を受信することができる。ＴＲＶユニット１２０は、入力を受信するための３個のＦＩＦＯと連結される。ＴＲＶユニット１２０は、ＦＩＦＯ  １を介して、光線生成ユニット１１０から新しい光線を入力される。また、ＴＲＶユニット１２０は、ＦＩＦＯ  ２を介して、次のノードを探索するための情報を獲得することができる。ＴＲＶユニット１２０は、ＦＩＦＯ  ３を介して、ＩＳＴユニット１３０で交差が終わった後、次のノードを探索するための情報を獲得することができる。
【０１２５】
一方、光線生成ユニット１１０で生成された光線は、一次光線、及び該一次光線によって派生された光線（二次光線、三次光線など）をいずれも含む。次に、ＴＲＶユニット１２０に含まれた一実施形態による加速構造探索装置３００が、複数個のノードに対して探索を行う方法について説明する。
【０１２６】
ＴＲＶユニット１２０に含まれた加速構造探索装置３００は、情報獲得部３１０、交差検査部３２０、制御部３３０を含み、制御部３３０には、次のターゲットノード決定部３３２及び動作決定部３３４がさらに含まれてもよい。
【０１２７】
情報獲得部３１０は、加速構造に含まれるターゲットノードに係わる複数の子ノードの情報を獲得する。ここで、該ターゲットノードは、インナーノードまたはルートノードでもある。交差検査部３２０は、複数の子ノードそれぞれが、光線と交差するか否かということを判断する。交差検査部３２０は、獲得した複数の子ノードの情報に基づいて、１回の探索過程で、複数の子ノードそれぞれが光線と交差するか否かということを同時に判断し、探索に必要となる時間を短縮させることができる。
【０１２８】
次のターゲットノード決定部３３２は、光線と交差する少なくとも１つの子ノードのうち、次のターゲットノードを決定する。次のターゲットノード決定部３３２は、光線と交差する子ノードが２個以上である場合、交差距離に基づいて、次のターゲットノードを決定することができる。
【０１２９】
動作決定部３３４は、決定された次のターゲットノードのタイプに対応する動作を遂行する。動作決定部３３４は、決定された次のターゲットノードのタイプを判別することができる。ここで、ターゲットノードのタイプは、インナーノードまたはリーフノードを含んでもよい。
【０１３０】
動作決定部３３４において、次のターゲットノードがインナーノードであると判別された場合、情報獲得部３１０は、ＦＩＦＯ  ０を介して、次のターゲットノードに係わる情報を獲得することができる。
【０１３１】
一方、次のターゲットノードがリーフノードである場合、動作決定部３３４は、次のターゲットノードについての情報を、ＩＳＴユニット１３０（図２）に伝送することができる。ＩＳＴユニット１３０では、次のターゲットノードに含まれた少なくとも１つのプリミティブそれぞれに対して、反復して光線との交差検査を行う。ＩＳＴユニット１３０では、光線が交差するプリミティブを検出し、検出されたプリミティブと光線とが交差した地点（hit  point）を計算することができる。
【０１３２】
計算された交差点（hit  point）は、座標形態でシェーディングユニット１４０に出力される。
【０１３３】
前記のように、開示された一実施形態によるレイトレーシング・システムでの加速構造探索方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全種の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、ＣＤ（compact  disc）−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、またインターネットを介する伝送のような搬送波の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散され、分散方式で、プロセッサで読み取り可能なコードが保存されて実行されもする。
【０１３４】
また、以上では、開示された一実施形態について図示して説明したが、前述の特定一実施形態に限定されるものではなく、特許請求の範囲で請求する要旨を外れることなしに、当該発明が属する技術分野で当業者によって、多様な変形実施が可能であるということは言うまでもなく、そのような変形実施は、開示されている技術的思想や展望から個別的に理解されるものではない。
【産業上の利用可能性】
【０１３５】
本発明のレイトレーシング・システムでの加速構造探索装置及びその探索方法は、例えば、画像処理関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１３６】
１０        視点
１５        画面
３１        第１物体
３２        第２物体
３３        第３物体
４０        一次光線
５０，９０  シャドー光線
６０        反射光線
７０        屈折光線
８０        光源
１１０      光線生成ユニット
１２０      ＴＲＶユニット
１３０      ＩＳＴユニット
１４０      シェーディングユニット
２５０      外部メモリ
３００      加速構造探索装置
３１０      情報獲得部
３２０      交差検査部
３３０      制御部
３３２      次のターゲットユニット決定部
３３４      動作決定部
４００      資料構造
４１２      親ノードに係わる情報
４１４，４１６  子ノードを識別する情報
４２２，４２４  プリミティブ個数情報
４３２，４３４  子ノードに係わるバウンディングボックス情報
【図１】
2015225673.tif 000003
【図２】
2015225673.tif 000004
【図３】
2015225673.tif 000005
【図４】
2015225673.tif 000006
【図５】
2015225673.tif 000007
【図６】
2015225673.tif 000008
【図７】
2015225673.tif 000009
【図８】
2015225673.tif 000010