JP2010539579A - 3次元コンピュータ画像を生成する方法及びシステム - Google Patents
3次元コンピュータ画像を生成する方法及びシステム Download PDFInfo
- Publication number
- JP2010539579A JP2010539579A JP2010524560A JP2010524560A JP2010539579A JP 2010539579 A JP2010539579 A JP 2010539579A JP 2010524560 A JP2010524560 A JP 2010524560A JP 2010524560 A JP2010524560 A JP 2010524560A JP 2010539579 A JP2010539579 A JP 2010539579A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- image
- objects
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
【選択図】図5
Description
この構成に対する改善が、本出願人の英国特許第2298111号に説明されている。この文献では、画像は、部分領域又はタイルに分割され、タイルは、逐次処理することができる。可変タイルサイズを用い、完全なプリミティブオブジェクトの周囲に境界ボックスを投影し、それによって境界ボックス内に収まるタイルのみが処理を必要とすることが提案されている。これは、適切なタイルサイズを選択するために可視画面上のプリミティブオブジェクトの配分を判断することによって行われる。タイル内の各オブジェクトは、面及び頂点を有するいくつかの三角形として記憶される。他の形状も可能である。次に、様々なプリミティブオブジェクトを定義する面が、表示リストとして公知のリストに記憶され、それによって各タイルに対して同一の面を記憶する必要性が回避されるが、これは、多くの面から成る1つのオブジェクトがいくつかのタイルに出現することができると考えられるからである。表示リスト内のプリミティブオブジェクトを識別するオブジェクトポインタも同様に記憶される。タイル毎に1つのオブジェクトポインタリストが存在する。次に、タイルは、各タイル内の全てのプリミティブオブジェクトが処理されるまで、上述の光線投射技術を用いて逐次レンダリングすることができる。これは、特定のタイル内で可視でないことが既知であるオブジェクトをレンダリングする必要がないので有用な方法である。
また、大きいプリミティブ形状が画面上のタイルの多くを覆う時には、制御データは、多数回繰り返される。特定のメモリブロック内の頂点及びプリミティブのデータは、3D画像処理中に多くのタイルに対して多数回読み取られる可能性がある。この繰返しによってメモリ帯域幅が拡大する。一方、所定のタイル内で、プリミティブオブジェクトからの頂点及びプリミティブのうちの一部だけしか可視ではなかった場合には、プリミティブオブジェクトデータ全体をフェッチするのは効率的ではない。
好ましくは、段階iii)で導出された各制御データセットにおける最終メモリ位置に、小区域に関する次の制御データセットへのポインタが設けられ、最終メモリ位置は、キャッシュに記憶される。すなわち、制御データは、段階i)でオブジェクトデータが抽出された小区域内に含まれる全てのオブジェクトのオブジェクトデータへのリンクを含むことになるので、この小区域内に収まる1つよりも多くのオブジェクトが存在したとしても、キャッシュは、一度アクセスするだけでよい。
1つの好ましい実施形態では、段階i)は、段階b)で記憶されたオブジェクトデータから2つのオブジェクトに関するオブジェクトデータを抽出する段階を含む。
各個別区域は、好ましくは、矩形である。2つの個別区域は、好ましくは、1つが左に、1つが右に隣接する矩形の個別区域である。
1つの好ましい実施形態では、各オブジェクトは、複数の頂点を有する複数の形状を含み、段階c)で導出された制御データは、各オブジェクトに対して、オブジェクトのどの形状が個別区域のうちのどれに収まるかに関する指示、及びオブジェクトのどの頂点が個別区域のうちのどれに収まるかに関する指示を含む。
形状及び頂点が何処に収まるかというこの指示は、深度データが導出される時に、処理されている個別区域内に実際に収まらない形状又は頂点に関するデータを取得するいかなる不要なデータフェッチも存在しないことを意味する。
好ましくは、オブジェクトの形状のうちの一部が、個別区域の各々に収まるか、又はオブジェクトの形状のうちの全てが、個別区域のうちの1つのみに収まる場合には、ペイロードは、オブジェクトのどの形状が個別区域のうちのどれに収まるかに関する指示を含む。
好ましくは、深度データを導出する段階e)は、個別区域内の各オブジェクトに関するオブジェクトデータにリンクする制御データが1つ又は2つのいずれのメモリページアドレスを含むか否かを判断する段階を含む。
好ましくは、深度データを導出するための手段は、個別区域内の各オブジェクトに関するオブジェクトデータにリンクする制御データが1つ又は2つのいずれのメモリページアドレスを含むか否かを判断するように構成される。
本発明の一態様に関連して説明した態様は、本発明の別の態様にも適用可能である。
既存のシステムは、図1から6を参照して既に説明した。
本発明の例示的な実施形態は、図7から図11を参照して以下に説明する。
図4、図5、及び図6を参照して上述したように、標準的な構成では、TE405は、MTE403からプリミティブオブジェクト(各々がいくつかのプリミティブを含む)を取得し、このプリミティブオブジェクトをレンダリングするのに必要な最少タイル数を計算する。例えば、図5の第1のプリミティブオブジェクトをレンダリングするのに必要なタイルはC2,C3,C4,C5,B3,B4,B5,及びA4である。次に、この最少タイルリストは処理されて、プリミティブオブジェクトのアドレスへの頂点ポインタが、タイルに存在するプリミティブを表すプリミティブオブジェクトヘッダと共に動的割り当てメモリに制御ストリームとして書き込まれる。これを図6に示す。
すなわち、2つのプリミティブオブジェクトが収まるタイルでは、このタイルに関する制御ストリームの最後におけるアドレスは、従来のシステムでの2度ではなく、一度だけ読み取られる必要がある。これらのタイルに対しては、制御ストリームデータ書込みは、128ビットよりも小さい2回のマスクされた書込みではなく、128ビットの最大バースト書込みになる。TPCアクセスは、これらのタイルでは半分になる。本発明者は、一部の事例において制御ストリームデータに関する128ビットの最大バースト書込みを0%から25%に増大させることができ、一部の事例においてTPCキャッシュミスの百分率を12%から0.04%に低減することができることを見出した。
図8は、図4の簡略化したものであり、TE、ISP、及びメモリのみを示している。TE801は、制御データをメモリ809に書き込む。3Dパラメータフェッチ803は、頂点及びプリミティブのデータを読み取って画像処理を実施する。この実施形態では、この処理は、2つのサブISP/TSP805及び807によって並行して実施される。この構成では、3D画像処理の性能は、二倍になると予想される。
図8のシステムを有効に作動させるために、TE801は、タイルのうちの2つに対して互いに制御データを書き込む。この書込みを811に略示している。本方法は、タイル分割制御ストリームデータにおける重複を大幅に低減し、従って、良好なメモリ帯域幅の改善を与える。
プリミティブが多くのタイルに重なる時にメモリ帯域幅に対する大きな影響を回避するために、制御ストリーム内のマスクのデータサイズを最小に保つ必要がある。この実施形態は、頂点マスク及びプリミティブマスクが含まれる時に制御ストリームのサイズを縮小する符号化手法を用いる。
PF_MASK_CONTROL:
プリミティブマスク制御フラグ「PF_MASK_CONTROL」に対して2ビット(20:19)が用いられる。このフラグは、制御ストリーム内の何処に頂点マスク及びプリミティブマスクが含まれるかを判断する。この符号化では、制御ストリーム内の追加プリミティブマスクワードは任意的である。
PF_MASK_CONTROL=01=PF_MASK_CTRL_PRIM_MASK_PRESである場合には、PF_MASK_CONTROLは、プリミティブマスクワードが制御ストリームに含まれることを意味する。一方、PF_MASK_CONTROL≠01である場合には、プリミティブワードは、制御ストリームに含まれず、ヘッダに含まれる。
PF_MASK_CONTROL=00(PF_MASK_CTRL_PACKED_LEFT)である場合には、プリミティブマスク及び頂点マスクは、両方共にヘッダに含まれ、PF_MASK_BYTE0内に詰め込まれた1バイトプリミティブマスクは、32×16タイルの左半分に付属する。
PF_MASK_CONTROL=11(PF_MASK_CTRL_PACKED_RIGHT)である場合には、プリミティブマスク及び頂点マスクは、両方共にヘッダに含まれ、プリミティブマスクは、32×16タイルの右半分に付属する。
すなわち、PF_MASK_CONTROLのこれらの2ビットが、00,11,又は10である場合には、制御ストリームにいかなる追加プリミティブマスクも存在しない。
プリミティブマスク開始点「PF_PRM_START」に対して2ビット(18:17)が用いられる。PF_PRM_STARTは、プリミティブマスクがヘッダに含まれるか(PF_MASK_CONTROL≠01)、又は制御ストリームに追加マスクとして含まれるか(PF_MASK_CONTROL=01)のいずれであるかに依存して別々に用いられる。
PF_MASK_CONTROL≠01である場合には、この2ビットは、プリミティブマスクがヘッダに含まれる時のプリミティブマスク内でのPF_MASK_BYTE0のバイトオフセットを示している。
PF_MASK_CONTROL=01である場合には、この2ビットは、以下の通りに制御ストリームにどの追加マスクが含まれるかを示す上で用いられる。
これらの2つの16ビットプリミティブマスクは、32ビットプリミティブマスクワードへと組み合わされる。これを下記の表2に示す。
2つのビット、すなわち、PF_PRM_STARTが01である場合には、左手16×16タイルに対して1つの32ビットプリミティブマスクが制御ストリームに含まれる。これを下記の表3に示す。
2つのビット、すなわち、PF_PRM_STARTが10である場合には、右手16×16タイルに対して1つの32ビットプリミティブマスクが制御ストリームに含まれる。これを下記の表4に示す。
最後に、2つのビット、すなわち、PF_PRM_STARTが11である場合には、各16×16タイルに対して1つの2つの32ビットプリミティブマスクが制御ストリームに含まれる。これを下記の表5a及び5bに示す。
表1を再度参照すると、頂点マスク開始点「PF_VTM_START」に対して1ビット(16)が用いられる。PF_VTM_STARTは、プリミティブマスクがヘッダに含まれるか(PF_MASK_CONTROL≠01)、又は制御ストリーム内の追加マスクとして含まれるか(PF_MASK_CONTROL=01)のいずれであるかに依存して別々に用いられる。
PF_MASK_CONTROL≠01であり、すなわち、プリミティブマスクがヘッダに含まれる場合には、PF_VTM_STARTのビットが設定され、すなわち、=1である場合に、PF_VTM_STARTは、PF_MASK_BYTE1(下記に解説することになる)が、16ビット頂点マスクの上位8ビットであるバイト1を反映することを示している。このビットが消去され、すなわち、=0である場合には、PF_VTM_STARTは、PF_MASK_BYTE1が、16ビット頂点マスクの下位8ビットであるバイト0を含むことを示している。
「PF_MASK_BYTE1」に対して8ビットが用いられる。PF_MASK_BYTE1は、PF_MASK_CONTROL及びPF_VTM_STARTのステータスに依存する。PF_MASK_CONTROL≠01、すなわち、プリミティブマスクが、ヘッダ内のPF_MASK_BYTE0内に含まれ、かつPF_VTM_STARTが1に等しい場合には、これらの8ビットは、16ビット頂点マスクの上位8ビットである。一方、PF_MASK_CONTROL≠01であり、かつPF_VTM_STARTが0に等しい場合には、これらの8ビットは、16ビット頂点マスクの下位8ビットである。
「PF_MASK_BYTE0」に対して8ビットが用いられる。PF_MASK_BYTE0は、PF_MASK_CONTROL及びPF_PRM_STARTのステータスに依存する。PF_MASK_CONTROL=01、すなわち、プリミティブマスクが、ヘッダではなく制御ストリームに含まれる場合には、16ビット頂点マスクは、PF_MASK_BYTE0及びPF_MASK_BYTE1内にあり、PF_MASK_BYTE0は、頂点マスクの下位8ビットである。一方、PF_MASK_CONTROL≠01である場合には、プリミティブマスクからの1つの非0バイトが、PF_MASK_BYTE0内にある。この場合、この非0バイトプリミティブマスクのバイトオフセットは、PF_PRM_STARTからのものである。
上述のように、本発明の第3の態様によると、メモリ空間を用いるより効率的な手法が達成される。次に、第3の態様の実施形態を以下に説明する。
図9では、制御ストリームは、第1のプリミティブオブジェクトに対してプリミティブオブジェクトヘッダを含み、次に、このプリミティブオブジェクトに対する頂点ポインタを含む。従って、このプリミティブオブジェクトに関するオブジェクトデータは、第1のメモリページ上にのみ記憶される。しかし、第2のプリミティブオブジェクトでは、制御ストリームは、プリミティブオブジェクトヘッダ、頂点ポインタ、及び頂点リンクポインタを含む。この頂点リンクポインタは、第2のメモリページへの頂点ポインタであり、頂点ポインタが第1のメモリページを指し示すのに対して、頂点リンクポインタは、第2のメモリページを指し示すことが分る。従って、このプリミティブオブジェクトに関するオブジェクトデータは、第1のメモリページ及び第2のメモリページという2つのメモリページにわたっている。
ページを各マクロタイルに割り当てられたままに保つために、MTEが連続書込みを行う時に、DPMは、一部分が各マクロタイルに割り当てられた1つ又は複数のルックアップテーブルページを維持する。MTEに割り当てられたページは、連続メモリページアドレスではなく、ルックアップテーブル内の連続インデックスである。各マクロタイルに対して、ルックアップテーブル内には、データが書き込まれる実際のメモリページへのポインタを与える部分が存在する。ルックアップテーブル内のこれらの部分は連続し、この連続性は、これらの部分が開始時点にDPMによって割り当てられることから得ることができる。
読取段階中に、圧縮/解凍ユニットは、メモリから読み取られたデータを解凍する。ページ内の最後のワードは、深度データ自体ではなく、常に、新しいページアドレスへのトークンであるページ内の最後のワードのヘッダ(0x80000000)を解析することにより、圧縮/解凍ユニットは、最後のワードが新しいページにリンクするためのアドレスであるのか、又は空白ワード(0000...)であるのかを判断する。最後のワードからのアドレスは、リンクページヘッダが設定されている場合に、リンクされたページから圧縮データをフェッチし続けるのに用いられる。
本発明者は、この実施形態を適用した後に、圧縮zバッファによって用いられるメモリ空間の平均で35%の低減を達成することができることを見出した。
511,513,515,517,519 第2のプリミティブオブジェクトの頂点
C1,C2,C3 タイル
Claims (24)
- 少なくとも1つの形状を各々が含む複数のオブジェクトを生成される画像が含む3次元コンピュータ画像を生成する方法であって、
a)画像を複数の矩形区域に細分割し、かつ各矩形区域を複数のより小さい区域に細分割する段階と、
b)前記画像内のオブジェクトの少なくとも一部に対して、該オブジェクト内の各形状に関する面データ及び頂点データと、該面データと該頂点データの間のポインタとを含むオブジェクトデータをメモリに記憶する段階と、
c)前記画像内の各小区域に対して、
i)段階b)で記憶された前記オブジェクトデータから2つ又はそれよりも多くのオブジェクトに関するオブジェクトデータを抽出する段階、
ii)前記画像内の前記小区域のうちのどれが、段階i)でオブジェクトデータが抽出された前記オブジェクトのうちの1つ又は全てを含むかを計算する段階、
iii)段階ii)で計算された前記小区域の各々に対して、該小区域に含まれる前記オブジェクト又はその各々に関するオブジェクトデータにリンクする制御データセットを導出する段階、及び
iv)b)での全てのオブジェクトに対する制御データが導出されるまで段階i)からiii)を繰り返す段階、
により、前記小区域内の各オブジェクトに関する前記オブジェクトデータにリンクする制御データを導出する段階と、
d)前記制御データ及び前記オブジェクトデータから各矩形区域に関する深度データを導出する段階と、
e)表示に向けて前記深度データから画像データ及びシェーディングデータを導出する段階と、
を含むことを特徴とする方法。 - 段階iii)で導出された各制御データセットに対する最終メモリ位置において、ポインタが、前記小区域に関する次の制御データセットに対して設けられ、該最終メモリ位置は、キャッシュに記憶されることを特徴とする請求項1に記載の方法。
- 段階b)は、オブジェクトデータを前記画像内の全てのオブジェクトに対してメモリに記憶する段階を含むことを特徴とする請求項1又は請求項2に記載の方法。
- 段階b)は、オブジェクトデータを前記画像内の所定数のオブジェクトに対してメモリに記憶する段階を含み、
方法が、段階e)の前に、前記画像内の全ての前記オブジェクトに対してオブジェクトデータを記憶するまで段階b)、段階c)、及び段階d)を繰り返す段階を更に含む、
ことを特徴とする請求項1又は請求項2に記載の方法。 - 段階i)は、段階b)で記憶された前記オブジェクトデータから2つのオブジェクトに関するオブジェクトデータを抽出する段階を含むことを特徴とする請求項1から請求項4のいずれか1項に記載の方法。
- 少なくとも1つの形状を各々が含む複数のオブジェクトを生成される画像が含む3次元コンピュータ画像を生成するための装置であって、
a)画像を複数の矩形区域に細分割し、かつ各矩形区域を複数のより小さい区域に細分割するための手段と、
b)前記画像内のオブジェクトの少なくとも一部に対して、該オブジェクト内の各形状に関する面データ及び頂点データと、該面データと該頂点データの間のポインタとを含むオブジェクトデータをメモリに記憶するための手段と、
c)前記画像内の各小区域に対して、
i)前記記憶するための手段によって記憶された前記オブジェクトデータから2つ又はそれよりも多くのオブジェクトに関するオブジェクトデータを抽出し、
ii)前記画像内の前記小区域のうちのどれが、オブジェクトデータが抽出された前記オブジェクトのうちの1つ又は全てを含むかを計算し、
iii)ii)で計算された前記小区域の各々に対して、該小区域に含まれる前記オブジェクト又はその各々に関するオブジェクトデータにリンクする制御データセットを導出し、かつ
iv)b)での全てのオブジェクトに対する制御データが導出されるまでi)からiii)を繰り返す、
ように構成され、前記小区域内の各オブジェクトに関する前記オブジェクトデータにリンクする制御データを導出するための導出手段と、
d)前記制御データ及び前記オブジェクトデータから各矩形区域に関する深度データを導出するための手段と、
e)表示に向けて前記深度データから画像データ及びシェーディングデータを導出するための手段と、
を含むことを特徴とする装置。 - 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成する方法であって、
a)画像を複数の個別区域に細分割する段階と、
b)前記画像内のオブジェクトの少なくとも一部に対して、オブジェクトデータをメモリに記憶する段階と、
c)一度に2つの個別区域に対して、該2つの個別区域内の前記オブジェクトデータにリンクする制御データを導出する段階と、
d)i)前記制御データ及び前記オブジェクトデータから第1の個別区域に関する深度データを導出し、かつ表示に向けて該深度データから該第1の個別区域に関する画像データ及びシェーディングデータを導出し、かつ
ii)前記制御データ及び前記オブジェクトデータから第2の個別区域に関する深度データを導出し、かつ表示に向けて該深度データから該第2の個別区域に関する画像データ及びシェーディングデータを導出する、
ことを並行して行うことにより、前記2つの個別区域に3次元コンピュータ画像を生成する段階と、
e)画像が全ての前記個別区域に対して生成されるまで段階c)及び段階d)を繰り返す段階と、
を含むことを特徴とする方法。 - 各オブジェクトが、複数の頂点を有する複数の形状を含み、段階c)で導出された前記制御データは、各オブジェクトに対して、該オブジェクトのどの形状が前記個別区域のどれに収まるかに関する指示、及び該オブジェクトのどの頂点が該個別区域のどれに収まるかに関する指示を含むことを特徴とする請求項7に記載の方法。
- 前記制御データは、ヘッダ部分及びペイロード部分を含むことを特徴とする請求項8に記載の方法。
- 前記ヘッダ部分は、前記オブジェクトのどの頂点が前記個別区域のどれに収まるかに関する前記指示を含むことを特徴とする請求項9に記載の方法。
- 前記オブジェクトの前記形状の一部が前記個別区域の各々に収まるか、又は該オブジェクトの該形状の全てが該個別区域の1つのみに収まる場合には、前記ペイロードは、該オブジェクトのどの形状が該個別区域のどれに収まるかに関する前記指示を含むことを特徴とする請求項9又は請求項10に記載の方法。
- 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成するための装置であって、
a)画像を複数の個別区域に細分割するための手段と、
b)前記画像内のオブジェクトの少なくとも一部に対して、オブジェクトデータをメモリに記憶するための手段と、
c)一度に2つの個別区域に対して、該2つの個別区域内の前記オブジェクトデータにリンクする制御データを導出するための導出手段と、
d)前記2つの個別区域に3次元コンピュータ画像を生成するための画像発生器と、
を含み、
前記画像発生器は、第1の画像発生器と、それと並列の第2の画像発生器とを含み、
前記第1の画像発生器は、前記制御データ及び前記オブジェクトデータから第1の個別区域に関する深度データを導出し、かつ表示に向けて該深度データから該第1の個別区域に関する画像データ及びシェーディングデータを導出するように構成され、
前記第2の画像発生器は、前記制御データ及び前記オブジェクトデータから第2の個別区域に関する深度データを導出し、かつ表示に向けて該深度データから該第2の個別区域に関する画像データ及びシェーディングデータを導出するように構成される、
ことを特徴とする装置。 - 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成する方法であって、
a)画像を複数の個別区域に細分割する段階と、
b)前記画像内のオブジェクトの少なくとも一部に対して、第1のエンジンが、メモリページに分割されているメモリにオブジェクトデータを記憶する段階と、
c)b)でオブジェクトデータが記憶された各オブジェクトに対して、該オブジェクトデータが1つのメモリページ上に記憶された場合に、前記第1のエンジンが、このメモリページアドレスを第2のエンジンに送り、又は該オブジェクトデータが2つのメモリページ上に記憶された場合に、該第1のエンジンが、これらのメモリページアドレスを該第2のエンジンに送る段階と、
d)前記画像内の各個別区域に対して、より小さな前記区域内の各オブジェクトに関する前記オブジェクトデータにリンクし、かつb)で記憶された該オブジェクトデータが1つのメモリページ上に記憶された場合に前記1つのメモリページアドレスを含み、b)で記憶された該オブジェクトデータが2つのメモリページ上に記憶された場合に前記2つのメモリページアドレスを含む制御データを前記第2のエンジンが導出する段階と、
e)前記制御データ及び前記オブジェクトデータから各個別区域に関する深度データを導出する段階と、
f)表示に向けて前記深度データから画像データ及びシェーディングデータを導出する段階と、
を含むことを特徴とする方法。 - メモリマネージャが、前記メモリのページを前記画像内の前記オブジェクトに割り当てる段階を更に含むことを特徴とする請求項13に記載の方法。
- 前記メモリマネージャは、2ページのメモリを各オブジェクトに自動的に割り当てることを特徴とする請求項14に記載の方法。
- 深度データを導出する段階e)は、前記個別区域内の各オブジェクトに関するオブジェクトデータにリンクする前記制御データが、1つ又は2つのいずれのメモリページアドレスを含むか否かを判断する段階を含むことを特徴とする請求項13から請求項15のいずれか1項に記載の方法。
- 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成するための装置であって、
a)画像を複数の個別区域に細分割するための手段と、
b)前記画像内のオブジェクトの少なくとも一部に対してオブジェクトデータをメモリに記憶するための第1のエンジンと、
c)前記個別区域内の各オブジェクトに関する前記オブジェクトデータにリンクする制御データを導出するための第2のエンジンと、
d)前記制御データ及び前記オブジェクトデータから各個別区域に関する深度データを導出するための手段と、
f)表示に向けて前記深度データから画像データ及びシェーディングデータを導出するための手段と、
を含み、
前記メモリは、メモリページに分割され、
前記第1のエンジンは、オブジェクトデータが記憶された各オブジェクトに対して、i)該オブジェクトデータが1つのメモリページ上に記憶された場合に、このメモリページアドレスを前記第2のエンジンに送り、ii)該オブジェクトデータが2つのメモリページ上に記憶された場合に、これらのメモリページアドレスを該第2のエンジンに送るように構成され、かつ
前記制御データは、前記第1のエンジンによって記憶された前記オブジェクトデータが1つのメモリページ上に記憶された場合に、前記1つのメモリページアドレスを含み、又は該第1のエンジンによって記憶された該オブジェクトデータが2つのメモリページ上に記憶された場合に、前記2つのメモリページアドレスを含む、
ことを特徴とする装置。 - 前記メモリのページを前記画像内の前記オブジェクトに割り当てるためのメモリマネージャを更に含むことを特徴とする請求項17に記載の装置。
- 前記メモリマネージャは、2ページのメモリを各オブジェクトに自動的に割り当てるように構成されることを特徴とする請求項17に記載の装置。
- 深度データを導出するための手段は、前記個別区域内の各オブジェクトに関するオブジェクトデータにリンクする前記制御データが、1つ又は2つのいずれのメモリページアドレスを含むか否かを判断するように構成されることを特徴とする請求項17から請求項19のいずれか1項に記載の装置。
- 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成する方法であって、
a)画像を複数の個別区域に細分割する段階と、
b)メモリページに分割され、かつルックアップテーブルを含むメモリを準備する段階と、
c)メモリマネージャが、前記ルックアップテーブル内の2つ又はそれよりも多くの連続部分を各個別区域に割り当て、該ルックアップテーブル内の各割り当てられた部分が、その個別区域に関するオブジェクトデータを記憶するのに利用可能なメモリページを指し示す段階と、
d)前記画像内のオブジェクトの少なくとも一部に対して、第1のエンジンが、各個別区域に関して、オブジェクトデータを段階c)でその個別区域に割り当てられた前記メモリページに記憶する段階と、
e)各個別区域に対して、前記第1のエンジンが、前記ルックアップテーブル内の前記2つ又はそれよりも多くの割り当て部分のメモリアドレスを第2のエンジンに送る段階と、
f)前記画像内の各個別区域に対して、前記第2のエンジンが、前記第1のエンジンから送られた前記メモリアドレスを用いて、より小さな前記区域内の各オブジェクトに関する前記オブジェクトデータにリンクする制御データを導出する段階と、
g)前記画像内の各個別区域に対して、前記第1のエンジンから送られた前記メモリアドレスを用いて、前記制御データ及び前記オブジェクトデータから深度データを導出する段階と、
h)表示に向けて前記深度データから画像データ及びシェーディングデータを導出する段階と、
を含むことを特徴とする方法。 - 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成するための装置であって、
a)画像を複数の個別区域に細分割するための手段と、
b)メモリページに分割され、かつルックアップテーブルを含むメモリと、
c)前記ルックアップテーブル内の2つ又はそれよりも多くの連続部分を各個別区域に割り当て、該ルックアップテーブル内の各割り当てられた部分が、その個別区域に関するオブジェクトデータを記憶するのに利用可能なメモリページを指し示すメモリマネージャと、
d)前記画像内のオブジェクトの少なくとも一部に対して、かつ各個別区域に関して、オブジェクトデータを前記メモリマネージャによってその個別区域に割り当てされた前記メモリページに記憶するように構成された第1のエンジンと、
e)前記ルックアップテーブル内の前記2つ又はそれよりも多くの割り当てられた部分の各個別区域に対するメモリアドレスを前記第1のエンジンから受け取るように構成され、かつ該メモリアドレスを用いて、その個別区域内の各オブジェクトに関する前記オブジェクトデータにリンクする制御データを導出するように構成された第2のエンジンと、
g)前記メモリアドレスを用いて、前記画像内の各個別区域に関して前記制御データ及び前記オブジェクトデータから深度データを導出するための手段と、
h)表示に向けて前記深度データから画像データ及びシェーディングデータを導出するための手段と、
を含むことを特徴とする装置。 - 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成する方法であって、
a)画像を複数の個別区域に細分割する段階と、
b)前記画像内のオブジェクトの少なくとも一部に対して、オブジェクトデータを第1のメモリに記憶する段階と、
c)前記オブジェクトデータから各個別区域に関する深度データを導出する段階と、
d)リンク部分として割り当てられた部分を各ページが含む複数のメモリページを含む、前記深度データを記憶するための第2のメモリを準備する段階と、
e)各個別区域に関する前記深度データを前記第2のメモリに記憶し、個別区域に関する該深度データが1つのメモリページ上に記憶された場合に、そうであることをこのメモリページの前記リンク部分に示し、又は個別区域に関する該深度データが1つよりも多いメモリページ上に記憶された場合に、この個別区域に対する各メモリページの該リンク部分を用いて、この個別区域に対する次のメモリページを指し示す段階と、
f)更に別のオブジェクトデータを前記第1のメモリ内にロードして、既存の内容の少なくとも一部を置換する段階と、
g)各個別区域に関して前記記憶された深度データをこの個別区域に対する前記又は各メモリページの前記リンク部分を読み取ることによって取り出す段階と、
h)前記新しいオブジェクトデータ及び前記記憶された深度データからの更新された深度データを導出し、該更新された深度データを記憶して以前に記憶された深度データを置換する段階と、
i)前記メモリ内にロードされる更に別のオブジェクトデータがなくなるまで段階e)、f)、g)、及びh)を繰り返す段階と、
j)表示に向けて前記深度データから画像データ及びシェーディングデータを導出する段階と、
を含むことを特徴とする方法。 - 生成される画像が複数のオブジェクトを含む3次元コンピュータ画像を生成するための装置であって、
a)画像を複数の個別区域に細分割するための手段と、
b)前記画像内のオブジェクトの少なくとも一部に関するオブジェクトデータを記憶するための第1のメモリと、
c)前記オブジェクトデータから各個別区域に関する深度データを導出するための手段と、
d)リンク部分として割り当てられた部分を各ページが含む複数のメモリページを含む、前記深度データを記憶するための第2のメモリと、
e)各個別区域に関する前記深度データを前記第2のメモリに記憶し、個別区域に関する該深度データが1つのメモリページ上に記憶された場合に、そうであることをこのメモリページの前記リンク部分に示し、又は個別区域に関する該深度データが1つよりも多いメモリページ上に記憶された場合に、この個別区域に対する各メモリページの該リンク部分を用いて、この個別区域に対する次のメモリページを指し示すための手段と、
f)更に別のオブジェクトデータを前記第1のメモリ内にロードして、既存の内容の少なくとも一部を置換するための手段と、
g)各個別区域に関して前記記憶された深度データをこの個別区域に対する前記又は各メモリページの前記リンク部分を読み取ることによって取り出すための手段と、
h)前記新しいオブジェクトデータ及び前記記憶された深度データからの更新された深度データを導出し、該更新された深度データを記憶して以前に記憶された深度データを置換するための手段と、
i)表示に向けて前記深度データから画像データ及びシェーディングデータを導出するための手段と、
を含むことを特徴とする装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0717781.9 | 2007-09-12 | ||
GB0717781A GB2452731B (en) | 2007-09-12 | 2007-09-12 | Methods and systems for generating 3-dimensional computer images |
PCT/GB2008/002937 WO2009034294A2 (en) | 2007-09-12 | 2008-09-01 | Methods and systems for generating 3-dimensional computer images |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010539579A true JP2010539579A (ja) | 2010-12-16 |
JP5295246B2 JP5295246B2 (ja) | 2013-09-18 |
Family
ID=38658823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010524560A Active JP5295246B2 (ja) | 2007-09-12 | 2008-09-01 | 3次元コンピュータ画像を生成する方法及びシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8723860B2 (ja) |
EP (2) | EP3401877B1 (ja) |
JP (1) | JP5295246B2 (ja) |
GB (2) | GB2461821B (ja) |
WO (1) | WO2009034294A2 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0723536D0 (en) * | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
GB0823254D0 (en) | 2008-12-19 | 2009-01-28 | Imagination Tech Ltd | Multi level display control list in tile based 3D computer graphics system |
GB0823468D0 (en) * | 2008-12-23 | 2009-01-28 | Imagination Tech Ltd | Display list control stream grouping in tile based 3D computer graphics systems |
US9058685B2 (en) * | 2010-03-11 | 2015-06-16 | Broadcom Corporation | Method and system for controlling a 3D processor using a control list in memory |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US8922575B2 (en) * | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US8902228B2 (en) | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
US10242481B2 (en) | 2012-03-15 | 2019-03-26 | Qualcomm Incorporated | Visibility-based state updates in graphical processing units |
US8976188B1 (en) * | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
US10186070B2 (en) * | 2012-11-02 | 2019-01-22 | Imagination Technologies Limited | On demand geometry and acceleration structure creation |
KR102089471B1 (ko) | 2012-11-30 | 2020-03-17 | 삼성전자주식회사 | 타일 기반 렌더링 방법 및 장치 |
GB201223089D0 (en) | 2012-12-20 | 2013-02-06 | Imagination Tech Ltd | Hidden culling in tile based computer generated graphics |
US9087410B2 (en) | 2013-01-17 | 2015-07-21 | Qualcomm Incorporated | Rendering graphics data using visibility information |
RU2013109063A (ru) * | 2013-02-28 | 2014-09-10 | ЭлЭсАй Корпорейшн | Процессор изображения с многоканальным интерфейсом между уровнем предварительной обработки и одним или несколькими более высокими уровнями |
GB2506706B (en) | 2013-04-02 | 2014-09-03 | Imagination Tech Ltd | Tile-based graphics |
KR102116708B1 (ko) * | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
GB2514777B (en) * | 2013-06-03 | 2018-12-19 | Displaylink Uk Ltd | Management of memory for storing display data |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
GB2524121B (en) * | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
US10621690B2 (en) * | 2015-09-17 | 2020-04-14 | Qualcomm Incorporated | Storing bandwidth-compressed graphics data |
KR102454893B1 (ko) | 2015-09-30 | 2022-10-14 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치의 동작 방법 |
US10643374B2 (en) | 2017-04-24 | 2020-05-05 | Intel Corporation | Positional only shading pipeline (POSH) geometry data processing with coarse Z buffer |
CN111508056B (zh) * | 2019-01-29 | 2023-04-18 | 畅想科技有限公司 | 利用扩展变换级掩码的图形处理系统 |
GB2591803B (en) | 2020-02-07 | 2022-02-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
GB2591802B (en) | 2020-02-07 | 2022-03-23 | Imagination Tech Ltd | Graphics processing method and system for rendering items of geometry based on their size |
GB2586297B (en) * | 2020-02-10 | 2022-03-02 | Imagination Tech Ltd | Data structures, methods and tiling engines for storing tiling information in a graphics processing system |
US20220198735A1 (en) * | 2020-12-21 | 2022-06-23 | Intel Corporation | Hierarchical tiling mechanism |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0896150A (ja) * | 1994-09-28 | 1996-04-12 | Toshiba Corp | 図形描画装置及び図形データ分割方法 |
JP2002529871A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング |
JP2002529868A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング |
JP2003536153A (ja) * | 2000-06-08 | 2003-12-02 | イマジネイション テクノロジーズ リミテッド | 三次元イメージレンダリングのためのタイリング及び圧縮 |
JP2004537129A (ja) * | 2001-07-24 | 2004-12-09 | イマジネイション テクノロジーズ リミテッド | 3次元グラフィックシステム |
US7102646B1 (en) * | 1997-11-25 | 2006-09-05 | Nvidia U.S. Investment Company | Demand-based memory system for graphics applications |
GB2442266A (en) * | 2006-09-29 | 2008-04-02 | Imagination Tech Ltd | Improvements in memory management for use with systems generating 3D computer images |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9315852D0 (en) | 1993-07-30 | 1993-09-15 | Video Logic Ltd | Shading three-dimensional images |
US5561750A (en) * | 1994-09-22 | 1996-10-01 | Seiko Epson Corporation | Z-buffer tag memory organization |
GB2336983B (en) | 1995-01-31 | 2000-01-19 | Videologic Ltd | Improvements relating to computer 3D rendering systems |
GB2343598B (en) * | 1998-11-06 | 2003-03-19 | Videologic Ltd | Image processing apparatus |
US6631419B1 (en) * | 1999-09-22 | 2003-10-07 | Juniper Networks, Inc. | Method and apparatus for high-speed longest prefix and masked prefix table search |
US6731814B2 (en) * | 2000-05-01 | 2004-05-04 | Xerox Corporation | Method for compressing digital documents with control of image quality and compression rate |
GB2387094B (en) | 2002-03-26 | 2005-12-07 | Imagination Tech Ltd | 3-D Computer graphics rendering system |
JP4082194B2 (ja) | 2002-12-03 | 2008-04-30 | セイコーエプソン株式会社 | 画像処理方法および画像処理装置ならびに画像処理プログラム |
US6885376B2 (en) * | 2002-12-30 | 2005-04-26 | Silicon Graphics, Inc. | System, method, and computer program product for near-real time load balancing across multiple rendering pipelines |
GB0307095D0 (en) | 2003-03-27 | 2003-04-30 | Imagination Tech Ltd | Improvements to a tiling system for 3d rendered graphics |
US7536428B2 (en) * | 2006-06-23 | 2009-05-19 | Microsoft Corporation | Concurrent read and write access to a linked list where write process updates the linked list by swapping updated version of the linked list with internal list |
-
2007
- 2007-09-12 GB GB0916116A patent/GB2461821B/en active Active
- 2007-09-12 GB GB0717781A patent/GB2452731B/en active Active
- 2007-11-21 US US11/986,491 patent/US8723860B2/en active Active
-
2008
- 2008-09-01 JP JP2010524560A patent/JP5295246B2/ja active Active
- 2008-09-01 EP EP18176467.1A patent/EP3401877B1/en active Active
- 2008-09-01 WO PCT/GB2008/002937 patent/WO2009034294A2/en active Application Filing
- 2008-09-01 EP EP08830595.8A patent/EP2195782B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0896150A (ja) * | 1994-09-28 | 1996-04-12 | Toshiba Corp | 図形描画装置及び図形データ分割方法 |
US7102646B1 (en) * | 1997-11-25 | 2006-09-05 | Nvidia U.S. Investment Company | Demand-based memory system for graphics applications |
JP2002529871A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング |
JP2002529868A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング |
JP2003536153A (ja) * | 2000-06-08 | 2003-12-02 | イマジネイション テクノロジーズ リミテッド | 三次元イメージレンダリングのためのタイリング及び圧縮 |
JP2004537129A (ja) * | 2001-07-24 | 2004-12-09 | イマジネイション テクノロジーズ リミテッド | 3次元グラフィックシステム |
GB2442266A (en) * | 2006-09-29 | 2008-04-02 | Imagination Tech Ltd | Improvements in memory management for use with systems generating 3D computer images |
Also Published As
Publication number | Publication date |
---|---|
WO2009034294A3 (en) | 2009-08-13 |
GB2461821B (en) | 2010-06-30 |
US8723860B2 (en) | 2014-05-13 |
EP3401877A1 (en) | 2018-11-14 |
GB2461821A (en) | 2010-01-20 |
GB0916116D0 (en) | 2009-10-28 |
EP2195782B1 (en) | 2018-11-07 |
GB2452731A (en) | 2009-03-18 |
EP2195782A2 (en) | 2010-06-16 |
JP5295246B2 (ja) | 2013-09-18 |
GB2452731B (en) | 2010-01-13 |
WO2009034294A2 (en) | 2009-03-19 |
GB0717781D0 (en) | 2007-10-24 |
US20090066694A1 (en) | 2009-03-12 |
EP3401877B1 (en) | 2021-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5295246B2 (ja) | 3次元コンピュータ画像を生成する方法及びシステム | |
JP5545555B2 (ja) | 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良 | |
JP5579741B2 (ja) | タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 | |
JP4851049B2 (ja) | 三次元イメージレンダリングのためのタイリング及び圧縮 | |
US10262459B1 (en) | Multiple simultaneous bin sizes | |
KR102046676B1 (ko) | 그래픽스 프로세싱에서의 패치된 쉐이딩 | |
US8698820B2 (en) | Graphics processing systems | |
JP2012513053A (ja) | タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト | |
US7385608B1 (en) | State tracking methodology | |
KR20190005766A (ko) | 그래픽 처리 | |
JPH09282470A (ja) | グラフィック処理システム | |
US11734869B2 (en) | Graphics processing | |
WO2023094829A1 (en) | Cache arrangements in data processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110816 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121108 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130207 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130308 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130315 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130403 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130508 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130611 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5295246 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |