(57)【要約】【課題】グラフィックスを処理する方法及び装置【解決手段】グラフィックスプロセッサ２０は、レンダリング対象シーンの各ドローコールの場所を判定するグラフィックスオブジェクトリスト構築ユニット２８を含み、レンダリング対象シーンが分割される各小領域（タイル）に対してドローコールのリストを生成する。ドローコールリストは、メモリ２３に記憶される。グラフィックスプロセッサ２０のレンダラ２２のグラフィックスオブジェクト選択ユニット２９はその後、現在レンダリング対象のシーン小領域（タイル）に対してメモリ２３に記憶されたドローコールリスト２６を考慮することによって次にレンダリングされるドローコールを判定する。【選択図】図２
2008165760.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする装置であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える装置。
【請求項２】
グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであり、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、グラフィクス記述子リストを作成する手段を備える装置。
【請求項３】
シーンのエリア又は小領域は、シーンがレンダリング目的で分割される小領域を備える、請求項1または2に記載の装置。
【請求項４】
シーンのエリア又は小領域は、可視又は不可視のシーンのエリアを備える、請求項1、2または3に記載の装置。
【請求項５】
共通して、一つより多い小領域またはエリアに使用されるグラフィックス記述子リストを作成する手段を備える、請求項1から4のいずれか一項に記載の装置。
【請求項６】
グラフィックス記述子は、特定のシーンの場所またはエリアで実行されるグラフィックス処理のインジケーションを備える、請求項1から5のいずれか一項に記載の装置。
【請求項７】
グラフィックス記述子は、レンダリング対象オブジェクトの、比較的高い順番又は比較的高いレベルの記述子及び／又はプリプリミティブ記述子を備える、上記請求項のいずれか一項に記載の装置。
【請求項８】
グラフィックス記述子は、一群又は一組の複数のプリミティブを備える、及び／又は示すか又は示すことができる、上記請求項のいずれか一項に記載の装置。
【請求項９】
グラフィックス記述子は、ドローコールを備える、上記請求項のいずれか一項に記載の装置。
【請求項１０】
表示用シーンをレンダリングする時、ソートされたグラフィックス記述子及び／又はグラフィックス記述子リストを使用する手段を備える、上記請求項のいずれか一項に記載の装置。
【請求項１１】
シーンがレンダリングされる前に選抜動作を実行するために、ソートされたグラフィックス記述子及び／又はグラフィックス記述子リストを使用する手段を備える、上記請求項のいずれか一項に記載の装置。
【請求項１２】
グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する手段を備える装置。
【請求項１３】
グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする方法であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える方法。
【請求項１４】
グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであり、各グラフィックス記述子は、レンダリング対象シーンの単一のプリミティブ以外である、グラフィクス記述子リストを作成する手段を備える方法。
【請求項１５】
シーンのエリア又は小領域は、シーンがレンダリング目的で分割される小領域を備える、請求項13または14に記載の方法。
【請求項１６】
シーンのエリア又は小領域は、可視又は不可視のシーンのエリアを備える、請求項13、14または15のいずれか一項に記載の方法。
【請求項１７】
共通して、一つより多い小領域またはエリアに使用されるグラフィックス記述子リストを作成する手段を備える、請求項13から16のいずれか一項に記載の方法。
【請求項１８】
グラフィックス記述子は、特定のシーンの場所またはエリアで実行されるグラフィックス処理のインジケーションを備える、請求項13から17のいずれか一項に記載の方法。
【請求項１９】
グラフィックス記述子は、レンダリング対象オブジェクトの、比較的高い順番又は比較的高いレベルの記述子及び／又はプリプリミティブ記述子を備える、請求項13から18のいずれか一項に記載の方法。
【請求項２０】
グラフィックス記述子は、一群又は一組の複数のプリミティブを備える、及び／又は示すか又は示すことができる、請求項13から19のいずれか一項に記載の方法。
【請求項２１】
グラフィックス記述子は、ドローコールを備える、請求項13から20のいずれか一項に記載の方法。
【請求項２２】
表示用シーンをレンダリングする時、ソートされたグラフィックス記述子及び／又はグラフィックス記述子リストを使用する手段を備える、請求項13から21のいずれか一項に記載の方法。
【請求項２３】
シーンがレンダリングされる前に選抜動作を実行するために、ソートされたグラフィックス記述子及び／又はグラフィックス記述子リストを使用する手段を備える、請求項13から22のいずれか一項に記載の方法。
【請求項２４】
プログラム要素がデータ処理手段上で動作する時、請求項１３から２３のいずれか一項に記載の方法を実行するコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素。
【請求項２５】
請求項１から１２のいずれか一項に記載の装置を含むか、又は請求項１３から２３のいずれか一項に記載の方法に従い動作する、３Ｄグラフィックスプロセッサ又は３Ｄグラフィックス処理プラットフォーム。
【請求項２６】
添付図面の何れか一つを参照して本願明細書で説明した通りに実質的にグラフィックスデータをソート又は処理する装置。
【請求項２７】
添付図面の何れか一つを参照して本願明細書で説明した通りに実質的にグラフィックスデータをソート又は処理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックスを処理する方法および装置に関し、具体的には、タイルベースのグラフィックス処理システムで使用される、かかる方法および装置に関する。
【背景技術】
【０００２】
本発明は、特に3次元グラフィックスの処理を参照しながら説明されるが、2次元グラフィックスの処理にも等しく適用可能であることが当業者には理解されるであろう。
【０００３】
当技術分野で知られているように、グラフィックス処理は一般に、まず表示対象シーンをいくつかの同様の基本的な構成要素または「プリミティブ」に分割し、次いでこれらのプリミティブに所望のグラフィックス処理操作を施すことによって実行される。グラフィックス「プリミティブ」は通常、三角形など単純なポリゴンの形をとり、通常はそれらの各頂点を定義することによって記述される。
【０００４】
グラフィックス処理操作に関しては、当技術分野で知られているように、各グラフィックスプリミティブは通常、「フラグメント」と通称される複数の離散的なグラフィックエンティティまたは要素にさらに分割され、これらに対して実際のグラフィックス処理操作(レンダリング操作など)が実行される。このような各グラフィックスフラグメントは、プリミティブ内の所与の位置を表し、またこれに対応するものであり、該当する位置に関する1組のデータ(色や深度の値など)を事実上含むものである。
【０００５】
各グラフィックスフラグメント(データ要素)は通常、最終的な表示内の単一ピクセル(画素)に対応する(ピクセルは表示される最終的な画像の特異点であるので、グラフィックスプロセッサが作用する「フラグメント」と、表示内のピクセルとの間には通常1対1のマッピングが存在する)。しかしながら、例えば最終的な画像が表示される前にレンダリングされた画像に対して、縮小など特定の形態の後処理が実行された場合は、「フラグメント」と「ピクセル」との間に直接的な対応関係が存在しないこともある。
【０００６】
したがって、典型的に実行されるグラフィックス処理の2つの側面は、グラフィックス「プリミティブ」(ポリゴン)の位置データをグラフィックスフラグメントの位置データに「ラスタ化」し(すなわち、表示対象シーンの各プリミティブを表現するのに使用されるグラフィックスフラグメントの(x,y)位置を判定し)、次いで「ラスタ化」されたフラグメントが表示画面上に表示されるように「レンダリング」する(すなわち、当該フラグメントの色付けやシェーディングなどを施す)ことである。
【０００７】
(グラフィックスの分野では、「ラスタ化」という用語はその時々に、プリミティブからフラグメントへの変換と、プリミティブのレンダリングとの両方を意味するように使用される。しかしながら、本明細書における「ラスタ化」は、プリミティブデータからフラグメントアドレスへの変換だけを指すように使用される。)
【０００８】
多くのグラフィックス処理システムは、いわゆる「タイルベース」のレンダリングを使用する。タイルベースのレンダリングでは、表示対象の2次元シーンは、通常「タイル」と呼ばれる複数のより小さい小領域(sub-region)に細分化または区分される。各タイル(小領域)は、別々に(典型的には順番に)レンダリングされる。次いで、レンダリングされた小領域(タイル)が再結合されて、完全なフレームが表示される。かかる構成において、シーンは、典型的には規則正しいサイズおよび形状の(通常は正方形や長方形などの形をとる)小領域(タイル)に分割されるが、これは本質的なものではない。
【０００９】
「タイリング」および「タイルベース」のレンダリングに関して一般に使用される他の用語としては、「チャンキング」(複数の小領域は「チャンク」とも呼ばれる)および「バケット」レンダリングが挙げられる。以下では便宜上「タイル」および「タイリング」という用語が使用されるが、これらの用語は代替的かつ等価な用語および技法をすべて包含するものであることが当業者には理解されるはずである。
【００１０】
かかるタイルベースのレンダリングの利点は、所与のタイル内に現れないプリミティブが当該タイルに関して処理される必要がなく、したがって、タイルが処理されるときに無視され得ることである。これにより、所与のシーンに要する全体のグラフィックス処理量を減少させることが可能となる。
【００１１】
したがって、タイルベースのレンダリングシステムでは通常、例えばあるタイル内に実際に存在しないプリミティブの不必要なレンダリングが避けられるように、所与の小領域(タイル)内に実際に存在するそれらのプリミティブを特定し知ることができることが望ましい。これを容易にするために、当該小領域に関してレンダリングすべき(例えば当該小領域内に現れる)プリミティブのリストを各小領域(タイル)毎に作成(prepare)することが知られている。かかる「タイルリスト」(「プリミティブリスト」と呼ばれることもある)は、(例えばプリミティブインジケータを参照することによって)該当するタイル(小領域)に関してレンダリングすべきプリミティブを特定する。
【００１２】
したがって、レンダリング対象の各小領域(タイル)に関するタイルリストを作成するプロセスは、基本的には所与の小領域(タイル)に関してレンダリングすべきプリミティブを判定することを要する。このプロセスは通常、該当するタイルを横切る(すなわち、(少なくともその一部が)該当するタイル内に現れる)プリミティブを(所望の精度レベルで)判定し、次いでそれらのプリミティブリストをグラフィックス処理システムによる将来の使用のために作成することによって実行される。(あるプリミティブが2つ以上のタイルに入る場合(そうなることが多い)、そのプリミティブは、それ自体が入っている各タイルのタイルリストに含められることに留意すべきである。)各小領域(タイル)は事実上、当該小領域に入る(すなわち横切る)ことが判明した任意のプリミティブを収容するビン(bin)(タイルリスト)を有するものと見なすことができる(実際、このような様式でプリミティブをタイル単位でソートするプロセスは一般に、「ビニング」と呼ばれている)。
【００１３】
当技術分野で知られているように、所与の任意のタイルに関してリスト化(レンダリング)すべきプリミティブを判定するプロセスは、例えばタイリングおよびレンダリングプロセスの様々な部分の効率の最適化に応じて様々な精度レベルで実行される可能性がある。例えば、最も高い精度レベルでは、所与のプリミティブが少なくとも部分的に現れるタイルを正確に判定した後、当該プリミティブをそれらのタイルに関するタイルリストにだけ含めることができる。これは一般に、「正確」ビニングと呼ばれる。
【００１４】
図1は、正確ビニングのプロセスを示している。図1に示されるように、表示対象シーン1は、規則正しいサイズの16個の小領域すなわちタイル2に分割されている。次いで、シーン内の各プリミティブに関して、当該プリミティブが実際に現れる(入る)1つまたは複数のタイルが判定される。プリミティブは、それ自体がそこに入ることが判明した各タイルのタイルリストに追加される。したがって、図1に示される例で考えれば、プリミティブ3は、タイル4のタイルリストに追加され、プリミティブ5は、タイル6および7のタイルリストに含められ、プリミティブ8は、タイル9、10、11、および12のタイルリストに含められ、プリミティブ13は、タイル12のタイルリストに含められる。(図1には図面を分かりやすくするために少数のタイルおよびプリミティブしか示されていないことに留意すべきである。当業者には理解されるように、実際のグラフィックス処理操作では典型的には、プリミティブおよびタイルの数はもっと多くなる。)
【００１５】
正確ビニングで達成される精度よりも低い精度でタイルリストを作成することも知られている。これは、例えばタイルリストの作成を簡略化するのに役立つ可能性がある。1つの一般的な「低精度」ビニング("less precise" binning)技法は、「バウンディングボックス」ビニングである。この場合では、あるプリミティブまたは1組のプリミティブの周囲にいわゆる「バウンディングボックス」が描画され、次いで当該バウンディングボックスによって覆われるタイルが決定される。次いで、当該バウンディングボックスによって(少なくともその一部が)覆われることが判明した各タイルに関して、当該バウンディングボックスによって表される(すなわち、当該バウンディングボックスによって包含される)1つまたは複数のプリミティブがリスト化(ビニング)される。
【００１６】
したがって、この構成は、プリミティブ自体ではなくバウンディングボックスを使用して、所与のプリミティブをリスト化しレンダリングすべきタイルを判定する。このことは、例えばあるプリミティブが実際に入らないタイル(例えばバウンディングボックスが当該プリミティブを隙間ない形でまたは精密な形で十分に取り囲んでいない場合)についても、レンダリングのためのリスト化が行われる可能性があることを意味し得るが、一方では、このような様式でバウンディングボックスを使用することにより、タイルリストの作成を簡略化することができる。
【００１７】
このようにして、各小領域(タイル)に関するレンダリング対象プリミティブのリスト(タイルリスト)が作成されると、(タイル)リストが記憶され、このリストは、例えば該当するタイルをレンダリングするときに考慮する(レンダリングする)必要があるプリミティブをシステムが特定することを可能にするために使用される。
【００１８】
かかるタイルベースのレンダリング構成は、例えばプリミティブが存在しないシーンの領域についてまでプリミティブの処理が行われることを回避するのに役立つ可能性があることから、優れた働きをすることが分かっている。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかし、本出願人らは、既存のタイルベースのレンダリングシステムには改良の余地が残されているものと信じる。
【課題を解決するための手段】
【００２０】
本発明の第1の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
小領域又はシーンが分割される小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える装置が提供される。
【００２１】
本発明の第2の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする方法であって、
小領域又はシーンが分割される小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を含む方法が提供される。
【００２２】
本発明の第3の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
シーンが分割される小領域又は複数の小領域に、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける手段を備える装置が提供される。
【００２３】
本発明の第4の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータを処理する方法であって、
シーンが分割される小領域又は複数の小領域に、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける段階を含む方法が提供される。
【００２４】
本発明の第5の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする装置であって、
シーンが分割されうる一つ以上の小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を備える装置が提供される。
【００２５】
本発明の第6の態様によれば、レンダリング対象シーンがレンダリング用の複数の小領域に分割されるグラフィックス処理システムにおいて、処理用のグラフィックスデータをソートする方法であって、
シーンが分割されうる一つ以上の小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を含む方法が提供される。
【００２６】
本発明は、タイルベースのレンダリングシステム(すなわち、レンダリング対象シーンが複数の小領域(plural sub-regions)に分割されるレンダリングシステム)を対象とする。しかし、従来のタイルベースのレンダリングシステムとは異なり、単に“タイル”にソートすること、及び“タイルリスト”に含めることというよりはむしろ、レンダリング対象シーンが単一のプリミティブでない本発明の他のグラフィックス記述子に関して記述される三角、四角、線、又は点等の“単一の”ポリゴン（即ち、シーンの最小“ポリゴン”記述）のような、基本プリミティブは、タイルバイタイル（小領域バイ小領域）ベースでソートされ、“タイルリスト”に置かれる（含まれる）ことができる。
【００２７】
出願人は、タイルにレンダリング対象シーンを記述及び定義する基本的な単一のプリミティブだけでなく、他の形式のシーン（グラフィックス）記述（記述子）もソートする利点があることを認識している。
【００２８】
例えば、タイルリストに、ドローコール等、共通に複数の個々のプリミティブを示すグラフィックス記述子を置換するか又はその上（選択的に）記憶することができ、それはその後、例えばタイルリストに使用するメモリ量を変更及び／又は低減することができる。従って、本発明は、タイルリスティング処理に対するメモリ使用要件の比較的良好な制御及び認識を容易にする。これは、特にポータブル装置等（例えば、携帯電話、ＰＤＡ、ハンドヘルド装置等）の比較的限定された装置上で実行されるグラフィックスシステムにおいて有利である。
【００２９】
また、出願人は、個々のプリミティブ以外のグラフィックス記述子上でタイリング動作又は複数の動作を実行することは、他の利益を提供することを認識している。例えば、それにより、グラフィックスデータをこれらの他のグラフィックス記述子の形式でソート及び選抜することができる。
【００３０】
また、それは、タイリング動作それ自体が比較的短時間であり、処理資源が集中的であり、故に、例えば、グラフィックスデータ（記述子）の比較的粗い初期ソートの目的で比較的迅速に実行されることを意味する。例えば、それは、任意のグラフィックス記述子がその目的のために基本的なプリミティブレベルでタイルリストを作成する必要なく更なる処理から直ちに廃棄（選抜）されうるかを確認するために、比較的高いグラフィックス記述子レベルで、グラフィックスデータの初期の粗いタイリングを実行するのに使用されうる。
【００３１】
故に、本発明は、例えば選抜及び／又は隠面消去の形式、例えば、及び好ましくはレンダリングに先立ち、容易にすることができる。
【００３２】
レンダリング対象シーンが分割される複数の小領域(タイル)は、所望される任意の適当な小領域とすることができる。当技術分野で知られているように、これらはすべて同じサイズおよび形状であることが好ましいが(すなわち、規則正しいサイズおよび形状のタイルが使用されることが好ましいが)、これは本質的なものではない。これらの小領域は、正方形または長方形であることが好ましい。小領域のサイズおよび数は、所望の形で選択することができる。好ましい一構成では、各小領域(タイル)は、16×16または32×32のサイズのフラグメントである(ただし、シーンは後に、使用中の表示(フレーム)サイズに必要な数の小領域に分割されることになる)。
【００３３】
好ましい実施形態において、タイルリスト（グラフィックス記述子のリスト）は、個々の小領域及び／又は一つより多い小領域を含む一組又は複数組の小領域に対して作成することができる。タイルリスト（グラフィック記述子リスト）（共通に記憶されたタイルリスト）は、一組の一つより多い小領域に対して作成され、その後一組の一つより多い小領域は、整数の小領域を含むのが好ましく、連続的な小領域の群を含むのが好ましい。
【００３４】
小領域にソートされ、及び／又は小領域に対してリストされる等のグラフィックス記述子は、任意の適切な、及び望ましい当該記述子にすることができる。それらは、当業者であれば明らかなように、実際のレンダリング処理用のシーンを記述するのに使用されることがあり使用されるであろう三角、四角、線、又は点等の単一のポリゴンのような単一の基本プリミティブ以外の必要がある（故に、三角、線、四角、又は点のような単一のプリミティブの形式にはならない。）。
【００３５】
類似には、グラフィックス記述子は、（シーンにおけるその場所によってそれらをソートするようにそれを適切にするか又は望ましくする時）それに関連付けられる処理対称シーンにおける位置又は場所（location）、又は特定の又は選択された位置又は場所の形式を有する（好ましくはレンダリング対象シーンに関するか又は何か（一部）の）記述子を有するか又は含む必要がある。故に、グラフィックス記述子は好ましくは、グラフィック処理の後続ステージ又は複数のステージに対するシーンにおいて位置又は場所を含む地理及び／又は情報を含むか又はそれらに関連付けられる。
【００３６】
実際、本発明は、グラフィックス処理（手順）が実行されるべき場所やオブジェクト又は複数のオブジェクトがドローされるべき場所等を定義する記述子のような、グラフィックス処理に（位置に関連付けられた）位置情報を交信する任意のグラフィックス記述子に適用されうる。
【００３７】
一つの好ましい実施形態において、グラフィックス記述子は、特定のグラフィックス処理又は処理がシーンの所与の場所又はエリア又はエリアで活性化される必要があるインジケーションのような、所与の特定のシーンの場所又はエリアで実行されるべき一部形式のグラフィックス処理（手順）の記述子を含む。
【００３８】
例えば、グラフィックス記述子は、レンダリング対象シーンの所与の場所で一組のプリミティブを生成する（システムに生成するように言う）ための、プログラム等のルーチン又は手順を定義することができる。それらは、例えば、手順のドローコールを含むことができる。
【００３９】
一つの好ましい実施形態において、グラフィックス記述子は、レンダリング対象オブジェクトを示すか又は含むが、単一のポリゴン又はプリミティブ以外の形式である。故に、一つの好ましい実施形態において、グラフィックス記述子は、グラフィックスオブジェクトを含むが、個々の単一のプリミティブではない。
【００４０】
例えば、グラフィックス記述子はまた若しくは代替的に、及び好ましくは、それが好ましくはプリミティブ（例えば、三角の）表示に変換される前のオブジェクトの記述子等の、例えばレンダリング対象オブジェクトの比較的高い順番又は比較的高いレベルの記述子を含む。
【００４１】
そのような比較的高い順番又は比較的高いレベルの、レンダリング対象オブジェクトの記述子の一例は、オブジェクトを示す滑らかな表面である（例えば、“オブジェクト”は、滑らかで、例えば湾曲した表面を含む）。この場合、シーンにおける（複数の）滑らかな表面に対する滑らかな表面の記述子は、本発明の態様で記憶されうる。
【００４２】
本発明が適用可能なグラフィックオブジェクトの比較的高い順番定義のもう一つの形式は、シーンにおける所与の場所で一組のプリミティブを生成する方法をグラフィックスシステムに伝えるプログラム又は手順である。
【００４３】
故に、好ましい実施形態において、グラフィックス記述子又は複数の記述子は、例えば好ましくはオブジェクトの“プリミティブ”記述子が存在する前に対象となるオブジェクト又は複数のオブジェクトに使用されるレンダリング対象オブジェクトの非プリミティブ及び／又はプリプリミティブ記述子を含む。即ち、好ましい実施形態においてグラフィック記述子は、レンダリング対象オブジェクトの前駆記述子（記述）を含む（即ち、その記述は、オブジェクトのプリミティブレベル記述に先行する）。これらの場合において、グラフィックス記述子は、レンダリング対象オブジェクトを示し、未だオブジェクトの“プリミティブレベル”又はプリミティブベースの記述ではなく、むしろグラフィックス記述子は、時間内にのオブジェクトのプリミティブベースの記述に変換されるが、オブジェクトのプリミティブベースの記述が未だ存在しないことを意図する。
【００４４】
例えば、当該非プリミティブベースのグラフィックス記述子は、例えば後に“単一の”プリミティブに変形される“メタプリミティブ”として見なされうる。
【００４５】
また、グラフィックス記述子は、一組の複数の連続的三角等の、一群又は一組の複数のプリミティブを含む、及び／又は示すことができる。この場合、オブジェクトのプリミティブレベルの記述は、存在しうるが、各プリミティブを個々にソートするよりもむしろ、一群のプリミティブが共にソートされうる。これは事実上、レンダリング対象オブジェクトの粗い表示が、たとえ一度オブジェクトの“プリミティブ”記述が存在しえても、“タイル”可能にする。当該配置の一例は、例えば本発明の態様でソートされるグラフィック記述子として複数のプリミティブを包含するバウンディングボックスを使用することである。
【００４６】
当該好ましい実施形態において、グラフィックス記述子又は複数の記述子は、ドローコール（又は複数のドローコール）を含む。（当業者であれば分かるように、グラフィックス処理において、プリミティブは、例えば特定のシーン領域に対して、一般に組で共にグループ化され、プログラマーは、群として共に一挙にレンダリングされることを意図する。共に処理されるプリミティブの当該グループは通常、“ドローコール”と呼ばれる。）故に、特に好ましい実施形態において、シーンのドローコールは、（タイルリストに置かれる）タイルにソートされる。当該配置におけるドローコールは、必要に応じて手順上のドローコール（例えば、プリミティブを生成する手順を定義するドローコール）でもよい。
【００４７】
当業者であれば分かるように、ドローコールの使用において例えば、任意の所与のドローコールが複数のプリミティブを示し、及び含む一方で、単一のプリミティブのみを含むか又は示すドローコールもありうる。しかし、これはなお、少なくとも本発明の好ましい実施形態の範囲内にあり、なぜなら、ドローコールは、たとえ実際にそれが常にそのようにふるまわないことがあっても、共通して複数のプリミティブを示すことができるグラフィックス記述子だからである。
【００４８】
即ち、当業者であれば分かるように、本発明の意図は、単に単一のプリミティブではないグラフィックス記述子を使用することにあるが（そして、それは、レンダリング対象オブジェクトの単一のプリミティブ記述子から区別される）、それは、共通して複数のプリミティブを含むか又は示すか又は示すことができ、及び／又はレンダリング対象オブジェクトの非プリミティブベースの記述子又は実行されるグラフィックス処理の記述子、及び／又はレンダリング対象グラフィックスオブジェクトの記述子及び／又は実行されるグラフィックス処理の記述子であり、それは、複数のプリミティブを含むか又は示すか又は示すことができる。
【００４９】
故に、特に好ましい実施形態において、グラフィックス記述子は、レンダリングされるオブジェクトの、及び／又はレンダリングされるオブジェクトのグラフィックスの記述及び／又は複数のプリミティブを含むか又は示すか又は示すことができる、実行されるグラフィック処理の非プリミティブベースの記述子を含む。
【００５０】
好ましい実施形態において、タイルリスト（グラフィックス記述子リスト）は、所与のタイプのグラフィックス記述子に対して作成される。即ち、ドローコールのような所与のタイプのグラフィックス記述子は、小領域（タイル）にソートされる。一つの好ましい実施形態において、グラフィックス記述子の単一のタイプ又はクラスのみが、任意の所与のリストに含まれる。
【００５１】
しかし、同じリストに異なるタイプのグラフィックス記述子を含むこともできるので、もう一つの好ましい実施形態において、異なるタイプのグラフィックス記述子は各々、所与の小領域の（又は一組の小領域の）リスト（タイルリスト）に含まれうる。
【００５２】
また、三角、四角、線又は点等の単一のポリゴンの形式におけるグラフィックスプリミティブのような単一のプリミティブを、必要に応じて他のグラフィックス記述子と共にタイルリストに含めることができる。（本発明は、必要に応じてレンダリング用の基本グラフィックスプリミティブのタイルリストを追加的（例えば、同時又は連続）に作成することを除外しない。）
【００５３】
グラフィックス記述子のリストは、例えば選択された小領域（タイル）のみに対して作成できるが、好ましい実施形態において、グラフィックス記述子リストは、シーンが分割される各小領域（タイル）に対して作成される。
【００５４】
小領域へのグラフィックス記述子のソートと、小領域に対するグラフィック記述子の作成とは、任意の適切で所望の態様で実行できる。例えば、正確なビニング、又はバウンディングボックスビニング、又はその中間の任意物のようなタイルリストにプリミティブをソート及びビニングするのに既に知られ、及び使用される任意の技術は、この処理に使用されてもよい。
【００５５】
故に例えば、グラフィックス記述子が処理される小領域の初期判定は、シーンにおけるグラフィックス記述子の判定された場所に基づき行われ（その場所は例えば、従来知られるようなグラフィックス記述子を囲うバウンディングボックスに基づくグラフィックス記述子の場所の近似又はグラフィックス記述子の正確な場所にすることができる。）、その後その判定された場所が示す同一又は全ての小領域にリストされたグラフィックス記述子は、レンダリングされる必要がある。その後これは、例えば及び好ましくは、シーンにおける各グラフィックス記述子に対して反復され、シーンに対する完全な一組のグラフィックス記述子リストが作成されることになる。
【００５６】
故に、好ましい実施形態において、シーンにおける所与のグラフィックス記述子に対する場所は、シーンが分割される小領域及び／又は複数の小領域に対して判定及び比較されて、どの小領域及び一組の複数の小領域に対してグラフィックス記述子が処理されうるか又は処理されるべきかを判定する（例えば、範囲内に出現（含まれる））。
【００５７】
これらの配置において、グラフィックス記述子の場所は、グラフィックス記述子の、又はそれに関連付けられた場所又は位置データから等及び好ましく、所望の通りに導かれうる。類似して、小領域の位置は、任意の所望及び適切な態様で導かれうる。必要に応じて、グラフィックス記述子の、又はそれに関連付けられた任意の位置又は場所は好ましくは、それがレンダリング対象の時に記述子がシーンにおいて有する位置に変形されてから、記述子は、小領域等にソートされて、考えられる記述子の“最後の”正しい場所を確実にすることを助ける。
【００５８】
バウンディングボックス技術が使用される場合、その後バウンディングボックスは、所望の場合及び時に生成されうる。例えば、バウンディングボックスは、従来知られるように、グラフィックス記述子ベースで、又は一組又は複数組の複数のグラフィックス記述子に対して生成できる。バウンディングボックスは、例えばホストシステム上のグラフィックスプロセッサＡＰＩ又はドライバによって生成できる。
【００５９】
個々のグラフィックス記述子リスト及びそれらにおけるグラフィックス記述子は、任意の所望の、及び適切な態様で配置され、任意の所望の、及び適切なデータを含むことができる。リストは好ましくは、当該技術において、当該又は類似のグラフィックス記述子、タイルリスト等に既に使用されている同一又は類似の態様で配置され、及びデータを含む。
【００６０】
一度グラフィックス記述子がソートされ、グラフィックス記述子リストが上記の通り小領域に対して作成されると、その後、この情報は、グラフィックス記述子の（及び、例えばそれらが示すプリミティブの）処理に使用されうる。当該処理は、任意の適切で、及び所望の処理を含むことができる。
【００６１】
一つの好ましい実施形態において、この処理は、グラフィックス記述子のレンダリングを含む。即ち、それは、シーンをレンダリングする時、及び好ましくは、どのグラフィックス記述子（故に、例えばプリミティブ）が各小領域に対して処理（レンダリング）されるのが必要かを判定するために、グラフィックス記述子リストを使用することを含む。
【００６２】
このレンダリング処理は、周知のタイルベースのレンダリングシステムに類似の態様で実行でき、好ましくは実行される。故に好ましくは、各小領域（タイル）は、別々に処理及びレンダリングされ、即ち、別々の個々の小領域は、一つずつレンダリングされる。このレンダリングは、任意の所望の態様で、例えば個々の小領域をレンダリングすることによって、又は並行的態様で実行できる。一度全ての小領域（タイル）がレンダリングされると、それらはその後、例えば従来知られた表示用のフレームバッファで再結合されうる。
【００６３】
もう一つの好ましい実施形態において、グラフィックス記述子リスト等は、シーンがレンダリングされる前に（好ましくは初期の）選抜動作（例えば、隠面消去）を実行するために、さらに又は代わりに使用され、例えば及び好ましくは、判定されうるグラフィックス記述子の後の処理することを外すことは、表示されるシーンに見られない。当該選抜は例えば、任意のグラフィックス記述子がシーンの可視エリアの外にあるかを判定することを含む（その場合、それらが破棄される）。さらに洗練された選抜設定が勿論、さらに又は代わりに使用されうる。
【００６４】
好ましい当該実施形態において、（複数の）グラフィックス記述子の位置又は場所は、シーンの一つ以上のエリア又は小領域等に対する位置又は場所と比較される。
【００６５】
上記検討の通り、本発明は、当該動作を容易にし、例えば個々のプリミティブよりもむしろ比較的大きいグラフィックスオブジェクトのソート及びタイリングは、比較的低い処理集中度等になりうる。
【００６６】
本発明が、レンダリングのためにシーンが分割される小領域（タイル）を参照してグラフィックス記述子のソート等に関して特に説明されたが、当業者であれば分かるように、当該ソートは必要に応じて、シーンにおける他のエリアに対して及び関して実行されうる。例えば、選抜動作の場合、（参照のため例えば、任意の記述子がシーンの可視エリア外に全て含まれる場合に）グラフィックス記述子の位置をシーンの可視エリアと単に比較するのに望ましい。
【００６７】
したがって、本発明の第7の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする装置であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする手段を備える装置が提供される。
【００６８】
本発明の第8の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータをソートする方法であって、
シーンの特定のエリア又は小領域へ、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子をソートする段階を備える方法が提供される。
【００６９】
本発明の第9の態様によれば、グラフィックス処理システムにおいて処理用グラフィックスデータを処理する装置であって、
シーンの小領域又は複数の小領域に対する特定のエリア又は複数のエリアに、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける手段を備える装置が提供される。
【００７０】
本発明の第10の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する方法であって、
シーンの小領域又は複数の小領域に対する特定のエリア又は複数のエリアに、レンダリング対象シーンの場所又は複数の場所に関するか又はそれらに関連付けられたグラフィックス記述子を関連付ける段階を含む方法が提供される。
【００７１】
本発明の第11の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する手段を備える装置が提供される。
【００７２】
本発明の第12の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する方法であって、
レンダリング対象シーンの一つ以上のエリア又は小領域に関するグラフィックス記述子リストであって、処理のために好ましくは、各グラフィックス記述子が、レンダリング対象シーンの単一のプリミティブ以外である、グラフィックス記述子リストを作成する段階を含む方法が提供される。
【００７３】
本発明の第13の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する手段を備える装置が提供される。
【００７４】
本発明の第14の態様によれば、グラフィックス処理システムにおいて処理用のグラフィックスデータを処理する装置であって、
レンダリング対象シーンのグラフィックス記述子の位置又は場所を、シーンの特定の又は選択されたエリア又は複数のエリア又は小領域又は複数の小領域の位置又は場所と比較する段階を含む方法が提供される。
【００７５】
当業者であれば分かるように、本発明のこれらの局面及び実施形態は、必要に応じて本明細書中に記載された本発明の好ましい任意的な特徴の一つ以上、及び全てを含むことができ、含むのが好ましい。故に例えば、グラフィックス記述子は、上記検討された任意の形式を取ることができる。同様に、グラフィックス記述子がソートされるシーンの、選択されたエリア又は複数のエリアは、レンダリング目的でシーンが分割される小領域(タイル)を含むのが好ましいが、それは、必ずしも必要なケースではなく、エリアは必要に応じて、シーンの可視及び不可視領域にさらに又は代わりに関連することができる。
【００７６】
本発明の様々な機能は、所望される任意の適当な様式で実行することができる。特に好ましい一実施形態では、それらは、表示デバイス用のフレームバッファに書き込まれるグラフィックスデータを生成し出力する、単一のグラフィックス処理プラットフォーム上で実行される。これらの機能は必要に応じて、ハードウェアまたはソフトウェアの形で実装することができる。好ましい一実施形態では、当該システムは、ハードウェア要素(例えばASIC)として実装される。したがって、別の態様では、本発明は、本明細書に記載される本発明の諸態様の内のいずれか1つまたは複数における装置を含みまたはその方法に従って操作されるハードウェア要素を備える。
【００７７】
ここで、当業者には理解されるように、本発明の様々な機能などは、所与のプロセッサ上で並列的に複製および/または実行され得ることに留意すべきである。
【００７８】
本発明は、任意の形態または構成のグラフィックスプロセッサ、および「パイプライン」構成を有するレンダラ(この場合には、当該レンダラはレンダリングパイプラインの形をとることになる)などのレンダラに適用可能である。
【００７９】
上記から理解されるように、本発明は特に、排他的なものではないが、3Dグラフィックスプロセッサおよび処理デバイスに適用可能であり、したがって、本明細書に記載される本発明の諸態様の内のいずれか1つまたは複数における装置を含みまたはその方法に従って操作される3Dグラフィックスプロセッサおよび3Dグラフィックス処理プラットフォームに拡張される。かかる3Dグラフィックスプロセッサは、上述の個々の機能を実行するのに必要な何らかのハードウェアがあれば、3Dグラフィックスプロセッサが含む通常の機能ユニットなどの内のいずれか1つまたは複数を含むことができ、あるいはそれらをすべて含むこともできる。
【００８０】
また、本発明に関して説明される諸態様および諸実施形態は必要に応じて、本明細書に記載の好ましい諸特徴および任意選択の諸特徴の内の1つまたは複数を含むことも、それらをすべて含むこともできることが当業者には理解されるであろう。
【００８１】
本発明による方法は、少なくとも部分的にはソフトウェア、例えばコンピュータプログラムを使用して実施することができる。したがって、さらなる諸態様を検討すれば、本発明は、それ自体がデータ処理手段上にインストールされたときに、本明細書に記載の各方法を実行するように特に適合されたコンピュータソフトウェアと、前記プログラム要素がデータ処理手段上で実行されたときに、本明細書に記載の各方法を実施するコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素と、前記プログラムがデータ処理システム上で実行されたときに、本明細書に記載の方法に関するすべてのステップを実施するように適合されたコード手段を備えるコンピュータプログラムとを提供することが理解されるであろう。本発明はまた、データ処理手段を備えるグラフィックスプロセッサ、レンダラ、またはマイクロプロセッサシステムを操作するのに使用されたときに、前記データ処理手段の前記プロセッサ、レンダラ、またはシステムが本発明の各方法に関する各ステップを実行するようになるソフトウェアを備える、コンピュータソフトウェアキャリアにも拡張される。かかるコンピュータソフトウェアキャリアは、ROMチップ、CD-ROM、ディスクなどの物理記憶媒体であっても、配線上の電子信号、光信号、衛星などとの間の無線信号などの信号であってもよい。
【００８２】
さらに、本発明の各方法に関する必ずしもすべてのステップがコンピュータソフトウェアによって実行される必要はなく、したがって、本発明のさらに広範な一態様は、コンピュータソフトウェアと、本明細書に詳しく記載される各方法の各ステップの内の少なくとも1つを実行するためにコンピュータソフトウェアキャリア上にインストールされるソフトウェアとを提供することが理解されるであろう。
【００８３】
したがって、本発明は、コンピュータシステムと共に使用されるコンピュータプログラム製品として適切に実施することができる。かかる一実装形態は、例えばディスケット、CD-ROM、ROM、ハードディスクなどのコンピュータ可読媒体などの有形の媒体上などに固定された、あるいは、それだけに限らないが光やアナログ通信回線を含めた有形の媒体を使用して、またはそれだけに限らないがマイクロ波、赤外線、他の伝送技法を含めた無形の無線使用技法を使用して、モデムまたは他のインターフェースデバイスを介してコンピュータシステムに送信可能な、一連のコンピュータ可読命令を含むことができる。当該一連のコンピュータ可読命令は、本明細書の前段に記載される機能の全部または一部を実施する。
【００８４】
かかるコンピュータ可読命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムと共に使用されるいくつかのプログラミング言語で作成され得ることが当業者には理解されるであろう。さらに、かかる命令は、それだけに限らないが、半導体、磁気または光を含めた現在または将来の任意のメモリ技術を使用して記憶することができ、また、それだけに限らないが、光、赤外線またはマイクロ波を含めた現在または将来の任意の通信技法を使用して伝送することができる。かかるコンピュータプログラム製品は、印刷文書または電子文書が添付された取り外し可能媒体、例えばシステムROMまたは固定ディスク上にコンピュータシステムをプリロードされた、例えばシュリンクラップソフトウェアとして配布することも、ネットワーク、例えばインターネットやワールドワイドウェブなどを介してサーバまたは電子掲示板から配布することもできることが企図されている。
【００８５】
以下では単なる例示のために、添付の図面を参照しながら本発明のいくつかの好ましい実施形態について説明する。
【発明を実施するための最良の形態】
【００８６】
ここで図2、3を参照して、本発明の好ましい一実施形態について説明する。
【００８７】
本発明の実施形態において、タイルリストに“タイル”及びリストされるグラフィックス記述子は、ドローコールの形式でグラフィックスオブジェクトを含む。しかし、上記検討の通り、他の配置が勿論可能である。
【００８８】
図2は、本発明に従って操作され得るグラフィックスプロセッサ20を概略的に示している。グラフィックスプロセッサ20は、ジオメトリプロセッサ21と、レンダラ22とを含んでおり、これらはいずれもメモリ23にアクセスすることができる。メモリ23は、当業者に知られているように、ジオメトリプロセッサ21およびレンダラ22を伴う「オンチップ」とすることも、ジオメトリプロセッサ21およびレンダラ22によってアクセスされ得る外部メモリとすることもできる。
【００８９】
メモリ23はとりわけ、図2に示されるように、1組の生ジオメトリデータ24(例えば、当技術分野で知られているように、グラフィックスプロセッサのドライバから、またはグラフィックスプロセッサ20のホストシステム(マイクロプロセッサ)上で走っているAPIから供給されるもの)と、1組の変換済みジオメトリデータ25(やはり当技術分野で知られているように、生ジオメトリ24に対して実行された様々な変換および処理操作の結果得られるもの)と、1組のグラフィックスオブジェクト（記述子）リスト26とを記憶する。グラフィックオブジェクトリスト26は、本発明に従って作成される。このプロセスについては以下でより詳細に説明する。
【００９０】
変換済みジオメトリデータ25は、当技術分野で知られているように、例えば変換済み頂点(頂点データ)などを含む。
【００９１】
ジオメトリプロセッサ21はとりわけ、プログラマブル頂点シェーダ27と、グラフィックスオブジェクト（記述子）リスト構築ユニット28とを備える。プログラマブル頂点シェーダ27は、メモリ23に記憶されている生ジオメトリデータ24をそれ自体の入力として解釈し、当該データを処理して、フレーム内の2D配置を表示する準備が整った形のジオメトリデータを含む変換済みジオメトリデータ25を提供する(その後これをメモリ23に記憶する)。プログラマブル頂点シェーダ27およびそれ自体の実行するプロセスは、当技術分野で知られているように、任意の適当な形をとることができ、所望される任意の適当なプロセスとすることができる。
【００９２】
グラフィックスオブジェクトリスト構築ユニット28は、複数のグラフィックスオブジェクト（記述子−この場合ドローコール）を複数のグラフィックスオブジェクト（記述子）リストに割り付ける本発明のプロセスを実行し、当該複数のグラフィックスオブジェクトリストはその後、レンダリング対象シーンの各小領域に関してレンダリングすべき複数のグラフィックスオブジェクト（記述子）をレンダラ22が特定するのに使用される。これを行うために、グラフィックスオブジェクトリスト構築ユニット28は、プログラマブル頂点シェーダ27からの変換および処理済みの頂点データ(すなわち、シーン内のグラフィックスオブジェクトの位置)をそれ自体の入力として解釈し、当該データを使用してグラフィックスオブジェクト(タイル)リストを構築し、それらのリストをグラフィックスオブジェクトリスト26としてメモリ23に記憶する。このプロセスについては以下でより詳細に説明する。
【００９３】
レンダラ22は、グラフィックスオブジェクト（記述子）選択ユニット29と、グラフィックスオブジェクトリストキャッシュ30と、頂点選択ユニット31と、頂点データキャッシュ32と、ラスタ化ユニット33と、レンダリングユニット34と、タイルバッファ35とを含む。
【００９４】
本実施形態では、ラスタ化ユニット33、レンダリングユニット34、タイルバッファ35は、かかる各ユニットが既存のグラフィックス処理システムで動作するのと同じ様式で動作する。したがって、ラスタ化ユニット33は、あるプリミティブおよびその各頂点をそれ自体の入力として解釈し、当該プリミティブをフラグメントにラスタ化し、それらのフラグメントをレンダリングユニット34に供給する。次いで、レンダリングユニット34は、当該フラグメント上のテクスチャマッピング、混合、シェーディングなどいくつかのレンダリングプロセスを実施し、レンダリング済みのフラグメントデータを生成し、これを表示用のフレームバッファへの供給のためにタイルバッファ35に記憶する。
【００９５】
レンダラ22のグラフィックスオブジェクト選択ユニット29は、グラフィックスオブジェクト（この場合、ドローコール）を判定し、次にレンダリングすべきプリミティブを判定する。プリミティブ選択ユニット29はこれを、メモリ23に記憶されているグラフィックスオブジェクトリスト26を考慮に入れ、複数のリストの内の1つから次にレンダリングすべきグラフィックスオブジェクト（ドローコール）を選択することによって行う。
【００９６】
グラフィックスオブジェクト選択ユニット29は、グラフィックスオブジェクトリストキャッシュ30に1つまたは複数のグラフィックオブジェクトリストを収容することもできる。
【００９７】
グラフィックスオブジェクト選択ユニット29は、次にレンダリングするために選択したプリミティブを頂点選択ユニット31に供給する。これに応答し、頂点選択ユニット31は、メモリ23内に記憶された変換済みジオメトリデータ25から該当するプリミティブに関する適切な変換済み頂点データを検索し、次いで当該プリミティブ(すなわち、変換済み頂点データ)を処理のためにラスタ化ユニット33に供給する。頂点選択ユニット31は必要に応じて、メモリ23から検索した頂点データを頂点データキャッシュ32にキャッシュすることもできる。
【００９８】
図３は、本発明のこの実施形態の記述子において表示用の例示的シーンとして使用される、表示される例示的シーンを示す。
【００９９】
図３から分かるように、シーン５０は、４つのプリミティブを含み、それらは、２つの“ドローコール”と、ドローコール１と、ドローコール２とにグループ化される。プリミティブ０、１、及び２は、ドローコール１としてグループ化され、プリミティブ３は、ドローコール２に属する。（従来知られるように、“ドローコール”でプリミティブをグループ化することは基本的に、アプリケーションプログラマが、通常パフォーマンス理由で、ドローコールの全てのプリミティブを一挙にドローしたいことを意味する。同じドローコールのプリミティブ群は通常、同じ状態及びシェーダープログラムデータを共有する。）
【０１００】
また、プリミティブ２が一つのドローコールに、プリミティブ３がもう一つのドローコールにある２つの分離したドローコールがあることを考えると、図３に示す頂点８は、プリミティブ２及びプリミティブ３の間で共有されないが、代わりに同じ頂点の場所及び頂点の属性を備えた２つの異なる頂点として示されることに留意すべきである。
【０１０１】
図4に示されるように、レンダリング対象シーン50は、複数の個々の小領域またはタイル51に分割される。(当業者であれば分かるように、実際には、レンダリング対象の任意の所与のシーンは通常、図３に示す４つのプリミティブ及び２つのドローコールより多くのプリミティブ及びドローコールを含む。しかし、図３は、単純化及び明確化目的でのみ４つのプリミティブ及び２つのドローコールを示す。)
【０１０２】
本発明の実施形態において、グラフィックスオブジェクトリスト構築ユニット２８は、各ドローコール（グラフィックス記述子）、ドローコール１及びドローコール２の場所を判定し、ドローコールが含まれる各小領域（タイル）に対するグラフィックスオブジェクト（記述子）リストにドローコールをリストする。このように、システムは、どのドローコール（グラフィックス記述子）が各小領域に対してレンダリングされるべきかを識別することができる。
【０１０３】
これは、例えば正確ビニング技術を用いてなされ、その場合、グラフィックスオブジェクトリスト構築ユニット２８は、プログラマブル頂点シェーダ２７によって所与のドローコールに関して、それが提供された判定され変形された頂点位置を使用して、どの小領域及び一組の小領域にドローコールが含まれる（横切る）かを識別する。
【０１０４】
当業者には理解されるように、必要に応じて、シーン内のドローコールについて、および小領域（タイル）５１に関して判定および位置決めする他の技法が使用されてもよい。例えば、当技術分野で知られているように、バウンディングボックス技法が同様の形で使用されてもよい。図３は、ドローコールに対する例示的なバウンディングボックス５２、５３、ドローコール１、及びドローコール２を示す。(バウンディングボックス技法が使用される場合は、バウンディングボックスが例えばグラフィックスオブジェクトリスト構築ユニットによってグラフィックスオブジェクト（記述子）のリスト化プロセスの一環として生成されることが好ましいが、いうまでもなく、他の構成も可能なはずである。)
【０１０５】
このプロセスは、レンダリング対象シーンが分割される各小領域に対して完全なグラフィックスオブジェクトリスト２６（グラフィックスオブジェクト（記述子）のリスト）が生成されるまで、順番にレンダリング対象シーンのグラフィックスオブジェクト（ドローコール）毎にグラフィックスオブジェクトリスト構築ユニット２８によって反復される。
【０１０６】
グラフィックスオブジェクトリスト構築ユニット２８は、それがプログラマブル頂点シェーダ２７からグラフィックスオブジェクトを受ける順番でグラフィックオブジェクトリスト２６にグラフィックスオブジェクト（記述子）を置く。これは、各ここのグラフィックスオブジェクトリスト２６が関係する限り、リストのグラフィックスオブジェクト（記述子）は、それらが生成された順番であり、それは従来知られるように通常、グラフィックスオブジェクトをレンダリングする所望の順番に対応することを意味する。
【０１０７】
上述のように、レンダラ22はまた、グラフィックスオブジェクトリストキャッシュ30と、頂点データキャッシュ32を含む。これらのキャッシュは、当技術分野で知られているように、レンダラ22上に設けられ、メインメモリ23よりも迅速に当該レンダラの処理ユニットから(特に、グラフィックスオブジェクト選択ユニット29および頂点選択ユニット31からそれぞれ)アクセスすることができるローカルメモリを備えている。
【０１０８】
グラフィックスオブジェクト選択ユニット29は、グラフィックオブジェクトリストキャッシュ30に、それ自体がメインメモリ23から読み出した1つまたは複数のグラフィックスオブジェクトリスト26を記憶するように構成される。
【０１０９】
同様に、頂点選択ユニット31は、メモリ23内の変換済みジオメトリデータ25から検索した頂点データを頂点データキャッシュ32内にキャッシュすることができ、また、特には、あるプリミティブにとって当該頂点データが再び必要となることが識別され得る場所にキャッシュすることもできる。
【０１１０】
上記実施形態は、レンダリングプロセスのためのレンダリング対象プリミティブを示すためにグラフィックスオブジェクト（記述子）を使用することに関して説明されてきたが、これらのリストは、グラフィックスデータ及び記述子の、（例えば、初期の）選抜を実行し、及び／又は隠面消去のような、他の目的のためにさらに又は代わりに使用されうる。
【０１１１】
当業者には理解されるように、本実施形態(および本発明)は必要に応じて、任意のタイルベースのレンダリングシステムの形で実施することができる。本実施形態および本発明の様々な構成要素および機能も同様に、当技術分野で知られている任意の適当な技法を使用して、所望の形で実施することができる。
【０１１２】
上記から、本発明は、少なくともその好ましい諸実施形態では、例えば特にタイルのリスト化(プリミティブのソート(ビニング))プロセスに関するメモリ使用率およびメモリ要件をより良い形で制御することと、その知識を得ることとを容易にし、及び／又は後続処理からのデータのさらに迅速な除去（選抜）の機会を提供しうる、タイルベースのレンダリングシステム向けのグラフィックスデータのリスト化およびソートの一構成を提供する。
【０１１３】
これは、資源及びメモリ要件が例えば埋め込み装置及び／又は携帯電話等のポータブル装置のように制限されうる装置の場合に特に価値がある。
【０１１４】
このことは、少なくとも本発明の好ましい諸実施形態では、単に基本的な単一のプリミティブでないグラフィックス記述子（記述）を（小領域毎ベースで）タイルリストにソートすることによって達成される。
【図面の簡単な説明】
【０１１５】
【図１】タイルベースグラフィックス処理の一構成の概略図である。
【図２】本発明に従って動作することができるグラフィックスプロセッサの一構成の概略図である。
【図３】複数のプリミティブを複数のプリミティブリストに割り付けるプロセスの一実施形態の概略図である。
【符号の説明】
【０１１６】
21  ジオメトリプロセッサ
22  レンダラ
23  メモリ
24  グラフィックスオブジェクト選択ユニット
【図１】
2008165760.tif 000003
【図２】
2008165760.tif 000004
【図３】
2008165760.tif 000005