(57)【特許請求の範囲】
【請求項１】
レンダリングシステムのレンダリング処理を行うための方法において、
イメージをレンダリング（ｒｅｎｄｅｒ）するためのレイ（Ｐｒｉｍａｒｙ  Ｒａｙ）を生成するステップと、
前記レイがセカンダリレイを生成することができるか否かを判断するステップと、
前記レイが前記セカンダリレイを生成することができると判断された場合、前記レイに基づいて算出された第１情報をメモリに保存するステップと、
前記メモリに保存された前記第１情報に基づいて第１セカンダリレイを生成するステップと、
前記第１セカンダリレイによって前記セカンダリレイを生成することができるか否かを判断するステップと、
前記第１セカンダリレイによって前記セカンダリレイを生成することができると判断された場合、前記第１セカンダリレイに基づいて算出された第２情報を前記メモリに保存するステップと、
前記メモリに保存された前記第２情報に基づいて第２セカンダリレイを生成するステップと、
前記第２セカンダリレイがシャドウレイか、前記第１セカンダリレイが屈折レイ及び反射レイを含む前記セカンダリレイを生成しないと判断されると、前記メモリに保存された第２情報を削除するステップと、
前記メモリに保存された第１情報に基づいて前記レイによってセカンダリレイを生成することができるか否かを判断し、前記レイによってセカンダリレイを生成することができる場合、前記メモリに保存された第１情報に基づいて第３セカンダリレイを生成するステップと
を含むレイ生成方法。
【請求項２】
前記判断するステップは、
前記レイがオブジェクトと交差し、前記レイがシャドウレイ（ｓｈａｄｏｗ  ｒａｙ）ではない場合、前記レイは前記セカンダリレイを生成することができると判断するステップを含むことを特徴とする請求項１に記載のレイ生成方法。
【請求項３】
前記メモリに保存されたレイに関する情報があるか否かを判断するステップと、
前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するステップとを更に含むことを特徴とする請求項１に記載のレイ生成方法。
【請求項４】
前記レイがシャドウレイである場合、前記レイのレンダリング結果をカラー値としてフレームバッファ（ｆｒａｍｅ  ｂｕｆｆｅｒ）に保存するステップを更に含むことを特徴とする請求項１に記載のレイ生成方法。
【請求項５】
前記メモリにレイに対する保存された情報がない場合、前記レンダリング処理（ｐｒｏｃｅｓｓ）を終了するステップを含むことを特徴とする請求項１に記載のレイ生成方法。
【請求項６】
前記レイに基づいて算出された第１情報は、
前記レイの方向ベクトルに関する情報を含むことを特徴とする請求項１に記載のレイ生成方法。
【請求項７】
レンダリングシステムにおいて、
レイを生成するレイ生成部と、
前記生成されたレイに基づいてイメージをレンダリング（ｒｅｎｄｅｒｉｎｇ）するレンダリング部（ｒｅｎｄｅｒｅｒ）と、
メモリと、
前記レイがセカンダリレイを生成することができるか否かを判断し、前記レイが前記セカンダリレイを生成することができると判断されると、前記レイに基づいて算出された第１情報を前記メモリに保存するように制御し、前記メモリに保存された前記第１情報に基づいて第１セカンダリレイを生成するように制御し、前記第１セカンダリレイによって前記セカンダリレイを生成することができるか否かを判断し、前記第１セカンダリレイによって前記セカンダリレイを生成することができると判断された場合、前記第１セカンダリレイに基づいて算出された第２情報を前記メモリに保存するように制御し、前記メモリに保存された前記第２情報に基づいて第２セカンダリレイを生成するように制御し、前記第２セカンダリレイがシャドウレイか、前記第１セカンダリレイが屈折レイ及び反射レイを含む前記セカンダリレイを生成しないと判断されると、前記メモリに保存された第２情報を削除し、前記メモリに保存された第１情報に基づいて前記レイによってセカンダリレイを生成することができるか否かを判断し、前記レイによってセカンダリレイを生成することができる場合、前記メモリに保存された第１情報に基づいて第３セカンダリレイを生成するように制御する制御部と
を含むレンダリングシステム。
【請求項８】
前記制御部は、
前記レイがオブジェクトと交差し、前記レイがシャドウレイ（ｓｈａｄｏｗ  ｒａｙ）ではない場合、前記レイが前記少なくとも１つのセカンダリレイを生成することができると判断することを特徴とする請求項７に記載のレンダリングシステム。
【請求項９】
前記制御部は、
前記メモリに保存されたレイに関する情報があるか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいて前記セカンダリレイを生成するように制御することを特徴とする請求項７に記載のレンダリングシステム。
【請求項１０】
前記制御部は、
前記レイがシャドウレイである場合、前記レイのレンダリング結果をフレームバッファ（ｆｒａｍｅ  ｂｕｆｆｅｒ）に保存するように制御することを特徴とする請求項７に記載のレンダリングシステム。
【請求項１１】
前記制御部は、
前記メモリに保存されたレイに関する情報があるかを判断し、前記メモリにレイに対する保存された情報がない場合、前記レンダリングシステムのレンダリング処理を終了するように制御することを特徴とする請求項７に記載のレンダリングシステム。
【請求項１２】
前記レイに基づいて算出された第１情報は、
前記レイの方向ベクトルに関する情報を含むことを特徴とする請求項７に記載のレンダリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、レイ生成及びレンダリングに関連する装置及び方法に関し、より詳細には、レイを生成してレンダリングするためのメモリを管理するための装置及び方法に関する。
【背景技術】
【０００２】
光線追跡法（Ｒａｙ  Ｔｒａｃｉｎｇ）は、カメラの視点から仮想のスクリーンの各ピクセルに向かった光線に沿って光の経路を逆追跡して映像を生成する方法である。
【０００３】
一般的に、光線追跡法は、大きく光線生成部（Ｒａｙ  Ｇｅｎｅｒａｔｏｒ）、加速構造探索（Ａｃｃｅｌｅｒａｔｉｏｎ  Ｓｔｒｕｃｔｕｒｅ  Ｔｒａｖｅｒｓａｌ）、交差点検査（Ｉｎｔｅｒｓｅｃｔｉｏｎ  Ｔｅｓｔ）及びシェーディング（Ｓｈａｄｉｎｇ）の各段階を含む。光線生成部から生成された光線は、加速構造探索及び交差点検査によって交差点から情報を得た後、シェーディング過程を通じて最終的カラーが決定される。交差点の媒質によって、反射、屈折またはシャドウレイに該当するセカンダリ光線が光線生成部から生成されたプライマリ光線から派生される。光線生成部は、セカンダリ光線に対して加速構造探索及びその後の過程を行うためにセカンダリ光線を保存する。
【０００４】
しかし、光源及びオブジェクトの数が多い場合、光線を保存するための空間が不足する場合が多い。光線を保存するための空間が不足すると、レンダリングシステム全体に対して膠着状態が発生するなど、レンダリングシステムの性能が低下する。
よって、レンダリングシステムの性能を向上させるために、メモリ使用を減少させるための技術が必要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、１つ以上の実施形態はメモリに保存する光線に対する情報の量を調節してメモリを効率的に使用し、レンダリングシステムの性能を向上させるためのレンダリングシステム及びそのレイ生成方法を提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を達成するための本発明の一実施形態に係るレンダリングシステムのレンダリング処理を行うための方法において、前記方法は、イメージをレンダリング（ｒｅｎｄｅｒ）するための第１レイ（ｒａｙ）を生成するステップと、前記第１レイが少なくとも１つのセカンダリレイを生成することができるか否かを判断するステップと、前記第１レイが前記少なくとも１つのセカンダリレイを生成することができると判断された場合、前記第１レイに関する情報をメモリに保存するステップと、前記メモリに保存された前記第１レイに関する情報に基づいて前記少なくとも１つのセカンダリレイを生成するステップとを含む。
【０００７】
前記判断するステップは、前記第１レイがオブジェクトと交差し、前記第１レイがシャドウレイ（ｓｈａｄｏｗ  ｒａｙ）ではない場合、前記第１レイが前記少なくとも１つのセカンダリレイが生成することができると判断するステップを含んでよい。
【０００８】
前記方法は、前記第１レイが前記少なくとも１つのセカンダリレイを生成することができないと判断された場合、前記メモリから前記第１レイに関する情報を削除するステップを更に含んでよい。
【０００９】
前記方法は、前記少なくとも１つのセカンダリレイがシャドウレイを生成し、反射レイまたは屈折レイを生成しないと判断された場合、前記メモリから前記第１レイに関する情報を削除するステップを更に含んでよい。
【００１０】
前記方法は、前記メモリがレイに関する情報を含むかを判断するステップと、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するステップとを更に含んでよい。
【００１１】
前記方法は、前記第１レイがシャドウレイである場合、前記第１レイのレンダリング結果をカラー値としてフレームバッファ（ｆｒａｍｅ  ｂｕｆｆｅｒ）に保存するステップを更に含んでよい。
【００１２】
前記方法は、前記メモリがレイに関する情報を含まない場合、前記レンダリング処理（ｐｒｏｃｅｓｓ）を終了するステップを更に含んでよい。
【００１３】
前記第１レイに関する情報は、前記第１レイの方向ベクトルに関する情報を含んでよい。
【００１４】
本発明の別の実施形態に係るレンダリングシステムは、第１レイを生成するレイ生成部と、前記生成された第１レイに基づいてイメージをレンダリング（ｒｅｎｄｅｒｉｎｇ）するレンダリング部（ｒｅｎｄｅｒｅｒ）と、メモリと、前記第１レイが少なくとも１つのセカンダリレイを生成することができるか否かを判断し、前記第１レイが前記少なくとも１つのセカンダリレイを生成することができると判断されると、前記第１レイに関する情報を前記メモリに保存するように制御し、前記メモリに保存された前記第１レイに関する情報に基づいて前記少なくとも１つのセカンダリレイを生成するように制御する制御部とを含む。
【００１５】
前記制御部は、前記第１レイがオブジェクトと交差し、前記第１レイがシャドウレイ（ｓｈａｄｏｗ  ｒａｙ）ではない場合、前記第１レイが前記セカンダリレイを生成することができると判断してよい。
【００１６】
前記制御部は、前記少なくとも１つのセカンダリレイがセカンダリレイを生成しないと判断された場合、前記メモリから前記第１レイに関する情報を削除するように制御してよい。
【００１７】
前記制御部は、前記メモリがレイに関する情報を含むか否かを判断し、前記メモリに保存された情報が複数個である場合、前記複数個の情報のうち前記メモリに最後に保存されたレイに関する情報に基づいてセカンダリレイを生成するように制御してよい。
【００１８】
前記制御部は、前記第１レイがシャドウレイである場合、前記第１レイのレンダリング結果をフレームバッファ（ｆｒａｍｅ  ｂｕｆｆｅｒ）に保存するように制御してよい。
【００１９】
前記制御部は、前記メモリがレイに関する情報を含むかを判断し、前記メモリにレイに関する情報が含まない場合、前記レンダリング処理を終了するように制御してよい。
【００２０】
前記第１レイに関する情報は、前記第１レイの方向ベクトルに関する情報を含んでよい。
【００２１】
本発明の別の実施形態に係るレンダリングシステムのレンダリング処理実行方法は、イメージをレンダリングするための第１レイ（ｐｒｉｍａｒｙ  ｒａｙ）を生成するステップと、前記第１レイが派生され得る第２レイ（ｄｅｒｉｖａｂｌｅ  ｓｅｃｏｎｄａｒｙ  ｒａｙ）を生成することができる場合、前記第１レイに関する情報を保存するステップと、前記第１レイが追加的に派生され得る第２レイを生成することができない場合、前記第１レイに関する情報を削除するステップとを含む。
【００２２】
前記派生され得る第２レイは、オブジェクトと交差する屈折レイまたは反射レイに対応してよい。
【００２３】
前記派生され得る第２レイは、前記第１レイが生成した複数個の第２レイのうちの１つであってよく、前記保存するステップは、前記派生され得る第２レイをメモリのメインスタックに保存するステップと、前記派生され得る第２レイ及びシャドウレイではない前記複数個の第２レイを前記メモリの第２スタックに保存してよい。
【００２４】
前記派生され得る第２レイは、前記第１レイから派生された屈折レイまたは反射レイであってよく、前記保存するステップは、メモリのメインスタックに前記屈折レイに関する情報または前記反射レイに関する情報を保存するステップと、前記反射レイが前記メインスタックに保存された場合、前記メモリの第２スタックに前記屈折レイを保存するステップと、前記屈折レイが前記メインスタックに保存された場合、前記第２スタックに前記反射レイに関する情報を保存するステップとを含む。
【００２５】
前記メモリは、前記第２スタックに保存された前記屈折レイに関する前記情報または前記反射レイに関する前記情報を前記メインスタックにローディングするステップを更に含んでよい。
【発明の効果】
【００２６】
以上説明したように本発明によれば、レンダリングシステムのレンダリング処理実行方法を行うためのコンピュータによって実行され得るプログラムを保存する非一時的コンピュータ記録保存媒体を提供する。
【００２７】
また、本発明の多様な実施形態によれば、ユーザはメモリに保存する光線に関する情報の量を調節してメモリを効率的に使用し、性能の向上されたレンダリングシステムを利用することができるようになる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態に係るレンダリングシステムの構成を示すブロック図である。
【図２】本発明の一実施形態に係るセカンダリレイ生成内容を示す図である。
【図３】本発明の一実施形態に係るセカンダリレイ生成手順及び手順による保存方法を示す図である。
【図４】本発明の一実施形態に係るセカンダリレイ生成手順及び手順による保存方法を示す図である。
【図５】本発明の一実施形態に係るセカンダリレイ生成手順を示すフローチャートである。
【図６】本発明の一実施形態に係る再帰的な（Ｒｅｃｕｒｓｉｖｅ）セカンダリレイ生成手順を示すフローチャートである。
【図７】レンダリングシステムの構成を示す図である。
【図８】レンダリングシステムの構成を示す図である。
【図９】本発明の一実施形態に係るレイ生成手順を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下に添付図面を参照しながら、本発明の好適な実施形態についてより詳細に説明する。本発明を説明するうえで、関連の公知機能或いは構成に対する具体的な説明が、本発明の要旨を不要に曖昧とすると判断された場合には、その詳細な説明は省略する。そして、後述の用語は、本発明における機能を考慮して定義された用語として、それは使用者や運用者の意図または慣例等によって異なってよい。そのため、その定義は本明細書全般にわたる内容に基づいて下されるべきである。
【００３０】
図１は、本発明の一実施形態に係るレンダリングシステム１００の構成を示すブロック図である。図１に示すように、レンダリングシステム１００は、レイ生成部１１０と、参照メモリ１２０と、レンダリング部１３０と、制御部１４０及びフレームバッファ１５０を含む。
【００３１】
レイ生成部１１０は、レイを生成するための構成要素である。レイ生成部１１０は、レイ生成情報に基づいて少なくとも１つのレイを生成することができる。すなわち、レイ生成部１１０は、プライマリレイ（Ｐｒｉｍａｒｙ  Ｒａｙ）を生成することができ、後述の保存されたレイ生成情報を基にセカンダリレイ（Ｓｅｃｏｎｄａｒｙ  Ｒａｙ）を生成することができる。なお、セカンダリレイは、シャドウレイ（Ｓｈａｄｏｗ  Ｒａｙ）、屈折レイ（Ｒｅｆｒａｃｔｉｏｎ  Ｒａｙ）及び反射レイ（Ｒｅｆｌｅｃｔｉｏｎ  Ｒａｙ）を含んでよい。なお。セカンダリレイを生成する場合、レイ生成部１１０はシャドウレイを先に生成することができる。シャドウレイに対するレンダリングの後、レイ生成部１１０は屈折または反射レイを生成することができる。
【００３２】
一方、参照メモリ１２０は、レイに関する情報を保存するための構成要素である。すなわち、参照メモリ１２０は、セカンダリレイを生成するために必要な情報を保存することができる。参照メモリ１２０は、スタック（Ｓｔａｃｋ）またはキュー（Ｑｕｅｕｅ）のようなメモリが使用されてよいが、それは一実施形態に過ぎず、メモリの種類に限定されない。
【００３３】
なお、参照メモリ１２０に保存されるレイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。具体的に、参照メモリ１２０は、三角インデックス、レイデプス（ｄｅｐｔｈ）、レイが派生された方向、位置そしてレイ及びオブジェクトが交差した位置に関する情報等を含んでよい。
【００３４】
レンダリング部１３０は、レイ生成部１１０を介して生成されたレイをレンダリングするための構成要素である。すなわち、レンダリングを行うために必要な構成要素のうち、レンダリング部１３０はレイ生成部１１０を除く全ての構成要素を含んでよい。
【００３５】
例えば、光線追跡法（Ｒａｙ  Ｔｒａｃｉｎｇ）で使用される加速構造を探索し、交差点を検査してシェーディングを行うための構成要素がレンダリング部１３０に含まれてよい。
【００３６】
一方、制御部１４０は、レンダリングシステム１００の動作全般を制御する。特に、制御部１４０は、生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果に応じて、制御部１４０はレイに関する情報を参照メモリ１２０に保存するように制御してよい。
【００３７】
すなわち、制御部１４０は、生成されたレイがシャドウレイではないと同時にオブジェクトと交差した場合、セカンダリレイを生成することができるレイであると判断することができる。シャドウレイによってセカンダリレイが生成されない。そして、シャドウレイではないレイであっても、オブジェクトと交差しない場合、セカンダリレイを生成しない。よって、生成されたレイがシャドウレイではなく、オブジェクトと交差する場合、制御部１４０はセカンダリレイを生成することができるレイと判断することができる。
【００３８】
そして、生成されたレイがセカンダリレイを生成することができるレイと判断された場合、制御部１４０は、生成されたレイに関する情報を参照メモリ１２０に保存するように制御することができる。そして、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報に基づいてセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００３９】
一方、生成されたレイがシャドウレイである場合、制御部１４０は、生成されたレイのレンダリング結果によるカラー値をフレームバッファ（Ｆｒａｍｅ  Ｂｕｆｆｅｒ）に記録するように制御することができる。すなわち、シャドウレイによってセカンダリレイが生成されないため、制御部１４０は、シャドウレイに対するレンダリング結果によるカラー値をフレームバッファに保存して当該レイに対するレンダリングを完了することができる。なお、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ１２０に保存された情報がないと判断された場合、制御部１４０はレンダリングを終了することができる。
【００４０】
レイによって少なくとも１つのセカンダリレイが順次に生成され、生成された少なくとも１つのセカンダリレイが全てセカンダリレイをそれ以上生成しない場合、制御部１４０は参照メモリ１２０に保存されたレイに関する情報を削除することができる。すなわち、レイによってセカンダリレイがそれ以上生成されないと判断された場合、制御部１４０は参照メモリ１２０からレイに関する情報を削除することができる。
【００４１】
そして、制御部１４０は、参照メモリ１２０から第１レイに関する情報を削除した後、参照メモリ１２０に保存された情報がある場合、参照メモリ１２０に最後に保存されたレイに関する情報に基づいて別のセカンダリレイを生成することができる。
【００４２】
すなわち、参照メモリ１２０に順次にレイに関する情報を保存する場合、制御部１４０は最も最近保存されたレイに関する情報を基にセカンダリレイを生成することができるか否かを判断することができる。そして、最も最近保存されたレイがセカンダリレイを生成することができる場合、制御部１４０は、判断されたレイに関する情報を基に別のセカンダリレイを生成することができる。
【００４３】
レイに関する情報を参照メモリ１２０に保存する方法及びレイに関する情報を参照メモリ１２０から削除する具体的な方法については後述する。
【００４４】
上述のようなレンダリングシステム１００によって、ユーザは小さいサイズのメモリを利用しつつも、効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム１００を利用することができるようになる。
【００４５】
以下では、図２ないし図４を参照し、レンダリングシステム１００がレイに関する情報を参照メモリ１２０に保存しつつ、レンダリングを行う方法について具体的に説明する。
【００４６】
図２は、レイ生成内容を示す図である。すなわち、プライマリレイ２００はシャドウレイ２１０と、屈折レイ２２０及び反射レイ２３０のうち少なくとも１つを生成することができる。特に、プライマリレイ２００は、シャドウレイ２１０を先に生成し、屈折レイ２２０または反射レイ２３０を生成することができる。
【００４７】
シャドウレイ２１０は、それ以上のセカンダリレイを生成しない。しかし、屈折レイ２２０及び反射レイ２３０は少なくとも１つのセカンダリレイを生成することができる。例えば、図２に示すように、屈折レイ２２０がセカンダリレイとしてシャドウレイ２４０、屈折レイ２５０及び反射レイ２６０を生成することができる。そして、反射レイ２３０がセカンダリレイとしてシャドウレイ２７０、屈折レイ２８０及び反射レイ２９０を生成することができる。
【００４８】
なお、各セカンダリレイである屈折レイ２５０及び２８０、並びに反射レイ２６０及び２９０のセカンダリレイとして、屈折レイ２５０及び２８０、並びに反射レイ２６０及び２９０から少なくとも１つの追加シャドウレイ、屈折レイ及び反射レイが生成されてよい。
【００４９】
結果的に、図２に示すように、セカンダリレイの数は急増するようになる。よって、生成されるセカンダリレイに関する情報を順次にスタックまたはキューのようなメモリに保存する場合、メモリが不足してレイの一部を損失したり、レンダリングシステムそのものに膠着状態が発生するおそれがある。なお、生成されるレイの数が一定ではないため、レンダリング部１３０の作業量の変動が大きくなりかねない。
【００５０】
図３は、本発明の一実施形態に係るセカンダリレイを生成して保存する方法を示す。
【００５１】
プライマリレイ３１０のセカンダリレイとして、第１シャドウレイ３２０、第１屈折レイ３３０及び第１反射レイ４１０がプライマリレイ３１０から生成される。そして、第１屈折レイ３３０のセカンダリレイとして第２シャドウレイ３４０、第２屈折レイ３５０及び第２反射レイ３７０が第１屈折レイ３００から生成される。第２屈折レイ３７０のセカンダリレイとして第２屈折レイ３７０から第３シャドウレイ３６０が生成される。第２屈折レイ３７０から第４シャドウレイ３８０及び第４屈折レイ３９０が生成される。第４屈折レイ３９０から第５シャドウレイ４００が生成される。
【００５２】
図３は、ただ最初に生成されたレイ３１０をプライマリレイとして示しているが、セカンダリレイを生成する光線はセカンダリレイに関連するプライマリレイとして参照することができる。例えば、第１屈折レイ３３０及び第２屈折レイ３５０の間の関係で、第１屈折レイ３３０はプライマリレイであってよい。
【００５３】
図４は、レイの生成手順による参照メモリ１２０の保存状態を示す図である。レイ生成部１１０を介してプライマリレイ３１０が生成された場合、制御部１４０は、生成されたプライマリレイ３１０がシャドウレイであるかを判断することができる。プライマリレイ３１０はシャドウレイではないため、制御部１４０はプライマリレイ３１０がオブジェクトと交差するか否かを判断する。
【００５４】
生成されたプライマリレイ３１０がシャドウレイではなく、オブジェクトと交差すると判断された場合、プライマリレイ３１０からセカンダリレイが生成されてよい。よって、制御部１４０は、プライマリレイ３１０に関する情報を参照メモリ１２０に保存するように参照メモリ１２０を制御することができる。
【００５５】
具体的に、レイに関する情報は、レイの方向ベクトルに関する情報を含んでよい。
【００５６】
そして、レイ生成部１１０は、参照メモリ１２０に保存されたプライマリレイ３１０に関する情報を基にセカンダリレイを生成することができる。シャドウレイがセカンダリレイの中で先に生成されてよい。すなわち、レイ生成部１１０は、セカンダリレイとしてシャドウレイを先に生成し、シャドウレイ生成の後、屈折または反射レイを生成することができる。
【００５７】
よって、セカンダリレイとして第１シャドウレイ３２０が生成された場合、制御部１４０は、第１シャドウレイ３２０によってそれ以上セカンダリレイが生成されないため、第１シャドウレイ３２０に関する情報を参照メモリ１２０に保存しないように制御することができる。結果的に、セカンダリレイとして第１シャドウレイ３２０が生成された後の参照メモリ１２０は第１シャドウレイ３２０の生成前の参照メモリ１２０と比較して変化が生じなくてよい。
【００５８】
そして、制御部１４０は、第１シャドウレイ３２０に対するレンダリング結果カラー値をフレームバッファ１５０に保存することができる。
【００５９】
なお、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報があるか否かを判断することができる。参照メモリ１２０にプライマリレイ３１０に関する情報が保存されているため、制御部１４０はプライマリレイ３１０に関する情報に基づいてセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００６０】
セカンダリレイとして第１屈折レイ３３０が生成された場合、制御部１４０は生成されたセカンダリレイがシャドウレイか否かを判断することができる。第１屈折レイ３３０はシャドウレイではないため、制御部１４０は第１屈折レイ３３０がオブジェクトと交差するか否かを判断することができる。第１屈折レイ３３０がオブジェクトと交差する場合、第１屈折レイ３３０によってセカンダリレイが更に生成され得るため、制御部１４０は第１屈折レイ３３０に関する情報を参照メモリ１２０に保存することができる。
【００６１】
参照メモリ１２０に保存された第１屈折レイ３３０に関する情報に基づいてレイ生成部１１０がセカンダリレイとして第２シャドウレイ３４０を生成すると、第２シャドウレイ３４０によってそれ以上セカンダリレイが生成されないため、制御部１４０は生成された第２シャドウレイ３４０に関する情報を保存しなくてよい。よって、第２シャドウレイ３４０がセカンダリレイとして生成された時間Ｔ５４０に参照メモリ１２０の状態は第２シャドウレイ３４０が生成される前である時間Ｔ５３０に参照メモリの状態と比較して変更されなくてよい。
【００６２】
本発明の一実施形態によると、参照メモリ１２０はセカンダリスタック（ｓｅｃｏｎｄａｒｙ  ｓｔａｃｋ）を更に含んでよい。このとき、セカンダリスタックを除く参照メモリ１２０の残りの領域はメインスタックであってよい。また、セカンダリスタックは、参照メモリ１２０と区分された保存部に実現されてよい。制御部１４０は、第１屈折レイ４１０を時間Ｔ５３０にセカンダリスタックに保存することができる。制御部１４０が時間Ｔ６００に第１屈折レイ３３０から派生された全てのセカンダリレイ処理を終えた際、Ｔ６００の後に制御部１４０がどのようなデータを処理するかを判断するために、制御部１４０はセカンダリスタックを参照することができる。
【００６３】
そして、制御部１４０は、第２シャドウレイ３４０のレンダリング結果カラー値をフレームバッファ１５０に保存するように制御することができる。
【００６４】
なお、制御部１４０は、参照メモリ１２０がレイに関する情報を含むかを判断することができる。判断の結果、参照メモリ１２０に保存されたレイがある場合、制御部１４０はセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００６５】
しかし、第２シャドウレイ３４０に関する情報が保存されない。すなわち、参照メモリ１２０に最も最後に保存された情報は第１屈折レイ３３０に関する情報である。よって、制御部１４０は、参照メモリ１２０に保存された情報である第１屈折レイ３３０に関する情報を基にセカンダリレイを生成するように制御することができる。
【００６６】
参照メモリ１２０に保存された第１屈折レイ３３０に関する情報に基づいてレイ生成部１１０がセカンダリレイとして第２屈折レイ３５０を生成すると、制御部１４０は生成された第２屈折レイ３５０がシャドウレイか否かを判断することができる。第２屈折レイ３５０はシャドウレイではないため、制御部１４０は第２屈折レイ３５０がオブジェクトと交差するか否かを判断することができる。第２屈折レイ３５０がオブジェクトと交差する場合、第２屈折レイ３５０によってセカンダリレイが更に生成され得るため、制御部１４０は第２屈折レイ３５０に関する情報を参照メモリ１２０に時間Ｔ５５０に保存することができる。
【００６７】
なお、制御部１４０は、時間Ｔ５５０にセカンダリスタックに第２反射レイ３７０を保存して第２反射レイ３７０が第１反射レイ４１０にスタックされるようにすることができる。制御部１４０が、Ｔ５６０に第２屈折レイ３５０から派生された全てのセカンダリレイを処理することが終わる際、時間Ｔ５７０に制御部１４０がどのようなデータを処理するか判断するために制御部１４０はセカンダリスタックを参照することができる。
【００６８】
参照メモリ１２０に保存された第２屈折レイ３５０に関する情報を基にレイ生成部１１０がセカンダリレイとして第３シャドウレイ３６０を生成すると、制御部１４０は第３シャドウレイ３６０のレンダリング結果によるカラー値をフレームバッファ１５０に保存することができる。そして、保存された第２屈折レイ３５０をそれ以上処理する必要がないため、制御部１４０は保存された第２屈折レイ３５０に関する情報を時間Ｔ５６０に削除することができる。よって、参照メモリ１２０は、第１屈折レイ３３０及びプライマリレイ３１０に関する情報のみを時間Ｔ５６０に保存することができる。
【００６９】
そして、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ１２０に保存されたレイがある場合、制御部１４０はセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００７０】
第２屈折レイ３５０に関する情報を削除したため、時間Ｔ５６０に参照メモリ１２０に保存された最も最近の情報は第１屈折レイ３３０に関する情報である。よって、制御部１４０は、第１屈折レイ３３０に関する情報を基にセカンダリレイを生成するように制御することができる。
【００７１】
参照メモリ１２０に保存された第１屈折レイ３３０に関する情報を基にレイ生成部１１０がセカンダリレイを生成することができる。特に、レイ生成部１１０は、参照メモリ１２０に保存された第１屈折レイ３３０に関する情報を基にセカンダリレイである第２シャドウレイ３４０を先に生成したため、反射または屈折レイをセカンダリレイとして生成することができる。
【００７２】
よって、レイ生成部１１０がセカンダリレイとして第２反射レイ３７０を生成すると、制御部１４０は生成された第２反射レイ３７０がシャドウレイか否かを判断することができる。第２反射レイ３７０はシャドウレイではないため、制御部１４０は第２反射レイ３７０がオブジェクトと交差するか否かを判断することができる。
【００７３】
第２反射レイ３７０がオブジェクトと交差する場合、第２反射レイ３７０によってセカンダリレイが更に生成されてよい。よって、制御部１４０は、第２反射レイ３７０に関する情報を時間Ｔ５７０に参照メモリ１２０に保存することができる。
【００７４】
時間Ｔ５７０に、制御部１４０は第２屈折レイ３５０及び第２屈折レイ３７０の間に何がまだ処理されていないかを判断するために、セカンダリスタックを参照することができる。図４に示すように、セカンダリスタックは第２屈折レイ３７０が時間Ｔ５７０に処理されることを示す。制御部１４０は、セカンダリスタックから第２屈折レイ３７０をロードし、時間Ｔ５７０に参照メモリ１２０のメインスタックにそれを保存することができる。
【００７５】
制御部１４０は、シャドウレイではない屈折または反射レイと判断された場合でも、屈折または反射レイがオブジェクトと交差しないと判断された場合、レイに関する情報を参照メモリ１２０に保存しなくてよい。
【００７６】
そして、制御部１４０は、参照メモリ１２０に保存された第２反射レイ３７０に関する情報を基にセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００７７】
レイ生成部１１０が第２反射レイ３７０によるセカンダリレイとして先に第４シャドウレイ３８０を生成することができる。制御部１４０は、生成されたレイがシャドウレイか否かを判断することができる。そして、第４シャドウレイ３８０によってそれ以上セカンダリレイが生成されないため、制御部１４０は生成された第４シャドウレイ３８０に関する情報を時間Ｔ５８０に保存しなくてよい。よって、第４シャドウレイ３８０がセカンダリレイとして生成された時間Ｔ５８０に参照メモリ１２０の状態は、第４シャドウレイ３８０の生成前である時間Ｔ５７０に参照メモリ１２０の状態と比較して変化がない。
【００７８】
そして、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報があるか否かを判断することができる。判断の結果、参照メモリ１２０に保存されたレイがある場合、制御部１４０はセカンダリレイを生成するようにレイ生成部１１０を制御することができる。
【００７９】
なお、参照メモリ１２０に保存された第２反射レイ３７０に関する情報に基づいてレイ生成部１１０が第４屈折レイ３９０を生成し、第２反射レイ３７０によってそれ以上セカンダリレイが生成されないと判断された場合、制御部１４０は第２反射レイ３７０に関する情報を削除するように参照メモリ１２０を制御することができる。
【００８０】
よって、第４屈折レイ３９０のレンダリング結果、制御部１４０の制御によって参照メモリ１２０は時間Ｔ５９０に第２反射レイ３７０に関する情報を削除することができる。
【００８１】
そして、制御部１４０は、第４屈折レイ３９０がシャドウレイか否かを判断することができる。第４屈折レイ３９０はシャドウレイではないため、制御部１４０は第４屈折レイ３９０がオブジェクトと交差すると判断することができる。第４屈折レイ３９０がオブジェクトと交差する場合、レイ生成部１１０は第４屈折レイ３９０によるセカンダリレイを生成することができる。レイ生成部１１０は、セカンダリレイとしてシャドウレイを先に生成することができる。よって、セカンダリレイとして第５シャドウレイ５００が生成されると、制御部１４０は第５シャドウレイ５００のレンダリング結果カラー値をフレームバッファ１５０に保存するように制御することができる。そして、第１屈折レイ３３０によってセカンダリレイがそれ以上生成されないため、制御部１４０は時間Ｔ６００に第１屈折レイ３３０に関する情報を削除するように参照メモリ１２０を制御することができる。
【００８２】
そして、制御部１４０は、参照メモリ１２０に保存されたレイに関する情報があるか否かを判断することができる。図４に示すように、時間Ｔ６００にプライマリレイ３１０が参照メモリ１２０に保存されているため、レイ生成部１１０は保存されたプライマリレイ３１０に関する情報を基にセカンダリレイを生成することができる。
【００８３】
よって、制御部１４０は、参照メモリ１２０に保存されたプライマリレイ３１０に関する情報を基に第１反射レイ４１０をセカンダリレイとして生成することができる。例えば、制御部１４０は、時間Ｔ６００の後にセカンダリスタックから第１反射レイ４１０をロードして参照メモリ１２０のメインスタックに保存することができる。それにより、制御部１４０は、第１屈折レイ３３０と第１反射レイ４１０との間で第１反射レイ１４０がまだ処理されていないことを判断することができ、時間Ｔ６００の後に第１反射レイ４１０を進めることができる。そして、レンダリングシステム１００は、第１反射レイによるセカンダリレイに対して上述のような過程を経てレンダリングを行うことができる。
【００８４】
全てのセカンダリレイに対するレンダリングを行い、参照メモリ１２０にそれ以上保存されたレイに関する情報がない場合、レンダリングシステム１００はレンダリングを終了することができる。
【００８５】
図４を参照して上述した例においては、制御部１４０がセカンダリスタックを用いて進行を判断することを例として挙げたが、それは単なる１つの例示に過ぎない。制御部１４０は、第１屈折レイ３３０に関する情報がメモリ１２０から削除されると、その削除に関する情報をメモリ１２０に別途に記録し、次の過程を進める際にそれを参照し、削除された記録がない過程を進める方式で次に進める過程を判断することもできる。この場合には、別途のセカンダリスタックが必要でなくなる。
【００８６】
図５は、本発明の一実施形態に係るセカンダリレイ生成手順を示すフローチャートである。まず、レンダリングシステム１００は、第１レイを生成し（Ｓ６１０）、生成された第１レイをレンダリングする（Ｓ６２０）。
【００８７】
レンダリングシステム１００は、第１レイによってセカンダリレイが生成され得ると判断されると（Ｓ６３０−Ｙ）、第１レイに関する情報を参照メモリ１２０に保存する（Ｓ６４０）。具体的に、生成されたレイがシャドウレイではないと同時にオブジェクトと交差する場合、レンダリングシステム１００はセカンダリレイを生成することができるレイと判断することができる。そして、生成されたレイによってセカンダリレイが生成され得ると判断された場合、レンダリングシステム１００は生成されたレイに関する情報を参照メモリ１２０に保存することができる。
【００８８】
そして、レンダリングシステム１００は、保存された第１レイに関する情報を基に第２レイを生成してレンダリングする（Ｓ６５０）。なお、レイに関する情報は、レイの方向ベクトルを含んでよい。よって、レンダリングシステム１００は、保存されたレイの方向ベクトルに対する情報等を用いて、第１レイによるセカンダリレイである第２レイを生成することができる。特に、レンダリングシステム１００は、セカンダリレイのうちシャドウレイを生成することができる。シャドウレイの生成後、レンダリングシステム１００はセカンダリレイとして屈折レイまたは反射レイを生成することができる。
【００８９】
一方、図６は、本発明の一実施形態に係る再帰的なセカンダリレイ生成手順を示す具体的なフローチャートである。
【００９０】
まず、レンダリングシステム１００はレイを生成し（Ｓ７００）、生成されたレイをレンダリングする（Ｓ７１０）。そして、レンダリングシステム１００は、生成されたレイがシャドウレイか否かを判断する（Ｓ７２０）。
【００９１】
シャドウレイではない場合でも、レイがオブジェクトと交差しない場合、セカンダリレイが生成されない。よって、レンダリングシステム１００は、レイがオブジェクトと交差するか否かを判断する（Ｓ７３０）。
【００９２】
レイがオブジェクトと交差する場合（Ｓ７３０−Ｙ）、レンダリングシステム１００はレイのセカンダリレイを生成するために、レイに関する情報を参照メモリ１２０に保存する（Ｓ７４０）。そして、レンダリングシステム１００は、参照メモリ１２０に保存されたレイに関する情報を基にレイを生成することができる。このとき、レンダリングシステム１００は、セカンダリレイのうちシャドウレイを先に生成することができる。例えば、レンダリングシステム１００がセカンダリレイとしてシャドウレイ及び屈折レイを生成する場合、レンダリングシステム１００はシャドウレイを先に生成することができる。
【００９３】
生成されたレイがシャドウレイである場合（Ｓ７２０−Ｙ）、レンダリングシステム１００はレンダリング結果をフレームバッファ１５０に保存する（Ｓ７５０）。そして、レンダリングシステム１００は、参照メモリ１２０が空いているかを判断する（Ｓ７６０）。
【００９４】
なお、レイがオブジェクトと交差せずにシャドウレイではないと判断されると、レンダリングシステム１００は参照メモリ１２０が空いているか判断することができる（Ｓ７６０）。
【００９５】
そして、レイによってセカンダリレイがそれ以上生成されないと判断された場合、レンダリングシステム１００は参照メモリ１２０からレイに関する情報を削除することができる。
【００９６】
よって、レンダリングシステム１００は、レイ生成部１１０から生成するレイの量を一定に制御することができる。
【００９７】
図７は、スタック構造またはスタック基板メモリ割当を用いた参照メモリ８３０を含むレンダリングシステム１０００を示す。しかし、それは一実施形態に過ぎず、キューを含み多様な形態のメモリ構造またはメモリ割当方法の使用が可能である。
【００９８】
レンダリングシステム１０００は、図７のレイ生成部８００を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム１０００は、加速構造を探索し、交差点を検査してシェーディングを行うための構成要素が含まれたレンダラ８１０を介してレンダリングを行うことができる。
【００９９】
そして、参照メモリマネージャ８２０は、生成されたレイからセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、参照メモリマネージャ８２０は生成されたレイに関する情報を参照メモリ８３０に保存することができる。
【０１００】
レイがシャドウレイではなくオブジェクトと交差すると、参照メモリマネージャ８２０はセカンダリレイを生成することができるレイであると判断することができる。
【０１０１】
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム１０００はシャドウレイに対するレンダリング結果をフレームバッファ１５０に保存することができる。すなわち、レンダリングシステム１０００は、シャドウレイに対するカラー値をフレームバッファ１５０に保存することができる。
【０１０２】
参照メモリマネージャ８２０は、レンダリングを行ったレイからそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ８３０を制御することができる。
【０１０３】
一方、図８は、本発明の別の実施形態に係るレンダリングシステム２０００を示す図である。図８に示すレンダリングシステム２０００もレイ生成部９００を介してレイを生成することができる。そして、生成された光線に対してレンダリングシステム２０００は加速構造を探索し、交差点を検索してシェーディングを行うための構成要素が含まれたレンダラ９１０を介してレンダリングを行うことができる。
【０１０４】
なお、レンダリングシステム２０００は、レイリファレンスマネージャ９２０によって、レイに関する情報を管理することができる。具体的に、リファレンスデータカルキュレータ９３０は生成されたレイによってセカンダリレイが生成され得るか否かを判断することができる。そして、判断の結果、生成されたレイがセカンダリレイを生成することができるレイと判断されると、リファレンスデータカルキュレータ９３０は生成されたレイに関する情報を演算し、演算された情報を参照メモリ９４０に保存することができる。生成されたレイがシャドウレイではなくオフジェクトと交差すると、リファレンスデータカルキュレータ９３０はセカンダリレイを生成することができるレイと判断し、生成されたレイに関する情報を演算することができる。例えば、リファレンスデータカルキュレータ９３０は生成されたレイに対して、三角インデックス、レイデプス、レイが派生された方向、位置、そしてレイ及びオブジェクトが交差した位置に関する情報を演算することができる。
【０１０５】
なお、シャドウレイに対するレンダリングが行われると、レンダリングシステム２０００はシャドウレイに対するレンダリング結果をフレームバッファ１５０に保存することができる。すなわち、レンダリングシステム２０００は、シャドウレイに対するカラー値をフレームバッファ１５０に保存することができる。
【０１０６】
エリミネータ９５０は、レンダリングを行ったレイによってそれ以上セカンダリレイが生成され得ないと判断されると、当該レイに関する情報を削除するように参照メモリ９４０を制御することができる。すなわち、エリミネータ９５０は、参照メモリ９４０に保存されたレイに関する情報をプル（ｐｕｌｌ）し、レイに関する情報を削除することができる。例えば、レンダリングを行ったレイによってセカンダリレイとしてシャドウレイのみ生成された場合、エリミネータ９５０は参照メモリ９４０に保存されたレイに関する情報を削除することができる。
【０１０７】
よって、図８に示すようなレンダリングシステム２０００によって、ユーザは参照メモリ９４０で効率的にメモリを管理してレンダリングを行うことができるレンダリングシステム２０００を利用することができるようになる。
【０１０８】
図９は、本発明の一実施形態に係るレンダリングシステムのレイ生成方法を示すフローチャートである。まず、レンダリングシステム１００は、レイを生成し（Ｓ１０００）、生成されたレイをレンダリングする（Ｓ１０１０）。そして、レンダリングシステム１００は、生成されたレイに対するレンダリング結果によるカラー値をフレームバッファ１５０に保存して当該レイに対するレンダリングを完了することができる。
【０１０９】
レンダリングシステム１００は、生成されたレイがシャドウレイかを判断する（Ｓ１０２０）。判断の結果、生成されたレイがシャドウレイではない場合（Ｓ１０２０−Ｎ）、レンダリングシステム１００は生成されたレイがオブジェクトと交差するか否かを判断する（Ｓ１０４０）。
【０１１０】
生成されたレイがオブジェクトと交差すると判断されると（Ｓ１０４０−Ｙ）、レンダリングシステム１００は生成されたレイに関する情報を演算する（Ｓ１０５０）。そして、演算された情報を参照メモリに保存する（Ｓ１０６０）。生成されたレイがシャドウレイではなく、オブジェクトと交差すると、セカンダリレイが生成されてよい。よって、レンダリングシステム１００はセカンダリレイを生成するために、演算された情報を参照メモリに保存することができる。
【０１１１】
生成されたレイがシャドウレイである場合（Ｓ１０２０−Ｙ）、レンダリングシステム１００はレンダリング結果をフレームバッファ１５０に保存する（Ｓ１０３０）。すなわち、レンダリングシステム１００は、シャドウレイに対するレンダリング結果としてカラー値をフレームバッファ１５０に保存することができる。そして、レンダリングシステム１００は、参照メモリが空いているかを判断する（Ｓ１０７０）。なお、レイがシャドウレイでなくても、オブジェクトと交差しない場合、レンダリングシステム１００は参照メモリが空いているかを判断することができる（Ｓ１０７０）。
【０１１２】
参照メモリが空いている場合（Ｓ１０７０−Ｙ）、レンダリングシステム１００はレンダリングを終了することができる。ただ、参照メモリが空いていない場合（Ｓ１０７０−Ｎ）か、演算された情報が参照メモリに保存された場合（Ｓ１０６０）、レンダリングシステム１００は参照メモリに保存された情報のうち、最後に保存された情報を獲得し（Ｓ１０８０）、シャドウレイを除くセカンダリレイが生成可能か否かを判断する（Ｓ１０９０）。シャドウレイを除くセカンダリレイが生成可能な場合とは、情報が保存されたレイがオブジェクトと交差する場合を意味することができる。
【０１１３】
シャドウレイを除くセカンダリレイが生成不可と判断された場合（Ｓ１０９０−Ｎ）、レンダリングシステム１００は獲得した情報を削除する（Ｓ１１００）。
【０１１４】
具体的に、獲得した情報に対するレイがそれ以上反射レイまたは屈折レイのようなセカンダリレイを生成しない場合、レンダリングシステム１００は獲得した情報を削除することができる。そして、レンダリングシステム１００は、獲得した情報に対するレイがセカンダリレイとして、ただシャドウレイのみを生成する場合でも、シャドウレイが生成されてレンダリングされると、獲得した情報に対するレイを削除することができる。
【０１１５】
シャドウレイを除くセカンダリレイが生成可能な場合（Ｓ１０９０−Ｙ）、レンダリングシステム１００は獲得した情報を基にレイを生成することができる（Ｓ１０００）。すなわち、レンダリングシステム１００は、参照メモリに保存された情報が全て削除されてなくなるまで、再帰的にレイを生成することができるようになる。
【０１１６】
本発明の多様な実施形態によると、ユーザはメモリに保存されるレイに対する情報の量を制御することで、メモリを効果的に使用するレンダリングシステムを利用することができるため、それによって性能を向上させることができる。
【０１１７】
それに限られるものではないが、１つ以上の実施形態はコンピュータ読取可能な記録媒体にコンピュータが読取可能なコードで実現されてよい。コンピュータ読取可能な記録媒体は、コンピュータシステムによって読み取られ得るデータが保存される全種類の記録装置を含む。コンピュータ読取可能記録媒体の例は、読取専用メモリ（ＲＯＭ）、ランダムアクセルメモリ（ＲＡＭ）、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク、光データ保存装置を含む。コンピュータ読取可能記録媒体は、コンピュータ読取可能コードが分散方式で保存された実行されるように、ネットワークで接続されたコンピュータシステムに分散されてよい。なお、一実施形態は、搬送波（ｃａｒｒｉｅｒ  ｗａｖｅ）のようなコンピュータ読取可能な伝送媒体を通じて伝送されたコンピュータプログラムで記録されてよく、プログラムを実行する汎用または特殊の目的のデジタルコンピュータに受信されて実現されてよい。なお、実施形態において、上述の装置の１つ以上のユニットは、回路、プロセッサ、マイクロプロセッサ等を含んでよく、コンピュータ読取可能媒体に保存されたコンピュータプログラムを実行することができると理解される。
【０１１８】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１１９】
１００  レンダリングシステム
１１０  レイ生成部
１２０  参照メモリ
１３０  レンダリング部
１４０  制御部
１５０  フレームバッファ
２００  プライマリレイ
２１０  シャドウレイ
２２０  屈折レイ
２３０  反射レイ
２４０  シャドウレイ
２５０  屈折レイ
２６０  反射レイ
２７０  シャドウレイ
２８０  屈折レイ
２９０  反射レイ
３１０  プライマリレイ
３２０  シャドウレイ
３３０  屈折レイ
３４０  シャドウレイ
３５０  屈折レイ
３６０  シャドウレイ
３７０  反射レイ
３８０  シャドウレイ
３９０  屈折レイ
４００  シャドウレイ
４１０  反射レイ
８００  レイ生成部
８１０  レンダラ
８２０  参照メモリマネージャ
８３０  参照メモリ
９００  レイ生成部
９１０  レンダラ
９２０  レイリファレンスマネージャ
９３０  リファレンスデータカルキュレータ
９４０  参照メモリ
９５０  エリミネータ
１０００  レンダリングシステム
２０００  レンダリングシステム
【図１】
0006665112.tif 000002
【図２】
0006665112.tif 000003
【図３】
0006665112.tif 000004
【図４】
0006665112.tif 000005
【図５】
0006665112.tif 000006
【図６】
0006665112.tif 000007
【図７】
0006665112.tif 000008
【図８】
0006665112.tif 000009
【図９】
0006665112.tif 000010