(57)【要約】【課題】  マルチフレームの同一領域を連続してレンダリングする方法及びその装置を提供する。【解決手段】  複数フレームを決定する段階と、該フレームの同一領域を連続してレンダリングする段階と、を含むことを特徴とするレンダリング方法である。【選択図】      図６
2015197914.tif 000002
【特許請求の範囲】
【請求項１】
複数フレームを決定する段階と、
前記フレームの同一領域を連続してレンダリングする段階と、を含むことを特徴とするレンダリング方法。
【請求項２】
前記同一領域は、同一位置のピクセルまたは同一位置のタイルであることを特徴とする請求項１に記載のレンダリング方法。
【請求項３】
前記複数フレームを決定する段階は、フレーム出力時間間隔内に含まれたフレームを、前記複数フレームとして決定することを特徴とする請求項１又は２に記載のレンダリング方法。
【請求項４】
前記複数フレームを決定する段階は、前記フレーム出力時間間隔内のフレームのうち隣接したフレーム間の加速構造の変化量を計算し、前記変化量に基づいて、前記複数フレームとして決定することを特徴とする請求項３に記載のレンダリング方法。
【請求項５】
前記加速構造の変化量は、前記加速構造のノードの再フィッティング数を示すことを特徴とする請求項４に記載のレンダリング方法。
【請求項６】
前記複数フレームを決定する段階は、前記再フィッティング数が、設定された臨界値より小さいフレームを、前記複数フレームとして決定することを特徴とする請求項５に記載のレンダリング方法。
【請求項７】
前記複数フレームを決定する段階は、前記複数フレームを一次レンダリングするとき、キャッシュの衝突率を計算し、前記衝突率に基づいて、前記複数フレームを決定することを特徴とする請求項３乃至６のうちいずれか一項に記載のレンダリング方法。
【請求項８】
前記複数フレームを決定する段階は、前記フレーム出力時間間隔内のフレームのうち隣接したフレーム間の加速構造の変化量を計算し、前記複数フレームを一次レンダリングするとき、キャッシュの衝突率を計算し、前記フレーム出力時間間隔、前記加速構造の変化量、及び前記衝突率に基づいて、前記複数フレームを決定することを特徴とする請求項３乃至７のうちいずれか一項に記載のレンダリング方法。
【請求項９】
請求項１ないし８のうち、いずれか１項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項１０】
複数フレームを決定するインターフレーム決定部と、
前記フレームの同一領域を連続してレンダリングするレンダリングユニットと、を含むことを特徴とするレンダリング装置。
【請求項１１】
前記同一領域は、同一位置のピクセルまたは同一位置のタイルであることを特徴とする請求項１０に記載のレンダリング装置。
【請求項１２】
前記インターフレーム決定部は、フレーム出力時間間隔内に含まれたフレームを、前記複数フレームとして決定することを特徴とする請求項１０又は１１に記載のレンダリング装置。
【請求項１３】
前記インターフレーム決定部は、前記フレーム出力時間間隔内のフレームのうち隣接したフレーム間の加速構造の変化量を計算し、前記変化量に基づいて、前記複数フレームを決定することを特徴とする請求項１２に記載のレンダリング装置。
【請求項１４】
前記加速構造の変化量は、前記加速構造のノードの再フィッティング数を示すことを特徴とする請求項１３に記載のレンダリング装置。
【請求項１５】
前記インターフレーム決定部は、前記再フィッティング数が、設定された臨界値より小さいフレームを、前記複数フレームとして決定することを特徴とする請求項１４に記載のレンダリング装置。
【請求項１６】
前記インターフレーム決定部は、前記複数フレームを一次レンダリングするとき、キャッシュの衝突率を計算し、前記衝突率に基づいて、前記複数フレームを決定することを特徴とする請求項１２乃至１５のうちのいずれか一項に記載のレンダリング装置。
【請求項１７】
前記インターフレーム決定部は、前記フレーム出力時間間隔内のフレームのうち隣接したフレーム間の加速構造の変化量を計算し、一次レンダリング時のキャッシュの衝突率を計算し、前記変化量及び前記衝突率に基づいて、前記複数フレームを決定することを特徴とする請求項に１２乃至１６のうちのいずれか一項記載のレンダリング装置。
【請求項１８】
第１フレーム及び第２フレームを選択する段階と、
前記第１フレームの第１領域をレンダリングする段階と、
前記第１フレームの第１領域ではない領域をレンダリングする前に、前記第１フレームの第１領域と同一領域にあたる前記第２フレームの領域をレンダリングする段階と、を含むレンダリング方法。
【請求項１９】
前記同一領域は、同一位置のピクセルまたは同一位置のタイルであることを特徴とする請求項１８に記載のレンダリング方法。
【請求項２０】
前記第１フレーム及び前記第２フレームは、隣接したフレームであることを特徴とする請求項１８又は１９に記載のレンダリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームのレンダリング方法及びその装置に関する。
【背景技術】
【０００２】
３Ｄ（３次元）レンダリングは、三次元客体データを、与えられたカメラの視点で見える映像に合成する映像処理過程である。光線追跡方法は、レンダリングの対象になるシーンオブジェクト（scene  object）と、光線が交差する地点とを追跡する過程である。光線追跡（ray-tracing）は、加速構造の探索と、光線プリミティブとの交差試験過程を含む。このとき、探索と交差試験との過程で、多くの演算量及び広いメモリ帯域幅が必要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明が解決しようとする課題は、複数フレームを効率的にレンダリングするためのレンダリング方法及びその装置を提供するところにある。
【０００４】
本発明が解決しようとする課題はまた、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供するところにある。
【課題を解決するための手段】
【０００５】
前記課題を解決するために、一実施形態によるレンダリング方法は、複数フレームを決定する段階と、前記フレームの同一領域を連続してレンダリングする段階と、を含むことを特徴とする。
【０００６】
前記課題を解決するために、本発明の一実施形態によるレンダリング装置は、複数フレームを決定するインターフレーム決定部と、前記フレームの同一領域を連続してレンダリングするレンダリングユニットと、を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数フレームの同一領域を連続してレンダリングすることができる。
【０００８】
本発明によれば、また、類似のフレームをグルーピングして連続してレンダリングすることにより、データの局所性または光線追跡の類似性（similarity）を向上させることができる。
【０００９】
本発明によれば、また、ワークロードを考慮してタイルを分割することにより、フレーム出力時間間隔内に、多数のフレームをインターフレーム・レンダリングを行うことができる。
【００１０】
本発明によれば、加速構造のノードを再フィッティング（refit）する数を基に、インターフレーム・レンダリングを行うフレームの数を決定することができる。
【００１１】
本発明によれば、一次光線を利用してレンダリングするとき、キャッシュの衝突率を基に、インターフレーム・レンダリングを行うフレームの数を決定することができる。
【図面の簡単な説明】
【００１２】
【図１】光線追跡について説明するための図面である。
【図２】レイトレーシングコアについて説明するための図面である。
【図３】レイトレーシングコアが光線追跡を行う動作について説明する図面である。
【図４】光線追跡を加速させるための方法について説明する図面である。
【図５】図４の光線追跡を加速させるための方法について説明する図面である。
【図６】一実施形態によるレンダリング装置を示す図面である。
【図７】ピクセルに基づくインターフレーム・レンダリングについて説明する図面である。
【図８】タイルに基づくインターフレーム・レンダリングについて説明する図面である。
【図９】他の実施形態によるレンダリング装置を示す図面である。
【図１０】フレームグループについて説明する図面である。
【図１１】フレームグループを決定する方法について説明する図面である。
【図１２】一実施形態によるインターフレーム・レンダリング方法について説明するフローチャートである。
【図１３】一実施形態によるレンダリング方法について説明するフローチャートである。
【図１４】一実施形態によるレンダリング方法について説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照し、実施形態について詳細に説明する。
【００１４】
図１は、光線追跡について説明するための図面である。図１を参照すると、三次元（３Ｄ）モデリングで、レイトレーシングコアは、視点１０を決定し、視点によって画面２０を決定する。視点１０及び画面２０が決定されれば、レイトレーシングコアは、視点１０から、画面２０の各ピクセルに対して光線を生成する。
【００１５】
図１の構成について説明すれば、視点１０から一次光線３０が生成される。一次光線３０は、画面２０を経て、シーンオブジェクト７０と交差する。一次光線３０とシーンオブジェクト７０との交差点では、反射光線４０及び屈折光線５０が生成される。また、交差点において、光源８０の方向にシャドウ光線６０が生成される。このとき、反射光線４０、屈折光線、シャドウ光線６０を二次光線という。シーンオブジェクト７０は、画面２０に係るレンダリングの対象になるオブジェクトを示す。シーンオブジェクト７０は、複数のプリミティブを含む。
【００１６】
レイトレーシングコアは、一次光線３０、二次光線（反射光線４０、屈折光線５０、シャドウ光線６０）、及び二次光線から派生される光線を分析する。レイトレーシングコアは、分析結果に基づいて、画面２０を構成するピクセルの明度を決定する。このとき、レイトレーシングコアは、シーンオブジェクト７０の特性を考慮して、ピクセルの明度を決定する。
【００１７】
図２は、レイトレーシングコア１００について説明するための図面である。図２を参照すると、レイトレーシングコア１００は、光線生成ユニット１１０、ＴＲＶ（探索）ユニット１２０、ＩＳＴ（交差試験）ユニット１３０及びシェーディングユニット１４０を含む。図２では、ＴＲＶユニット１２０、ＩＳＴユニット１３０がレイトレーシングコア１００に含まれるように図示されているが、ＴＲＶユニット１２０、ＩＳＴユニット１３０は、別途のハードウェアとして実現されても良い。図２に図示されたレイトレーシングコア１００は、本実施形態と係る構成要素だけが図示されている。従って、図２に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、当業者であるならば、理解できるであろう。
【００１８】
レイトレーシングコア１００は、生成された光線と、三次元空間に位置したオブジェクトとの交差点を追跡し、画面を構成するピクセルの明度を決定する。言い替えれば、レイトレーシングコア１００は、光線とオブジェクトとの交差点を求め、交差点でのオブジェクトの特性によって二次光線を生成し、交差点の色相の値を決定する。
【００１９】
レイトレーシングコア１００は、加速構造を探索して交差試験を行うとき、過去の探索の結果、及び過去の交差試験の結果を利用することができる。言い換えれば、レイトレーシングコア１００は、過去のレンダリング過程で遂行された結果を、現在のレンダリング過程に適用することにより、現在のレンダリングをさらに迅速に行うことができる。
【００２０】
光線生成ユニット１１０は、一次光線及び二次光線を生成する。光線生成ユニット１１０は、視点から一次光線を生成し、一次光線とオブジェクトとの交差点で、反射、屈折またはシャドウの二次光線を生成する。光線生成ユニット１１０は、また二次光線とオブジェクトとの交差点で、さらに他の二次光線を生成することができる。光線生成ユニット１１０は、決められた回数内で、反射光線、屈折光線、シャドウ光線を生成したり、あるいはオブジェクトの特性によって、反射光線、屈折光線、シャドウ光線の生成回数を決定したりすることができる。
【００２１】
ＴＲＶユニット１２０は、光線生成ユニット１１０から生成された光線に係る情報を受信する。生成された光線は、一次光線、二次光線、及び二次光線によって派生された光線をいずれも含む。例えば、一次光線の場合、ＴＲＶユニット１２０は、生成された光線の視点及び方向に係る情報を受信することができる。また、二次光線の場合、ＴＲＶユニット１２０は、二次光線の出発点及び方向に係る情報を受信することができる。二次光線の出発点は、一次光線がヒットされた地点を示す。視点または出発点は、座標で表現され、方向はベクトルによって表現されて良い。
【００２２】
ＴＲＶユニット１２０は、外部メモリ２５０から、加速構造に係る情報を読み取る。加速構造は、加速構造生成装置２００によって生成され、生成された加速構造は、外部メモリ２５０に保存される。加速構造は、三次元空間のオブジェクトの位置情報を含んでいる構造を示す。例えば、加速構造は、ＫＤ（Ｋ次元）木構造、ＢＶＨ（バウンディング体積階層構造）などが適用されて良い。
【００２３】
ＴＲＶユニット１２０は、加速構造を探索し、光線が衝突したオブジェクトまたは葉ノードを出力する。例えば、ＴＲＶユニット１２０は、加速構造に含まれたノードを探索し、ノードのうち最下位ノードである葉ノードのうち、光線が衝突した葉ノードをＩＳＴユニット１３０に出力する。言い替えれば、ＴＲＶユニット１２０は、加速構造を構成するバウンディングボックスのうち、いずれのバウンディングボックスに光線が衝突したかということを判断し、バウンディングボックスに含まれたオブジェクトのうち、いずれのオブジェクトに光線が衝突したかということを判断する。衝突したオブジェクトに係る情報は、ＴＲＶキャッシュに保存される。バウンディングボックスは、複数のオブジェクトまたはプリミティブを含む単位を示し、加速構造によって、他の形態で表現されもする。ＴＲＶキャッシュは、ＴＲＶユニット１２０が探索過程で使用するデータを一時的に保存するためのメモリを示す。
【００２４】
ＴＲＶユニット１２０は、過去のレンダリングの結果を利用して、加速構造を探索することができる。ＴＲＶユニット１２０は、ＴＲＶキャッシュに保存された過去のレンダリングの結果を利用して、過去のレンダリングと同一経路で、加速構造を探索することができる。例えば、ＴＲＶユニット１２０が、入力された光線に係る加速構造を探索するとき、ＴＲＶユニット１２０は、入力された光線と同一視点及び方向を有する過去の光線がヒットされたバウンディングボックスに対する探索を優先的に行うことができる。また、ＴＲＶユニット１２０は、過去の光線に対する探索経路を参照し、加速構造を探索することができる。
【００２５】
ＩＳＴユニット１３０は、ＴＲＶユニット１２０から、光線が衝突したオブジェクトまたは葉ノードを受信し、外部メモリ２５０から、衝突したオブジェクトに含まれたプリミティブに係る情報を読み取る。読み取られたプリミティブに係る情報は、ＩＳＴキャッシュに保存される。ＩＳＴキャッシュは、交差検索過程で、ＩＳＴユニット１３０が使用するデータを一時的に保存するためのメモリを示す。
【００２６】
ＩＳＴユニット１３０は、光線とプリミティブとの交差試験を行い、光線が衝突したプリミティブ及び交差点を出力する。ＴＲＶユニット１２０から、光線が衝突したオブジェクトが何であるかということを受信したＩＳＴユニット１３０は、衝突したオブジェクトに含まれた複数のプリミティブのうち、いずれのプリミティブに光線が衝突したかということを検査する。光線がヒットされたプリミティブを求めた後、ＩＳＴユニット１３０は、衝突したプリミティブのいずれの地点と、光線が交差したかということを示す交差点を出力する。交差点は、座標形態でシェーディングユニット１４０に出力される。
【００２７】
ＩＳＴユニット１３０は、過去のレンダリングの結果を利用し、て交差試験を行うことができる。ＩＳＴユニット１３０は、ＩＳＴキャッシュに保存された過去のレンダリングの結果を利用して、過去のレンダリングと同一のプリミティブに対して優先的に交差試験を行うことができる。例えば、入力された光線とプリミティブに係る交差試験を行うとき、ＩＳＴユニット１３０は、入力された光線と同一視点及び方向を有する過去の光線が衝突したプリミティブに係る交差試験を優先的に行うことができる。
【００２８】
シェーディングユニット１４０は、ＩＳＴユニット１３０から受信された交差点に係る情報及び交差点の物質特性に基づいて、ピクセルの明度を決定する。シェーディングユニット１４０は、交差点の物質基本色相及び光源による効果などを考慮して、ピクセルの明度を決定する。
【００２９】
レイトレーシングコア１００は、外部メモリ２５０から、光線追跡に必要なデータを受信する。外部メモリ２５０には、加速構造生成装置２００によって生成された加速構造、またはプリミティブに係わる情報を示す幾何学データが保存される。プリミティブは、三角形、四角形のような多角形でもあり、幾何学データは、オブジェクトに含まれたプリミティブの頂点及び位置に係る情報を示すことができる。
【００３０】
加速構造生成装置２００は、三次元空間上のオブジェクトの位置情報を含む加速構造を生成する。加速構造生成装置２００は、さまざまな形態の加速構造を生成することができる。例えば、加速構造は、三次元空間が、階層的ツリーに分割された形態でもあり、加速構造生成装置２００は、ＢＶＨまたはＫＤ木構造を適用し、三次元空間上のオブジェクトの関係を示す構造を生成することができる。加速構造生成装置２００は、葉ノードの最大プリミティブの数、及びツリの深さを決定し、該決定に基づいて、加速構造を生成することができる。
【００３１】
図３は、レイトレーシングコアが光線追跡を行う動作について説明するための図面である。レイトレーシングコアは、例えば、図２に図示されたレイトレーシングコア１００の構造を有することができる。従って、以下省略された内容であるとしても、レイトレーシングコア１００について以上で記述された内容は、図３の光線追跡方法にも適用される。
【００３２】
３１０段階で、レイトレーシングコア１００は、光線を生成する。レイトレーシングコア１００は、一次光線、二次光線、及び二次光線によって派生された光線を生成する。
【００３３】
３２０段階で、レイトレーシングコア１００は、外部メモリ２５０から読み取られた加速構造を探索する。レイトレーシングコア１００は、生成された光線の視点及び方向に基づいて、加速構造２５１を探索し、光線が衝突したバウンディングボックスを検出し、衝突したバウンディングボックスに含まれたオブジェクトのうち光線が衝突したオブジェクトを検出する。レイトレーシングコア１００は、衝突したオブジェクトを検出するまで、加速構造２５１を探索することを反復（iteration）して遂行する。例えば、レイトレーシングコア１００は、いずれか１つの経路に沿って加速構造を探索し、探索された経路上の葉ノードに光線が衝突していないのであれば、他の経路に加速構造を探索する。
【００３４】
レイトレーシングコア１００は、全ての経路を順次に探索することができるが、過去の光線の探索情報に基づいて、特定経路を優先的に探索することができる。例えば、過去の光線の視点及び方向が、現在の光線の視点及び方向と同一であるか、あるいは類似している場合、レイトレーシングコア１００は、過去の光線が衝突した葉ノードが含まれた経路を優先的に探索することができる。
【００３５】
３３０段階で、レイトレーシングコア１００は、交差試験を行う。レイトレーシングコア１００は、外部メモリ２５０から読み取られたプリミティブの幾何学データ２５２に基づいて交差試験を行う。レイトレーシングコア１００は、衝突したプリミティブを検出するまで、交差試験を反復して行う。例えば、レイトレーシングコア１００は、いずれか１つのプリミティブに係る交差試験を行い、プリミティブに光線が衝突していないのであれば、他のプリミティブに係る交差試験を行う。
【００３６】
レイトレーシングコア１００は、全てのプリミティブを順次に交差試験することができるが、過去の光線の交差試験情報に基づいて、特定プリミティブに対して優先的に交差試験を行うことができる。例えば、過去の光線と現在の光線との視点及び方向が同一であるか、あるいは類似している場合、レイトレーシングコア１００は、過去の光線が衝突したプリミティブに係る交差試験を優先的に行うことができる。
【００３７】
３４０段階で、レイトレーシングコア１００は、交差試験に基づいて、ピクセルのシェーディングを行う。レイトレーシングコア１００は、３４０段階が終了すれば、３１０段階に進む。レイトレーシングコア１００は、３１０段階ないし３４０段階を、画面を構成する全てのピクセルに対して反復的に遂行する。
【００３８】
図４は、光線追跡を加速させるための方法について説明するための図面である。図４を参照すると、第１画面４１２は、ｔ＝０でのレンダリングされた画面を示し、第２画面４２２は、ｔ＝１でのレンダリングされた画面を示す。第１画面４１２及び第２画面４２２からウサギ４３３だけが移動し、四角形４３１と三角形４３２は、動きがないために、第１画面４１２と第２画面４２２は、ほぼ類似している。従って、レイトレーシングコア１００は、第１画面４１２に対するレンダリング結果を利用して、第２画面４２１に対するレンダリングを行うことができる。例えば、第１視点４１０と第２視点４２０との位置が同一であり、第１光線４１１と第２光線４２１との方向が同一であるならば、レイトレーシングコア１００は、第１光線４１１に係る光線追跡の結果を、第２光線４２１の光線追跡に適用し、第２光線４２１の光線追跡を加速させることができる。例えば、レイトレーシングコア１００のＴＲＶユニット１２０は、第２光線４２１に係る探索を行うとき、第１光線４１１が衝突したバウンディングボックスを優先的に探索することができる。また、レイトレーシングコア１００のＩＳＴユニット１３０は、第２光線４２１に係る交差試験を行うとき、第１光線４１１が衝突した三角形４３２に対して優先的に交差試験を行うことができる。
【００３９】
図５は、図４の光線追跡を加速させるための方法について説明するための図面である。図５を参照すると、加速構造は、５個のノード（ノード１ないしノード５）を含み、ノード３ないしノード５は、葉ノードを示す。
【００４０】
ＴＲＶユニット１２０は、三種の経路に沿って加速構造を探索することができる。第一に、ＴＲＶユニット１２０は、第１経路であるノード１、ノード２及びノード３に沿って、加速構造を探索することができる。第二に、ＴＲＶユニット１２０は、第２経路であるノード１、ノード２及びノード４に沿って、加速構造を探索することができる。第三に、ＴＲＶユニット１２０は、第３経路であるノード１及びノード５に沿って、加速構造を探索することができる。このとき、ＴＲＶユニット１２０が第２光線４２１（図４）に係る探索を行うとき、ＴＲＶユニット１２０は、第１光線４１１（図４）が衝突した三角形４３２を探索する第２経路を優先的に探索する。従って、ＴＲＶユニット１２０が、第１経路または第３経路を探索する過程を省略することができる。
【００４１】
図６は、一実施形態によるレンダリング装置を示している。図２または図３のレイトレーシングコア１００は、図６のレンダリング装置６００の一例である。レイトレーシングコア１００は、光線を利用して、イメージをレンダリングする装置であり、レンダリング装置６００は、イメージをレンダリングする一般的な装置を示す。
【００４２】
図６を参照すると、レンダリング装置６００は、インターフレーム決定部６１０及びレンダリングユニット６２０を含む。図６には図示されていないが、レンダリング装置６００は、メモリ、キャッシュなどをさらに含んでもよい。
【００４３】
レンダリング装置６００は、フレームグループを決定し、決定されたフレームグループ内のフレームに対して、タイルに基づくインターフレーム・レンダリング（tile-based  nter-frame  endering）、またはピクセルに基づくインターフレーム・レンダリング（pixel-based  nter-frame  endering）を行う。タイルに基づくインターフレーム・レンダリングは、複数フレームにおいて、同一位置のタイルを連続してレンダリングする方法である。ピクセルに基づくインターフレーム・レンダリングは、複数フレームにおいて、同一位置のピクセルを連続してレンダリングする方法である。
【００４４】
インターフレーム決定部６１０は、インターフレーム・レンダリングの対象になる複数フレームを決定する。インターフレーム決定部６１０は、フレーム出力時間間隔内に同時にレンダリングされるフレームの数を決定する。フレーム出力時間間隔は、イメージ出力に要求される時間によって決定される。
【００４５】
例えば、レイトレーシング方法を利用してレンダリングを行う場合、インターフレーム決定部６１０は、一次光線を利用して、フレームを一次レンダリングし、一次レンダリングされたフレームのワークロードに基づいて、同時にレンダリングするフレームの数を決定することができる。言い替えれば、インターフレーム決定部６１０は、フレームを一次レンダリングした結果を参照して、フレームを最終レンダリングするのに必要なワークロード（または、演算量）をおおまかに計算することができる。インターフレーム決定部６１０は、ワークロードを基に、フレーム出力時間間隔の間、いくつのフレームをレンダリングすることができるかということを計算する。インターフレーム決定部６１０は、計算結果に基づいて、同時にレンダリングするフレームの数を決定することができる。レンダリング装置６００が一次光線のみを利用してレンダリングする場合、二次光線をいずれも考慮してレンダリングする場合より、迅速にフレームのおおまかなイメージを生成することができる。
【００４６】
フレーム出力時間間隔は、ユーザが動画を鑑賞するのに差し支えがないようにイメージを出力しなければならない時間を考慮して決定される。また、ユーザと相互作用と行う場合、フレーム出力時間間隔は、ユーザの入力に係る応答時間以内で決定される。
【００４７】
レンダリングユニット６２０は、決定されたフレームの同一領域を連続してレンダリングする。レンダリングユニット６２０は、フレーム出力時間間隔内に含まれたフレームをレンダリングするが、フレーム出力時間間隔内に含まれたフレームの同一領域を連続してレンダリングする。言い替えれば、レンダリングユニット６２０は、１つのフレームをレンダリングし、次のフレームをレンダリングせず、複数フレームの同一領域をレンダリングする過程を反復することにより、複数フレームをレンダリングする。例えば、同一領域は、フレームにおいて、同一位置のピクセル、または同一位置のタイルでもある。
【００４８】
インターフレーム決定部６１０は、複数フレームのうち隣接したフレーム間の加速構造の変化量を計算し、変化量に基づいて、同時にレンダリングするフレームを決定する。このとき、複数フレームは、フレーム出力時間間隔内に含まれるフレームのうちから決定される。同時にレンダリングするフレームをフレームグループという。
【００４９】
例えば、加速構造の変化量は、光線探索に利用される加速構造のノードが、変更された回数又は再フィッティングされた回数を示すことができる。レンダリング装置６００は、最初のフレームに係る加速構造を変更しながら、次のフレームの光線追跡に使用することができるが、もし再フィッティングされたノードの数が多ければ、既存の加速構造を利用するより、新たに加速構造を生成する方が効率的でもある。インターフレーム決定部６１０は、隣接したフレーム間に変更されたデータが多く、再フィッティングされたノードの数が大きいフレームは、同一フレームグループに含まれたフレームと決定せず、再フィッティングされたノードの数が既定の臨界値より小さいフレームのみを同一フレームグループと決定することができる。
【００５０】
他の実施例として、インターフレーム決定部６１０は、一次レンダリング時のキャッシュの衝突率（hit  ate）を計算し、衝突率に基づいて、フレームグループを決定する。一次光線（または、主光線）のみを利用してフレームをレンダリングした一次レンダリング結果を受信すれば、インターフレーム決定部６１０は、各フレームをレンダリングするときのキャッシュの衝突率を計算することができる。レンダリング装置６００がフレームをレンダリングする過程で必要なデータの利用のために、キャッシュに接続することを示すキャッシュの衝突に基づいて、インターフレーム決定部６１０は、キャッシュに接続したときに必要なデータが保存されている確率を示す衝突率を計算することができる。
【００５１】
インターフレーム決定部６１０は、フレームに係る一次レンダリングを行いながら、キャッシュの衝突率を計算し、衝突率が臨界値以下のフレームについては、同一フレームグループのフレームと決定しないこともある。レンダリング装置６００が複数フレームに対して一次レンダリングを行うとき、同一であるか、あるいは類似したフレームの場合、同一であるか、あるいは類似したデータを利用するために、キャッシュの衝突率が高い。しかし、類似していないフレームの場合、同一データを共有しないので、レンダリング装置６００が一次レンダリングを行うとき、過去のフレームのデータが保存されたキャッシュを利用する確率が低減する。従って、衝突率が一定比率以下であるフレームの場合、過去のフレームに比べ、変更された部分が多いフレームであるので、レンダリング装置６００は、過去のフレームと共に、インターフレーム・レンダリングを行わない。
【００５２】
レンダリングユニット６２０は、フレーム出力時間間隔及びインターフレーム・レンダリング区間内のフレームをレンダリングする。言い替えれば、レンダリングユニット６２０は、フレーム出力時間間隔及びインターフレーム・レンダリング区間をいずれも満足するフレームをレンダリングする。インターフレーム・レンダリング区間は、加速構造の変化量に基づいたインターフレーム・レンダリング区間と、衝突率に基づいたインターフレーム・レンダリング区間とがあり、レンダリングユニット６２０は、二つのうち一つ、またはいずれも満足する区間のフレームをレンダリングする。
【００５３】
図７は、ピクセルに基づくインターフレーム・レンダリングについて説明するための図面である。図７で説明される動作は、例えば、図６に図示されたレンダリング装置６００が遂行することができる。従って、以下で省略された内容であるとしても、レンダリング装置６００について以上で記述された内容は、図７にも適用される。
【００５４】
図７を参照すると、レンダリング装置６００は、同一フレームグループに含まれたフレームの同一位置のピクセルを連続してレンダリングする。図７では、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームが同一フレームグループに含まれたフレームである。従って、レンダリング装置６００は、矢印方向に連続してレンダリングする。例えば、レンダリング装置６００は、Ｎ番目のフレームの（０，０）ピクセルをレンダリングし、（Ｎ＋１）番目のフレームの（０，０）ピクセルをレンダリングし、（Ｎ＋２）番目のフレームの（０，０）ピクセルをレンダリングする。（０，０）ピクセルのレンダリング後、レンダリング装置６００は、Ｎ番目のフレームの（１，０）ピクセルをレンダリングし、（Ｎ＋１）番目のフレームの（１，０）ピクセルをレンダリングし、（Ｎ＋２）番目のフレームの（１，０）ピクセルを連続してレンダリングする。レンダリング装置６００は、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームの全てのピクセルをレンダリングし、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームのレンダリングを終了する。
【００５５】
光線追跡の場合、レンダリング装置６００は、同一位置のピクセルに光線を生成することができる。複数フレームに係る光線を生成するとき、同一位置の光線であるとしても、他のフレームに係る光線でもあるので、レンダリング装置６００は、光線がいずれのフレームに係るものであるかということを示す情報を追加して光線データに含めることができる。例えば、ＲａｙＦ（ｎ），（ｘ，ｙ）は、ｎ番目フレームの（ｘ，ｙ）ピクセルに係る光線を示し、ＲａｙＦ（ｎ＋１），（ｘ，ｙ）は、（ｎ＋１）番目フレームの（ｘ，ｙ）ピクセルに係る光線を示し、ＲａｙＦ（ｎ＋２），（ｘ，ｙ）は、（ｎ＋２）番目フレームの（ｘ，ｙ）ピクセルに係る光線を示すことができる。
【００５６】
図８は、タイルに基づくインターフレーム・レンダリングについて説明するための図面である。図８で説明される動作は、例えば、図６に図示されたレンダリング装置６００が遂行することができる。従って、以下で省略された内容であるとしても、レンダリング装置６００について以上で記述された内容は、図８にも適用される。
【００５７】
図８を参照すると、レンダリング装置６００は、同一フレームグループ内に含まれたフレームの同一位置のタイルを連続してレンダリングする。図８では、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームが同一フレームグループ内に含まれたフレームである。従って、レンダリング装置６００は、２点鎖線で表記された矢印方向に、連続してタイルをレンダリングする。レンダリング装置６００は、２点鎖線で表記された矢印の方向に連続したフレームの同一位置のタイルをレンダリングする。例えば、レンダリング装置６００は、Ｎ番目のフレームのタイル０の９１０をレンダリングし、（Ｎ＋１）フレームのタイル０の９２０をレンダリングし、（Ｎ＋２）フレームのタイル０の９３０をレンダリングする。
【００５８】
１つのフレーム内でタイルがレンダリングされる順序は、実線で表記された矢印で表現される。３個のタイル０の９１０ないし９３０のレンダリング後、レンダリング装置６００は、Ｎ番目のフレームのTile  １をレンダリングし、（Ｎ＋１）フレームのTile  １をレンダリングし、（Ｎ＋２）フレームのTile  １をレンダリングする。３個のTile  １のレンダリング後、レンダリング装置６００は、Ｎ番目のフレームのTile  ２をレンダリングし、（Ｎ＋１）番目のフレームのTile  ２をレンダリングし、（Ｎ＋２）フレームのTile  ２をレンダリングする。レンダリング装置６００は、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームの全てのタイルを、実線で表記された矢印方向に順次にレンダリングし、Ｎ番目のフレームないし（Ｎ＋２）番目のフレームのレンダリングを終了する。
【００５９】
光線追跡の場合、レンダリング装置６００は、複数フレームの同一位置のタイルに光線を生成することができる。複数フレーム及びタイルに係る光線を生成するとき、同一位置の光線であるとしても、他のフレームに係る光線でもあるので、レンダリング装置６００は、光線がいずれのフレームのいずれのタイルに係るものであるかということを示す情報を追加して光線データに含めることができる。例えば、ＲａｙＴ０，Ｆ（ｎ），（ｘ，ｙ）は、ｎ番目フレームのTile  ０  ９１０の（ｘ，ｙ）ピクセルに係る光線を示し、ＲａｙＴ０，Ｆ（ｎ＋１），（ｘ，ｙ）は、（ｎ＋１）番目のフレームのタイル０の９２０の（ｘ，ｙ）ピクセルに係る光線を示し、ＲａｙＴ０，Ｆ（ｎ＋２），（ｘ，ｙ）は、（ｎ＋２）番目のフレームのタイル０の９３０の（ｘ，ｙ）ピクセルに係る光線を示すことができる。
【００６０】
図９は、他の実施形態によるレンダリング装置について説明するための図面である。図９を参照すると、レンダリング装置６００は、複数のレンダリングユニット６２０を含んでもよい。従って、複数のレンダリングユニット６２０は、複数フレームのピクセルについて、並列的にレンダリングを行うことができる。言い替えれば、複数のレンダリングユニット６２０は、互いに異なる位置のピクセルを、同時にレンダリングすることができる。同様に、複数のレンダリングユニット６２０は、複数フレームのタイルについて、並列的にレンダリングを行うことができる。言い替えれば、複数のレンダリングユニット６２０は、互いに異なる位置のタイルを、同時にレンダリングすることができる。図９では、４個のレンダリングユニット６２０を図示しているが、レンダリング装置６００は、４個以下、またはそれ以上のレンダリングユニットを含んでもよい。光線追跡の場合、それぞれのレンダリングユニット６２０は、図２の光線生成ユニット１１０、ＴＲＶユニット１２０、ＩＳＴユニット１３０及びシェーディングユニット１４０を含んでもよい。
【００６１】
複数のレンダリングユニット６２０は、１つのコアによって実現されて良いし、あるいは１つのレンダリングユニット６２０は、複数のコアによって実現されても良い。レンダリングユニット６２０は、複数のコアにそれぞれ割り当てられ、独立してレンダリングを行うことができる。
【００６２】
図１０は、フレームグループについて説明するための図面である。図１０は、レンダリング装置６００が第１フレーム８１１ないし第１０フレーム８２０を、２個のフレームグループ８５０，８６０に区分してインターフレーム・レンダリングを行う場合を図示している。フレームグループは、同時にインターフレームを遂行する区間を示す。言い替えれば、フレームグループは、同一領域が連続してレンダリングされるフレームを示す。図１０を参照すると、第１フレームグループ８５０は、第１フレーム８１１ないし第５フレーム８１５を含み、第２フレームグループ８６０は、第６フレーム８１６ないし第１０フレーム８２０を含む。
【００６３】
レンダリング装置６００は、同一フレームグループに含まれたフレームを、ピクセル単位またはタイル単位でレンダリングし、同一フレームグループに含まれた全てのフレームのレンダリングが完了すれば、全てのフレームの最終イメージを順次に出力する。例えば、図１０においてレンダリング装置６００は、第１フレームグループ８５０に含まれた第１フレーム８１１ないし第５フレーム８１５を、ピクセルまたはタイル単位でレンダリングし、第５フレーム８１５の最後のピクセルまたはタイルのレンダリングが完了すれば、第１フレーム８１１のイメージから第５フレーム８１５のイメージまでを順次に出力する。
【００６４】
タイルに基づくインターフレーム・レンダリングの場合、分割されたタイルの大きさは、同一であっても、互いに異なっていてもよい。例えば、レンダリング装置６００は、第１フレーム８１１を、１２個の同一タイル１Ｔないし１２Ｔに分割することができる。図１０と異なり、分割されたタイルの大きさは、互いに異なっていてもよい。
【００６５】
レンダリング装置６００は、フレームのワークロードを考慮し、タイル１Ｔないし１２Ｔのサイズを決定することができ、ワークロードは、一次レンダリングの結果を参考して計算される。また、ワークロードは、各タイルに含まれたオブジェクトの数などを考慮して計算される。
【００６６】
レンダリングユニット６２０は、決定されたフレームグループに対して、ピクセルに基づくまたはタイルに基づくのインターフレーム・レンダリングを行う。例えば、レンダリングユニット６２０は、第１フレームグループ８５０に含まれた第１フレーム８１１ないし第５フレーム８１５をレンダリングする。このとき、レンダリングユニット６２０は、第１フレームグループ８５０に含まれた第１フレーム８１１ないし第５フレーム８１５の第１タイル１Ｔに対して優先的にレンダリングを行った後、第１フレーム８１１ないし第５フレーム８１５の第２タイル２Ｔをレンダリングする。第１フレーム８１１ないし第５フレーム８１５の第１タイル１Ｔは、同一イメージである確率が高いので、レンダリングユニット６２０は、第１フレーム８１１の第１タイル１Ｔをレンダリングした結果を利用して、第２フレーム８１２の第１タイル１Ｔをレンダリングすることができる。レンダリングユニット６２０は、同一方式で、第３タイル３Ｔないし第１２タイル１２Ｔをレンダリングする。
【００６７】
フレーム８１５の第１２タイル１２Ｔのレンダリングが完了すれば、レンダリングユニット６２０は、第１フレーム８１１ないし第５フレーム８１５のレンダリングされたイメージを順次に出力する。第１フレームグループ８５０に係るレンダリングが終われば、レンダリングユニット６２０は、第１フレームグループ８５０の場合と同一に、第２フレームグループ８６０のフレームをレンダリングする。
【００６８】
図１１は、フレームグループを決定する方法について説明するための図面である。図１１を参照すると、インターフレーム決定部６１０は、加速構造の再フィッティング数を計算してフレームグループを決定する。図１１において再フィッティングされたノードは、影付けされている。第Ｎフレーム９００ないし第（Ｎ＋２）フレーム９２０は、５個のノードを含む加速構造を有する。
【００６９】
レンダリングユニット６２０は、第Ｎフレーム９００の加速構造を再フィッティングし、第（Ｎ＋１）フレーム  ９１０のレンダリングに利用する。第（Ｎ＋１）フレーム  ９１０の加速構造は、第Ｎフレーム９００の加速構造の４番目のノードだけが再フィッティングされる。従って、再フィッティング数Ｒｃは、１である。もし再フィッティングの臨界値Ｒｔｈが２に設定されているならば、Ｒｃは、Ｒｔｈより小さい。従って、第Ｎフレーム９００と、第（Ｎ＋１）フレーム  ９１０は、同一フレームグループに含まれる。
【００７０】
これと異なり、第（Ｎ＋２）フレーム  ９２０の加速構造は、第（Ｎ＋１）フレーム
９１０の加速構造の３，４，５番目のノードが再フィッティングされる。従って、再フィッティング数Ｒｃは、３である。もし再フィッティングの臨界値Ｒｔｈが２に設定されているならば、Ｒｃは、Ｒｔｈより大きい。従って、第（Ｎ＋１）フレーム  ９１０と、第（Ｎ＋２）フレーム  ９２０は、同一フレームグループに含まれない。結論として、インターフレーム決定部６１０は、第Ｎフレーム９００及び第（Ｎ＋１）フレーム  ９１０を同一フレームグループと決定する。
【００７１】
図１２は、一実施形態によるインターフレーム・レンダリング方法について説明するためのフローチャートである。図１２は、図６のレンダリング装置６００がレンダリングする段階について説明するためのフローチャートである。従って、以下で省略された内容であるとしても、レンダリング装置６００について以上で記述された内容は、図１２の一実施形態によるレンダリング方法にも適用される。
【００７２】
１２１０段階で、レンダリング装置６００は、レンダリングのための初期設定を行う。１２２０段階で、レンダリング装置６００は、インターフレーム・レンダリングが始動しているか否かということを確認する。もしインターフレーム・レンダリングが始動していれば、１２３０段階に進み、そうではなければ、１２３５段階に進む。インターフレーム・レンダリングが始動しているということは、レンダリング装置６００がレンダリングするフレームを同時にレンダリングすることができるということを意味する。
【００７３】
１２３０段階で、レンダリング装置６００は、インターフレーム・レンダリングのための初期設定を行う。レンダリング装置６００は、フレームを分割するタイルの大きさ、フレーム出力時間間隔、キャッシュの衝突率の臨界値、及び再フィッティングの臨界値Ｒｔｈなどを設定する。レンダリング装置は、フレームグループを決定する。
【００７４】
１２４０段階で、レンダリング装置６００は、インターフレーム・レンダリングを行う。レンダリング装置６００は、同一フレームグループのフレームを同時にレンダリングする。
【００７５】
１２５０段階で、レンダリング装置６００は、外部入力によるフレーム変更があるか否かということを決定する。外部入力は、ユーザによる入力であり、外部入力によって、レンダリングされるフレームが変更される。レンダリングされるフレームが変更されれば、レンダリング装置６００は、１２７０段階に進み、そうではなければ、１２６０段階に進む。
【００７６】
１２６０段階で、レンダリング装置６００は、インターフレーム・レンダリング区間を超えているか否かということを決定する。インターフレーム・レンダリング区間を超えている場合、１２７０段階に進み、そうではなければ、１２４０段階に進む。インターフレーム・レンダリング区間は、同時にレンダリングされるフレームを示す。１２７０段階で、レンダリング装置６００は、インターフレーム・レンダリングを終了する。レンダリング装置６００は、外部の入力によってフレームが変更されるか、あるいはレンダリングが完了すれば、レンダリングを終了する。
【００７７】
１２８０段階で、レンダリング装置６００は、レンダリングが完了したイメージを出力する。
【００７８】
１２３５段階で、レンダリング装置６００は、順次レンダリングのための初期設定を行う。順次レンダリングは、一般的なレンダリング方法であり、１つのフレームのみをレンダリングして出力する方法である。
【００７９】
１２３６段階で、レンダリング装置６００は、順次レンダリングを行う。
【００８０】
図１３は、一実施形態によるレンダリング方法について説明するためのフローチャートである。図１３は、図６のレンダリング装置６００がレンダリングする段階について説明するためのフローチャートである。従って、以下で省略された内容であるとしても、レンダリング装置６００について以上で記述された内容は、図１３の一実施形態によるレンダリング方法にも適用される。
【００８１】
１３１０段階で、レンダリング装置６００は、複数フレームを決定する。
【００８２】
１３２０段階で、レンダリング装置６００は、フレームの同一領域を連続してレンダリングする。
【００８３】
図１４は、一実施形態によるレンダリング方法について説明するためのフローチャートである。図１４は、図６のレンダリング装置６００がレンダリングする段階について説明するためのフローチャートである。従って、以下で省略された内容であるとしても、レンダリング装置６００について以上で記述された内容は、図１４の一実施形態によるレンダリング方法にも適用される。
【００８４】
１４１０段階で、レンダリング装置６００は、第１フレーム及び第２フレームを選択する。第１フレーム及び第２フレームは、互いに隣接したフレームでもある。
【００８５】
１４２０段階で、レンダリング装置６００は、第１フレームの第１領域をレンダリングする。第１領域は、第１フレームのピクセルまたはタイルでもある。レンダリング装置６００は、第１フレームのいずれか１つのピクセルまたはタイルをレンダリングする。
【００８６】
１４３０段階で、レンダリング装置６００は、第１フレームの第１領域ではない領域をレンダリングする前に、第１フレームの第１領域と同一領域にあたる第２フレームの領域をレンダリングする。同一領域は、同一位置のピクセルまたは同一位置のタイルでもある。例えば、レンダリング装置６００は、第１フレームの第１タイルをレンダリングした後、第１フレームの他のタイルをレンダリングする前に、第２フレームの第１タイルをレンダリングすることができる。第１フレームの第１タイルと、第２フレームの第１タイルは、フレーム上で同一位置のタイルを示す。また、レンダリング装置６００は、第１フレームの第１ピクセルをレンダリングした後、第１フレームの他のピクセルをレンダリングする前に、第２フレームの第１ピクセルをレンダリングすることができる。第１フレームの第１ピクセルと、第２フレームの第１ピクセルは、フレーム上で同一位置のピクセルを示す。
【００８７】
一方、前述の方法は、コンピュータで実行されるプログラムでもって作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用デジタルコンピュータで実現される。また、前述の方法で私用されたデータの構造は、コンピュータで読み取り可能な記録媒体に、多くの手段を介して記録される。前記コンピュータで読み取り可能な記録媒体は、マグネチック記録媒体（例えば、ＲＯＭ（read-only  memory）、ＲＡＭ（random-access  memory）、ＵＳＢ（universal  serial  bus）、フロッピー（登録商標）ディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ（compact  disc）−ＲＯＭ、ＤＶＤ（digital  versatile  disc）など）を含む。
【産業上の利用可能性】
【００８８】
本発明のマルチフレームの同一領域を連続してレンダリングする方法及びその装置は、例えば、映像処理関連の技術分野に効果的に適用可能である。
【符号の説明】
【００８９】
１０    視点
２０    画面
３０    一次光線
４０    反射光線
５０    屈折光線
６０    シャドウ光線
７０    シーンオブジェクト
８０    光源
１００  レイトレーイングコア
１１０  光線生成ユニット
１２０  ＴＲＶユニット
１３０  ＩＳＴユニット
１４０  シェーディングユニット
２００  加速構造生成装置
２５０  外部メモリ
２５１  加速構造
２５２  幾何学データ
４１０  第１視点
４１１  第１光線
４１２  第１画面
４２０  第２視点
４２１  第２光線
４２２  第２画面
４３１  四角形
４３２  三角形
４３３  ウサギ
６００  レンダリング装置
６１０  インターフレーム決定部
６２０  レンダリングユニット
８１１  第１フレーム
８１２  第２フレーム
８１３  第３フレーム
８１４  第４フレーム
８１５  第５フレーム
８１６  第６フレーム
８１７  第７フレーム
８１８  第８フレーム
８１９  第９フレーム
８２０  第１０フレーム
８５０  第１フレームグループ
８６０  第２フレームグループ
９００  第Ｎフレーム
９１０  第（Ｎ＋１）フレーム
９２０  第（Ｎ＋２）フレーム
【図１】
2015197914.tif 000003
【図２】
2015197914.tif 000004
【図３】
2015197914.tif 000005
【図４】
2015197914.tif 000006
【図５】
2015197914.tif 000007
【図６】
2015197914.tif 000008
【図７】
2015197914.tif 000009
【図８】
2015197914.tif 000010
【図９】
2015197914.tif 000011
【図１０】
2015197914.tif 000012
【図１１】
2015197914.tif 000013
【図１２】
2015197914.tif 000014
【図１３】
2015197914.tif 000015
【図１４】
2015197914.tif 000016