(57)【特許請求の範囲】
【請求項１】
同時に実行される複数のアプリケーションで三次元コンピュータ映像を発生するシステムに使用するためのメモリマネージメントシステムにおいて、
ａ）各アプリケーションの映像を複数の長方形エリアへと細分化する手段と、
ｂ）各アプリケーションに対して各長方形エリアのオブジェクトデータ及びオブジェクトデータから導出された深さデータを記憶するための少なくとも１つのメモリと、
ｃ）各アプリケーションのオブジェクトデータを前記少なくとも１つのメモリに記憶する手段と、
ｄ）各アプリケーションに対して各長方形エリアの深さデータをオブジェクトデータから導出する手段と、
ｅ）各アプリケーションに対して各長方形エリアの深さデータを前記少なくとも１つのメモリに記憶する手段と、
ｆ）各アプリケーションに対する更なるオブジェクトデータを前記少なくとも１つのメモリにロードして、各アプリケーションに対する既存のコンテンツに置き換えるための手段と、
ｇ）各アプリケーションに対する前記記憶された深さデータを検索する手段と、
ｈ）各アプリケーションに対する各長方形エリアの各画素についての更新された深さデータを、各アプリケーションに対する新たなオブジェクトデータ及び記憶された深さデータから導出すると共に、各アプリケーションに対する更新された深さデータを記憶して、各アプリケーションに対する以前に記憶された深さデータに置き換えるための手段と、
ｉ）少なくとも１つのメモリにロードすべきアプリケーションに対する更なるオブジェクトデータがなくなるまで、前記特徴ｅ）、ｆ）、ｇ）及びｈ）がその機能を繰り返し遂行するようにさせる手段と、
ｊ）表示のために、各アプリケーションに対して映像データ及び陰影付けデータを深さデータから導出する手段と、
ｋ）各アプリケーションに対して前記特徴ｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）によりなされる進行を記憶し更新するための手段と、
を備え、
前記少なくとも１つのメモリは、単一のメモリを含み、その部分が各アプリケーションに割り当てられ、
深さデータに対して単一メモリの一部分が常に予約されて、メモリに記憶されたオブジェクトデータがある場合に、前記特徴ｄ）及びｅ）が常にそれらの機能を遂行できるようにし、
前記予約される部分は、アプリケーションの数に関わらず、記憶されるべき１つの長方形エリアの各基本的エリアに対する深さデータを記憶可能であるメモリマネージメントシステム。
【請求項２】
前記少なくとも１つのメモリは、アプリケーションごとに１つのメモリを含む、請求項１に記載のメモリマネージメントシステム。
【請求項３】
各メモリは、各アプリケーションの各長方形エリアに対するオブジェクトデータを記憶するための１つ又は複数の第１部分と、各アプリケーションのオブジェクトデータから導出された深さデータを記憶するための１つ又は複数の第２部分とを備えた、請求項２に記載のメモリマネージメントシステム。
【請求項４】
同時に実行される複数のアプリケーションで三次元コンピュータ映像を発生する方法において、各アプリケーションに対して、
コンピュータが、
ａ）映像を複数の長方形エリアへと細分化するステップと、
ｂ）各長方形エリアに対するオブジェクトデータ及びオブジェクトデータから導出された深さデータを記憶するための少なくとも１つのメモリを準備するステップと、
ｃ）オブジェクトデータを前記少なくとも１つのメモリに記憶するステップと、
ｄ）各長方形エリアの深さデータをオブジェクトデータから導出するステップと、
ｅ）各長方形エリアの深さデータを少なくとも１つのメモリに記憶するステップと、
ｆ）各アプリケーションに対する更なるオブジェクトデータを前記少なくとも１つのメモリへロードして、既存のコンテンツに置き換えるためのステップと、
ｇ）前記記憶された深さデータを検索するステップと、
ｈ）各長方形エリアの各画素についての更新された深さデータを、新たなオブジェクトデータ及び記憶された深さデータから導出すると共に、その更新された深さデータを記憶して、以前に記憶された深さデータに置き換えるステップと、
ｉ）前記少なくとも１つのメモリにロードすべき更なるオブジェクトデータがなくなるまで、前記ステップｅ）、ｆ）、ｇ）及びｈ）を繰り返し遂行させるステップと、
ｊ）表示のために、映像データ及び陰影付けデータを深さデータから導出するステップと、
を実行し、この方法の前記ステップは、全ての複数のアプリケーションに対して１つのシステムにより遂行され、このシステムは、複数のアプリケーション間を時分割すると共に、各アプリケーションに対して前記ステップｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）の進行を記憶し更新するようにし、
前記少なくとも１つのメモリは、単一のメモリを含み、その部分が各アプリケーションに割り当てられ、
深さデータに対して単一メモリの一部分が常に予約されて、メモリに記憶されたオブジェクトデータがある場合に、前記ステップｄ）及びｅ）が常にそれらの機能を遂行できるようにし、
前記予約される部分は、アプリケーションの数に関わらず、記憶されるべき１つの長方形エリアの各基本的エリアに対する深さデータを記憶可能である方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元コンピュータ発生映像を発生するためのシステムに使用するメモリマネージメントに係る。
【背景技術】
【０００２】
本出願人のＵＫ特許第２２８１６８２号には、各オブジェクトが、無数の表面のセットで画成されたものとして見えると考えられる多角形のための３Ｄレンダリングシステムが説明されている。映像が表示されるべきスクリーンの各基本的エリア（例えば、ピクセル）は、視点からこれを通して３Ｄスクリーンへと光線が投影される。次いで、投影される光線と各表面とが交差する位置が決定される。これらの交差から、基本的エリアにおいて交差表面が見えるかどうか決定することができる。次いで、基本的エリアは、その決定の結果に基づき表示のために陰影付けされる。
【０００３】
表面との交差の計算を各々遂行できる多数のセルを備えたパイプライン形式のプロセッサにおいてシステムを具現化することができる。従って、非常に多数の表面交差を同時に計算することができる。各セルには、交差テストを遂行すべき表面を画成する係数のセットがロードされる。
【０００４】
この構成に対する改良が、本出願人のＵＫ特許第２２９８１１１号に説明されている。この文書では、映像がサブ領域又はタイルに分割され、それらのタイルを順次に処理することができる。可変のタイルサイズを使用し、完全なオブジェクトの周りに境界ボックスを投影して、その境界ボックス内に入るタイルだけ処理すればよいようにすることが提案されている。これは、適切なタイルサイズを選択するために、可視スクリーン上でのオブジェクトの分布を決定することによって行われる。次いで、種々のオブジェクトを画成する表面が、表示リストとして知られているリストに記憶され、これにより、タイルごとに同一の表面を記憶する必要性を回避している。というのは、多数の表面で作られる１つのオブジェクトが多数のタイルにおいて現れるからである。表示リスト内のオブジェクトを識別するオブジェクトポインタも記憶される。タイルごとに１つのオブジェクトポインタリストがある。タイルは、各タイル内の全てのオブジェクトが処理されるまで、前記光線投射技術を使用して順次にレンダリングすることができる。これは、特定のタイルにおいて見えないことが分かっているオブジェクトをレンダリングするために何の努力も必要としないので、有用な方法である。
【０００５】
このシステムに関する更なる改良が、本出願人の国際特許出願第ＰＣＴ／ＧＰ９９／０３７０７号に提案されており、ここでは、特定のオブジェクトを表示するために必要とされない境界ボックス内のタイルが、レンダリングの前に破棄される。
【０００６】
図１は、上述した既存のシステムに使用される形式のプロセッサ１０１を示す。本質的に、３つのコンポーネントがある。タイル加速ユニット（ＴＡ）１０３は、タイル処理動作を遂行し、即ち適当なタイルサイズを選択し、可視スクリーンをタイルに分割し、そしてタイル情報、即ち各タイルの３Ｄオブジェクトデータを表示リストメモリ１０５へ供給する。映像合成プロセッサ（ＩＳＰ）１０７は、表示リストメモリ内の３Ｄオブジェクトデータを使用して、上述した光線／表面交差テストを遂行する。これは、可視スクリーンの各基本的エリアに対する深さデータを発生する。その後、ＩＳＰ１０７からの導出された映像データは、テクスチャ及び陰影付けプロセッサ（ＴＳＰ）１０９へ供給され、このプロセッサは、見えるものとして決定された表面にテクスチャ及び陰影付けデータを適用し、そして映像及び陰影付けデータをフレームバッファメモリ１１１へ出力する。従って、表示の各基本的エリアの見掛けは、３Ｄ映像を表すように決定される。
【０００７】
上述したシステムでは、レンダリングされるべきシーンの複雑さが増すにつれて問題が生じることがある、複雑なシーンは、表示リストメモリに記憶されるべきタイルごとに、より多くの３Ｄオブジェクトデータを必要とし、これは、記憶要件が高くなることを意味する。表示リストメモリのスペースが尽きた場合には、シーンの部分を単にレンダリングすることができず、この形式の映像崩壊は、益々受け容れられなくなる。
【０００８】
この問題を解決するために、本出願人の国際特許出願第ＰＣＴ／ＧＢ０１／０２５３６号は、部分的レンダリングのアイデアを提案している。システム（ＩＳＰ及びＴＳＰ）の状態は、タイルのレンダリングが完了する前にメモリに記憶され、そしてこの状態は、後で、レンダリングを終了するために再ロードされる。このプロセスは、「ｚ／フレームバッファロード及び記憶」と称される。
【０００９】
スクリーンは、マクロタイルと称される多数の領域に分割され、各マクロタイルは、スクリーンの長方形領域で構成される。次いで、表示リストのメモリがブロックに分割され、それらが空き記憶リストに列挙される。次いで、空き記憶部からのブロックが、必要に応じて、マクロタイルに割り当てられる。タイル処理動作は、各ブロックの各マクロタイルに関連したデータを記憶する。（ＴＡにより遂行されるタイル処理動作は、表示リストメモリを埋め、従って、時々、メモリ割り当てとも称される。）表示リストメモリがいっぱいになるか又はある規定のスレッシュホールドに到達すると、システムは、マクロタイルを選択し、ｚ／フレームバッファのロードを遂行し、そしてマクロタイルのコンテンツをレンダリングした後に、ｚ／フレームバッファ記憶動作を使用してそれをセーブする。従って、マクロタイルに対する深さデータは、それまで表示リストにロードされたデータに基づいて記憶される。このようなレンダリングが完了すると、システムは、そのマクロタイルに関連したメモリブロックを解放し、これにより、それらブロックを更なる記憶に利用できるようにする。（レンダリングプロセスは、表示リストメモリのスペースを解放するので、メモリ割り当て解除として知られている。）従って、各タイルに対するシーンは、多数のタイル処理及びそれに続く部分的レンダリングにより構成される。各部分的レンダリングは、記憶された深さデータを更新する。これは、メモリ消費の上限境界が課せられると共に、システムにより消費されるメモリ帯域巾が最小にされることを意味する。
【００１０】
部分的レンダリングシステムに使用される形式のプロセッサの一実施例が図２に示されている。これは、図１の変形例であることが明らかであろう。ｚバッファメモリ２０９は、ｚ圧縮／解凍ユニット２１１を経てＩＳＰ２０７にリンクされる。これは、システムが複雑なシーンをレンダリングし、且つ表示リストメモリ２０５が、特定のタイルに対して処理される必要のある全ての表面を含むに充分な大きさでないときに、動作に入る。表示リストには、それが実質的にいっぱいになるまで（又は規定のスレッシュホールドに到達するまで）全てのタイルについてＴＡ２０３によってデータがロードされる。しかしながら、これは、初期データの一部分を表すに過ぎない。この映像は、ＩＳＰ２０７により、一度に１タイル、レンダリングされる。各タイルに対する出力データは、ＴＳＰ２１３に与えられ、これは、テクスチャデータを使用して、タイルをテクスチャ処理する。それと同時に、映像データが不完全であるから、ＩＳＰ２０７からの結果（即ち、深さデータ）は、一時的記憶のために圧縮／解凍ユニット２１１を経てバッファメモリ２０９に記憶される。次いで、残りのタイルのレンダリングは、全てのタイルがレンダリングされてフレームバッファメモリ２１５及びｚバッファメモリ２０９に記憶されるまで、不完全な映像データで続けられる。
【００１１】
次いで、表示リストの第１部分が破棄されて、付加的な映像データがそこに読み込まれる。処理は、ＩＳＰ２０７によりタイルごとに順次に行われるので、ｚバッファメモリ２０９からのデータの関連部分がｚ圧縮／解凍ユニット１８を経てロードされて、表示リストメモリ２０５からの新たな映像データと合成することができる。次いで、各タイルに対する新たな深さデータがＴＳＰ２１３へ供給され、これは、このデータをテクスチャデータと合成した後に、フレームバッファ２１５へ供給する。
【００１２】
このプロセスは、シーンにおける全てのタイルに対して、全ての映像データがレンダリングされるまで続けられる。従って、ｚバッファメモリは一時的記憶部を埋め、これは、特に複雑なシーンをレンダリングするのに必要なものより小さな表示リストメモリを使用できるようにする。圧縮／解凍ユニット２１１は、任意であるが、小さなｚバッファメモリを使用できるようにする。
【００１３】
従って、国際特許出願第ＰＣＴ／ＧＢ０１／０２５３６号に述べられたように、表示リストメモリがいっぱいになるか又はあるスレッシュホールドに到達すると、システムは、レンダリングすべきマクロタイルを選択して、ある表示リストメモリを解放する。前記出願において、レンダリングすべきマクロタイルの選択は、多数のファクタに依存し、例えば、ほとんどのメモリを空き記憶部へと解除するマクロタイルを選択することができる。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の発明者は、このシステムにおけるメモリマネージメントに対して種々の改良をなすことができると分かった。
【００１５】
本発明の目的は、上述した既知のシステムに比したときに、メモリの占有面積を減少すると共に性能を改善するメモリマネージメントシステム及び方法を提供することである。本発明の更に別の目的は、同時に実行される多数のアプリケーションを取り扱うことのできるメモリマネージメントシステム及び方法を提供することである。
【課題を解決するための手段】
【００１６】
本発明の第１の態様によれば、三次元コンピュータ映像を発生するシステムに使用するためのメモリマネージメントシステムにおいて、ａ）映像を複数の長方形エリアに細分化する手段と、ｂ）各長方形エリアに対するオブジェクトデータを記憶する１つ又は複数の第１部分、及びオブジェクトデータから導出される深さデータを記憶する１つ又は複数の第２部分をいつでも有しているメモリと、ｃ）メモリの１つ又は複数の第１部分にオブジェクトデータを記憶する手段と、ｄ）オブジェクトデータから各長方形エリアに対する深さデータを導出する手段と、ｅ）各長方形エリアに対する深さデータをメモリの１つ又は複数の第２部分に記憶する手段と、ｆ）既存のコンテンツの少なくとも一部分に置き換えるようにメモリの１つ又は複数の第１部分のうちの１つ以上に更なるオブジェクトデータをロードする手段と、ｇ）記憶された深さデータを検索する手段と、ｈ）新たなオブジェクトデータ及び記憶された深さデータから各長方形エリアの各画素に対する更新された深さデータを導出し、そしてその更新された深さデータを、以前に記憶された深さデータに置き換えるように記憶する手段と、ｉ）メモリにロードすべき更なるオブジェクトデータがなくなるまで前記特徴ｅ）、ｆ）、ｇ）及びｈ）で機能を繰り返し遂行させる手段と、ｊ）表示のために、映像データ及び陰影付けデータを深さデータから導出する手段と、を備えたシステムが提供される。
【００１７】
従って、オブジェクトデータ及び深さデータは、単一のメモリに記憶される。従って、メモリ要件を緩和することができる。オブジェクトデータに割り当てられる１つ又は複数の部分は、前記特徴がそれらの機能を遂行するときにオブジェクトデータに要求されるメモリの量が変化するので、固定されないことに注意されたい。特定の時間に、メモリの２つ以上の部分がオブジェクトデータに割り当てられる場合には、それらの部分がメモリ内で隣接されてもよいし、又は異なる目的で割り当てられたメモリの他の部分と散在してもよい。同様に、深さデータに割り当てられる１つ又は複数の部分も、前記特徴がそれらの機能を遂行するときに深さデータに要求されるメモリの量が変化するので、固定されない。特定の時間に、メモリの２つ以上の部分が深さデータに割り当てられる場合には、それらの部分がメモリ内で隣接されてもよいし、又は異なる目的で割り当てられたメモリの他の部分と散在してもよい。
【００１８】
映像を複数の長方形エリアに細分化する手段は、発生されるべき特定の映像に基づいて長方形エリアのサイズを選択するように構成できる。長方形エリアは、サイズ及び形状が等しくてもよいし又は異なってもよい。
【００１９】
好ましくは、メモリの１つ又は複数の第１部分、及びメモリの１つ又は複数の第２部分は、要件に基づいてメモリの未使用部分から割り当てられ、前記特徴ｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）がそれらの機能を遂行するときに、メモリ内における１つ又は複数の第１及び第２部分のサイズと、１つ又は複数の第１及び第２部分の位置が、動的に変化するようにする。
【００２０】
好ましくは、少なくとも１つの長方形エリアの深さデータに対して１つ又は複数の第２部分が常に予約されて、メモリに記憶されたオブジェクトデータがある場合に、前記特徴ｄ）及びｅ）が常にそれらの機能を遂行できるようにする。
【００２１】
別の実施形態において、前記特徴ｅ）は、深さデータを、それが記憶される前に圧縮するための手段を備え、そして少なくとも２つの長方形エリアの深さデータに対して１つ又は複数の第２部分が常に予約されて、メモリに記憶されたオブジェクトデータがある場合に、前記特徴ｄ）及びｅ）が常にそれらの機能を遂行できるようにする。
【００２２】
このようにメモリの適当な区分を予約することにより、更なる深さデータを導出して、メモリの１つ又は複数の第２部分にそれを記憶することが常に可能となる。しかしながら、これは、映像が複雑でも、常に発生できることを意味する。一実施形態では、予約される量は、１つのマクロタイルの各画素エリアの深さデータにとって充分なものである。別の実施形態では、予約される量は、２つのマクロタイルの各画素エリアの深さデータにとって充分なものである。
【００２３】
一実施形態において、メモリの１つ又は複数の第１部分にオブジェクトデータを記憶する手段は、１つの長方形エリアのみに入るオブジェクトデータを、その長方形エリアに割り当てられたメモリのブロックに記憶し、且つ２つ以上の長方形エリアに入るオブジェクトデータを、２つ以上の長方形エリアに入るオブジェクトデータを記憶するためのグローバルリストとして割り当てられたメモリのブロックに記憶するように構成される。このケースでは、特定の長方形エリアに対する映像データ及び陰影付けデータは、そのマクロタイルに対する深さデータから及びグローバルリスト内の深さデータからも、導出される。映像データ及び陰影付けデータが特定の長方形エリアに対して導出されると、その長方形エリアの深さデータに対して割り当てられたメモリのそのブロックを、空きとマークすることができる。映像データ及び陰影付けデータが全ての長方形エリアに対して導出されると、グローバルリストも、空きとしてマークすることができる。
【００２４】
又、本発明の第１の態様によれば、三次元コンピュータ映像を発生するシステム内でメモリをマネージする方法において、ａ）映像を複数の長方形エリアに細分化するステップと、ｂ）各長方形エリアに対するオブジェクトデータを記憶する１つ又は複数の第１部分、及びオブジェクトデータから導出される深さデータを記憶する１つ又は複数の第２部分をいつでも有しているメモリを準備するステップと、ｃ）メモリの１つ又は複数の第１部分にオブジェクトデータを記憶するステップと、ｄ）オブジェクトデータから各長方形エリアに対する深さデータを導出するステップと、ｅ）各長方形エリアに対する深さデータをメモリの１つ又は複数の第２部分に記憶するステップと、ｆ）既存のコンテンツの少なくとも一部分に置き換えるようにメモリの１つ又は複数の第１部分のうちの１つ以上に更なるオブジェクトデータをロードするステップと、ｇ）記憶された深さデータを検索するステップと、ｈ）新たなオブジェクトデータ及び記憶された深さデータから各長方形エリアの各画素に対する更新された深さデータを導出し、そしてその更新された深さデータを、以前に記憶された深さデータに置き換えるように記憶するステップと、ｉ）メモリにロードすべき更なるオブジェクトデータがなくなるまで前記ステップｅ）、ｆ）、ｇ）及びｈ）を繰り返すステップと、ｊ）表示のために、映像データ及び陰影付けデータを深さデータから導出するステップと、を備えた方法も提供される。
【００２５】
本発明の第１の態様の方法に関連して述べる態様は、本発明の第１の態様のシステムに適用することもでき、又、本発明の第１の態様のシステムに関連して述べる態様は、本発明の第１の態様の方法に適用することもできる。
【００２６】
本発明の第２の態様によれば、三次元コンピュータ映像を発生するシステムに使用するためのメモリマネージメントシステムにおいて、ａ）映像を複数の長方形エリアに細分化する手段と、ｂ）各長方形エリアに入る映像のオブジェクトに関するオブジェクトデータを記憶するメモリであって、ｉ）各長方形エリアのオブジェクトに関するオブジェクトデータを記憶するために各長方形エリアに割り当てられる少なくとも１つの部分、及びii）２つ以上の長方形エリアに入るオブジェクトに関するオブジェクトデータを記憶するためのグローバルリストとして割り当てられる少なくとも１つの部分を含むメモリと、ｃ）メモリにオブジェクトデータを記憶する手段と、ｄ）各長方形エリアに対する映像データ及び陰影付けデータをオブジェクトデータから導出するための導出手段と、ｅ）各長方形エリアに対するオブジェクトデータを、メモリの各部分から、且つ長方形エリアが少なくとも１つの他の長方形エリアに入るオブジェクトも含む場合にはグローバルリストからも、導出手段へ供給するための手段と、ｆ）導出手段により導出された映像データ及び陰影付けデータを表示のために記憶する手段と、を備えたシステムが提供される。
【００２７】
メモリの一部分をグローバルリストとして割り当てることは、２つ以上の長方形エリアに入るオブジェクトのオブジェクトデータをメモリに一度書き込むだけでよいことを意味する。これは、必要とされるメモリの量を減少すると共に、このようなオブジェクトデータを記憶するのに要する時間も短縮する。
【００２８】
好ましくは、各長方形エリアに割り当てられるメモリの少なくとも一部分、及びグローバルリストとして割り当てられるメモリの少なくとも一部分が、要件に基づいてメモリの未使用部分から割り当てられて、前記特徴ｃ）、ｄ）及びｅ）がそれらの機能を遂行するときに、各長方形エリアに割り当てられるメモリの少なくとも一部分のサイズ及び位置と、グローバルリストとして割り当てられるメモリの少なくとも一部分のサイズ及び位置とが動的に変化するようにする。
【００２９】
好ましくは、導出手段は、オブジェクトデータから各長方形エリアに対する深さデータを導出する手段と、その深さデータから映像データ及び陰影付けデータを導出する陰影付け手段とを含む。
【００３０】
好都合なことに、グローバルリストは、２つ以上の長方形エリアに入るオブジェクトに関するオブジェクトデータと、単一の長方形エリアに入るが別の長方形エリアとの境界に接近したオブジェクトに関するオブジェクトデータも、記憶するように構成される。これは、マクロタイル間の境界の近くに入る基本的エリアに対する処理を改良する。
【００３１】
しかしながら、この場合は、どのオブジェクトデータがグローバルリストに記憶され、又、どれが適当な長方形エリアに割り当てられた部分に記憶されるか判断することが必要になる。一実施形態では、長方形エリア間の境界の各側で、単一の長方形エリアに入るオブジェクトを含む連続する基本的エリアの数は、境界からの距離が増加するにつれて増加し、そして単一の長方形に入るオブジェクトを含む連続する基本的エリアの数が所定のスレッシュホールドに交差するところの基本的エリアと境界との間に入るオブジェクトのオブジェクトデータは、グローバルリストに記憶される。スレッシュホールドは、シーンにおけるオブジェクトの数を含む多数のファクタにより決定することができる。
【００３２】
本発明の第２の態様によれば、三次元コンピュータ映像を発生するシステム内でメモリをマネージする方法において、ａ）映像を複数の長方形エリアに細分化するステップと、ｂ）各長方形エリアに入る映像のオブジェクトに関するオブジェクトデータをメモリに記憶するステップであって、ｉ）各長方形エリアにメモリの少なくとも一部分を割り当て、その部分に、各長方形エリアのオブジェクトに関するオブジェクトデータを記憶し、そしてii）メモリの少なくとも一部分をグローバルリストとして割り当て、そのグローバルリストに、２つ以上の長方形エリアに入るオブジェクトに関するオブジェクトデータを記憶することにより行うステップと、ｃ）各長方形エリアのオブジェクトデータを、メモリの各部分から、及び長方形エリアが少なくとも１つの他の長方形エリアに入るオブジェクトも含む場合にはグローバルリストからも、導出手段へ供給するステップであって、該導出手段は、各長方形エリアに対する映像データ及び陰影付けデータを導出するものであるステップと、ｄ）導出手段において映像データ及び陰影付けデータを導出するステップと、ｅ）映像データ及び陰影付けデータを表示のために記憶するステップと、を備えた方法が提供される。
【００３３】
メモリの一部分をグローバルリストとして割り当てる効果は、２つある。第１に、オブジェクトデータが一度記憶されるだけであり、これは、必要なメモリの量を減少させる。第２に、オブジェクトデータが一度記憶されるだけであるから、２つ以上の長方形エリアに入るオブジェクトに対するオブジェクトデータは、メモリに一度書き込まれるだけでよく、即ちメモリの各マクロタイル部分ではなく、グローバルリストに書き込まれるだけでよい。
【００３４】
好ましくは、各長方形エリアに割り当てられたメモリの少なくとも一部分、及びグローバルリストとして割り当てられたメモリの少なくとも一部分は、要件に基づいてメモリの未使用部分から割り当てられて、前記ステップｃ）、ｄ）及びｅ）が遂行されるときに、各長方形エリアに割り当てられるメモリの少なくとも一部分のサイズ及び位置と、グローバルリストとして割り当てられるメモリの少なくとも一部分のサイズ及び位置とが動的に変化するようにする。
【００３５】
好ましくは、導出手段において映像データ及び陰影付けデータを導出する前記ステップｄ）は、各長方形エリアに対する深さデータをオブジェクトデータから導出し、且つ映像データ及び陰影付けデータを深さデータから導出することを含む。
【００３６】
好ましくは、映像データ及び陰影付けデータが特定の長方形エリアに対して導出されると、その長方形エリアに割り当てられたメモリの少なくとも一部分が空きとマークされ、そして映像データ及び陰影付けデータが全ての長方形エリアに対して導出されると、グローバルリストとして割り当てられたメモリの少なくとも一部分も、空きとしてマークされる。グローバルリストは、映像データ及び陰影付けデータが全ての長方形エリアに対して導出されるまで空きとしてマークされないので、空きとしてマークできるまでデータの繰り返し量を減少するが長時間を要する大きなグローバルリストと、比較的迅速に空きとしてマークできるがデータの繰り返し量をあまり減少しない小さなグローバルリストとの間で妥協しなければならない。
【００３７】
好ましくは、グローバルリストは、２つ以上の長方形エリアに入るオブジェクトに関するオブジェクトデータと、単一の長方形エリアに入るが別の長方形エリアとの境界に接近したオブジェクトに関するオブジェクトデータとを記憶するように構成される。
【００３８】
この場合に、好ましくは、長方形エリア間の境界の各側で、単一の長方形エリアに入るオブジェクトを含む連続する基本的エリアの数は、境界からの距離が増加するにつれて増加し、そして単一の長方形に入るオブジェクトを含む連続する基本的エリアの数が所定のスレッシュホールドに交差するところの基本的エリアと境界との間に入るオブジェクトのオブジェクトデータは、グローバルリストに記憶される。
【００３９】
本発明の第２の態様の方法に関連して述べる態様は、本発明の第２の態様のシステムに適用することもでき、又、本発明の第２の態様のシステムに関連して述べる態様は、本発明の第２の態様の方法に適用することもできる。
【００４０】
本発明の第３の態様によれば、発生される映像が複数の長方形エリアに分割されそして各長方形エリアが複数のより小さなエリアに分割されるようにして、三次元コンピュータ映像を発生するシステムに使用するためのメモリにおいて、各長方形エリアに入るオブジェクトに対するオブジェクトデータを記憶する部分と、各小さなエリアから、その小さなエリアに入るオブジェクトに対するオブジェクトデータまでのポインタに対する部分と、を備え、発生される映像におけるオブジェクトは、三角形に分割され、オブジェクトデータは、三角形データ、頂点データ、及びそれら三角形データと頂点データとの間のポインタを含み、メモリは、システムが小さなエリアを処理してその小さなエリアにおける映像の一部分を発生するときに、システムが、各小さなエリアから、その小さなエリアに入るオブジェクトに対する三角形データまでのポインタ、及びその三角形データと頂点データとの間のポインタを使用することにより、その小さなエリアに対する頂点データを１回のフェッチでフェッチできるように構成されたメモリが提供される。
【００４１】
本発明の第４の態様によれば、三次元コンピュータ映像を発生する方法において、ａ）映像を複数の長方形エリアＭＴｎに細分化するステップと、ｂ）オブジェクトデータを記憶する１つ又は複数の第１部分、及びオブジェクトデータから導出される深さデータを記憶する１つ又は複数の第２部分をいつでも有しているメモリを準備するステップと、ｃ）各長方形エリアＭＴｎに対するオブジェクトデータをメモリの１つ又は複数の第１部分にロードするステップであって、各長方形エリアＭＴｎは、使用するメモリの１つ又は複数の第１部分の合計サイズが所定のスレッシュホールドを越えるまで、メモリの１つ又は複数の第１部分の各ブロックＰｎを使用するようなステップと、ｄ）メモリの１つ又は複数の第１部分のブロックＰｎを選択し、各長方形エリアＭＴｎに対する深さデータをＭＴｎのオブジェクトデータから導出し、そしてＭＴｎに対する導出された深さデータをメモリの１つ又は複数の第２部分に記憶するステップであって、前記ブロックＰｎは、該ステップｄ）が遂行された後に、ｉ）更なるオブジェクトデータをブロックＰｎにロードして、既存のコンテンツの全部又は一部分に置き換えることができるか、又はii）メモリの１つ又は複数の第１部分の更なるブロックＰｍを選択し、各長方形エリアＭＴｍに対する深さデータをＭＴｍのオブジェクトデータから導出し、そしてＭＴｍに対するその導出された深さデータをメモリの１つ又は複数の第２部分に記憶することができるように選択されるステップと、ｅ）もし前記ステップｄ）のｉ）が満足される場合には、メモリにロードされる更なるオブジェクトデータがなくなるまで前記ステップｃ）及びｄ）を繰り返すか、又は前記ステップｄ）のii）が満足される場合には、メモリにロードされる更なるオブジェクトデータがなくなるまで前記ステップｄ）を繰り返すステップと、ｆ）各長方形エリアＭＴｎに対する映像データ及び陰影付けデータを、メモリの１つ又は複数の第２部分に記憶された各長方形エリアＭＴｎに対する深さデータから導出するステップと、ｅ）映像データ及び陰影付けデータを表示のために記憶するステップと、を備えた方法が提供される。
【００４２】
プロセスがシリアル化されることになると、使用するメモリの１つ又は複数の第１部分の量が、ステップｃ）の後に所定のスレッシュホールドを越えるので、ステップｄ）における長方形エリアの選択が非常に重要となる。というのは、その長方形エリアが選択された後に、更なるオブジェクトデータをロードできるか、又は更なる深さデータを導出してそれを記憶できねばならないからである。
【００４３】
この方法のステップが遂行されるにつれて、オブジェクトデータに必要なメモリの量が変化するので、オブジェクトデータに割り当てられる１つ又は複数の部分は固定されないことに注意されたい。特定の時間に、メモリの２つ以上の部分がオブジェクトデータに割り当てられる場合には、それらの部分がメモリ内で隣接されてもよいし、又は異なる目的で割り当てられたメモリの他の部分と散在してもよい。同様に、深さデータに割り当てられる１つ又は複数の部分も、この方法のステップが遂行されるときに深さデータに要求されるメモリの量が変化するので、固定されない。特定の時間に、メモリの２つ以上の部分が深さデータに割り当てられる場合には、それらの部分がメモリ内で隣接されてもよいし、又は異なる目的で割り当てられたメモリの他の部分と散在してもよい。
【００４４】
ステップｃ）における所定のスレッシュホールドは、１００％満杯でもよいし、又は別のスレッシュホールド、例えば、満杯の７５％でもよい。できるだけ並列の処理を維持するためにスレッシュホールドに近付くときにステップｄ）を開始することができる。
【００４５】
好ましくは、メモリの１つ又は複数の第１部分、及びメモリの１つ又は複数の第２部分は、要件に基づいてメモリの未使用部分から割り当てられて、前記方法のステップが遂行されるときに、メモリ内における１つ又は複数の第１及び第２部分のサイズと、１つ又は複数の第１及び第２部分の位置とが動的に変化するようにする。
【００４６】
好ましくは、１つ又は複数の第２部分が深さデータに対して常に予約され、メモリの１つ又は複数の第１部分に記憶されたオブジェクトデータがある場合に、常にステップｄ）を遂行できるようにする。
【００４７】
この場合に、メモリの１つ又は複数の予約された第２部分は、１つの長方形エリアの各基本的エリアに対する深さデータを記憶するのに少なくとも充分なものである。或いは又、メモリの１つ又は複数の予約された第２部分は、２つの長方形エリアの各基本的エリアに対する深さデータを記憶するのに少なくとも充分なものである。
【００４８】
その予約される部分は、最小限、処理を続行できるものである。好ましくは、１つ又は複数の第２部分のより多くが新たな深さデータに利用できる。これは、処理を改善する。
【００４９】
一実施形態では、前記ステップｃ）は、各長方形エリアＭＴｎに対するオブジェクトデータをメモリの１つ又は複数の第１部分にロードすることを含み、１つの長方形エリアのみに入るオブジェクトに対するオブジェクトデータは、メモリの１つ又は複数の第１部分の各ブロックＰｎに記憶され、そして２つ以上の長方形エリアに入るオブジェクトに対するオブジェクトデータは、メモリの１つ又は複数の第１部分のブロックＰＧＩに記憶される。
【００５０】
一実施形態では、特定の点において、各ブロックＰｎに割り当てられるメモリが等しくてもよい。この場合に、ステップｃ）の後に、メモリのブロックＰｎが各長方形エリアＭＴｎに対して同じサイズである場合には、メモリの１つ又は複数の第１部分に更なるオブジェクトデータをロードできる前に各長方形エリアに対してステップｄ）が遂行される。
【００５１】
しかしながら、通常、メモリは、各ブロックＰｎに均一に割り当てられない。この場合に、ステップｃ）の後に、メモリのブロックＰｎが各長方形エリアＭＴｎに対して同じサイズでない場合には、ステップｄ）で選択されるメモリの１つ又は複数の第１部分のブロックＰｎが最大ブロックＰｎとなる。
【００５２】
本発明の第５の態様によれば、同時に実行される複数のアプリケーションで三次元コンピュータ映像を発生するシステムに使用するためのメモリマネージメントシステムにおいて、ａ）各アプリケーションの映像を複数の長方形エリアへと細分化する手段と、ｂ）各アプリケーションに対して各長方形エリアのオブジェクトデータ及びオブジェクトデータから導出された深さデータを記憶するための少なくとも１つのメモリと、ｃ）各アプリケーションのオブジェクトデータを少なくとも１つのメモリに記憶する手段と、ｄ）各アプリケーションに対して各長方形エリアの深さデータをオブジェクトデータから導出する手段と、ｅ）各アプリケーションに対して各長方形エリアの深さデータを少なくとも１つのメモリに記憶する手段と、ｆ）各アプリケーションに対する更なるオブジェクトデータを少なくとも１つのメモリへロードして、各アプリケーションに対する既存のコンテンツに置き換えるための手段と、ｇ）各アプリケーションに対する記憶された深さデータを検索する手段と、ｈ）各アプリケーションに対する各長方形エリアの各画素についての更新された深さデータを、各アプリケーションに対する新たなオブジェクトデータ及び記憶された深さデータから導出すると共に、各アプリケーションに対する更新された深さデータを記憶して、各アプリケーションに対する以前に記憶された深さデータに置き換えるための手段と、ｉ）少なくとも１つのメモリにロードすべきアプリケーションに対する更なるオブジェクトデータがなくなるまで、前記特徴ｅ）、ｆ）、ｇ）及びｈ）がその機能を繰り返し遂行するようにさせる手段と、ｊ）表示のために、各アプリケーションに対して映像データ及び陰影付けデータを深さデータから導出する手段と、ｋ）各アプリケーションに対して前記特徴ｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）によりなされる進行を記憶し更新するための手段と、を備えたメモリマネージメントシステムが提供される。
【００５３】
従って、１つのシステムが、同時に２つ以上のアプリケーションを実行することができる。前記特徴ｋ）により、システムは、各アプリケーションに対する内部状態を追跡することができる。
【００５４】
一実施形態では、少なくとも１つのメモリは、アプリケーションごとに１つのメモリを含む。
【００５５】
この実施形態において、各メモリは、各アプリケーションの各長方形エリアに対するオブジェクトデータを記憶するための１つ又は複数の第１部分と、各アプリケーションのオブジェクトデータから導出された深さデータを記憶するための１つ又は複数の第２部分とを備えている。
【００５６】
この実施形態において、好ましくは、メモリの１つ又は複数の第１部分、及びメモリの１つ又は複数の第２部分は、要件に基づいてメモリの未使用部分から割り当てられ、前記特徴ｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）がそれらの機能を遂行するときに、メモリ内における１つ又は複数の第１及び第２部分のサイズと、１つ又は複数の第１及び第２部分の位置が、動的に変化するようにする。
【００５７】
この実施形態において、好ましくは、各アプリケーションの深さデータに対して１つ又は複数の第２部分が常に予約されて、メモリの１つ又は複数の第１部分に記憶されたオブジェクトデータがある場合に、前記特徴ｄ）及びｅ）が常にそれらの機能を遂行できるようにする。
【００５８】
別の実施形態において、少なくとも１つのメモリは、単一のメモリを含み、必要に応じてその部分が各アプリケーションに割り当てられる。これは、メモリを使用するより効率的な方法で、全所要メモリを減少することができる。
【００５９】
この実施形態では、好ましくは、深さデータに対して単一メモリの一部分が常に予約され、メモリに記憶されたオブジェクトデータがある場合に、前記特徴ｄ）及びｅ）が常にそれらの機能を遂行できるようにする。
【００６０】
この場合に、好ましくは、予約される部分は、アプリケーションの数に関わらず、記憶されるべき１つの長方形エリアの各基本的エリアに対する深さデータにとって充分なものである。
【００６１】
本発明の第５の態様によれば、同時に実行される複数のアプリケーションで三次元コンピュータ映像を発生する方法において、各アプリケーションに対して、ａ）映像を複数の長方形エリアへと細分化するステップと、ｂ）各長方形エリアに対するオブジェクトデータ及びオブジェクトデータから導出された深さデータを記憶するための少なくとも１つのメモリを準備するステップと、ｃ）オブジェクトデータを少なくとも１つのメモリに記憶するステップと、ｄ）各長方形エリアの深さデータをオブジェクトデータから導出するステップと、ｅ）各長方形エリアの深さデータを少なくとも１つのメモリに記憶するステップと、ｆ）各アプリケーションに対する更なるオブジェクトデータを少なくとも１つのメモリへロードして、既存のコンテンツに置き換えるためのステップと、ｇ）記憶された深さデータを検索するステップと、ｈ）各長方形エリアの各画素についての更新された深さデータを、新たなオブジェクトデータ及び記憶された深さデータから導出すると共に、更新された深さデータを記憶して、以前に記憶された深さデータに置き換えるステップと、ｉ）少なくとも１つのメモリにロードすべき更なるオブジェクトデータがなくなるまで、前記ステップｅ）、ｆ）、ｇ）及びｈ）を繰り返し遂行させるステップと、ｊ）表示のために、映像データ及び陰影付けデータを深さデータから導出するステップと、を備え、この方法の前記ステップは、全ての複数のアプリケーションに対して１つのシステムにより遂行され、このシステムは、複数のアプリケーション間を時分割すると共に、各アプリケーションに対して前記ステップｃ）、ｄ）、ｅ）、ｆ）、ｇ）、ｈ）及びｉ）の進行を記憶し更新する、方法も提供される。
【００６２】
本発明の第５の態様の方法に関連して述べる態様は、本発明の第５の態様のシステムに適用することもでき、又、本発明の第５の態様のシステムに関連して述べる態様は、本発明の第５の態様の方法に適用することもできる。
【００６３】
本発明の１つの態様に関連して述べる態様は、本発明の別の態様にも適用することができる。
【図面の簡単な説明】
【００６４】
【図１】第１の既知のレンダリング及びテクスチャ処理システムの概略図である。
【図２】図１のシステムに勝る改良を与える第２の既知のレンダリング及びテクスチャ処理システムの概略図である。
【図３】本発明の実施形態によるレンダリング及びテクスチャ処理システムの概略図である。
【図４】本発明の実施形態による表示リストメモリの概略図である。
【図５】動的パラメータマネージメント（ＤＰＭ）システムの１つの考えられる構成を示す概略図である。
【図６ａ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図６ｂ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図６ｃ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図６ｄ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図６ｅ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図６ｆ】図６ａから６ｆで構成され、メモリがマクロタイルに均一に割り当てられる第１の実施形態のレンダリングプロセスを示す。
【図７ａ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｂ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｃ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｄ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｅ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｆ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図７ｇ】図７ａから７ｇで構成され、メモリがマクロタイルに非均一に割り当てられる第２の実施形態のレンダリングプロセスを示す。
【図８ａ】本発明の実施形態により２つの同時アプリケーションを実行するように構成されたレンダリング及びテクスチャ処理システムの概略図である。
【図８ｂ】本発明の別の実施形態により２つの同時アプリケーションを実行するように構成されたレンダリング及びテクスチャ処理システムの概略図である。
【発明を実施するための形態】
【００６５】
既存のシステムは、図１及び２を参照して既に説明した。
図３以降を参照して本発明の実施形態を詳細に説明する。
【００６６】
図３は、本発明の実施形態によるレンダリング及びテクスチャ処理システムの概略図である。システム３０１は、図２のものと同様であり、ＴＡ３０３、ＩＳＰ３１１、ＴＳＰ３１３、及びフレームバッファ３１５を備えている。しかしながら、この場合には、表示リストメモリ３０５及びＺバッファメモリ３０７は、両方とも、パラメータメモリ３０９と称される一塊のメモリの一部分である。パラメータメモリ内での表示リストとＺバッファとの間の割り当ては、以下で説明する。図３は、図２のように、ｚ圧縮／解凍ユニットを示していないが、このようなユニットを含ませることもできる。
【００６７】
図４は、本発明の実施形態による表示リストメモリの概略図である。表示リスト４０１は、以下に詳細に述べる制御ストリーム及びオブジェクトデータを含む。
【００６８】
上述したように、可視スクリーン上のタイルは、マクロタイルへと一緒にグループ編成され、各マクロタイルは、多数のタイルより成るスクリーンのエリアである。マクロタイルの境界は、コンフィギュレーションレジスタにより画成される。一実施形態では、４つのマクロタイルがある。別の実施形態では、１６個のマクロタイルがある。実際に、いかなる数のマクロタイルがあってもよく、又、マクロタイルは、必ずしも同じ形状及びサイズである必要はない（が、もし同じでないと、処理が潜在的により複雑になる）。マクロタイルのサイズは、メモリリサイクルのために充分な粒度を与える一方、過度に高いインフラストラクチャーコストを招くことがないように設計される。大きなマクロタイルは、低いメモリ使用及び少ないオンチップ記憶を生じるが、小さなマクロタイルは、メモリをより迅速にリサイクルできるようにし、メモリの効率を高める。
【００６９】
図４において明らかなように、マクロタイル４０３ａ、４０３ｂは、タイルをグループ編成するために制御ストリーム４０５ａ、４０５ｂ及びオブジェクトデータ４０７ａ、４０７ｂの両方を含む。タイル内の各オブジェクトは、表面及び頂点を有する多数の三角形として記憶される。オブジェクトデータは、マクロタイルにおける各三角形及びマクロタイルにおける各頂点に関するデータを記憶する頂点ブロックに記憶される。オブジェクトデータは、マクロタイルに対して一度だけ書き込まれる。制御ストリームデータは、むしろ、ＰＣＴ／ＧＢ０１／０２５３６のオブジェクトポインタと同様である。これは、特定のタイルに割り当てられたメモリの区分から、そのタイルに現れるオブジェクトに対するオブジェクトパラメータまでのポインタを与える。従って、マクロタイル内の各タイルに対して制御ストリームデータが存在する。これは、多数のタイルに現れるオブジェクトに対する複写表面データをセーブする。特定のタイルがレンダリングされるときには、制御ストリームデータは、適切なオブジェクトデータ（三角形データ及び頂点データ）を頂点ブロックからフェッチできるようにする。既知の構成では、レンダリングのために光線／交差手順を遂行できる前に、特定のタイルに対する三角形データをフェッチし、その三角形の頂点を決定し、次いで、適切な頂点データをフェッチすることが必要であった。しかしながら、本発明のこの実施形態では、頂点ブロックにおける三角形データと適切な頂点データとの間にリンクが設けられる。従って、適切な頂点データを直接フェッチすることができる。これは重要である。というのは、２回ではなく、１回のフェッチを行うだけでよいからである。又、減少された量のデータをフェッチするだけでよい。というのは、１つの頂点が２つ以上の三角形に関連しているからである。１つの特定実施形態では、頂点ブロックが３２までの頂点、６４の三角形を含む。
【００７０】
図４において、空き記憶装置４１３から要求する各マクロタイルのための表示リストメモリのブロックと同様に、グローバルリスト４０９もあることが明らかである。オブジェクトデータが２つ以上のマクロタイルを横断することも考えられる。この場合には、オブジェクトデータ４１１は、２つ以上のマクロタイルにあるオブジェクトデータしか含まないグローバルリストに割り当てられる。従って、表示リストは、マクロタイル・プラス・グローバルリストにグループ編成される。マクロタイル内の全てのオブジェクト及び制御ストリームデータは、所与のマクロタイル内に存在するタイルによってアドレスされるだけであり、２つ以上のマクロタイルに存在するオブジェクトデータは、グローバルリストにあり、このデータは、制御ストリームからアドレスすることができる。
【００７１】
図４のメモリは、メモリの一端にマクロタイルブロックを有し、その後にグローバルリストを、又、その後に空き記憶装置を有するものとして示されているが、これは、単なる概略に過ぎず、メモリをどのように分割するか示すものと解釈すべきでないことに注意されたい。実際には、グローバルリストのブロック及び種々のマクロタイルのブロックは、それらがいつ要求されるかに基づき、メモリに散在させることができる。メモリの非割り当て部分は、空き記憶装置に残される。従って、特定の機能に割り当てられるメモリの量及び表示リスト内におけるそのメモリの位置は、両方とも、動的に変化する。
【００７２】
改良された態様では、グローバルリストは、２つ以上のマクロタイル内に入る単純なオブジェクトデータではなく、更に別のオブジェクトデータを含む。典型的に、システムは、多数のセルを有していて隣接セルが隣接ピクセルに作用するパイプラインプロセッサを使用している。マクロタイル間の境界に接近するにつれて、１つのマクロタイルのみに入る幾つかのオブジェクトが、境界の各側にある両マクロタイルに入るオブジェクトと混合されることがある。従って、ＩＳＰは、境界の片側でマクロタイルに割り当てられたマクロタイルブロックからの読みと、グローバルリストからの読みとの間を切り換える必要があり、そしてオブジェクトの配列に基づいて、境界を横切るときに数回スイッチする必要がある。これを回避するために、グローバルリストにおける境界に接近したオブジェクトが１つのマクロタイルにしか入らなくても、それらオブジェクトに対するオブジェクトデータを記憶することが有意義である。これは、ＩＳＰがマクロタイルブロックからの読みと、グローバルリストからの読みとの間を数回スイッチするのを防止する。従って、グローバルリストは、２つ以上のマクロタイルに入るオブジェクトのオブジェクトデータを記憶し、しかも、１つのマクロタイルのみに入るが別のマクロタイルとの境界に接近しているオブジェクトに対するオブジェクトデータも記憶する。
【００７３】
境界から充分に離れると、全てのオブジェクトは、そのマクロタイルのみに入り、従って、ＩＳＰは、メモリの適切なマクロタイルブロックから単純に読み取りすることができる。境界に接近するにつれて、幾つかのピクセルは、ＩＳＰがグローバルリストから読み取りするのを要求する。オブジェクトデータをメモリのマクロタイルブロックに記憶するかグローバルリストに記憶するかの判断が、１つのマクロタイルのみにオブジェクトを含む隣接ピクセルの数に基づいて行われる。境界に接近するにつれて、１つのマクロタイルのみに入るオブジェクトを含む連続するピクセルの数が減少する。連続するピクセルの数が所定の数より下がると、これらオブジェクトがそのマクロタイルにしか入らなくても、後続するオブジェクトデータ（即ち、そのピクセルと境界との間）をグローバルリストに記憶すべきかどうかの判断がなされる。同様に、境界を去るときには、１つのマクロタイルのみに入るオブジェクトを含む連続するピクセルの数が増加する。連続するピクセルの数がスレッシュホールドより上昇すると、後続するオブジェクトデータは、グローバルリストではなく、メモリの適切なマクロタイルブロックに記憶される。
【００７４】
ＰＣＴ／ＧＢ０１／０２５３６に説明された従来の構成は、グローバルリストを含んでおらず、各マクロタイルに割り当てられたメモリのブロックを単に含む。これは、特定のマクロタイルに関連した全てのメモリを、そのマクロタイルがレンダリングされた後に、他のマクロタイルの表示リストに影響を及ぼすことなく、解除できるようにするが、これは、特に、多数のマクロタイルをカバーする大きなオブジェクトがあるときに、データの極めて多数の複写が存在することを意味する。グローバルリストでは、グローバルリストを解放できる前に、全てのマクロタイルをレンダリングする必要があるが、グローバルリストの効果は、そのような複写をほぼ回避し、メモリ消費を減少できることである。又、２つ以上のマクロタイルに入るオブジェクトに対するオブジェクトデータは、マクロタイルごとに一度ではなく、メモリ、即ちグローバルリストに一度書き込むだけでよいので、このようなオブジェクトデータを記憶するのに要する時間量が短縮される。
【００７５】
例えば、スクリーンが４つのマクロタイルに分割されるときには、メモリの５０％程度を、幾つかのシーンについてグローバルリストに割り当てることができる。グローバルリストに対するメモリの最小量は、マクロタイルに対して使用されるメモリと同様でなければならない。しかしながら、グローバルリストメモリは、できるだけ制限されねばならない。というのは、上述したように、シーンにおける全てのマクロタイルをレンダリングせずにシーンからこのメモリを回復することができないからである。これについては、以下に説明する。
【００７６】
図４において明らかなように、表示リストのデータは、その位置でグループ編成され、メモリは、必要に応じて各マクロタイルに割り当て、そしてこのマクロタイルがレンダリングされると、解除することができる。全てのマクロタイルがレンダリングされると、グローバルリストスペースも解除することができる。
【００７７】
本発明の実施形態によれば、表示リストメモリは、動的パラメータマネージメント（ＤＰＭ）システムによりマネージされる。タイル処理段階中に、メモリがシステムに割り当てられ、そしてレンダリング段階中に、このメモリが割り当て解除される。ＤＰＭシステムは、これらの段階中にメモリの割り当て及び割り当て解除をマネージし、そしてメモリが利用できない場合は、レンダリングされるべきデータをスケジュールするように働き、これは、より多くのメモリを解放する。それ故、頂点データのシーンの価値を常にタイル処理及びレンダリングすることができる。
【００７８】
ＤＰＭシステムの１つの考えられる構成が図５に示されている。このＤＰＭシステム５０１は、動的パラメータマネージャーＤＰＭ５０３と、ＩＳＰ５０５と、マクロタイルエンジンＭＴＥ５０７と、タイルエンジンＴＥ５０９と、メモリ５１１とを備えている。ＭＴＥ５０７は、各マクロタイルに対するオブジェクトデータを発生し、それをメモリ５１１の適切なブロックに入れる。従って、ＭＴＥ５０７は、表示リストメモリのオブジェクトデータ部分を制御する。ＴＥ５０９は、ＭＴＥ５０７からのオブジェクトデータを使用して、各タイルに対する制御ストリームデータを発生し、そしてそれをメモリ５１１に入れる。従って、ＴＥ５０９は、表示リストメモリの制御ストリーム部分を制御する。制御ストリームメモリの消費を追跡するために、ＴＥ５０９は、以下に述べるテールポインタキャッシュ５０９ａを含む。ＩＳＰ５０５は、オブジェクトデータを使用して、深さデータを導出し、そしてそれをメモリ５１１のｚバッファ部分に記憶する。
【００７９】
図５を参照して、メモリ割り当て及び割り当て解除のプロセスを以下に説明する。これら２つの動作は、非同期で行われ、パラメータメモリの内部の一塊から割り当て及び割り当て解除する。
【００８０】
ＤＰＭは、ページマネージャー５０３ａを維持し、これは、リンクされたリスト状態を記憶し、メモリのブロックを割り当て及び割り当て解除する。リンクされたリスト状態は、メモリの特定ブロックをマクロタイルに関連付けできるようにし、そのマクロタイルがレンダリングされるときに、メモリの正しいブロックが解放されるようにする。これは、図５の５０３ａに示されている。又、ＤＰＭは、ＴＡ、ＩＳＰ、及びＴＳＰの内部状態、即ちオブジェクトデータ、深さデータ、映像データ及び陰影付けデータの現在状態を追跡し、これは、どれほど多くのシーンが表示リストにロードされたか、及びどれほど多くがそれまでにレンダリングされたかに依存する。ＴＡハードウェアがパイプラインの個別の部分を通してオブジェクトデータ及び制御ストリームデータを処理するときには、それがこれら２つの構造体に別々に割り当てられる。ＤＰＭは、ページをＭＴＥ及びＴＥに割り当て及び割り当て解除することしか関心がない。割り当てられると、そのページにはもはや関心がなく、知る必要があるのは、割り当てられたページがいつ終了して割り当て解除できるかだけである。このため、部分的レンダリングが完了しそしてそのマクロタイルに割り当てられたメモリのページを解除できるときを指示するためにフラグが使用される。次いで、全てのマクロタイルがレンダリングされると、フラグは、グローバルリストページも解除できることを指示する。
【００８１】
１つの特定の実施形態では、メモリが、オブジェクトデータに対して、４０９６バイトチャンクで所与のマクロタイル又はグローバルリストに割り当てられ、これは、マクロタイルへオブジェクトデータを配置するマクロタイルエンジンにより必要に応じて消費される。タイルエンジンは、マクロタイルのオブジェクトデータを取り入れ、各タイルに対する制御ストリームデータを生成する。最初に、メモリの４０９６バイトページが制御ストリームに対してマクロタイルに割り当てられる。次いで、このページからのメモリが、タイル加速度計により要求されたときに（マクロタイル内の）所与のタイルに対して制御ストリームデータに割り当てられる。制御ストリームデータは、１６個の３２ビットワードブロックで割り当てられる。割り当てられたページが完全に使用されるときには、新たなページがＤＰＭによりマクロタイル又はグローバルリストに割り当てられる。この実施例では、制御ストリームデータの第１ページが４０９６バイトであり且つ各タイルに対して１６個の４バイトワードがある場合に、６４個のタイルに対する制御ストリームデータを記憶した後に、割り当てられたページがいっぱいになる。制御ストリームデータは、（この実施例では）１６ワードのブロックで割り当てられるので、この制御ストリームメモリの消費を追跡する個別のテールポインタキャッシュ５０９ａがある。このテールポインタキャッシュは、次に利用可能な制御ストリームのアドレスを含む。１つのブロックが完全に消費されると（前記実施例では、６４個のタイルの後に）、新たな制御ストリームブロックが割り当てられ、これは、テールポインタキャッシュ５０９ａへと更新される。
【００８２】
レンダリングプロセスが行われるときには、メモリが割り当て解除される。マクロタイルが完了すると、ＤＰＭは、そのマクロタイルに割り当てられたページを空き記憶装置に戻すように付加する。リンクされたリスト構造のために、これは、マクロタイルリスト値のヘッドを空き記憶装置リストのテールアドレスに書き込み、そして空きリストテールアドレスをマクロタイル空きリストアドレスへと更新する。
【００８３】
従来のシステムでは、シーンがタイル処理されると、それをレンダリングすることができた。従って、タイル処理（ＴＡによる）及びレンダリング（ＩＳＰによる）は、直列に行われた。今や、部分的レンダリングでは、ＩＳＰ及びＴＡは、同じデータに対して同時に、即ち並列に動作しなければならない。メモリ割り当てリストを崩壊せずに、これを達成するために、ＴＡ及びＩＳＰをいじくって、それらが異なるデータ断片を取り扱うことを考える。これは、各マクロタイル及びグローバルリストに対してヘッド及びテール情報をダブルバッファすることにより行われる。これは、ＴＡがＩＳＰと同時にデータに作用できることを意味する。というのは、それらが各々個別のヘッド及びテール情報に向けられるからである。
【００８４】
ＩＳＰ及びＴＡが並列に動作し、そしてメモリを必要に応じてＴＡに割り当てるに充分なメモリが常にあるのが理想的である。しかしながら、あるケースでは（例えば、マクロタイルが小さいか、又は映像が非常に複雑である）、直ちに割り当てるに充分なメモリがないことがある。
【００８５】
ＴＡの割り当てが可能でない場合には、システムは、レンダリングが進行中であるかどうか調べるチェックを行う。もしそうであれば、システムは、レンダリングのためにメモリが着実に利用できるようになるので、メモリを割り当てる試みを続ける。レンダリングにより充分なメモリが解放されると、ＴＡの割り当てが進められる。
【００８６】
最終的に、全ての保留中のレンダリングが完了し、そしてＤＰＭは、レンダリングのマネージメントを遂行し、即ちより多くの割り当てを行えるまでにレンダリングすべきマクロタイルを選択しなければならない。
【００８７】
従って、プロセス中に、利用可能なメモリスペースが減少するにつれて、性能が着実に低下する。プロセスは、最終的に、メモリスペースの量が減少するにつれて直列化され、この段階において、部分的レンダリングを遂行すべきマクロタイルの選択が非常に重要になる。ＰＣＴ／ＧＢ０１／０２５３６では、表示リストメモリがあるスレッシュホールドまでいっぱいになると、より多くのメモリを解放するためにレンダリングすべきマクロタイルが選択される。レンダリングすべきマクロタイルを、解放されるメモリの量に基づいて選択することが示唆されている。どのマクロタイルをレンダリングすべきか選択するための改良された方法について以下に説明する。
【００８８】
上述したように、ｚバッファメモリ及び表示リストメモリは、両方とも、一塊のメモリ、即ちパラメータメモリに収容される。ｚバッファ及び表示リストがどのように割り当てられるかを、図６及び７を参照して説明する。
【００８９】
ハードウェアは、パラメータメモリの一部分をｚバッファとして予約し、ｚバッファは、少なくともマクロタイルのサイズと同等であり、即ちマクロタイルの各ピクセルに対して深さデータを記憶できるに充分なメモリである。即ち、メモリを使い切った場合でも、部分的レンダリングを実行するために、常に、ある程度の予約されたメモリが残されている。
【００９０】
不充分なメモリにより生じる部分的レンダリングから回復できるようにするため、パラメータメモリ全体がｚバッファメモリより大きくなければならない。全パラメータメモリの最小量は、全ｚバッファメモリと１つの更に別のマクロタイルのためのスペースとの和に等しくなければならない。従って、（ｚバッファがいっぱいになるように）全てのマクロタイルにおいて部分的レンダリングが実行されたときでも、更に別のマクロタイルに対するより多くのオブジェクトデータを表示リストメモリへまだ挿入することができる。ｚバッファに必要とされるメモリが１単位（各マクロタイルに対して０．２５単位）である場合に、必要とされる最小パラメータメモリは、１と０．２５との和、即ち１．２５単位である。
【００９１】
例えば、スクリーンサイズが１０２４ｘ１０２４ピクセルで、ｚバッファのフォーマットがピクセル当たり３２ビットで、且つスクリーンが４つのマクロタイルに分割される場合には、約４ＭＢの全ｚバッファが要求される。従って、合計パラメータメモリは、約５ＭＢ（即ち、４ＭＢと、別のマクロタイルに対する更に１ＭＢとの和）でなければならない。又は、スクリーンサイズが２０４８ｘ２０４８ピクセルで、ｚバッファのフォーマットがピクセル当たり３２ビットで、且つスクリーンが１６のマクロタイルに分割される場合には、約１６ＭＢの全ｚバッファが要求される。従って、合計パラメータメモリは、約１７ＭＢ（即ち、１６ＭＢと、別のマクロタイルに対する更に１ＭＢとの和）でなければならない。
【００９２】
（図２に示す従来の構成では、ｚバッファに記憶する前に圧縮が行われ、そしてｚバッファから読み取りするときに解凍が行われた。このような圧縮／解凍ユニットが本発明に使用された場合には、実際に、２つのマクロタイルに等しいｚバッファを予約することが必要になる。このため、新たな深さデータが記憶されるときには、手前の深さデータを解凍する前にそのデータを圧縮するスペースがなければならない。この場合には、（１つではなく）２つのマクロタイル価値のｚバッファが常に予約されねばならない。）
【００９３】
レンダリングすべきマクロタイルの選択は、その部分的レンダリングの後に、マクロタイルのための新たなオブジェクトデータを挿入するか、又は別の部分的レンダリングを遂行することができねばならないという必要性に基づく。これらの１つも満足されない場合には、システムが阻止され、更なる処理を行うことができない。従って、レンダリングすべきマクロタイルは、入念に選択される。
【００９４】
マクロタイル選択の２つの実施例を以下に説明する。
【００９５】
実施例１：図６Ａ−６Ｆ
この第１の実施例では、メモリが各マクロタイルに均一に割り当てられる。図６ａに示すように、可視スクリーンには４つのマクロタイルがある。これらマクロタイルに対するメモリの割り当てが図６ｂから６ｆに示されている。
【００９６】
最初に、全てのメモリが各マクロタイルに０．２５単位で割り当てられる。ｚバッファ部分（１つのマクロタイルのサイズ、即ち０．２５に等しい）が予約される−ＺＢ０。これは、図６ａに示されている。
【００９７】
予約されたｚバッファＺＢ０は、１つのマクロタイルの部分的レンダリングに使用することができる。それらは全て同じ量のメモリスペースを使用しているので、どれについても問題は生じない。マクロタイルＭＴ３において部分的レンダリングが遂行される。これは、図６ｂに示す結果を与える。マクロタイルＭＴ３は、部分的レンダリングによりＺＢ０まで解放されるが、その解放されたスペースをより多くのｚバッファ−ＺＢ１に予約しなければならない。従って、新たなオブジェクトデータを挿入するための空きスペースはないが、ＺＢ１を使用して別の部分的レンダリングを遂行することができる。
【００９８】
従って、予約されたｚバッファＺＢ１は、別のマクロタイル、このときはＭＴ２、の部分的レンダリングに使用することができる。部分的レンダリングが遂行され、図６ｃに示す結果を与える。マクロタイルＭＴ２は、部分的レンダリングによりＺＢ１まで解放されるが、この解放されたスペースをより多くのｚバッファ−ＺＢ２に対して予約しなければならない。従って、新たなオブジェクトデータを挿入する空きスペースはないが、ＺＢ２を使用して別の部分的レンダリングを遂行することができる。
【００９９】
従って、予約されたｚバッファＺＢ２は、別のマクロタイル、このときはＭＴ１、の部分的レンダリングに使用することができる。部分的レンダリングが遂行され、図６ｄに示す結果を与える。マクロタイルＭＴ１は、部分的レンダリングによりＺＢ２まで解放されるが、この解放されたスペースをより多くのｚバッファ−ＺＢ３に対して予約しなければならない。従って、新たなオブジェクトデータを挿入する空きスペースはまだないが、ＺＢ３を使用して別の部分的レンダリングを遂行することができる。
【０１００】
従って、予約されたｚバッファＺＢ３は、最終的なマクロタイルＭＴ０の部分的レンダリングに使用することができる。部分的レンダリングが遂行され、図６ｅに示す結果を与える。マクロタイルＭＴ０が解放され、これで全てのマクロタイルにｚバッファが割り当てられたので、それ以上のｚバッファを予約する必要はない。
【０１０１】
従って、１つのタイルに対してより多くのオブジェクトデータを挿入するように空きスペースを使用することができる。次いで、部分的レンダリングを行い、より多くのオブジェクトデータを挿入し、等々となって、シーンが出来上がり、この時点で、パラメータメモリ及びｚバッファメモリを割り当て解除することができる。
【０１０２】
従って、メモリは、最初に、４つのマクロタイルに均一に割り当てられるので、より多くのオブジェクトデータを挿入できる前に全てのタイルをレンダリングしなければならない。最適化として、任意の段階において、メモリが全てのマクロタイルに均一に分配されることがシステムに分かった場合には、全てのマクロタイルを直ちにレンダリングすることができる。
【０１０３】
図６に示すケースは、部分的レンダリングにより解放できる最大メモリが０．２５単位であるから最悪のシナリオである。メモリがマクロタイルに均一に割り当てられない他のケースでは、部分的レンダリングで、常に、より多くのメモリスペースを解放することができる。
【０１０４】
実施例２：図７Ａ−７Ｇ
この第２の実施例では、メモリが各マクロタイルに非均一に割り当てられる。このケースでは、メモリがいっぱいになったとき、最も量の多いメモリが割り当てられているマクロタイルがレンダリングのために選択される。これは、より一般的なケースであり、図７ａ−７ｇに示されている。図７ａは、スクリーンにおけるマクロタイルを示し、一方、図７ｂ−７ｇは、各マクロタイルに対するメモリの使用を示す。映像についてのマクロタイルは、サイズが等しいが、メモリの割り当ては、各マクロタイルにおけるオブジェクトデータの量に基づいて異なる。
【０１０５】
最初に、全てのメモリは、０．４３７５単位でマクロタイルＭＴ２に、０．２５単位でマクロタイルＭＴ０に、０．１８７５単位でマクロタイルＭＴ３にそして０．１２５単位でマクロタイルＭＴ１に割り当てられる。ｚバッファ部分（スクリーン上の１つのマクロタイルのサイズ、即ち０．２５に等しい）が予約される−ＺＢ０。これは、図７ｂに示されている。
【０１０６】
予約されたｚバッファＺＢ０は、１つのマクロタイルの部分的レンダリングに使用することができる。最大量のメモリが割り当てられているのでマクロタイルＭＴ２が選択される。マクロタイルＭＴ２において部分的レンダリングが遂行されると、解放されたスペースの０．２５単位がｚバッファ−ＺＢ１として予約されねばならないが、残りのスペースは、より多くのオブジェクトデータのために空いている。これは、図７ｃに示されている。
【０１０７】
次いで、メモリがいっぱいになるまで、ＭＴ２のより多くのオブジェクトデータがその空きスペースにロードされる。これは、図７ｄに示されている。
【０１０８】
次いで、予約されたｚバッファＺＢ１は、マクロタイルＭＴ１の部分的レンダリングに使用することができる。というのは、そのマクロタイルは、現在、最大量のメモリが割り当てられているからである。部分的レンダリングがＭＴ１において遂行されると、それにより解放されるスペースを、より多くのｚバッファ−ＺＢ２に予約しなければならない。従って、より多くのオブジェクトデータを挿入するための空きスペースがない。これは、図７ｅに示されている。
【０１０９】
ＭＴ２にはＺＢ０が既に割り当てられているので、ＭＴ２において別の部分的レンダリングを遂行することができる。これは、０．１８７５の空きスペースを解放する。又、ＺＢ２は、ＭＴ３の部分的レンダリングに使用することができる。合計すると、これは、０．３７５のスペースを解放し、そのうちの０．２５は、ｚバッファＺＢ３として予約されねばならない。これは、図７ｆに示されている。
【０１１０】
この段階において、解放されたスペースを、ＭＴ０、ＭＴ２又はＭＴ３に対するより多くのオブジェクトデータに使用することができ、この場合、部分的レンダリングは、ＭＴ０、ＭＴ２及びＭＴ３に割り当てられたｚバッファを使用して行われる。又は、解放されたスペースは、ＭＴ１に対するより多くのオブジェクトデータに使用される。このケースでは、マクロタイルＭＴ１の部分的レンダリングにＺＢ３が使用される。これは、図７ｇに示されている。マクロタイルＭＴ１が解放され、全てのマクロタイルに、今や、ｚバッファが割り当てられたので、より多くのｚバッファを予約する必要がなくなる。
【０１１１】
図７に示す実施例は、図６の実施例より取り扱いが容易である。というのは、マクロタイルにメモリが均一に割り当てられていないので、第１の部分的レンダリングの後に０．２５単位より大きなメモリが解放されるからである。
【０１１２】
図６及び７は、メモリの残りが少なくなって、プロセスが効果的に直列化されそして各段階においてレンダリングするためのマクロタイルの選択が非常に重要になったときのレンダリングマネージメントの２つの実施例を示す。これら２つのケースは、１つのマクロタイルに等価な最小量のｚバッファが常に予約される状態で、プロセスを継続できることを示している。
【０１１３】
グローバルリストメモリは、シーンにおける全てのマクロタイルをレンダリングせずにシーンからこのメモリを回復できないので、できるだけ制限されねばならないことを上述した。グローバルリストは、上述したｚバッファのサイズｘ１．２５の最小要件に加えて割り当てられる余計なメモリに制限される。これが、マクロタイルメモリの５０％である場合には、合計最小メモリ要件は、ｚバッファのサイズの１．７５である（即ち、表示リストメモリについて１単位、ｚバッファについて予約される０．２５、及びグローバルリストについて０．５）。
【０１１４】
しかしながら、任意の複雑なシーンをレンダリングできるためには、グローバルオブジェクトバッファを回復できねばならず、従って、この具現化では、複数のマクロタイルをそれらのグローバルオブジェクトリストに関して分割できるようにし、次いで、全てのマクロタイルを順次にレンダリングすることによりこれを可能にする。分割は、全てのマクロタイルに対して新たなコンテクストを生成し、そして新たなコンテクストへのレンダリングを続けることにより、達成される。これと並列に、タイル化されたデータが処理されて、システムへ解放されて戻される。この方法は、パイプラインの割り当て及び割り当て解除部分の両方をアクティブのままにすることを許す。
【０１１５】
本発明の特定の実施形態では、装置は、４ｋＢページ又はブロックに分割された２５６ＭＢまでのパラメータメモリと、シーン当たり１６までのマクロタイル及び１つのグローバルリストとをサポートする。
【０１１６】
上述したシステムは、２つ以上のアプリケーションを同時に実行するように使用できる。例えば、２つのウインドウ、即ちアプリケーションを自分のＰＣスクリーン上にオープンさせた場合には、同じハードウェアを使用して、両アプリケーションに対する映像データを発生することができる。図８ａは、図３のハードウェアを使用して２つのアプリケーションに対する映像データを発生するための第１の構成を示す。図８ｂは、図３のハードウェアを使用して２つのアプリケーションに対する映像データを発生するための第２の構成を示す。図８ａ及び８ｂは、３つ以上のアプリケーションへと極めて容易に拡張することができる。
【０１１７】
図８ａのシステム８０１は、ＴＡ８０１と、ＩＳＰ８１１と、ＴＳＰ８１３と、フレームバッファ８１５とを備えている。しかしながら、図３のシステムとは対照的に、ＴＡ８０３及びＩＳＰ８１１は、２つの個別のメモリにアクセスすることができる。第１のメモリ８０９Ａは、第１のアプリケーションに対するものであり、第１のアプリケーション用の表示リストメモリ８０５Ａと、第１のアプリケーション用のｚバッファメモリ８０７Ａとを含む。第２のメモリ８０９Ｂは、第２のアプリケーションに対するものであり、第２のアプリケーション用の表示リストメモリ８０５Ｂと、第２のアプリケーション用のｚバッファメモリ８０７Ｂとを含む。
【０１１８】
このシステムは、上述した図３の構成と全く同様に動作する。各アプリケーションへのシステムの割り当ては、時分割多重（ＴＤＭ）によるか又は別の方法により割り当てることができる。
【０１１９】
図８ｂのシステム８０１’は、ＴＡ８０１’と、ＩＳＰ８１１’と、ＴＳＰ８１３’と、フレームバッファ８１５’とを備えている。しかしながら、図８ａのシステムとは対照的に、２つのアプリケーションのためのメモリは、一塊のメモリ８０５に収容される。これは、必要なメモリを減少させる。一塊のメモリ８０５は、メモリを必要に応じて各アプリケーションに割り当てる。図８ｂにおいて、メモリ８０９Ａ’の若干は、第１のアプリケーションに割り当てられる。メモリ８０９Ａ’のその部分は、表示リストメモリ及びｚバッファメモリを含む。メモリ８０９Ｂ’の若干は、第２のアプリケーションに割り当てられる。メモリ８０９Ｂ’のその部分は、表示リストメモリ及びｚバッファメモリを含む。まだ割り当てられないメモリは、空き記憶装置８０７に残される。
【０１２０】
又、図８ｂのシステムは、上述した図３の構成と全く同様に動作する。各アプリケーションへのシステムの割り当ては、時分割多重（ＴＤＭ）によるか又は別の方法により割り当てることができる。メモリは、必要に応じて各アプリケーションに割り当てられるので、メモリは、図８ａの場合より効率的に使用される。
【０１２１】
上述した両方の実施例において、実際に、同じハードウェアを使用して２つ以上のアプリケーションを実行する場合に、システムは、アプリケーションごとに内部状態を記憶する何らかの手段を含まねばならない。内部状態とは、そのアプリケーションに対するＴＡ及びＩＳＰの現在状態、即ち現在記憶されているオブジェクトデータ、深さデータ、映像データ及び陰影付けデータである。これは、特定のアプリケーションに対してオブジェクトデータ、レンダリング、等を記憶する際にそれまでに生じた進行の記録を与える。従って、多数のアプリケーション間でハードウェアがスワップされるときには、各アプリケーションに到達したときからどこで開始するかが分かる。
【０１２２】
上述した実施例では、１つのアプリケーションのみが実行される状態で、任意の複雑なシーンを発生できるようにするため、１つのマクロタイルの深さデータに充分なメモリを予約することが常に必要であることが注目された。従って、２つ以上のアプリケーションが実行されるときには、このルールがどのように適用されるであろうか？
【０１２３】
先ず、各アプリケーションのメモリが別々である図８ａの実施例について考える。このケースでは、各アプリケーションのメモリが１つのマクロタイルについてｚバッファを予約することが必要である。即ち、合計すれば、同時に実行されるｎ個のアプリケーションに対して、ｎ個のメモリがあり、そしてこれらｎ個のメモリの各々にｚバッファの予約部分がある。
【０１２４】
次いで、多数のアプリケーションに対するメモリが一塊のメモリに収容される図８ｂの実施例について考える。このケースでは、アプリケーションの全数に関わらず、１つのマクロタイルに対するｚバッファを予約するだけでよい。これは、特定の時間に１つの部分的レンダリングしか行われないからであり、従って、予約された同じメモリスペースを全てのアプリケーションに使用することができる。これは、図８ｂの構成の更なる効果である。
【符号の説明】
【０１２５】
３０３：ＴＡ
３０５：表示リストメモリ
３０７：Ｚバッファメモリ
３１１：ＩＳＰ
３１３：ＴＳＰ
３１５：フレームバッファメモリ
４０１：表示リスト
４０３ａ、４０３ｂ：マクロタイル
４０５ａ、４０５ｂ：制御ストリーム
４０７ａ、４０７ｂ：オブジェクトデータ
４０９：グローバルリスト
４１３：空き記憶装置
５０１：ＤＰＭシステム
５０３：動的パラメータマネージャーＤＰＭ
５０５：ＩＳＰ
５０７：マクロタイルエンジンＭＴＥ
５０９：タイルエンジンＴＥ
５１１：メモリ
【図１】
0005545555.tif 000002
【図２】
0005545555.tif 000003
【図３】
0005545555.tif 000004
【図４】
0005545555.tif 000005
【図５】
0005545555.tif 000006
【図６ａ】
0005545555.tif 000007
【図６ｂ】
0005545555.tif 000008
【図６ｃ】
0005545555.tif 000009
【図６ｄ】
0005545555.tif 000010
【図６ｅ】
0005545555.tif 000011
【図６ｆ】
0005545555.tif 000012
【図７ａ】
0005545555.tif 000013
【図７ｂ】
0005545555.tif 000014
【図７ｃ】
0005545555.tif 000015
【図７ｄ】
0005545555.tif 000016
【図７ｅ】
0005545555.tif 000017
【図７ｆ】
0005545555.tif 000018
【図７ｇ】
0005545555.tif 000019
【図８ａ】
0005545555.tif 000020
【図８ｂ】
0005545555.tif 000021