(57)【要約】【課題】３次元コンピュータグラフィックシステムを提供する。【解決手段】３次元コンピュータグラフィック画像を発生させるための装置及び方法。画像は、最初に複数の矩形区域（２）に再分割される。表示リストメモリ（４）には、各矩形区域に対するオブジェクトデータがロードされる。各矩形区域の各画素に対する画像及び陰影付けデータは、画像合成プロセッサ（６）及びテクスチャ及び陰影付けプロセッサ（１０）内のオブジェクトデータから得られる。深度範囲発生器（１２）は、画像及び陰影付けデータが得られる時にオブジェクトデータから各矩形区域に対する深度範囲を引き出す。この深度範囲は、画像合成プロセッサ（６）に提供される新たな各オブジェクトの深度と比較され、この比較の結果に応じて、オブジェクトの画像合成プロセッサ（６）への供給を防止することができる。【特許請求の範囲】
【請求項１】
画像を複数の矩形区域に再分割する段階と、
各矩形区域に対するオブジェクトデータを表示リストメモリ内にロードする段階と、
各矩形区域の各画素に対する画像データと陰影付けデータとを前記オブジェクトデータから引き出す段階と、
表示のために前記陰影付けデータを提供する段階と、
を含む３次元コンピュータグラフィック画像を発生させる方法であって、
各矩形区域に対する深度値の範囲をオブジェクトデータから引き出す段階と、
矩形区域に対する前記画像データ引出し段階に提供される新たな各オブジェクトの深度を、該矩形区域に対する深度範囲と比較する段階と、
前記比較の結果に応じて、前記新たなオブジェクトデータが前記画像データ引出し段階に提供されることを防止する段階と、
を含むことを特徴とする方法。
【請求項２】
前記防止する段階は、オブジェクトデータが前記表示リストメモリから読み出されることを防止することを特徴とする請求項１に記載の方法。
【請求項３】
前記防止する段階は、オブジェクトデータが前記表示リストメモリ内にロードされることを防止することを特徴とする請求項１に記載の方法。
【請求項４】
前記深度値の範囲を引き出す段階は、前記矩形区域の前記オブジェクトに対する最小及び最大深度を引き出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記矩形区域のオブジェクトに対する最小及び最大深度を引き出す段階は、該矩形区域内のピクセルの複数の部分集合に対して実行され、該矩形区域に対する範囲を生成するために、前記ピクセルの複数の部分集合に対する結果を結合する段階を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記結合する段階は、比較器のツリー構造を用いて実行されることを特徴とする請求項５に記載の方法。
【請求項７】
前記ツリー構造のより高いレベルにある比較器は、より低いレベルにある比較器よりも高い精度を有することを特徴とする請求項６に記載の方法。
【請求項８】
画像を複数の矩形区域に再分割する手段と、
各矩形区域に対するオブジェクトデータがロードされる表示リストメモリと、
前記オブジェクトデータから各矩形区域の各画素に対する画像及び陰影付けデータを引き出す手段と、
表示のために前記陰影付けデータを提供する手段と、
を含む３次元コンピュータグラフィック画像を発生させるための装置であって、
画像及び陰影付けデータが引き出される時に、オブジェクトデータから各矩形区域に対する深度範囲を引き出す手段と、
画像データ引出し手段に提供される新たな各オブジェクトの深度を、前記矩形区域からの現在の範囲と比較する手段と、
前記比較の結果に応じて、前記新たなオブジェクトデータが前記画像データ引出し手段に提供されることを防止する手段と、
を含むことを特徴とする装置。
【請求項９】
前記防止する手段は、オブジェクトデータが前記表示リストメモリから読み出されることを防止することを特徴とする請求項８に記載の装置。
【請求項１０】
前記防止する手段は、オブジェクトデータが前記表示リストメモリ内にロードされることを防止することを特徴とする請求項８に記載の装置。
【請求項１１】
前記深度範囲を引き出す手段は、前記矩形区域の前記オブジェクトに対する最小及び最大深度を引き出す手段を含むことを特徴とする請求項８に記載の装置。
【請求項１２】
前記矩形区域のオブジェクトに対する最小及び最大深度を引き出す手段は、ピクセルの複数の部分集合に対して作動し、該矩形区域に対する範囲を生成するために該部分集合に対する結果を結合する手段を含むことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記結合する手段は、比較器のツリー構造を含むことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記ツリー構造のより高いレベルにある比較器は、より低いレベルにある比較器よりも高い精度を有することを特徴とする請求項１３に記載の装置。
【請求項１５】
実質的に図４及び図６の図面に関連して本明細書に説明したような３次元コンピュータグラフィック画像を発生させるための装置。
【請求項１６】
実質的に本明細書に説明したような３次元コンピュータグラフィック画像を発生させる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータグラフィックシステムに関し、より具体的には、本出願人の英国特許第２２８１６８２号及び第２２９８１１１号に説明された種類のシステムに関する。
【背景技術】
【０００２】
英国特許第２２８１６８２号は、無限平面の集合で構成された場面における可視表面を判断するために、光線投射法を使用するシステムについて説明している。このシステムに対する改良は、英国特許出願第２２９８１１１号に説明されており、この特許においては、画像平面がいくつかの矩形タイルに分割される。オブジェクトは、表示リストメモリ内に記憶され、「オブジェクトポインタ」が、特定オブジェクトをそれらを見ることができるタイルと関連付けるために使用される。このシステムの構造は、図１に示されている。
【０００３】
図１において、「タイルアクセレレータ」２は、入力データを処理し、タイル計算を行い、オブジェクトパラメータ及びポインタデータを表示リストメモリ４に書き込むシステムの部分である。表示リストメモリ内のデータのレイアウトは、図２に示す通りである。これには可能な多くの変形例があるが、本質的には、タイル毎に１つのオブジェクトポインタリスト、及びオブジェクトポインタが指示するいくつかのオブジェクトパラメータブロックがある。表示リストメモリ内のオブジェクトのレイアウトは、図２に示されている。この図の上部は、２つのオブジェクトＡ及びＢのためのパラメータを記憶した基本的なシステムを示している。オブジェクトＡは、タイル１、２、５、６、及び７内で見ることができるから、５つのオブジェクトポインタが書き込まれる。オブジェクトＢは、タイル３及び７においてのみ見ることができるから、２つのオブジェクトポインタだけが書き込まれる。オブジェクトポインタの使用は、オブジェクトパラメータデータをタイル間で共用することができ、そのオブジェクトが１つよりも多いタイルに入る場合に複製する必要がないことを意味することが分る。それはまた、図１の「画像合成プロセッサ（ＩＳＰ）」６が、そのタイル内で可視オブジェクトのみのためのパラメータを読み取ることができるということも意味している。「ＩＳＰ」は、「ＩＳＰパラメータ取出しユニット」８を使用してこれを行う。図２の例において、「ＩＳＰ」は、タイル３を処理している時には、オブジェクトＢのためのパラメータのみを読み取り、タイル７を処理している時には、両オブジェクトのためのパラメータを読み取るであろう。タイル４のデータを読み取ることは必要ない。図２の下側部分は、後述するマクロタイルパラメータ管理システムと共に使用されるメモリレイアウトを示している。
【０００４】
「タイルアクセレレータ」が完全な表示リストを作成した時、「画像合成プロセッサ（ＩＳＰ）」６は、場面を処理し始める。「ＩＳＰパラメータ取出しユニット」８は、各々のタイルを順に処理し、当該タイルに関係したパラメータデータのみを表示リストメモリ４から読み取るために、オブジェクトポインタリストを使用する。次に「ＩＳＰ」は、各オブジェクトの深度値がタイル内の全てのピクセルにおいて計算され、前に記憶されていた深度と比較される「Ｚ−バッファリング」という名で知られた技術を用いて穏面消去を行う。この比較により、オブジェクトが以前に記憶されていた値よりも一層目に近いことが示された場合は、この新たなオブジェクトのアイデンティティ及び深度を用いて記憶されていた値が置き換えられる。タイル内の全てのオブジェクトを処理し終えた時、「ＩＳＰ」６は、可視表面情報がフレームバッファへ送られる前に表示のためにテクスチャ及び陰影付けされる「テクスチャ及び陰影付けプロセッサ（ＴＳＰ）」１０へ可視表面情報を送る。
【０００５】
上述のシステムに対する改良は、英国特許出願第００２７８９７．８号に説明されている。このシステムは、「パラメータ管理」という名で知られ、要求される表示リストメモリのサイズを減らすために、場面をいくつかの「部分レンダー」に分割することにより作動する。この方法は、表示リストの一部分をレンダリングした後に「ＩＳＰ」の状態を保管するために、「Ｚロード及び記憶」という名で知られた技術を使用する。これは、表示リストメモリに新たなデータをリロードして、後にその場面をレンダリングし続けることが可能であるような仕方で行われる。従って、この改良は、表示リストメモリの僅かに限られた容量を使用して、任意の複雑さを有する場面を妥当な効率でレンダリングすることを可能にする。
【０００６】
【特許文献１】
英国特許第２２８１６８２号
【特許文献２】
英国特許出願第２２９８１１１号
【特許文献３】
英国特許出願第００２７８９７．８号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
３Ｄグラフィックのハードウエアがより強力になる時に、レンダリングされる画像の複雑さは大きく増大し、この傾向は、今後も続くものと予想される。これは、上述したような表示リスト利用型レンダリングシステムにとっては、気がかりなことである。その理由は、表示リストを記憶するためには、大容量の高速メモリが要求されるからである。メモリ帯域幅もまた、乏しい資源である。使用されるメモリアーキテクチャに依存して、表示リストメモリに書き込む及びそれから読み取るための限られた帯域幅は、データを読み取る速度又は書き込む速度を限定し、又は、同じ帯域幅を共用する他のサブシステムの性能、例えば、テクスチャ付けに影響を及ぼす可能性がある。
【課題を解決するための手段】
【０００８】
本発明の実施形態は、オブジェクト及びタイルの深度範囲を調べ、レンダリングされた結果に貢献しないと判明したオブジェクトを場面からカリングすることにより、これらの問題に対処する。
本発明の実施形態は、タイル全体のための深度値範囲を計算するために、「ＩＳＰ」内に記憶された深度値を使用する。オブジェクトの深度を記憶された深度値の範囲と比較することにより見えないことが保証されたオブジェクトは、「ＩＳＰ」内でそれらを処理する必要はなく、カリングすることができる。
上に言及したパラメータ管理システムは、メモリの限られた容量内でレンダリングが行われることを可能にするが、十分な容量の実際のメモリを有するシステムと比べて性能に重大な影響を及ぼす恐れがある。
【０００９】
本発明の実施形態は、オブジェクトが表示リスト内に記憶される以前にそれらをカリングすることにより、「パラメータ管理システム」の非能率性を軽減する。表示リスト内に記憶されるデータ量を減らすことは、場面をレンダリングするために、より少数の部分レンダーしか必要とされないことを意味している。部分レンダーの数が減少すると、「Ｚロード及び記憶」機能により消費されるかなりのメモリ帯域幅も減少する。
この種類のカリングを行うために、「タイルアクセレレータ」は、入ってくるオブジェクトを前回の部分レンダーの間に「ＩＳＰ」に記憶された深度範囲に関する情報と比較する。
【００１０】
図３は、前回の部分レンダーに対する深度とレンダリングされる新たなオブジェクトの深度とを示すグラフである。新たなオブジェクトは、０．７から０．８の深度範囲内にあり、前回の部分レンダーの間にタイル内の全てのピクセルは、０．４と０．６の間の値に設定された。このオブジェクトは更に離れているから決して見ることができず、従って、以前に描かれたオブジェクトにより塞がれる。従って、このオブジェクトは画像に貢献し得ないから、表示リストメモリ内に記憶する必要がない。
【００１１】
「ＩＳＰ」のパラメータ取出し段階におけるカリングの第２段階は、更に別の実施形態で行われる。これは、オブジェクトポインタが修飾参照され、パラメータデータが表示リストメモリから読み出される時点である。これは、図３に示すカリングの第１段階と非常に似通った原理に基づいて作動する。オブジェクトポインタ内に少量の追加的情報を記憶させることにより、かつ、「ＩＳＰ」内に維持された深度範囲情報と対比させてこれを試験することにより、いくつかのオブジェクトのためのパラメータデータを一緒に読み取ることを回避することができる。この種類のカリングは、「ＩＳＰ」への入力帯域幅及び「ＩＳＰ」が処理すべきオブジェクトの数を減少させるが、表示リストメモリ内に書き込まれるデータの量は減少させない。
【００１２】
カリングの第１段階とは異なり、第２段階は、現在「ＩＳＰ」により処理されているタイルに対応するオブジェクトポインタにより作動する。「ＩＳＰ」の深度範囲情報は、カリングの第１段階で使用される範囲情報よりも一層迅速かつ正確に更新される。このことは、第１段階を通過したオブジェクトがカリングされることを可能にする。
本発明は、この時点で参照すべきである特許請求の範囲のその様々な態様で規定される。
ここで、添付図面を参照しながら、本発明の特定の実施形態を例示的に以下に詳しく説明する。
【発明を実施するための最良の形態】
【００１３】
「ＩＳＰ」範囲発生
上述の実施形態は、「ＩＳＰ」６に記憶されたオブジェクトの最小及び最大深度を表した深度範囲を使用する。この範囲は、オブジェクトが処理される時「ＩＳＰ」内で計算され、その瞬間にタイル内に記憶される深度値の実際の範囲を表す。この範囲は、常に更新されるべきである。その理由は、記憶された値は絶えず置換され、範囲が場面がレンダリングされる時に広くなったり狭くなったりするからである。図５ａ及び５ｂは、それぞれ、入ってくるオブジェクトがタイルの最大Ｚ値を予め判断したピクセル内へレンダリングされ、従って最小深度値と最大深度値の両方を減少させる状況の前後を示している。
【００１４】
「ＩＳＰ」６は、タイル内の各ピクセルのための記憶装置を含む。この記憶装置は、技術の実施方式に応じてサイズを変えることができる。典型的なタイルサイズは、３２ｘ１６ピクセルであろう。「ＩＳＰ」はまた、いくつかの「ＰＥ（プロセッサ素子）」も含み、これらの「ＰＥ」は、ハードウエアユニットであって、各ピクセルにおける深度値を判断することにより「ＩＳＰ」機能を実行するために、並列的に作動する。典型的には、タイル内のピクセル数よりも少ない数の「ＰＥ」がある。例えば、３２個の「ＰＥ」を、８ｘ４ピクセルの格子として配列することができる。この場合、３２（８ｘ４）のピクセルが同時に計算可能であって、「ＰＥ」は、オブジェクト全体を処理するために、タイル内の固定された位置において最高で１６（４ｘ４）回まで計算を行うことになる。図６は、タイル内における「ＰＥ」１６の可能な配列と、以下に述べる比較器の構造とを示している。
【００１５】
深度の範囲を計算するために、「ＰＥ」は、それらが現在働きかけているピクセルの集合のための深度範囲を計算する。次に、この範囲は、他の可能な「ＰＥ」位置からの範囲情報と共に、そのタイルのための深度範囲全体を更新するために使用される。典型的な実施方式においては、一組のピクセル内に記憶された値の範囲を見つけるために、ツリー構造の比較器が使用されるであろう。例えば、３２個から成る一組の「ＰＥ」は、最大値と最小値の両方を計算するために、１６＋２ｘ（８＋４＋２＋１）＝４６個の比較器を要するであろう。このツリー構造は、図６の下部に見ることができる。この図において、「最小／最大」１８と記されたブロックは、２つの「ＰＥ」１６からの２つの入力値の最小及び最大を判断するために１つの比較器を含み、「最小／最大２」２０と記されたブロックは、２つの入力範囲の最小及び最大を計算するために一対の比較器を含む。比較器ツリーの出力は、それらの３２ピクセル内の深度値の最小及び最大の組を表した一対の値であって、その特定のピクセルの組に付随するメモリに記憶される。
【００１６】
各最小／最大ブロック１８は、「ＰＥ」１６のうちの２つの出力に結合され、最小及び最大値出力をこれらの素子によって比較し、これらをそのメモリに記憶し、範囲を最小／最大２ユニット２０へ送る。最小／最大２ユニット２０は、第２の最小／最大ユニット１８から入力を受け取り、その出力をツリーの次の最小／最大２ユニット２０へ送る。全ての「ＰＥ」範囲は、究極的にはツリー構造底部にある単一の最小／最大２ユニット２０内に供給される。これは、３２個の「ＰＥ」１６のアレーに対する「ＰＥ」Ｚ範囲出力２２を与える。
【００１７】
「ＰＥ」がタイルの全区域内、すなわち全てのピクセルにおける多角形を計算し終えた状態で、記憶された深度値を結合してタイル全体のための単一の値にすることが必要である。比較器のツリーを再び使用することができる。３２ｘ１６タイルの場合には、一組へと減少されるべき１６組の範囲があるから、２ｘ（８＋４＋２＋１）＝３０の比較器が必要とされる。この構造は、図６の上部右側に示されており、この場合、各「最小／最大」ブロック２０は、一対の比較器を含む。最終対である比較器２６の出力は、処理されたばかりの三角形の深度で更新されたタイル全体のための深度値を提供する。ツリー構造に対する入力は、「ＰＥ」アレー位置の各々に対応する範囲情報を記憶するこのブロックの最小／最大範囲メモリ２４である。これらのメモリは、「ＰＥ」アレーが処理された後に、「ＰＥ」  Ｚ範囲データ２２で更新される。
【００１８】
図６の比較器１８、２０、及び２６、及び、他のＺ範囲発生回路は、全て図４の「ＩＳＰ」Ｚ範囲発生ユニット１２内に含まれている。従って、これは、タイル全体のためのＺ範囲を発生して記憶する。
有効な深度値が「ＩＳＰ」内の全てのピクセルに記憶されたか否かを知ることも必要である。Ｚバッファ内の値を初期化するために使用される多角形は、普通は各フレームが始まる付近にあるが、これは信頼できない。初期化されていない深度値は、いずれの範囲情報の有効性に対しても明らかに影響を及ぼすであろうから、この状態は検知されなくてはならず、そのような範囲は無効であるとして印が付されるべきである。範囲情報が有効となるまでは、深度に基づくオブジェクトのカリングは、回避されるべきである。
【００１９】
精度
「ＩＳＰ」のＺ範囲発生ハードウエア１２内で使用される多数の比較器は、大きなシリコン面積を使用することになるから、その作製は高価である。このハードウエア１２のサイズを小さくするために、計算精度が落ちる恐れがある。例えば、「ＩＳＰ」に入って来るＺ値は、２４ビット仮数を有する浮動点値として記憶することができるが、Ｚ範囲比較器は、もっと短いワード、例えば８又は１６ビット仮数でも作動することができる。
【００２０】
値がより小さなワード長へと切り捨てられるので、それらの値は、適切に丸めることが大切である。その理由は、短いワードが長いワードの値を正確に表すことができる可能性がほとんどないからである。範囲を取り扱う時には、最小値は、元の値よりも小さい最も近い値へと丸められるべきであり、最大値は、元の値よりも大きい最も近い値へと丸められるべきである。このようにして、切り捨て誤差は、常にＺ範囲を拡大させる。Ｚ範囲の拡大は、全くその範囲外にあることが見出されるオブジェクトは極めて少数であるから、効率を僅かに低下させるが、発生された画像の正確さは維持する。範囲が縮められる場合には、その範囲の縁部に近いオブジェクトは、それらが実際には画像内で見える筈の場合でも切り捨てられる。これは明らかに望ましくない。
【００２１】
比較器ツリーの出力側において要求される精度を維持するために、ツリーのレベルが高くなる時に連続的により高いレベルになる精度を使用することが必要である。
完璧な精度のＺ範囲値を使用することは、システムの他の部分においても実際には不可能である。例えば、「ＩＳＰ」パラメータ取出しカリング段階についての議論において、オブジェクトのＺ範囲を表す少なくとも１つの値がオブジェクトポインタ内に記憶されることが分るであろう。空間効率の理由により、ここでもまた精度を下げた値を記憶することが望ましいであろう。この場合、「ＩＳＰ」において、オブジェクトポインタ値の利用可能な値よりも高精度の値を使用して範囲を発生する意味はほとんどない。他方、タイルアクセレレータにおけるカリング段階は、同じような記憶上の制約がないので、「ＩＳＰ」からより高精度の範囲を受けることから利益を得る。
実際には、より高精度のＺ範囲計算のもたらす利益は小さく、典型的には短縮された８から１６ビットの仮数長が最適なことが分るであろう。使用される正確なサイズは、実施されている特定装置の要求に従って判断されることになる。
【００２２】
Ｚ範囲試験
多角形オブジェクトの最小及び最大Ｚ値は、頂点座標値を調べることにより容易に判断することができる。有効な範囲情報がＺ範囲発生ユニット１２内の「ＩＳＰ」から入手可能な場合には、値の２つの範囲の比較に基づいて、オブジェクトを条件付きでカリングすることができる。
スコア内の各オブジェクトは、「深度比較モード（ＤＣＭ）」を有する。この「ＤＣＭ」は、８つの値のうちの１つを採り、当該オブジェクトがピクセルにおける深度試験に合格するか否かをどのように判断するかということを「ＩＳＰ」の深度比較ハードウエアに告げる命令である。カリング試験は、オブジェクトの「ＤＣＭ」に従って変更されるべきである。「ＤＣＭ」の可能な８つの値と、各々に対する適切なカリング試験とを表１に示す。
【００２３】
【表１】
2004537129.tif 000002
【００２４】
「ＩＳＰ」内における深度比較は、処理されている各タイルに対してオブジェクト内の全てのピクセルについて行われ、深度が多角形の表面に亘って反復される。深度に基づくカリングは、オブジェクト毎に単一の試験を行い、従って、値の適切な範囲の間で適切な比較を行わなくてはならない。
深度に基づくカリング試験を行う場合は、深度比較モードを考慮に入れなくてはならない。図７のグラフは、深度比較モードに対応する単純な状態のうちの３つの状態、「ＤＣＭ＿ＥＱＵＡＬ」、「ＤＣＭ＿ＬＥＳＳ」、及び「ＤＣＭ＿ＧＲＥＡＴＥＲ」を示している。陰影を付けた区域は、「ＩＳＰ」内に記憶された深度の範囲を表しており、それらは、Ｚ範囲発生ユニット１２によりカリング段階に対して利用可能にされる。三角形は、カリングのための候補を表している。「ＯＫ」を付した三角形は合格とされるが、「Ｘ」を付した三角形はカリングされるであろう。
【００２５】
「ＤＣＭ＿ＥＱＵＡＬ」の例においては、オブジェクトは、それらが現在記憶されている深度値のうちの１つに等しい深度値を有する場合にのみ記憶されることになる。これは、記憶された範囲と交差する深度範囲を有するどのオブジェクト（「ＯＫ」を付したオブジェクト）も深度試験に合格するので、カリングする必要がないことを意味する。記憶された範囲と交差しないオブジェクト（「Ｘを付したオブジェクト」は、深度試験に絶対に合格できないから、従って、安全にカリングすることができる。
【００２６】
「ＤＣＭ＿ＬＥＳＳ」の例においては、オブジェクトは、対応する記憶された値よりも小さな深度値をそれらが有するならば、「ＩＳＰ」内に記憶されることになる。記憶された範囲よりも全体に小さい深度を有するオブジェクトが見えることは非常にあり得ることであり、従ってカリングされない。記憶された範囲と全体的又は部分的に交差する深度範囲を有するオブジェクトも見えるので、カリングされない。その範囲が記憶された深度範囲よりも完全に大きいオブジェクトのみが、完全に塞がれることを保証され、従ってカリングされる。これらのオブジェクトには「Ｘ」が付されている。
【００２７】
「ＤＣＭ＿ＧＲＥＡＴＥＲ」の例は、「ＤＣＭ＿ＬＥＳＳ」の例の逆である。記憶された範囲よりも全体に小さい深度範囲を有するオブジェクトは、カリング可能であり、他方、記憶された範囲と交差するか、又は記憶された範囲よりも大きな深度値を有するオブジェクトは、カリングできない。
「ＤＣＭ＿ＬＥＳＳ＿ＥＱ」及び「ＤＣＭ＿ＧＲＥＡＴＥＲ＿ＥＱ」という「ＤＣＭ」モードは、それぞれ、「ＤＣＭ＿ＬＥＳＳ」及び「ＤＣＭ＿ＧＲＥＡＴＥＲ」と非常に似通っているが、等号条件が範囲の交差であると見なされるか否かという点で異なっている。
【００２８】
残りのモードである「ＤＣＭ＿ＡＬＷＡＹＳ」、「ＤＣＭ＿ＮＥＶＥＲ」、及び「ＤＣＭ＿ＮＯＴ＿ＥＱＵＡＬ」に対しては、深度に基づくカリングは使用できない。これらの場合は、オブジェクトをカリングできるか否かを表すために使用することができる深度値の比較が無いことは明白である。
「ＤＣＭ」モードのうちの４つ（「ＬＥＳＳ」及び「ＧＲＥＡＴＥＲ」モード）は、各々の範囲からの１つの値のみを必要とし、他方、「ＤＣＭ＿ＥＱＵＡＬ」のための試験は、各々の範囲からの両方の値を必要とするという点に注意すべきである。
【００２９】
「ＤＣＭ＿ＮＥＶＥＲ」モードは、それが深度試験に決して合格しないことになり、場面内で決して見ることができないことになるので、幾分有用性が限られたモードであることが分る。そのようなオブジェクトは、それだけの理由があって場面に加えられており、従って、カリングされるべきでないと考えなくてはならない。考えられる１つの理由は、そのオブジェクトがステンシル作動を行うなどの付帯的効果を有するか否かということであろう。実際には、付帯的効果を有するいかなるオブジェクトもカリングされるべきでないということは重要なことである。
【００３０】
深度比較モードにおける取扱いの変化
３次元レンダリングハードウエアの設計は、必要とされる処理が多数のより単純な段階に分割された技術であるパイプライン化に大きく依存している。パイプライン化は、ハードウエアの全ての部分が使用中であるように保つことによりシステムの処理量を増大させ、パイプライン自体の長さに関係なく、処理結果を最も遅い段階の速度で取り出すことを可能にする。
パイプライン化は、有用な技術であって、高性能レンダリングシステムの設計において非常に重要である。しかし、それは、カリングが理想的にはパイプラインの早い段階で起こるが、「ＩＳＰ」深度範囲発生はずっと遅く起きるＺベースカリングシステムに対して、いくつかの問題を呈する。その影響は、オブジェクトをカリングすることができるという判断と、オブジェクトが「ＩＳＰ」内で実際にレンダリングされたであろう時点との間の遅延である。カリング試験と実際のレンダリング時点との間の「ＩＳＰ」のいかなる状態変化も、カリングされたオブジェクトを再び見えるようにし、従って、レンダリングされた画像に誤差を生じる可能性があるであろう。「ＩＳＰ」の状態に変化を引き起こすことができる、又は引き起こすことになるのは、既にパイプライン内にある他のカリングされていないオブジェクトである。
【００３１】
パイプラインにより生じた遅延が問題を引き起こすという状況の一例として、「ＤＣＭ＿ＬＥＳＳ」という「ＤＣＭ」を有する多数のオブジェクトについて考察してみる。これは、視点に近いオブジェクトがより遠方にあるオブジェクトの眺めを不明瞭にするという場面を描くための典型的なモードである。次に、「ＤＣＭ＿ＡＬＷＡＹＳ」という「ＤＣＭ」を有する単一のオブジェクトが場面の中央にある場合について考えてみる。この状況は図８に示してあり、ここでは「Ｂ」以外の全てのオブジェクトは「ＤＣＭ＿ＬＥＳＳ」であり、記号「Ｂ」を付したオブジェクトは、「ＤＣＭ＿ＡＬＷＡＹＳ」である。オブジェクト「Ｃ」は，現在「ＩＳＰ」内で処理されており、オブジェクト「Ａ」は、カリングされており、また、パイプライン内の中間段階には８つのオブジェクト（「Ｂ」を含む）がある。
【００３２】
オブジェクト「Ｃ」が処理される時、「ＩＳＰ」内の値の範囲は０．５と０．６の間である。これは、カリングユニットへフィードバックされて、オブジェクト「Ａ」をカリングするために使用される範囲である。オブジェクト「Ａ」は、Ｚ値０．８を有する。これは、「ＩＳＰ」のＺ範囲と比較した場合、オブジェクト「Ａ」がカリングされることになることを意味する。次に、オブジェクト「Ｂ」がタイル全体を覆い、Ｚ値０．９を有すると仮定する。「ＤＣＭ＿ＡＬＷＡＹＳ」モードは、それが「ＩＳＰ」内に記憶された全ての深度を０．９で置換することになるので、オブジェクト「Ａ」がまだカリングされていないならば、このオブジェクト「Ａ」が実際には記憶されたオブジェクト「Ｂ」よりも視点に近く、従って、可視オブジェクトとしてレンダリングされるべきであるということを意味している。深度に基づくカリングの使用は、パイプライン又は他の任意の理由でＺ範囲フィードバックが遅延された時に不正確な結果を生じることが分る。
【００３３】
この問題は、「ＩＳＰ」パラメータ取出しユニットと「ＩＳＰ」深度範囲発生ハードウエアユニットとの間のパイプライン長により起こり、また、「タイルアクセレレータ」内でのオブジェクトの処理とこのオブジェクトが「ＩＳＰ」内でレンダリングされることとの間の遅延によっても起る。後者の場合は、遅延はかなり大であり、「ＩＳＰ」からのＺ範囲情報が各部分レンダーの終わりにおいてのみ更新される場合は、問題は深刻である。これらの問題の解決方法については後述する。
【００３４】
ほとんどの場合、オブジェクトは、一定の深度比較モードを有するオブジェクトが長期に亘って生じるようにグループ分けされる。典型的な用途において、「ＤＣＭ＿ＬＥＳＳ」又は「ＤＣＭ＿ＧＲＥＡＴＥＲ」のような単一の深度比較モードは、穏面消去を発生させるのがこれらのモードであるから、場面内のオブジェクトのほとんどに対処することになる。他のモードが使用される場合、これらのモードは、特別な効果のために使用される傾向があり、オブジェクトは、その数が少なく、しばしば表示リストの終わりでグループにまとめられる。「ＤＣＭ」が変わらない場合、遅延されたＺ範囲フィードバックが問題にならないということは幸いである。
【００３５】
正しい挙動の一例として、図９に示すいくつかの「ＤＣＭ＿ＬＥＳＳ」オブジェクトの場合について考えてみる。オブジェクトは、それらのＺ値が現在記憶されている値よりも小さい場合にのみ「ＩＳＰ」内に記憶されたオブジェクトと置き換わることになる。これは、「ＩＳＰ」内の数は常に小さくなる一方であることを意味しており、また、オブジェクトは置換されるから、記憶された最小及び最大深度値は、共に減少することが可能なことを意味している。「ＤＣＭ＿ＬＥＳＳ」であるオブジェクトのための適切なカリング試験は、そのオブジェクトの最小Ｚ値が「ＩＳＰ」のＺ範囲の最大限度よりも大ならば、このオブジェクトを放棄することである。遅延は、「ＩＳＰ」の最大値を遅延がない時の値よりも大きくすることができるだけであるから、カリングは安全である。理想的な場合よりも僅かに少数のオブジェクトがカリングされるであろうが、控えめなカリング挙動は、レンダリングされた出力に誤差を生じさせない。
【００３６】
「タイルアクセレレータ」におけるＺ範囲カリング
「タイルアクセレレータ」におけるカリングは、パラメータ管理が作動状態にある時、すなわち、画像全体が表示リストメモリ内に記憶される前にシステムが画面の小部分（マクロタイルと呼ばれる）をレンダリングし始める時に作動する。マクロタイルのレンダリングは、「部分レンダー」という名で知られ、典型的には最終的にそのマクロタイル内でレンダリングされることになるオブジェクトの数の一部分のみをレンダリングする。パラメータ管理システムは、マクロタイルに付随する表示リストメモリを解放し、更に別のオブジェクトの記憶のために使用させる。これは、任意の複雑さを有する場面を有限容量のメモリ空間内でレンダリングすることを可能にする。パラメータ管理に関しては、英国特許出願第００２７８９７．８号に十分に説明されている。
【００３７】
「ＩＳＰ」により発生されたＺ範囲情報を記憶するために、図４の「Ｚ範囲メモリ」１４として示すような小容量のメモリが、フィードバックループ内で使用される。各タイルのために別々の記憶場所が使用され、この記憶場所は、当該タイル内で最近起った部分レンダーの終わりに発生されたＺ範囲を含む。
「タイルアクセレレータ」は、各オブジェクトがレンダリングされるべきであるタイルの集合を計算し、オブジェクトポインタを適切なリスト内に書き込むことによってそれらのタイルの各々にオブジェクトを加えることにより機能する。基本的なシステムにおいては、パラメータデータの単一コピーが表示リストメモリに書き込まれるが、パラメータ管理を使用するシステムにおいては、データのコピーは、オブジェクトがレンダリングされる各マクロタイルに対して書き込まれるべきである。この構成は、図２の下部に示されている。
【００３８】
Ｚ範囲カリングは、オブジェクトが加えられるタイルの集合をレンダリングすることにより機能する。これは、オブジェクトのＺ範囲を、各タイルに対してオブジェクトが発生するタイルに対して記憶されたＺ範囲と比較することにより行われる。次に、試験不合格となった場合は、タイルは、タイル集合から除去することができる。比較試験は、勿論、オブジェクトの「ＤＣＭ」に従って選択されるべきである。
減少されたタイルの集合はまた、より少数のマクロタイルを使用する傾向があり、従って、オブジェクトパラメータデータのより少数のコピーが作成されるべきであるから、メモリ消費の減少が発生する。
【００３９】
上述のように、深度比較モードにおける変化は、誤差の発生を防止するように取り扱われるべきである。「タイルアクセレレータ」及び「ＩＳＰ」が同時に同一タイルに働きかけることはないから、状況は図８に示すよりも僅かにより複雑である。パラメータ管理システムは、「ＴＡ」内でオブジェクトを処理すること、及びこのオブジェクトが予知し得ない「ＩＳＰ」内でレンダリングされることの間にこの間隔を生じさせ、表示リスト内に未知数の「ＤＣＭ」変化が記憶されることになる。
【００４０】
「ＤＣＭ」の変化を取り扱うために、理想的な挙動から少し離れて、オブジェクトが処理される時にＺ範囲メモリ１４内に記憶された範囲値を「ＴＡ」内から更新することが必要である。この方法の欠点は、システムが「ＩＳＰ」により発生された範囲で作動し始めるが、更新される範囲は、「ＴＡ」により処理された全てのオブジェクトの頂点座標に基づく最悪の場合の推定値になるという点である。このようにして発生された範囲は、互いにオーバードローするオブジェクトを考慮に入れることはできないから、「ＩＳＰ」自体が発生させるであろう範囲よりも大きくなりがちである。表２は、異なる「ＤＣＭ」を有するオブジェクトのために要求される範囲更新を示す。記憶された範囲は、縮めることはできずに常に大きくなり、次の特定レンダリングの終わりにおいて「ＩＳＰ」からの「正確な」値により再び置換される。
この種類の作動の利点は、記憶されたＺ範囲は必要とされるものよりも大きいが、パイプラインにより遅延されることはなく、従って「ＤＣＭ」における変化が問題を引き起こすことはないという点である。
【００４１】
【表２】
2004537129.tif 000003
【００４２】
「ＩＳＰ」パラメータ取出しユニットにおけるＺ範囲カリング
パラメータ取出しハードウエア及び「ＩＳＰ」は、同時に同じタイルに対して常に作動しているので、パラメータ取出しユニットにおけるオブジェクトのカリングは、「タイルアクセレレータ」におけるカリングよりも僅かに単純である。状況は図８に示すのと正確に同じであって、オブジェクトをカリングするために最小及び最大Ｚ値に関する適正な比較を使用することができる。
「ＩＳＰ」のＺ範囲値は、図８に示すように、Ｚ範囲発生ユニットから直接取り出して、パラメータ取出しユニットへフィードバックすることができる。オブジェクト自体のＺ範囲は、仮にＺ範囲を計算するためにメモリからオブジェクトパラメータを読み出すことが必要である場合には、それがカリングの目的を打ち負かすであろうから一層問題である。代わりに、全ての適正な情報（Ｚ範囲及び「ＤＣＭ」）は、パラメータ取出しユニット８によりオブジェクトポインタから読取られるべきである。
【００４３】
Ｚ範囲情報をオブジェクトポインタ内に記憶するために、範囲は、「タイルアクセレレータ」内で計算されるべきである。これは問題ではなく、その理由は、「ＴＡ」カリング段階は、Ｚ範囲を計算するハードウエアも必要とし、この同じハードウエアを両方の目的のために使用することができるからである。
オブジェクトポインタワード内には、空き空間が少ないから、ワード長をできるだけ短く保つことが望ましい。「ＤＣＭ」コードは、３ビットの記憶装置を必要とする。「ＤＣＭ」が既知になった状態で、「ＤＣＭ＿ＬＥＳＳ」及び「ＤＣＭ＿ＬＥＳＳ＿ＥＱ」のためのカリング試験は、オブジェクトの最小Ｚ値のみを必要とし、「ＤＣＭ＿ＧＲＥＡＴＥＲ」及び「ＤＣＭ＿ＧＲＥＡＴＥＲ＿ＥＱ」のためのカリング試験は、オブジェクトの最大Ｚ値のみを必要とする。従って、これらの場合は、１つの値、すなわち当該オブジェクトの「ＤＣＭ」に適する最大又は最小値を記憶することができる。
【００４４】
表１に示すように、「ＤＣＭ＿ＥＱＵＡＬ」のカリング試験は、必ず両方の値を必要とし、従って、オブジェクトポインタ内に２つの深度値の記憶装置を必要とする。特に、多数のオブジェクトに対しては「ＤＣＭ＿ＥＱＵＡＬ」モードが使用されないのが普通であるから、第２の値を記憶するために必要なオブジェクトポインタのサイズ増大は望ましくない。この場合、試験全体の半分だけを行うことにより、従って、オブジェクトポインタからの１つの値のみを使用することにより、不完全カリングを行うことができる。
上述のように、丸み付けに注意するならば、オブジェクトポインタ内に完全に正確な値を記憶させる必要はない。このようにして、更に空間を節約することができる。
【００４５】
深度比較モードを変える問題を処理するために、パラメータ取出しユニット内で単純なカウンタが使用される。パイプラインの長さは予め既知であり、このパイプラインが多分含むことのできるオブジェクトの最大数も既知である。正しい作動を保証するために、取り出される三角形と「ＩＳＰ」内で処理される三角形とは、両方とも全て同一の「ＤＣＭ」を有する一連の三角形に属する。「ＤＣＭ」か変わるとカウンタはゼロにリセットされ、三角形が１つ取り出される毎にその分だけ増加する。カウンタがパイプライン内のオブジェクトの可能な最大数よりも少ない時は、カリングは無効にされ、このようにして「ＩＳＰ」内のオブジェクトが現在取り出されているオブジェクトと同じ一連のオブジェクトの一部であることが保証される。オブジェクトの各実行の始めのいくつかのオブジェクトはカリングできないので、性能は僅かに低下するが、正確さは保証される。オブジェクトの約２０個分のパイプライン長を使用すると、「ＤＣＭ」が頻繁には変わらない典型的な用途の場合には、カリングできないオブジェクトの数は、場面全体の小さな割合を占めるに過ぎない。将来的には場面の複雑さが上がると予想されるので、得られる効率の低下は、それほど重要ではなくなることになる。
【図面の簡単な説明】
【００４６】
【図１】公知のシステムを示す図である。
【図２】表示リストメモリのレイアウトを概略的に示す図である。
【図３】以前に記憶された深度と入ってくるオブジェクトの深度との間の差を表したグラフである。
【図４】図１のブロック図を拡大して変更したものであり、「ＩＳＰ」のＺ範囲発生ユニット１２が、「ＩＳＰ」６に記憶されたＺ値の範囲を計算し、それを「ＴＡ」２に置かれたカリングの第１段階へＺ範囲メモリ１４を通じてフィードバックし、第２のフィードバック経路が、Ｚ範囲データを「ＩＳＰ」パラメータ取出しユニット８に置かれたカリングの第２段階へ送ることを示す、本発明の実施形態のブロック図である。
【図５】ａ）及びｂ）は、オブジェクトが処理される時に記憶された深度範囲が変わる方法を図式的に示す図である。
【図６】本発明の実施形態において深度範囲を求めるために必要とされる比較器アレーのブロック図である。
【図７】様々な作動の深度比較モードを概略的に示す図である。
【図８】パイプライン遅延の効果を示す図である。
【図９】パイプライン遅延の間の深度範囲の移動の効果を示す図である。
【符号の説明】
【００４７】
２  タイルアクセレレータ（ＴＡ）
６  画像合成プロセッサ（ＩＳＰ）
８  「ＩＳＰ」パラメータ取出しユニット
１２  「ＩＳＰ」Ｚ範囲発生ユニット
１４  Ｚ範囲メモリ
【図１】
2004537129.tif 000004
【図２】
2004537129.tif 000005
【図３】
2004537129.tif 000006
【図４】
2004537129.tif 000007
【図５】
2004537129.tif 000008
【図６】
2004537129.tif 000009
【図７】
2004537129.tif 000010
【図８】
2004537129.tif 000011
【図９】
2004537129.tif 000012
【国際公開パンフレット】
2004537129.tif 000013
2004537129.tif 000014
2004537129.tif 000015
2004537129.tif 000016
2004537129.tif 000017
2004537129.tif 000018
2004537129.tif 000019
2004537129.tif 000020
2004537129.tif 000021
2004537129.tif 000022
2004537129.tif 000023
2004537129.tif 000024
2004537129.tif 000025
2004537129.tif 000026
2004537129.tif 000027
2004537129.tif 000028
2004537129.tif 000029
2004537129.tif 000030
2004537129.tif 000031
2004537129.tif 000032
2004537129.tif 000033
2004537129.tif 000034
2004537129.tif 000035
2004537129.tif 000036
2004537129.tif 000037
2004537129.tif 000038
2004537129.tif 000039
2004537129.tif 000040
2004537129.tif 000041
【国際公開パンフレット（コレクトバージョン）】
2004537129.tif 000042
【手続補正書】
【提出日】平成15年9月22日(2003.9.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像のための表示区域を複数の矩形区域に再分割する段階と、
各矩形区域に対するオブジェクトデータを表示リストメモリ内にロードする段階と、
各矩形区域の各画素に対する画像データと陰影付けデータとを前記オブジェクトデータから引き出す段階と、
表示のために前記陰影付けデータを提供する段階と、
を含む３次元コンピュータグラフィック画像を発生させる方法であって、
各矩形区域に対する最小及び最大深度値の範囲をオブジェクトデータから引き出す段階と、
新たな各オブジェクトの深度を前記矩形区域に対する深度範囲と比較する段階と、
前記比較の結果に応じて、前記新たなオブジェクトデータが前記画像データ引出し段階に提供されることを防止する段階と、
を含むことを特徴とする方法。
【請求項２】
前記新たなオブジェクトデータは、それが矩形区域に対して得られた前記深度値の範囲外にある場合は、前記画像データ引出し段階への供給を防止されることを特徴とする請求項１に記載の方法。
【請求項３】
各オブジェクトは、それに付随して、前記比較の結果によりオブジェクトデータの前記画像データ引出し段階への供給を防止すべきか否かを判断するのに使用される深度比較モード(ＤＣＭ)データを有することを特徴とする請求項１又は請求項２に記載の方法。
【請求項４】
付随する同じ「ＤＣＭ」データを有するオブジェクトは、それらの深度を順番に前記深度範囲と比較されることを特徴とする請求項３に記載の方法。
【請求項５】
新たなオブジェクトの深度と前記深度範囲との比較の結果に応じて該深度範囲を変更する段階を含むことを特徴とする請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記防止する段階は、オブジェクトデータが前記表示リストメモリから読み出されることを防止することを特徴とする請求項１に記載の方法。
【請求項７】
前記防止する段階は、オブジェクトデータが前記表示リストメモリ内にロードされることを防止することを特徴とする請求項１に記載の方法。
【請求項８】
前記深度値の範囲を引き出す段階は、前記矩形区域の前記オブジェクトに対する最小及び最大深度を引き出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記矩形区域のオブジェクトに対する最小及び最大深度を引き出す段階は、該矩形区域内のピクセルの複数の部分集合に対して実行され、該矩形区域に対する範囲を生成するために、前記ピクセルの複数の部分集合に対する結果を結合する段階を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記結合する段階は、比較器のツリー構造を用いて実行されることを特徴とする請求項９に記載の方法。
【請求項１１】
前記ツリー構造のより高いレベルにある比較器は、より低いレベルにある比較器よりも高い精度を有することを特徴とする請求項１０に記載の方法。
【請求項１２】
画像のための表示区域を複数の矩形区域に再分割する手段と、
各矩形区域に対するオブジェクトデータがロードされる表示リストメモリと、
前記オブジェクトデータから各矩形区域の各画素に対する画像及び陰影付けデータを引き出す手段と、
表示のために前記陰影付けデータを提供する手段と、
を含む３次元コンピュータグラフィック画像を発生させるための装置であって、
画像データが引き出される時に、オブジェクトデータから各矩形区域に対する最小及び最大オブジェクト深度の深度範囲を引き出す手段と、
新たな各オブジェクトの深度を前記矩形区域からの現在の範囲と比較する手段と、
前記比較の結果に応じて、前記新たなオブジェクトデータが前記画像データ引出し手段に提供されることを防止する手段と、
を含むことを特徴とする装置。
【請求項１３】
前記新たなオブジェクトデータが画像データ引出し手段に提供されることを防止する手段は、前記新たなオブジェクトの深度が前記深度範囲外にある場合にこれを行うことを特徴とする請求項１２に記載の装置。
【請求項１４】
各オブジェクトは、それに付随して、前記防止する手段が新たな画像データの前記範囲データ引出し手段への供給を防止すべきか否かを判断するのに使用される深度比較モード(ＤＣＭ)データを有することを特徴とする請求項１２又は請求項１３に記載の装置。
【請求項１５】
同じ「ＤＣＭ」データを共有するオブジェクトは、順番に前記深度範囲と比較されることを特徴とする請求項１４に記載の装置。
【請求項１６】
新たなオブジェクトと前記深度範囲との比較の結果に応じて該深度範囲を変更する手段を含むことを特徴とする請求項１から請求項１５のいずれか１項に記載の装置。
【請求項１７】
前記防止する手段は、オブジェクトデータが前記表示リストメモリから読み出されることを防止することを特徴とする請求項１２に記載の装置。
【請求項１８】
前記防止する手段は、オブジェクトデータが前記表示リストメモリ内にロードされることを防止することを特徴とする請求項１２に記載の装置。
【請求項１９】
前記深度範囲を引き出す手段は、前記矩形区域の前記オブジェクトに対する最小及び最大深度を引き出す手段を含むことを特徴とする請求項１２に記載の装置。
【請求項２０】
前記矩形区域のオブジェクトに対する最小及び最大深度を引き出す手段は、ピクセルの複数の部分集合に対して作動し、該矩形区域に対する範囲を生成するために該部分集合に対する結果を結合する手段を含むことを特徴とする請求項１９に記載の装置。
【請求項２１】
前記結合する手段は、比較器のツリー構造を含むことを特徴とする請求項２０に記載の装置。
【請求項２２】
前記ツリー構造のより高いレベルにある比較器は、より低いレベルにある比較器よりも高い精度を有することを特徴とする請求項２１に記載の装置。
【国際調査報告】
2004537129.tif 000043