JPH10111948A - テクセル・データへの連続的メモリ割り当て方法 - Google Patents
テクセル・データへの連続的メモリ割り当て方法Info
- Publication number
- JPH10111948A JPH10111948A JP9167040A JP16704097A JPH10111948A JP H10111948 A JPH10111948 A JP H10111948A JP 9167040 A JP9167040 A JP 9167040A JP 16704097 A JP16704097 A JP 16704097A JP H10111948 A JPH10111948 A JP H10111948A
- Authority
- JP
- Japan
- Prior art keywords
- level
- memory
- map
- data
- block
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
いて連続的メモリにテクセル・データをダウンロードす
る方法を提供する。 【解決手段】最初のレベルに関するテクセル・データを
ダウンロードする時、当該テクスチャに関連するすべて
のMIPマップに必要な連続的メモリ量を割り当て、そ
のレベル番号にとって適切なメモリ位置に記憶する。後
続のいくつかのMIPマップをダウンロードする際、そ
れらの各々が、最初にダウンロードされたMIPマップ
とレベル番号およびサイズの観点から整合しているか否
かを判断し、整合していれば、上記連続メモリの適切な
位置へ記憶し、整合していない場合一時的メモリへ記憶
する。基底レベルのデータがダウンロードされる都度、
上記一時メモリに記憶されたデータを検査して、整合性
があるレベルのデータは当該基底レベルが記憶されてい
る連続的メモリへ移動する。
Description
ラフィックス・システムにおけるキャッシュの一貫性を
維持する方法に関するもので、特に、テクスチャ・マッ
ピング・コンピュータ・グラフィックス・システムのテ
クスチャ・マップのソフトウェア・メモリ管理に関する
ものである。
アメリカ合衆国特許出願第08/486,447号に記載されてい
るが、その内容は、ユーザのテクスチャのコピーをテク
スチャ照会メカニズムを提供するソフトウェアに記憶
し、一度にすべてのテクセルを収納することのできる十
分なメモリがない場合でもハードウェア上のテクセルの
キャッシュの実行を可能にさせる技術に関するものであ
る。
システムにおいては、表示画面上に表されるべきオブジ
ェクトは、複数のグラフィックス・プリミティブに分解
される。プリミティブは、グラフィックス・ピクチャの
基本コンポーネントであって、点、線、ベクトルおよび
三角形のような多角形を含む場合がある。典型的には、
ハードウェア/ソフトウェア方式の実施によって、画面
上に表される1つまたは複数のオブジェクトの像を表す
グラフィックス・プリミティブが、2次元表示画面上に
描画(すなわちレンダリング)される。
するプリミティブは、典型的には、プリミティブ・デー
タとして各プリミティブを定義するホスト・コンピュー
タから提供される。例えば、プリミティブが三角形であ
る場合、ホスト・コンピュータは、各頂点をx,y,z
座標およびR,G,Bカラー値を使用して表すことによ
ってそのプリミティブを定義する。各プリミティブを表
すためオンにセットされるべき表示画面ピクセルおよび
各ピクセルに関するR,G,B値を計算する際に、レン
ダリング・ハードウェアはプリミティブ・データを補間
する。
表示のため、複雑な3次元オブジェクトを表現またはモ
デル化できる十分現実的な方法を持つことができなかっ
た。そのようなシステムによって画面表示される画像
は、円滑な表面の欠如したテクスチャ、でっぱり、ひっ
かき傷、陰影またはその他モデル化されているオブジェ
クトに存在する表面細部を露出させた。その結果、表面
細部を改善した画像を表示するため種々の方法が開発さ
れた。テクスチャ・マッピングは、そのような方法の1
つである。この方法は、ソース画像(本明細書では「テ
クスチャ」と呼ぶ)を3次元オブジェクト表面上へマッ
プし、その後その3次元オブジェクトを2次元グラフィ
ックス表示画面へマップすることによって、画像表示を
行う。一般的にはマップされたテクスチャである表面細
部属性は、カラー、鏡面反射、ベクトル摂動、反射、透
明度、影、表面不規則および階調を含む。
数の点からなるテクスチャ・エレメント(すなわち「テ
クセル」)を、テクスチャをマップする対象であるオブ
ジェクトの表示部分の各点エレメント(すなわち「ピク
セル」)に当てはめることを伴う。テクスチャ・マッピ
ング・ハードウェアは、テクスチャ・マップにおけるテ
クセルがオブジェクトを表現する表示画面上のピクセル
にどのように対応するかを示す情報を伝統的に備えてい
る。テクスチャ・マップにおける各テクセルは、2次元
テクスチャ・マップにおけるその位置を識別するSおよ
びT座標によって定義される。各ピクセル毎に、それに
マップする対応する1つまたは複数のテクセルが、テク
スチャ・マップから取り出され、表示画面上でテクスチ
ャ・オブジェクトを表現するピクセルのために生成され
る最終的R,G,B値に組み込まれる。
がテクスチャ・マップにおける単一のテクセルと必ずし
も一対一で対応しない点は注意されるべきである。例え
ば、オブジェクトが表示画面に表される視認ポートに接
近すればする程、オブジェクトは大きく拡大される。オ
ブジェクトが表示画面上で拡大されるにつれ、テクスチ
ャの表示は次第に詳細になる。従って、オブジェクトが
表示画面のかなりの部分を消費する時、そのオブジェク
トを表示画面で表すため多数のピクセルが使用され、オ
ブジェクトを表す各ピクセルがテクスチャ・マップにお
ける単一のテクセルと一対一の対応関係でマップ(対応
づけ)するか、あるいは単一のテクセルが複数のピクセ
ルにマップする。しかし、オブジェクトが表示画面の比
較的小さい部分を占める時、オブジェクトを表すため比
較的少数のピクセルが使用され、その結果、テクスチャ
の表現は粗くなり、各ピクセルが複数のテクセルにマッ
プする。更に、1つのテクスチャがオブジェクトの小さ
い部分にマップされる時、各ピクセルは複数のテクセル
にマップするかもしれない。複数のテクセルにマップす
るピクセルの各々毎に、目的のテクセル・データが計算
される。1つのピクセルが複数のテクセルにマップする
のが一般的であるので、1つのピクセルに対応するテク
セル・データは、典型的には、そのピクセルにマップす
る複数テクセルの平均を表現する。
システムは、典型的には、レンダリングされているオブ
ジェクトに関するテクスチャを表現するデータを記憶す
るローカル・メモリを含む。上述の通り、1つのピクセ
ルは複数のテクセルに対応する。テクスチャ・マッピン
グ・ハードウェアが1つのピクセルに対応する多数のテ
クセルをローカル・メモリから読み取って平均値を生成
しなければならないとすれば、多数のメモリ読取りと多
くのテクセル値の平均算出が必要となり、そのため、処
理時間の浪費とシステム性能の低下を生む。
関して「MIP」マップと呼ばれる一連のマップを作成
してこれを利用する方式が開発された(MIPは、狭い
場所に多数のものを意味する"multum in parvo"の頭文
字をとったものである)。この方式は、レンダリングさ
れつつあるオブジェクトに関連するテクスチャの一連の
MIPマップをテクスチャ・マッピング・ハードウェア
のローカル・メモリに記憶する。あるテクスチャに関す
るMIPマップは、テクスチャ・マップに直接対応する
基底マップ(すなわち「レベル0」マップ)および一連の
後続のマップを含む。後続マップの各々のサイズは、テ
クスチャ・マップの各次元において、先行マップに対し
て2単位減少する。図1に、1つのMIPマップ・セッ
トの例が示されている。このMIPマップは、サイズが
8×8テクセルである(レベル0の)基底マップ100と
共に、サイズ的にそれぞれ4×4テクセルであるレベル
1、2×2テクセルであるレベル2および1×1テクセ
ルであるレベル3を表す一連のマップ102、104お
よび108を含む。
1マップ102の中の各テクセルがレベル0基底マップ
100の4つのテクセルの平均に対応するように、基底
マップ100をボックス・フィルタリング(すなわち比
例縮小)することによって生成される。例えば、レベル
1マップ102のテクセル110は、レベル0基底マッ
プ100のテクセル112−115の平均に等しい。同
様に、レベル1マップ102のテクセル118および1
20は、それぞれレベル0基底マップ100のテクセル
121−124および125−128の平均に等しい。
同様に、レベル2の2×2マップ104は、レベル2マ
ップ104の中のテクセル130がレベル1マップ10
2のテクセル110および118−120の平均に等し
くなるように、レベル1マップ102をボックス・フィ
ルタリングすることによって生成される。レベル3マッ
プ108における単一テクセルは、レベル2マップ10
4における4つのテクセルを平均して生成される。
一般的に、表示画面上に描画されるべきプリミティブに
関して使用されるはずのすべてのテクスチャのための完
全なMIPマップ・セットを、ホスト・コンピュータの
メイン・メモリからテクスチャ・マッピング・ハードウ
ェアのローカル・メモリへ、ダウンロードする。当業者
には理解されることであろうが、完全なMIPマップ・
セットとは、レベル0からレベルNまでの(但しレベル
Nは1×1MIPマップ)すべてのMIPマップを意味
する。このようにして、テクスチャ・マッピング・ハー
ドウェアは、一連のMIPマップのどのレベルのマップ
からでもテクスチャ・データを取り出すことができる。
特定のピクセルに関してテクセル・データを取り出すた
めどのマップにアクセスすべきかの決定は、ピクセルが
マップするテクセルの数に基づく。例えば、ピクセル
が、テクスチャ・マップにおける単一のテクセルと一対
一の対応関係でマップする場合、基底マップ100がア
クセスされる。しかしながらピクセルが4、16または
64のテクセルへマップするとすれば、マップ102、
104および108がそれぞれアクセスされる。なぜな
らば、それらのマップは、テクスチャ・マップにおける
4、16および64のテクセルの平均を表現しているテ
クセル・データをそれぞれ記憶しているからである。
マップは記憶のため多量のシステム・ソフトウェア・メ
モリを必要とする。例えば、1024×1024のテク
セルのテクスチャ基底マップを持つテクスチャのための
一連のMIPマップは、MIPマップされたテクスチャ
の1コピーを記憶するため5メガバイト以上のシステム
・ソフトウェア・メモリを必要とする。従って、MIP
マップされたテクスチャの複数コピーの記憶は、膨大な
量のシステム・ソフトウェア・メモリを使用する。
ガバイトまでのソフトウェア・データを記憶することが
できるが、考慮されなければならないもう一つの問題
は、MIPマップを実際にどこへ記憶するかである。特
に、グラフィックス画像の高速描画を達成するために
は、テクセル情報を適切なレベルのMIPマップからグ
ラフィックス・ディスプレイへ可能な限り迅速に転送す
ることができることが重要である。すべてのレベルの位
置が前もってわかっていれば最善ではあるが、典型的な
グラフィックス適用業務プログラム・インターフェース
(すなわちAPI)稼働形態はそのタスクを非常に困難に
させる。特に、ヒューレット・パッカード社から提供さ
れている"OpenGL"と呼ばれるグラフィックスAPIは、
ユーザがMIPマップをダウンロードする際種々のレベ
ルをどのようなレベルの順序でもメモリに送ることを可
能にする。
ティング・システムのメモリ割り当てルーチンによって
要求元に返されるメモリを各レベル毎の記憶位置として
使用して、そのようなMIPマップ・レベルを個別にメ
モリに記憶する形態がとられて来た。このように、MI
Pマップのレベルが記憶されるメモリの実際の位置は、
オペレーティング・システムに委ねられた。従って、個
々のレベルが必要とされる時点で記憶位置を特定しなけ
ればならず、そのためシステム動作速度の一般的低下を
もたらしている。従って、複数のレベルのMIPマップ
を整合性のある形態でメモリに記憶することが必要とさ
れている。
決するため、データの完全性を維持しながら、MIP化
されたOpenGLテクスチャ・マップの複数レベルを連続的
メモリに記憶することを可能にするメカニズムを提供す
る。それによって、本発明は、完全にMIP化されたテ
クスチャ・マップをハードウェアにダウンロードする際
あるいはテクスチャ・マッピングがソフトウェア・ラス
タライゼーションを使用する際に発生する可能性のある
メモリ・キャッシュ・ミスを減少あるいは除去する。ま
た、たとえデータが現在時の完全MIPマップ記述に適
合しない場合でも、本発明は、ダウンロードされつつあ
るデータの完全性を維持する。
グラフィックス・システムにおける連続的メモリにテク
セル・データをダウンロードする方法を提供する。該方
法は、ダウンロードされる最初のテクセル・データのM
IPマップのレベル番号およびサイズを基にして、当該
テクスチャに関連するすべてのMIPマップに必要な連
続的メモリ量を割り当て、上記最初のMIPマップに関
するデータを、レベル番号およびサイズを基にして計算
するオフセット値に従ってそのレベル番号にとって適切
な上記連続的メモリ位置に記憶する。更に、本発明のア
ルゴリズムは、いくつかの後続のMIPマップがダウン
ロードされるにつれて、それらの各々が上記最初にダウ
ンロードされたMIPマップとレベル番号およびサイズ
の観点から整合しているか否かを判断し、上記判断の結
果整合していれば、それらレベル番号に基づいて計算さ
れるオフセット値が示す上記連続的メモリ位置へそれら
レベルのデータを記憶し、上記判断の結果整合していな
い場合、それらレベルのデータを一時的メモリへ記憶す
る。上記後続のMIPマップにおいて基底レベルのデー
タがダウンロードされる毎に、上記一時的メモリに記憶
されたデータを検査して、当該基底レベルと整合性があ
るレベルのデータがあれば、それらを当該基底レベルが
記憶される連続的メモリへ移動する。
に示される本発明の方法10は、テクスチャ・データを
連続的メモリに記憶することを目的とする。上述の通
り、テクスチャ・データは、レベル0からレベルNまで
のすべてのレベルに関連するデータから構成される(但
しレベルNは1×1配列である)。先ず第1に、すべて
のテクセル・データを単一メモリ・ブロックに記憶でき
る十分なメモリが存在するか否かを決定しなければなら
ない。この決定は図2のブロック14で行われる。十分
なメモリがあるかどうか判明しない場合、必要とされる
連続メモリ・ブロックのサイズを計算し(ブロック1
6)、そのメモリを割り当て(ブロック18)なければな
らない。例としてレベル0MIPマップが8×8マップ
であると仮定すれば、それは64個の「位置」を占有す
るが、実際のメモリ量はテクセルあたりのバイト数(×
64)によって決定される。この場合、レベル1MIP
マップは4×4すなわち16の位置を占め、レベル2M
IPマップは2×2すなわち4つの位置を占め、レベル
3MIPマップは1×1すなわち1つの位置を占める。
かくして、位置の総数は85で、メモリ量はテクセルあ
たりのバイト数×85である。レベル2MIPマップが
2×2マップであるということは基底マップが8×8マ
ップであることを意味する点は容易に理解されるであろ
う。従って、MIPマップのレベルとサイズを所与とす
れば、完全なMIPマップを記憶するために必要な連続
メモリ・ブロックのサイズは容易に決定することができ
る。
と判断すれば(ブロック20)、エラー条件が発生する
(ブロック22)。そうではなく十分なメモリを割り当て
ることができると判断すれば(ブロック20)、基底マッ
プ(レベル0)が記憶される(ブロック24)。次に、本発
明の好ましい実施形態では、"LevelOK"と呼ばれるフラ
グが0にセットされ(ブロック26)、レベル情報がOK
か否かが判断される(ブロック28)。これは、ロードさ
れつつあるMIPマップ・レベルに関する情報が、MI
Pマップに関する既知の情報と整合しているか否かに関
して判断することを意味する。例を用いて説明すれば、
4×4のサイズを持つ「レベル1」MIPマップがダウ
ンロードされ、次に8×8のサイズを持つ「レベル0」
MIPマップがダウンロードされれば、データは整合し
ていて、レベルはOKである。これとは相違して、4×
4のサイズを持つ「レベル1」MIPマップがダウンロ
ードされ、次に4×4のサイズを持つ「レベル0」MI
Pマップがダウンロードされれば、データは整合してな
く、レベルはOKではない。データが以前にダウンロー
ドされたデータと整合していれば、LevelOKフラグは
「1」にセットされる。
ップが基底マップ(レベル0)に関するものであったか否
かが判断される(ブロック32)。もしもそうではなく、
あるいはLevelOKが「1」に等しかったならば、処理の
流れは図5の"C"へ進む。そのMIPマップが基底マッ
プ(レベル0)に関するもので、LevelOKフラグが「1」
にセットされていれば(ブロック34)、図3のブロック
38(記号"A")へ進み、基底レベル情報および既存メモ
リへのポインタを記憶し(ブロック50および40)、次
に、連続メモリのサイズが計算され(ブロック42)、連
続メモリが割り当てられる(ブロック44)。連続メモリ
が正しく割り当てられたか否かを検証し(ブロック4
6)、エラーがあったと判断すれば、それ以上の動作は
行われない。
を行うため、カウンタ、増分式および検証プロシージャ
56が設定される(ブロック52、54および56)。本
発明の好ましい実施形態において、ループは、現在時レ
ベルへのポインタを入手するステップ(ブロック62)、
および現在時レベルがまだメモリ64のいかなる位置を
もポイントしていないことを判断するステップ(ブロッ
ク64)を含む。このループは繰り返され、繰り返し毎
にループ・カウンタが増分され(ブロック54)、潜在的
にサポートされているレベルの最大数に対応する回数に
達するまでループは繰り返される。本発明の実施形態に
おいて、現行使用されるハードウェアおよびメモリ容量
に基づけば、16を越えるレベルはサポートされない。
従って、ループ処理は最高15回であるが、将来のハー
ドウェアおよびメモリが一層大きいMIPマップ・レベ
ルの使用を示せば、この回数は増加する点は当業者に理
解されることであろう。
と判断されれば(ブロック64)、現在時レベルのサイズ
が計算され(ブロック70)、LevelOKが「0」にセット
されて、データが正しくないことが示される(ブロック
72)。次に、正確性についてレベル・データが検査さ
れ(ブロック74)、レベル・データが正確であると判断
されれば、LevelOKは、レベル・データが正確であるこ
とを示す「1」にセットされ(ブロック88)、そのレベ
ルに関して、基底マップの連続メモリへのオフセットが
計算される(ブロック90)。次に、現在時レベルのテク
セルが連続メモリの適切な位置にコピーされる(ブロッ
ク92)。
ットされているか否かを検査して(ブロック94)、セッ
トされていなければ、図3の上記ループへ記号"E"の位
置から再度入る。一方、ポインタ・フラグが「1」にセ
ットされていれば、このレベルに関するメモリを解放し
(ブロック96)、ポインタ・フラグを「0」にセットし
(ブロック97)、現在時レベルのメモリ・オフセットを
記憶する(ブロック98)。次に、図3の上記ループへ記
号"E"の位置から再度入る。
いと判断され、ポインタ・フラグが「1」にセットされ
ていれば(ブロック76)、図3の上記ループへ記号"E"
の位置から再度入る。一方、ブロック74でレベル・デ
ータが正しくないと判断され、ポインタ・フラグが
「0」にセットされていれば(ブロック76)、ポインタ
・フラグを「1」にセットし(ブロック78)、このレベ
ルのため一時的記憶ブロックを割り当て(ブロック8
0)、メモリが正しく割り当てられたことを確認する(ブ
ロック82)。メモリ割り当ての際エラーが発生すれば
これ以上の動作は行われない(ブロック84)。メモリが
割り当てられれば、このレベルのデータが一時メモリに
コピーされ(ブロック86)、図3の上記ループへ記号"
E"の位置から再度入る。 図2に戻って、ブロック32
において、レベルが基底ブロックでない場合、処理は図
5の記号"C"へ進む。また、基底レベルであるが、Level
OKフラグが「0」にセットされていなければ(ブロック
34)、処理は同様に図5の記号"C"へ進む。
が正しいか否かが判断される。正しくなければ、レベル
・サイズを計算し(ブロック15)、ポインタ・フラグを
「1」にセットし(ブロック17)、このレベルのため一
時的記憶ブロックを割り当てる(ブロック19)。次に、
メモリが正しく割り当てられたことを確認する(ブロッ
ク21)。メモリ割り当ての際エラーが発生すればこれ
以上処理は行わない。メモリが正しく割り当てられれ
ば、記号"D"へ進む。
正しいと判断される場合、ブロック27においてポイン
タ・フラグが「1」にセットされているか否かが検査さ
れる。「1」にセットされていれば、このレベルのため
の一時メモリが解放され(ブロック28)、ポインタ・フ
ラグを「0」にセットし(ブロック31)、このレベルに
関する連続メモリへのオフセットを計算する(ブロック
33)。次に処理は記号"D"へ進む。ブロック27におい
て、ポインタ・フラグが「0」にセットされていれば、
このレベルに関する基底マップの連続メモリへのオフセ
ットを計算するだけで(ブロック33)、記号"D"へ進
む。
繰り返しを完了すると、古い連続メモリが解放され(ブ
ロック60)、処理は記号"D"へ進む。図6の記号"D"へ
進んで、レベル情報が記憶され(ブロック39)、ポイン
タ・フラグが「1」にセットされているか否かが判断さ
れる(ブロック41)。「1」であれば、処理は終了する
(ブロック47)。ポインタ・フラグが「0」にセットさ
れていれば、オフセットが0を越えているかどうかが更
に検査される。オフセットが0であれば、処理は終了す
る(ブロック47)。ポインタ・フラグが「0」にセット
されていて、オフセットが0を越えていれば、このレベ
ルに関するオフセットを記憶しなければならない(ブロ
ック45)。次に処理は終了する(ブロック47)。
態を示すいくつかの特定の例を示す。以下の諸例の各々
において、ダウン・ロード・シーケンスは所与であり、
各ダウン・ロード・シーケンスは、そのレベルに関する
レベル番号、幅×高さのレベル・サイズおよびポインタ
・フラグ値を含む。
に対応する4つのレベル・マップがダウンロードされ、
それらはそれぞれ8×8、4×4、2×2および1×1
マップである。従って、レベル0(すなわち基底マップ)
に関する最初のレベル・マップのダウンロードに際して
連続的メモリの全ブロックを割り当てることができるの
で、問題はない。すべてのレベルが順序正しくダウンロ
ードされ、レベル・サイズのすべてが完全に整合してい
るので、これは最も簡単な場合である。
対応する3つのレベル・マップがダウンロードされ、そ
れらはそれぞれ1×1、2×2および4×4マップであ
る。最初のレベル2に関するレベル・マップがダウンロ
ードされる際、連続的メモリ・ブロック全体を割り当て
ることが可能であり、また、レベル番号およびレベル・
サイズのすべてが整合しているので、問題に出会うこと
はない。
1に対応する4つのレベル・マップがダウンロードさ
れ、それらはそれぞれ4×4、16×16、1×1およ
び2×2マップである。最初のレベル0に関するレベル
・マップがダウンロードされる時、連続的メモリ・ブロ
ック全体が割り当てられるが、その際次に2×2マップ
のレベル1、4×4マップのレベル2等々のレベル・マ
ップを受け取るであろうと仮定される(注:受け取るマ
ップの数は不明である)。しかしながら、16×16の
レベル1のダウンロードの際、整合性のないことが検出
される。従って、レベル1の16×16マップは一時的
メモリに記憶され、問題が存在することを示すためポイ
ンタ・フラグは1にセットされる。更に第3および第4
のレベルがダウンロードされる時、それら(1×1およ
び2×2マップ)は最初のレベル0と整合性があるの
で、問題は解消する。従って、元のダウンロードされた
16×l6の「レベル1」は破棄し、一時的メモリを解
放することができる。注:この例では、最初のレベルの
ダウンロードに基づく初めの連続メモリ・ブロックが使
用されている。
0に対応する4つのレベル・マップがダウンロードさ
れ、それらはそれぞれ8×8、2×2、1×1および4
×4マップである。レベル0(すなわち基底マップ)に関
する最初のレベル・マップがダウンロードされる際、連
続メモリ・ブロック全体が割り当てられる。しかしなが
ら、次にダウンロードしされるレベル1のサイズはレベ
ル0と整合していないので、レベル1(2×2マップ)デ
ータは一時的メモリに記憶され、ポインタ・フラグが1
にセットされる。3番目のレベルであるレベル2は、1
×1マップであり、これもまた最初のレベル0と整合性
がないため、一時的メモリに記憶され、ポインタ・フラ
グが1にセットされる。最後の第4の新たなレベル・ゼ
ロは既にロードされているレベル1およびレベル2と整
合性があるので、本発明に従って、それらレベル1およ
びレベル2は、第4の新しいレベル0と共に、連続メモ
リへ記憶される。
のマップの受領に際してもすべてのレベルに対して連続
的メモリ・ブロックを割り当てる手段を提供する。追加
のレベル・マップがダウンロードされる時、本発明は、
先行したメモリ割り当てと整合性があることを確認し、
整合性がない場合、整合性のあるレベルのマップがダウ
ンロードされるまで、それら整合性のないマップ情報を
一時的メモリに記憶する方法を提供する。整合性のある
レベル・マップ・セットの受領を確認すると、すべての
整合性のあるレベル・マップのデータは単一の連続メモ
リ・ブロックへ記憶される。
を更に理解する上での参照のため、本発明の好ましい実
施形態に関してCプログラミング言語で書かれたサンプ
ル・ソース・コードを含む。以下のプログラムの著作権
はヒューレット・パッカード・カンパニーにあり、ヒュ
ーレット・パッカード・カンパニーの書面による承諾な
しに、保存目的の場合を除いて、これらプログラムを複
製することは禁止されている。
が含まれる。 (1)コンピュータ・グラフィックス・システムにおい
て連続的メモリ・ブロックをテクセル・データへ割り当
てる方法であって、ダウンロードされる最初のレベル・
マップに関するテクセル・データに対応するデータを受
け取るステップと、上記ダウンロードされる最初のレベ
ル・マップのサイズおよびレベル番号に基づいて、完全
なMIPマップを記憶することのできる連続的メモリ・
ブロックを割り当てるステップと、上記ダウンロードさ
れる最初のレベル・マップに関する上記テクセル・デー
タのレベル番号に基づいて、上記ダウンロードされる最
初のレベル・マップに関連するデータを記憶する上記連
続的メモリ・ブロックのあらかじめ定められた適切な位
置を表すオフセット値を決定するステップと、上記ダウ
ンロードされる最初のレベル・マップに関する上記テク
セル・データを上記オフセット値によってポイントされ
る連続的メモリ・ブロック内の位置に記憶するステップ
と、上記ダウンロードされる最初のレベル・データを受
け取った後、更に別のレベル・マップに関する付加的テ
クセル・データを繰り返し受け取り、それら受け取った
レベル・データのそれぞれ毎に、当該レベル・データが
上記ダウンロードされた最初のテクセル・データと整合
しているか否かを確認し、整合している場合上記連続的
メモリ・ブロックに対するオフセットを計算してそのオ
フセットによってポイントされる上記連続的メモリ・ブ
ロック内の位置へ当該テクセル・データを記憶し、整合
していない場合、当該テクセル・データを一時的メモリ
へ記憶すると共にテクセル・データが一時的メモリにあ
ることを示す値にポインタ・フラグをセットし、すべて
の上記付加的レベル・データについて上記処理を繰り返
した後、上記一時メモリを連続的メモリ・ブロックへ移
動することによって整合性のあるテクセル・データのセ
ットが完成する場合にはそれらテクセル・データを連続
的メモリ・ブロックへ移動するステップと、を含むテク
セル・データへの連続的メモリ割り当て方法。
ステムにおける連続的メモリにテクセル・データをダウ
ンロードする方法であって、ダウンロードされる最初の
テクセル・データのMIPマップのレベル番号およびサ
イズを基にして、当該テクスチャに関連するすべてのM
IPマップに必要な連続的メモリ量を割り当てるステッ
プと、上記最初のMIPマップに関するデータを、レベ
ル番号およびサイズを基にして計算するオフセット値に
従ってそのレベル番号にとって適切な上記連続的メモリ
位置に記憶するステップと、更にいくつかの後続のMI
Pマップがダウンロードされるにつれて、それらの各々
が上記最初にダウンロードされたMIPマップとレベル
番号およびサイズの観点から整合しているか否かを判断
するステップと、上記判断の結果整合していれば、それ
らレベル番号に基づいて計算されるオフセット値が示す
上記連続的メモリ位置へそれらレベルのデータを記憶す
るステップと、上記判断の結果整合していない場合、そ
れらレベルのデータを一時的メモリへ記憶するステップ
と、上記後続のMIPマップにおいて基底レベルのデー
タがダウンロードされる毎に、上記一時的メモリに記憶
されたデータを検査して、当該基底レベルと整合性があ
るレベルのデータがあれば、それらを当該基底レベルが
記憶される連続的メモリへ移動するステップと、を含
む、連続的メモリへのテクセル・データのダウンロード
方法。
しながら、MIP化されたテクスチャ・マップの複数レ
ベルを連続的メモリに記憶することが可能となり、それ
によって、完全にMIP化されたテクスチャ・マップを
ハードウェアにダウンロードする際あるいはテクスチャ
・マッピングがソフトウェア・ラスタライゼーションを
使用する際のメモリ・キャッシュ・ミスが減少あるいは
除去される。
ある。
方法の動作を示す流れ図である。
方法の動作を示す流れ図である。
方法の動作を示す流れ図である。
方法の動作を示す流れ図である。
方法の動作を示す流れ図である。
Claims (1)
- 【請求項1】コンピュータ・グラフィックス・システム
において連続的メモリ・ブロックをテクセル・データへ
割り当てる方法であって、 ダウンロードされる最初のレベル・マップに関するテク
セル・データに対応するデータを受け取るステップと、 上記ダウンロードされる最初のレベル・マップのサイズ
およびレベル番号に基づいて、完全なMIPマップを記
憶することのできる連続的メモリ・ブロックを割り当て
るステップと、 上記ダウンロードされる最初のレベル・マップに関する
上記テクセル・データのレベル番号に基づいて、上記ダ
ウンロードされる最初のレベル・マップに関連するデー
タを記憶する上記連続的メモリ・ブロックのあらかじめ
定められた適切な位置を表すオフセット値を決定するス
テップと、 上記ダウンロードされる最初のレベル・マップに関する
上記テクセル・データを上記オフセット値によってポイ
ントされる連続的メモリ・ブロック内の位置に記憶する
ステップと、 上記ダウンロードされる最初のレベル・データを受け取
った後、更に別のレベル・マップに関する付加的テクセ
ル・データを繰り返し受け取り、それら受け取ったレベ
ル・データのそれぞれ毎に、当該レベル・データが上記
ダウンロードされた最初のテクセル・データと整合して
いるか否かを確認し、整合している場合上記連続的メモ
リ・ブロックに対するオフセットを計算してそのオフセ
ットによってポイントされる上記連続的メモリ・ブロッ
ク内の位置へ当該テクセル・データを記憶し、整合して
いない場合、当該テクセル・データを一時的メモリへ記
憶すると共にテクセル・データが一時的メモリにあるこ
とを示す値にポインタ・フラグをセットし、すべての上
記付加的レベル・データについて上記処理を繰り返した
後、上記一時メモリを連続的メモリ・ブロックへ移動す
ることによって整合性のあるテクセル・データのセット
が完成する場合にはそれらテクセル・データを連続的メ
モリ・ブロックへ移動するステップと、 を含むテクセル・データへの連続的メモリ割り当て方
法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US690,432 | 1991-04-24 | ||
| US08/690,432 US5781197A (en) | 1996-07-26 | 1996-07-26 | Method for maintaining contiguous texture memory for cache coherency |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPH10111948A true JPH10111948A (ja) | 1998-04-28 |
| JPH10111948A5 JPH10111948A5 (ja) | 2005-07-07 |
| JP4027463B2 JP4027463B2 (ja) | 2007-12-26 |
Family
ID=24772430
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16704097A Expired - Fee Related JP4027463B2 (ja) | 1996-07-26 | 1997-06-24 | テクセル・データを記憶する方法およびテクセル・データを記憶するシステム |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5781197A (ja) |
| JP (1) | JP4027463B2 (ja) |
| DE (1) | DE19723063B4 (ja) |
| GB (1) | GB2315968B (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5781197A (en) * | 1996-07-26 | 1998-07-14 | Hewlett-Packard Company | Method for maintaining contiguous texture memory for cache coherency |
| JP3586991B2 (ja) * | 1996-08-30 | 2004-11-10 | ソニー株式会社 | テクスチャ・データ読出装置およびレンダリング装置 |
| JP3885262B2 (ja) * | 1996-12-17 | 2007-02-21 | 株式会社セガ | テクスチャマップ上の複数画素を混合する方法及び、これを用いた複数画素混合回路と画像処理装置 |
| JPH10326352A (ja) * | 1997-05-27 | 1998-12-08 | Mitsubishi Electric Corp | 多角形塗り潰し方法及び記録媒体 |
| US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
| US6040837A (en) * | 1998-04-22 | 2000-03-21 | Ati Technologies, Inc. | Method and apparatus for space variable texture filtering |
| US7518616B1 (en) * | 1998-07-17 | 2009-04-14 | 3Dlabs, Inc. Ltd. | Graphics processor with texture memory allocation system |
| US6184894B1 (en) | 1999-01-29 | 2001-02-06 | Neomagic Corp. | Adaptive tri-linear interpolation for use when switching to a new level-of-detail map |
| US6750872B1 (en) * | 1999-09-17 | 2004-06-15 | S3 Graphics, Co., Ltd. | Dynamic allocation of texture cache memory |
| US6850338B1 (en) | 2000-05-12 | 2005-02-01 | International Business Machines Corporation | Method, system, program, and data structure for generating raster objects |
| US6894796B1 (en) | 2000-05-12 | 2005-05-17 | International Business Machines Corporation | Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel |
| US6449328B1 (en) | 2000-05-15 | 2002-09-10 | International Business Machines Corporation | Method and apparatus for shifting data from registers |
| US7394568B1 (en) | 2000-05-15 | 2008-07-01 | Infoprint Solutions Company Llc | Method, system, and logic for selecting pixel data from multiple objects |
| US6804411B1 (en) | 2000-05-15 | 2004-10-12 | International Business Machines Corporation | Method, system, and program for decompressing and aligning line work data from multiple objects |
| US6961134B1 (en) | 2000-05-15 | 2005-11-01 | International Business Machines Corporation | Method, system, and logic using multiplexers to select data for pixels from multiple objects |
| US6917364B2 (en) * | 2001-01-31 | 2005-07-12 | International Business Machines Corporation | Method and apparatus for managing texture memory in a data processing system |
| US8766998B1 (en) * | 2008-08-22 | 2014-07-01 | Aechelon Technology, Inc. | Sampling of non-planar display surfaces |
| US9652815B2 (en) * | 2012-09-11 | 2017-05-16 | Nvidia Corporation | Texel data structure for graphics processing unit programmable shader and method of operation thereof |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5097427A (en) * | 1988-07-06 | 1992-03-17 | Hewlett-Packard Company | Texture mapping for computer graphics display controller system |
| GB2240016A (en) * | 1990-01-15 | 1991-07-17 | Philips Electronic Associated | Texture memories store data at alternating levels of resolution |
| GB2240015A (en) * | 1990-01-15 | 1991-07-17 | Philips Electronic Associated | Texture memory addressing |
| US5222205A (en) * | 1990-03-16 | 1993-06-22 | Hewlett-Packard Company | Method for generating addresses to textured graphics primitives stored in rip maps |
| US5623693A (en) * | 1994-02-17 | 1997-04-22 | International Business Machines Corporation | System for performing action by sorting actions into immediate and deferred queues, processing immediate queue while still sorting, and appending deferred queue to immediate after sorting |
| CA2144914A1 (en) * | 1994-04-01 | 1995-10-02 | Raymond L. Fitzgerald | Computer graphics texture paging system with fragmentary mip map selection |
| US5790130A (en) * | 1995-06-08 | 1998-08-04 | Hewlett-Packard Company | Texel cache interrupt daemon for virtual memory management of texture maps |
| US5781197A (en) * | 1996-07-26 | 1998-07-14 | Hewlett-Packard Company | Method for maintaining contiguous texture memory for cache coherency |
-
1996
- 1996-07-26 US US08/690,432 patent/US5781197A/en not_active Expired - Lifetime
-
1997
- 1997-06-02 DE DE19723063A patent/DE19723063B4/de not_active Expired - Fee Related
- 1997-06-24 GB GB9713353A patent/GB2315968B/en not_active Expired - Fee Related
- 1997-06-24 JP JP16704097A patent/JP4027463B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-10 US US09/023,668 patent/US5917497A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE19723063B4 (de) | 2009-05-07 |
| US5781197A (en) | 1998-07-14 |
| DE19723063A1 (de) | 1998-01-29 |
| GB2315968A (en) | 1998-02-11 |
| GB2315968B (en) | 2000-11-08 |
| US5917497A (en) | 1999-06-29 |
| GB9713353D0 (en) | 1997-08-27 |
| JP4027463B2 (ja) | 2007-12-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6046747A (en) | Graphics application programming interface avoiding repetitive transfer of texture mapping data | |
| US6005583A (en) | Precise gradient calculation system and method for a texture mapping system of a computer graphics system | |
| JP4027463B2 (ja) | テクセル・データを記憶する方法およびテクセル・データを記憶するシステム | |
| US6078332A (en) | Real-time lighting method using 3D texture mapping | |
| CA2772030C (en) | Systems and methods for providing intermediate targets in a graphics system | |
| WO2022193941A1 (zh) | 图像渲染方法、装置、设备、介质和计算机程序产品 | |
| US8823724B2 (en) | Sparse texture systems and methods | |
| JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
| CN103370728B (zh) | 用于图形处理的数据存储地址指派的方法和设备 | |
| US5936632A (en) | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels | |
| US7965296B2 (en) | Systems and methods for storing texture map data | |
| KR102752364B1 (ko) | 그래픽 처리 | |
| US20130271465A1 (en) | Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling | |
| US11521342B2 (en) | Residency map descriptors | |
| CN101236661A (zh) | 在计算机中管理纹理数据的系统与方法 | |
| US6924814B1 (en) | System and method for simulating clip texturing | |
| US6181346B1 (en) | Graphics system | |
| US20050088450A1 (en) | Texture roaming via dimension elevation | |
| US6768492B2 (en) | Texture tiling with adjacency information | |
| US5369738A (en) | Distributed processing apparatus and method for use in global rendering | |
| US8681169B2 (en) | Sparse texture systems and methods | |
| US8860743B2 (en) | Sparse texture systems and methods | |
| KR20060125269A (ko) | 그래픽스 처리장치와 처리방법, 및 그 기록 매체 | |
| US7324117B1 (en) | Method and apparatus for using non-power of two dimension texture maps | |
| US6590579B1 (en) | System for low miss rate replacement of texture cache lines |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040621 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041029 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070214 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070507 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070510 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070809 |
|
| 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: 20070911 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071010 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101019 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |