(57)【特許請求の範囲】
【請求項１】
タイルに基づくレンダリング方法において、
現在フレームに対するビニングを行う段階と、
前記現在フレームでレンダリングするタイルのビニング情報に係わる第１識別コード及び属性情報に係わる第２識別コードを生成する段階と、
前記レンダリングするタイルの第１識別コード及び第２識別コードと、以前フレームで前記レンダリングするタイルと同一位置の以前タイルの第１識別コード及び第２識別コードと、を比較する段階であって、前記レンダリングするタイルの第１識別コードと、前記以前タイルの第１識別コードとが同一ではない場合、第２識別コードに係わる比較を省略する、段階と、
前記比較の結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいは前記レンダリングするタイルに対するピクセル処理を行い、前記現在フレームをレンダリングする段階と、を含むレンダリング方法。
【請求項２】
前記レンダリングする段階は、
前記レンダリングするタイルの第１識別コード及び第２識別コードと、前記以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、前記フレームバッファに保存された以前タイルのイメージを再使用し、
前記レンダリングするタイルの第１識別コード及び第２識別コード；並びに前記以前タイルの第１識別コード及び第２識別コード；のうちいずれか１つの識別コードにおいて同一ではなければ、前記レンダリングするタイルに対するピクセル処理を行う、ことを特徴とする請求項１に記載のレンダリング方法。
【請求項３】
前記第１及び第２識別コードを生成する段階は、
前記レンダリングするタイルでレンダリングするプリミティブリストを示すビニング情報のうち一部を利用し、前記レンダリングするタイルの第１識別コードを生成する、ことを特徴とする請求項１又は２に記載のレンダリング方法。
【請求項４】
前記第１及び第２識別コードを生成する段階は、
前記レンダリングするタイルのattribute情報、Gstate情報及びuniform情報を示す属性情報のうち一部を利用し、前記レンダリングするタイルの第２識別コードを生成する、ことを特徴とする請求項１乃至３のいずれか一項に記載のレンダリング方法。
【請求項５】
前記レンダリングする段階は、
前記レンダリングするタイルの第１識別コード及び第２識別コードと、前記以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、前記レンダリングするタイルに対するピクセル処理を省略する、ことを特徴とする請求項１乃至４のいずれか一項に記載のレンダリング方法。
【請求項６】
前記第１及び第２識別コードを生成する段階は、
前記レンダリングするタイルのビニング情報または属性情報を利用し、他のタイルと区分可能な固有の識別コードを生成する、ことを特徴とする請求項１に記載のレンダリング方法。
【請求項７】
請求項１乃至６のいずれか一項に記載の方法をコンピュータで実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータで読み取り可能な記録媒体。
【請求項９】
現在フレームに対するビニングを行う幾何処理部と、
前記現在フレームでレンダリングするタイルのビニング情報に係わる第１識別コード及び属性情報に係わる第２識別コードを生成し、前記レンダリングするタイルの第１識別コード及び第２識別コードと、以前フレームで前記レンダリングするタイルと同一位置の以前タイルの第１識別コード及び第２識別コードと、を比較する同一性判断部であって、前記レンダリングするタイルの第１識別コードと、前記以前タイルの第１識別コードとが同一ではない場合、第２識別コードに係わる比較を省略する、同一性判断部と、
前記比較の結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいは前記レンダリングするタイルに対するピクセル処理を行い、前記現在フレームをレンダリングするピクセル処理部を含むレンダリング装置。
【請求項１０】
前記ピクセル処理部は、
前記レンダリングするタイルの第１識別コード及び第２識別コードと、前記以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、前記フレームバッファに保存された以前タイルのイメージを再使用し、
前記レンダリングするタイルの第１識別コード及び第２識別コード；並びに前記以前タイルの第１識別コード及び第２識別コード；のうちいずれか１つの識別コードにおいて同一ではなければ、前記レンダリングするタイルに対するピクセル処理を行う、ことを特徴とする請求項９に記載のレンダリング装置。
【請求項１１】
前記同一性判断部は、
前記レンダリングするタイルでレンダリングするプリミティブリストを示すビニング情報のうち一部を利用し、前記レンダリングするタイルの第１識別コードを生成する、ことを特徴とする請求項９又は１０に記載のレンダリング装置。
【請求項１２】
前記同一性判断部は、
前記レンダリングするタイルのattribute情報、Gstate情報及びuniform情報を示す属性情報のうち一部を利用し、前記レンダリングするタイルの第２識別コードを生成する、ことを特徴とする請求項９乃至１１のいずれか一項に記載のレンダリング装置。
【請求項１３】
前記ピクセル処理部は、
前記レンダリングするタイルの第１識別コード及び第２識別コードと、前記以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、前記レンダリングするタイルに対するピクセル処理を省略する、ことを特徴とする請求項９乃至１２のいずれか一項に記載のレンダリング装置。
【請求項１４】
前記同一性判断部は、
前記レンダリングするタイルのビニング情報または属性情報を利用し、他のタイルと区分可能な固有の第１識別コードまたは第２識別コードを生成する、ことを特徴とする請求項９に記載のレンダリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元データをレンダリングする方法及びその装置に関する。
【背景技術】
【０００２】
３Ｄ（three-dimensional）グラフィックスＡＰＩ（application  program  interface）標準においては、OpenＧＬ、OpenＧＬ  ＥＳまたはDirect３などがある。ＡＰＩ標準は、各フレームに対するレンダリングを行い、映像を表示する方法を含む。各フレームに対するレンダリングを行うとき、多くの演算が行われ、多くの電力が消耗される。従って、レンダリングを行うとき、演算量を減らし、メモリにアクセスする回数を減らす必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明が解決しようとする課題は、同一のタイルについては、ピクセル処理を省略し、演算量を減らすためのレンダリング装置及びその方法を提供することである。
【０００４】
また、本発明が解決しようとする課題は、前記方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することであるる。
【０００５】
本実施形態がなすべき技術的課題は、前述のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推される。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明の一実施形態によるレンダリング方法は、タイルに基づくレンダリング方法において、現在フレームに対するビニングを行う段階と、前記現在フレームでレンダリングするタイルのビニング情報または属性情報に係わる識別コードを生成する段階と、前記レンダリングするタイルの識別コードと、以前フレームで前記レンダリングするタイルと同一位置の以前タイルの識別コードと、を比較する段階と、前記比較の結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいは前記レンダリングするタイルに対するピクセル処理を行い、前記現在フレームをレンダリングする段階と、を含む。
【発明の効果】
【０００７】
本発明によるレンダリング装置は、レンダリングするタイルと同一の以前タイルのピクセル処理結果を利用することにより、レンダリングするタイルに係わる演算量を減らすことができる。
【０００８】
本発明によるレンダリング装置は、タイルのビニング情報を利用して、現在タイルと以前タイルとの同一性を決定することができる。
【０００９】
本発明によるレンダリング装置は、フレームバッファに保存されたイメージを再使用することにより、レンダリング装置とフレームバッファとのトラフィックを減らすことができる。
【図面の簡単な説明】
【００１０】
【図１】装置の連結関係について説明するための図面である。
【図２】一実施形態によるレンダリング装置の動作について説明するための図面である。
【図３】フレーム単位で入力されるドローコールについて説明するための図面である。
【図４】一実施形態によるレンダリング装置について説明するための構成図である。
【図５】図４の同一性判断部の動作について説明するための図面である。
【図６】一実施形態によるレンダリング方法について説明するための図面である。
【図７】一実施形態によるレンダリング方法について説明するための図面である。
【図８】一実施形態によるレンダリング方法について説明するための図面である。
【図９】一実施形態によるレンダリング方法について説明するためのフローチャートである。
【図１０】一実施形態によるレンダリング方法について説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下では、図面を参照しつつ、本発明の実施形態について詳細に説明する。
【００１２】
図１は、装置の連結関係について説明するための図面である。
【００１３】
アプリケーション１００は、特定の機能を遂行するように設計されたプログラムである。
【００１４】
アプリケーション１００は、イメージ処理と係わるコマンドを、デバイスドライバ２００に伝送する。アプリケーション１００は、多様な形態のコマンドをデバイスドライバ２００に伝送することができる。
【００１５】
デバイスドライバ２００は、アプリケーション１００から受信されたコマンドによって、グラフィックレンダリングジョブをレンダリング装置３００に出力する。
【００１６】
レンダリング装置３００は、グラフィック処理を行う装置である。例えば、レンダリング装置３００は、ＧＰＵ（graphic  processing  unit）でもある。
【００１７】
レンダリング装置３００は、デバイスドライバ２００から受信されたグラフィックレンダリングジョブによって、イメージを生成し、生成されたイメージをアプリケーション１００に出力する。
【００１８】
レンダリング装置３００は、タイル単位でレンダリングすることができる。タイルに基づくレンダリング方法は、フレームを複数のタイルに分割し、タイル単位でイメージを生成する方法である。
【００１９】
フレームバッファ４００は、フレームに係わるイメージを保存する。フレームバッファ４００は、一種のメモリである。フレームバッファ４００は、レンダリング装置３００から受信されるイメージを保存する。
【００２０】
一実施形態によるレンダリング装置３００は、互いに異なるフレームの同一タイルについては、ピクセル処理を省略することにより、演算量を減らすことができる。また、一実施形態によるレンダリング装置３００は、フレームバッファ４００にデータを記録する過程を省略することにより、レンダリング装置３００とフレームバッファ４００との間に発生するトラフィックを減らすことができる。
【００２１】
図２は、レンダリング装置の動作について説明するための図面である。図２を参照すれば、レンダリング装置３００は、Ｎ番目フレームを参照し、（Ｎ＋１）番目フレームをレンダリングすることができる。言い替えれば、レンダリング装置３００は、（Ｎ＋１）番目フレームのタイルのうち、Ｎ番目フレームのタイルと同一タイルがある場合、Ｎ番目フレームのレンダリング結果を再使用して、（Ｎ＋１）番目フレームをレンダリングすることができる。
【００２２】
図２を参照して具体的に説明すれば、図２は、Ｎ番目フレーム及び（Ｎ＋１）番目フレームを示し、Ｎ番目フレームは、（Ｎ＋１）番目フレーム以前にすでにレンダリングが完了したフレームである。Ｎ番目フレームと（Ｎ＋１）番目フレームは、合計で２０個のタイルに区分される。Ｎ番目フレームは、以前フレームでもあり、（Ｎ＋１）番目フレームは、現在フレームでもある。同一番号のタイルは、同一位置のタイルを示す。例えば、Ｎ番目フレームのタイル７（TILE７）と（Ｎ＋１）番目フレームのタイル７は、同一位置のタイルを示す。
【００２３】
Ｎ番目フレームを参照すれば、三角形はタイル１、タイル５、タイル６及びタイル７に表示され、円形は、タイル１２、タイル１３、タイル１７及びタイル１８に表示される。（Ｎ＋１）番目フレームを参照すれば、三角形は、タイル１、タイル５、タイル６及びタイル７に表示され、円形は、タイル１３、タイル１４、タイル１８及びタイル１９に表示される。Ｎ番目フレームと（Ｎ＋１）番目フレームとの２０個タイルのうち、タイル０ないしタイル１１、タイル１５、タイル１６は、同一のイメージを示す。しかし、Ｎ番目フレームと（Ｎ＋１）番目フレームとのタイル１２ないしタイル１４、タイル１７ないしタイル１９は、互いに異なる。
【００２４】
レンダリング装置３００は、（Ｎ＋１）番目フレームのタイルのうちＮ番目フレームのタイルと同一イメージを示すタイルは、Ｎ番目フレームのタイルをレンダリングして生成されたイメージを再使用する。従って、レンダリング装置３００は、（Ｎ＋１）番目フレームのタイルのうち、タイル０ないしタイル１１、タイル１５、タイル１６は、Ｎ番目フレームのタイルをレンダリングしたイメージを再使用してレンダリングし、残りのタイルについてのみピクセル処理してレンダリングする。
【００２５】
図３は、フレーム単位で入力されるドローコールについて説明するための図面である。図３を参照すれば、レンダリング装置３００は、図３のような形態の命令を受信してレンダリングを行う。
【００２６】
フレームナンバーは、フレームを順序を示し、ドローコールは、フレームにいかなるイメージをレンダリングするかということを示す命令である。Gstateは、ドローコールごとに付与される。Operationは、それぞれのドローコールの内容を示す。ドローコールナンバー及びGstateナンバーは、互いに独立している。
【００２７】
レンダリング装置３００は、Ｎ番目フレームについて３個のドローコールを受信し、ドローコールに含まれた動作を遂行する。レンダリング装置３００は、０番目ドローコールを受信すれば、clear動作を遂行し、１番目ドローコールを受信すれば、三角形を描き（draw  triangle）、２番目ドローコールを受信すれば、円を描く（draw  circle）。それぞれのドローコールには、Gstateが含まれ、Gstateは、レンダリング装置３００がドローコールによる動作を遂行するときに適用されるグラフィック効果を示す。レンダリング装置３００は、（Ｎ＋１）番目フレームについても、Ｎ番目フレームと同一に動作する。
【００２８】
図３の場合には、（Ｎ＋１）番目フレームについて受信された命令と、Ｎ番目フレームについて受信された命令とが同一である場合を示している。従って、レンダリング装置３００は、（Ｎ＋１）番目フレームをレンダリングするとき、Ｎ番目フレームのレンダリング結果を再使用することができる。
【００２９】
図４は、一実施形態によるレンダリング装置について説明するための構成図である。図４を参照すれば、レンダリング装置３００は、幾何処理部３１０、同一性判断部３２０及びピクセル処理部３３０を含む。
【００３０】
幾何処理部３１０は、現在フレームに対するビニングを行う。幾何処理部３１０は、現在フレームを少なくとも１つのタイルに分割し、タイルに対するビニングを行うことができる。タイルは、フレームの一部を示し、レンダリング装置３００は、タイル単位でイメージを生成する。幾何処理部３１０がタイルに対するビニングを行うということは、タイルごとに処理するプリミティブ（primitive）リストを確認する過程を示す。例えば、幾何処理部３１０は、タイルに含まれるプリミティブを区別するために、プリミティブに番号またはＩＤ（identification）を付与することができる。
【００３１】
同一性判断部３２０は、レンダリングするタイルのビニング情報または属性情報に係わる識別コードを生成する。識別コードは、他のタイルと区分可能な固有のデータである。
【００３２】
同一性判断部３２０は、レンダリングするタイルのビニング情報に係わる第１識別コード、またはレンダリングするタイルの属性情報に係わる第２識別コードを生成する。同一性判断部３２０は、レンダリングするタイルのビニング情報または属性情報を利用して、他のタイルと区分可能な固有の第１識別コードまたは第２識別コードを生成する。例えば、第１識別コードは、ビニング情報に係わる代表値であり、第２識別コードは、属性情報に係わる代表値でもある。第１識別コード及び第２識別コードは、ビニング情報または属性情報に係わるエラー検出コード（ＣＲＣ）を生成する方法などを使用して生成される。
【００３３】
同一性判断部３２０は、レンダリングするタイルのプリミティブリストを示すビニング情報を利用して、第１識別コードを生成する。タイルが異なれば、ビニング情報が異なるので、第１識別コードも異なる。
【００３４】
同一性判断部３２０は、レンダリングするタイルのattribute情報、Gstate情報及びuniform情報を示す属性情報を利用して、レンダリングするタイルの第２識別コードを生成する。Attributeは、頂点の位置、方向、テクスチャの座標、連結情報などを示す。Gstateは、グラフィックステートを示し、uniformは、タイルに同一に適用される効果を示す情報である。例えば、uniformは、反射、透過、曇りのような効果でもある。
【００３５】
同一性判断部３２０は、レンダリングするタイルと以前タイルとの識別コードを比較する。レンダリングするタイルは、現在フレームに含まれたタイルであり、以前タイルは、レンダリングされた以前フレームに含まれたタイルである。言い替えれば、以前タイルは、現在フレームをレンダリングする以前、最も最近レンダリングが完了したフレームに含まれたタイルである。同一性判断部３２０は、現在フレーム及び以前フレームでの同一位置タイルの識別コードを比較する。同一性判断部３２０は、現在フレームでレンダリングするタイルと同一位置の以前タイルの第１識別コードを比較する。第１識別コードが同一であれば、同一性判断部３２０は、レンダリングするタイルの第２識別コードと、以前タイルの第２識別コードとを比較する。第１識別コードが同一ではなければ、同一性判断部３２０は、第２識別コードに係わる比較を省略する。
【００３６】
ピクセル処理部３３０は、同一性判断部３２０の比較結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいはレンダリングするタイルに対するピクセル処理を行い、現在フレームをレンダリングする。ピクセル処理部３３０は、レンダリングするタイルの第１識別コード及び第２識別コードと、以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、以前タイルのイメージを再使用する。言い替えれば、ピクセル処理部３３０は、第１識別コード及び第２識別コードが同一である以前タイルがある場合、レンダリングするタイルに対するピクセル処理を省略し、フレームバッファ４００に保存された以前タイルのイメージを再使用する。ピクセル処理部３３０は、レンダリングするタイルの第１識別コード及び第２識別コード；並びに前記以前タイルの第１識別コード及び第２識別コード；のうちいずれか１つの識別コードにおいて同一ではなければ、レンダリングするタイルに対するピクセル処理を行う。
【００３７】
フレームバッファ４００は、レンダリングされたイメージを保存する。フレームバッファ４００は、フレーム単位またはタイル単位でイメージを保存し、イメージをアプリケーション１００の命令によって出力することができる。
【００３８】
図５は、図４の同一性判断部の動作について説明するための図面である。図５を参照すれば、同一性判断部３２０は、第１識別コード及び第２識別コードを利用して、タイルの同一性を判断する。
【００３９】
同一性判断部３２０は、レンダリングされたタイルのうち、レンダリングするタイルと同一位置の以前タイルの第１識別コードまたは第２識別コードが同一であるか否かを比較する。同一性判断部３２０は、レンダリングするタイルの第１識別コードと、以前フレームでレンダリングするタイルと同一位置の以前タイルの第１識別コードとを比較し、第１識別コードが同一である場合、レンダリングするタイルの第２識別コードと、以前タイルの第２識別コードとを比較する。言い替えれば、同一性判断部３２０は、第１識別コードが同一ではない場合、第２識別コードに係わる比較を省略する。
【００４０】
図６は、一実施形態によるレンダリング方法について説明するための図面である。図６を参照すれば、レンダリング装置３００は、attribute情報を利用して、タイルの同一性を優先的に判断することができる。レンダリング装置３００は、属性情報のうちattribute  ＩＤを利用して、タイルの同一性を優先的に判断する。attribute  ＩＤは、デバイスドライバ２００によって付与される。レンダリング装置３００は、レンダリングするタイルと以前タイルとの第１識別コードが同一であれば、以前タイルのattribute  ＩＤを比較する。レンダリング装置３００は、attribute  ＩＤの同一性を、第２識別コードの同一性より優先して判断することができる。レンダリング装置３００は、以前タイルとレンダリングするタイルとのattribute  ＩＤが同一であれば、以前タイルとレンダリングするタイルとの第２識別コードを比較する。レンダリング装置３００は、以前タイルとレンダリングするタイルとの第１識別コード、attribute  ＩＤ及び第２識別コードがいずれも同一であれば、フレームバッファに保存されたＮ番目フレームのイメージを再使用して、そうではなければ、レンダリングするタイルに対してピクセル処理を行う。ただし、以前タイルとレンダリングするタイルとのattribute  ＩＤが同一であるが、第２識別コードが異なる場合、レンダリング装置３００は、attributeが同一であるという特性を利用して、タイルをレンダリングする。従って、同一性判断部３２０は、以前タイルのattributeと、レンダリングするタイルとのattributeとが同一であるという情報を、ピクセル処理部３３０に伝送することができる。ピクセル処理部３３０は、以前タイルのレンダリング結果を介して、attributeが同一であるときに適用可能であるという特性を利用して、レンダリングするタイルに対するピクセル処理を行うことができる。例えば、もしテクスチャコマンド（texture  command）、すべてのattribute内及びGstate内において、テクスチャリングと係わるattribute及びGstateが、現在フレーム及び以前フレームにおいて、同一のタイルで同一であれば、ピクセル処理部３３０は、前記テクスチャ動作を省略することができる。前記以前テクスチャ結果を再使用するために、テクスチャユニットは、出力を保存することが必要である。
【００４１】
コマンドプロセッサ３１１、入力アセンブラ（input  assembler）３１２、バーテックスシェーダ（vertex  shader）３１３、ＣＣＶ（clip,  cull  &  viewport）３１４及びＴＩＬＥＲ  ３１５は、幾何処理部３１０に含まれるユニットである。ラスタライザ３３１、ピクセルシェーダ３３２、Ｃ／Ｚ  ＲＯＰ（color/depth  raster  operation）３３３は、ピクセル処理部３３０に含まれるユニットである。
【００４２】
入力アセンブラ３１２は、ユーザプリミティブデータ（ポイント、ライン及び／またはトライアングル）を、ユーザフィルドバッファ（user-filled  buffers）から読み取り、他のパイプラインステージによって使用されるプリミティブに、プリミティブデータを集める。入力アセンブラステージは、さまざまに異なるプリミティブタイプ（ラインリスト、トライアングルストリップ、または隣接したプリミティブ）にバーテックスを集めることができる。
【００４３】
バーテックスシェーダ３１３は、仮想空間において、各バーテックスの三次元位置を、画面上に示される二次元座標に変換する（ｚ−bufferのためのデプス値だけではない）。バーテックスシェーダ３１３は、位置、カラー及びテクスチャ座標のような特性を調節することができるが、新たなバーテックスを生成することはできない。バーテックスシェーダ３１３の出力は、幾何シェーダ（geometry  shader）またはラスタライザ３３１のようなパイプラインの次のステージに渡される。
【００４４】
ピクセルシェーダ３３２は、フラグメントシェーダとして知られており、各フラグメント（フラグメントは、技術的に単一ピクセルを意味する）のカラー及びattributeｓを計算する。最も単純な種類のピクセルシェーダ３３２は、カラー値として１つのスクリーンピクセルを出力する、複数の入力及び出力を含むさらに複雑なピクセルシェーダも可能である。
【００４５】
ＣＣＶ  ３１４は、clip,cull  &  viewportユニットである。ＣＣＶ  ３１４は、幾何パイプライン（geometry  pipeline）からプリミティブ入力データを受信し、レンダリングのためのプリミティブを生成する。ＣＣＶ  ３１４は、clip座標でバーテックスを、スクリーン空間座標でバーテックスをプリミティブに変換するために使用する情報を受信する。
【００４６】
ＴＩＬＥＲ  ３１５は、ポイントのバーテックス、ラインまたはトライアングルのためのスクリーン空間のＸ座標及びＹ座標を受信し、入力プリミティブが潜在的に交差する各タイルを示すデータ構造を出力する。
【００４７】
Ｃ／Ｚ  ＲＯＰ  ３３３は、カラー／デプスバッファとして言及されるレンダターゲットに使用された最終カラー及びデプスを計算する。
ラスタライザ３３１は、ベクトルグラフフォーマット（形態）で描写されるイメージを処理し、ビデオプレイまたはプリンタに出力するために、またはビットマップファイルフォーマットで保存するためにイメージをラスターイメージに変換する作業を示すrasterizationのためのユニットである。
【００４８】
図７は、一実施形態によるレンダリング方法について説明するための図面である。図７を参照すれば、レンダリング装置３００は、Gstate情報を利用して、タイルの同一性を優先的に判断することができる。レンダリング装置３００は、属性情報のうちGstate  ＩＤを利用して、タイルの同一性を優先的に判断する。レンダリング装置３００は、レンダリングするタイルの第１識別コードと、以前タイルの第１識別コードとが同一であるか否かを比較し、第１識別コードが同一であれば、レンダリングするタイルのGstate  ＩＤと以前タイルとのGstate  ＩＤとを比較する。Gstate  ＩＤは、デバイスドライバ２００によって付与される。レンダリング装置３００は、Gstate  ＩＤの同一性を、第２識別コードの同一性より優先して判断する。レンダリング装置３００は、以前タイルとレンダリングするタイルとのGstate  ＩＤが同一であれば、以前タイルとレンダリングするタイルとの第２識別コードを比較する。レンダリング装置３００は、以前タイルとレンダリングするタイルとの第１識別コード、Gstate  ＩＤ及び第２識別コードがいずれも同一であれば、フレームバッファに保存されたＮ番目フレームのイメージを再使用し、そうではなければ、レンダリングするタイルに対してピクセル処理を行う。ただし、以前タイルとレンダリングするタイルとのGstate  ＩＤが同一であるが、第２識別コードが異なる場合、レンダリング装置３００は、Gstateが同一であるという特性を利用して、タイルをレンダリングする。従って、同一性判断部３２０は、以前タイルのGstateとレンダリングするタイルとのGstateが同一であるという情報を、ピクセル処理部３３０に伝送することができる。ピクセル処理部３３０は、以前タイルのレンダリング結果を介して、Gstateが同一であるときに適用可能であるという特性を利用して、レンダリングするタイルに対するピクセル処理を行うことができる。
【００４９】
図８は、一実施形態によるレンダリング方法について説明するための図面である。図８を参照すれば、レンダリング装置３００は、uniform情報を利用して、タイルの同一性を優先的に判断することができる。レンダリング装置３００は、属性情報のうちuniform  ＩＤを利用して、タイルの同一性を優先的に判断する。レンダリング装置３００は、レンダリングするタイルと以前タイルとの第１識別コードが同一であるか否かを比較し、第１識別コードが同一であれば、レンダリングするタイルと以前タイルとのuniform  ＩＤを比較する。uniform  ＩＤは、デバイスドライバ２００によって付与される。レンダリング装置３００は、uniform  ＩＤを第２識別コードより優先して比較する。レンダリング装置３００は、以前タイルとレンダリングするタイルとのuniform  ＩＤが同一であれば、以前タイルとレンダリングするタイルとの第２識別コードを比較する。レンダリング装置３００は、以前タイルとレンダリングするタイルとの第１識別コード、uniform  ＩＤ及び第２識別コードがいずれも同一であれば、フレームバッファに保存されたＮ番目フレームの以前タイルのイメージを再使用し、そうではなければ、レンダリングするタイルに対してピクセル処理を行う。ただし、以前タイルとレンダリングするタイルとのuniform  ＩＤが同一であるが、第２識別コードが異なる場合、レンダリング装置３００は、uniformが同一であるという特性を利用して、タイルをレンダリングする。従って、同一性判断部３２０は、以前タイルのuniformとレンダリングするタイルとのuniformが同一であるという情報を、ピクセル処理部３３０に伝送することができる。ピクセル処理部３３０は、以前タイルのレンダリング結果を介して、uniformが同一であるときに適用可能であるという特性を利用して、レンダリングするタイルに対するピクセル処理を行うことができる。
【００５０】
図９は、一実施形態によるレンダリング方法について説明するためのフローチャートである。図９を参照すれば、レンダリング装置３００は、以前フレームのレンダリング結果を利用して、現在フレームをレンダリングすることができる。
【００５１】
段階９１０において、レンダリング装置３００は、現在フレームに対するビニングを行う。現在フレームは、レンダリング装置３００がレンダリングを行っているフレームを示す。レンダリング装置３００は、タイルそれぞれに対してビニングを行い、タイルに含まれるプリミティブリストを生成する。
【００５２】
段階９２０において、レンダリング装置３００は、現在フレームでレンダリングするタイルのビニング情報または属性情報に係わる識別コードを生成する。レンダリング装置３００は、ビニング情報に係わる第１識別コード、及び属性情報に係わる第２識別コードのうちいずれか一つだけ生成するか、あるいは第１識別コード及び第２識別コードいずれも生成することができる。また、レンダリング装置３００は、ビニング情報及び属性情報に係わる識別コードを生成することもできる。
【００５３】
段階９３０において、レンダリング装置３００は、レンダリングするタイルの識別コードと、以前フレームでレンダリングするタイルと同一位置の以前タイルの識別コードとを比較する。例えば、レンダリング装置３００は、レンダリングするタイルのビニング情報または属性情報を利用して生成した識別コードと、以前タイルのビニング情報または属性情報を利用して生成された識別コードとを比較することができる。または、レンダリング装置３００は、レンダリングするタイルのビニング情報に係わる第１識別コードと、以前タイルのビニング情報に係わる第１識別コードとを比較し、第１識別コードが同一である場合、レンダリングするタイルの属性情報に係わる第２識別コードと、以前タイルの属性情報に係わる第２識別コードとを比較する。
【００５４】
段階９４０において、レンダリング装置３００は、比較結果に基づいて、フレームバッファに保存されたイメージを再使用するか、あるいはレンダリングするタイルに対するピクセル処理を行い、現在フレームをレンダリングする。レンダリング装置３００は、識別コードが同一であれば、以前タイルのレンダリング結果を再使用し、そうではなければ、レンダリング装置３００は、タイルに対するピクセル処理を行う。また、レンダリングするタイルの第１識別コード及び第２識別コードと、前記以前タイルの第１識別コード及び第２識別コードとがいずれも同一であれば、レンダリング装置３００は、以前タイルのレンダリング結果を再使用し、レンダリングするタイルの第１識別コード及び第２識別コード；並びに前記以前タイルの第１識別コード及び第２識別コード；のうちいずれか１つの識別コードにおいて同一ではなければ、レンダリング装置３００は、タイルに対するピクセル処理を行う。
【００５５】
図１０は、一実施形態によるレンダリング方法について説明するためのフローチャートである。図１０を参照すれば、レンダリング装置３００は、タイルに係わる識別情報を利用して、タイルの同一性を判断することができる。
【００５６】
段階１０１０において、レンダリング装置３００は、現在フレームに対するビニングを行う。段階１０２０において、レンダリング装置３００は、ビニング情報に係わる第１識別コードを生成する。
【００５７】
段階１０３０において、レンダリング装置３００は、レンダリングするタイルの第１識別コードと、以前フレームでレンダリングするタイルと同一位置の以前タイルの第１識別コードとを比較する。レンダリング装置３００は、レンダリングするタイルの第１識別コードと、以前タイルの第１識別コードとが同一であれば、段階１０４０に進み、そうではない場合、段階１０７０に進む。
【００５８】
段階１０４０において、レンダリング装置３００は、属性情報に係わる第２識別コードを生成する。レンダリング装置３００は、レンダリングするタイルと以前タイルとの第１識別コードが同一である場合、第２識別コードを生成することができる。
【００５９】
段階１０５０において、レンダリング装置３００は、レンダリングするタイルの第２識別コードと、以前タイルとの第２識別コードとが同一であるか否かを比較する。もし同一であれば、レンダリング装置３００は、段階１０６０に進み、そうではなければ段階１０７０に進む。
【００６０】
段階１０６０において、レンダリング装置３００は、フレームバッファに保存されたイメージを再使用する。レンダリングするタイルと以前タイルとが同一であるので、レンダリング装置３００は、以前フレームでレンダリングされたタイルの結果イメージを再使用し、ピクセル処理過程を省略することができる。
【００６１】
段階１０７０において、第１識別コードが同一ではないので、レンダリング装置３００は、タイルに対するピクセル処理を行う。
【００６２】
一実施形態によるレンダリング装置３００は、レンダリングするタイルと同一の以前タイルのピクセル処理結果を利用することにより、レンダリングするタイルに係わる演算量を減らすことができる。
【００６３】
一実施形態によるレンダリング装置３００は、タイルのビニング情報を利用して、現在タイルと以前タイルとの同一性を決定することができる。
【００６４】
一実施形態によるレンダリング装置３００は、フレームバッファに保存されたイメージを再使用することにより、レンダリング装置とフレームバッファとのトラフィックを減らすことができる。
【００６５】
一方、前述の方法は、コンピュータで実行されるプログラムでもって作成可能であり、コンピュータで読み取り可能な記録媒体を利用して、前記プログラムを動作させる汎用デジタルコンピュータで具現される。また、前述の方法で使用されたデータの構造は、コンピュータで読み取り可能な記録媒体に多くの手段を介して記録される。前記コンピュータで読み取り可能な記録媒体は、磁気記録媒体（例えば、ＲＯＭ（read  only  memory）、ＲＡＭ（random  access  memory）、ＵＳＢ（universal  serial  bus）メモリ、フロッピー（登録商標）ディスク、ハードディスクなど）、光学的判読媒体（例えば、ＣＤ−ＲＯＭ、ＤＶＤ（digital  versatile  disc）など）を含む。
【産業上の利用可能性】
【００６６】
本発明のレンダリング方法及びその装置は、例えば、３Ｄグラフィックス関連の技術分野に効果的に適用可能である。
【符号の説明】
【００６７】
１００  アプリケーション
２００  デバイスドライバ
３００  レンダリング装置
３１０  幾何処理部
３１１  コマンドプロセッサ
３１２  入力アセンブラ
３１３  バーテックスシェーダ
３１４  ＣＣＶ
３１５  ＴＩＬＥＲ
３２０  同一性判断部
３３０  ピクセル処理部
３３１  ラスタライザ
３３２  ピクセルシェーダ
３３３  Ｃ／Ｚ  ＲＯＰ
４００  フレームバッファ
【図１】
0006778485.tif 000002
【図２】
0006778485.tif 000003
【図３】
0006778485.tif 000004
【図４】
0006778485.tif 000005
【図５】
0006778485.tif 000006
【図６】
0006778485.tif 000007
【図７】
0006778485.tif 000008
【図８】
0006778485.tif 000009
【図９】
0006778485.tif 000010
【図１０】
0006778485.tif 000011