JPH10116346A - テクスチャの高速ダウンロード方法 - Google Patents
テクスチャの高速ダウンロード方法Info
- Publication number
- JPH10116346A JPH10116346A JP9173485A JP17348597A JPH10116346A JP H10116346 A JPH10116346 A JP H10116346A JP 9173485 A JP9173485 A JP 9173485A JP 17348597 A JP17348597 A JP 17348597A JP H10116346 A JPH10116346 A JP H10116346A
- Authority
- JP
- Japan
- Prior art keywords
- texture
- hardware
- graphics
- memory
- software
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
アプリケーションのパフォーマンスを向上し、テクスチ
ャ・マップからソフトウェア・コピーを作る際に必要な
時間とメモリを節減する高速ダウンロード方法を提供す
る。 【解決手段】 直接テクスチャをハードウェアへロード
し、ダウンロードされるテクスチャのコピーを1つだけ
作ることによって、今までより2つのコピーを削減し、
その分の時間とメモリ空間を削減できる。その代わり
に、テクスチャがグラフィックス・ハードウェア中です
でに有効であることを、グラフィックスAPIとアプリ
ケーション・ソフトウェアに示すブックキーピング処理
エントリが作られる。
Description
l)の特別なソフトウェア・コピーをせずに、加速グラ
フィックス・ハードウェアにテクスチャを高速でダウン
ロードする方法に関連する。特に、本発明は、テクスチ
ャ・マッピング・コンピュータ・グラフィックス・シス
テムのテクスチャ・マップのソフトウェア・メモリ管理
に関連し、更には、仮想記憶管理システムを基礎にした
テクスチャ割込管理(TIM)デーモン(daemon)が、
テクスチャ・マッピング・データを記憶するハードウェ
ア・ディバイス・ローカル・キャッシュ・メモリ・シス
テムを提供するのに使用されるとき、テクスチャのダウ
ンロードの速度をかなり速くする新しい方法に関連す
る。
トによって1995年6月8日に出願された米国特許第08/48
6,447号「TEXEL CACHE INTERRUPT DAEMON FOR VIRTUAL
MEMORYMANAGEMENT OF TEXTURE MAPS」に詳細に記述され
ているように、一度に全てのテクセルをハードウェアに
適合させるのに十分なメモリがないとき、テクスチャ参
照機構を提供し、ハードウェアへのテクセルの記憶を可
能とするために、現在のテクスチャ・マッピングによっ
て、ユーザのテクスチャのコピーをソフトウェアに記憶
する。
システムにおいて、表示画面の上に表示される物体は、
複数のグラフィックス図形要素(primitives)に分けら
れる。図形要素は、グラフィックス・ピクチャの基本構
成要素であって、点、線、ベクトル、及び三角形のよう
な多角形を含むことがある。一般的に、ハードウェア/
ソフトウェア方式は、画面上に表示されている1又は複
数の物体の外観を表すグラフィックス図形要素を、2次
元の表示画面上で表示または描くために実行される。
する図形要素は、図形要素データの観点から各々の図形
要素を定義するホスト・コンピュータから提供される。
例えば、図形要素が三角形であるとき、ホスト・コンピ
ュータは、各々の頂点のRGBカラー値と同様に、その
頂点のx、y、z座標の観点から、図形要素を定義する
場合がある。ハードウェアによって、各々の図形要素と
各々のピクセルのRGB値を表すために点灯される表示
画面ピクセルを計算するための図形要素データを補間す
る。
な3次元の物体を表現し、モデル化して、十分に現実的
な方法で表示することができなかった。そのようなシス
テムによって表示された画像は、モデル化された対象中
の、極端に平坦な表面のぼやけたテクスチャ、バンプ
(bumps)、スクラッチ、影、または他の表面の細部が
現れる。
示する方法が開発された。テクスチャ・マッピングと
は、ソース画像(ここで、「テクスチャ」として参照さ
れる)を、三次元対象の表面上へマッピングし、その
後、結果として得られる画像を表示するために、二次元
のグラフィックス表示画面にテクスチャされた三次元対
象をマッピングすることを含むような方法である。一般
にマッピングされたテクスチャである表面細部属性は、
色、鏡面反射、ベクトル摂動、反射、透過性、影、表面
不規則性、及びグレーディングを含む。
ポイント・テクスチャ要素(「テクセル」)を、そのテ
クスチャがマッピングされている対象の表示された部分
の各ポイント要素(「ピクセル」)に適用することを含
む。テクスチャ・マッピング・ハードウェアは、通常、
テクスチャ・マップ中のテクセルが、その対象を表示す
る表示画面上のピクセルに対応する方法を示す情報を備
えている。二次元のテクスチャ・マップ中の位置を識別
するS及びT座標によって、テクスチャ・マップの中の
各テクセルは、定義される。各ピクセルにマッピングす
る対応するテクセルは、テクスチャ・マップからアクセ
スされて、表示画面においてテクスチャされた対象を表
すピクセルのために生成された最終的なRGB値に組み
込まれる。
ての表示視野に対してテクスチャ・マップ中で、1つの
テクセルに1対1の対応でマッピングするというわけで
はないことは、理解される。例えば、その対象がその表
示画面上に描写された表示部分から近ければ近いほど、
その対象は、大きく表現される。その対象がその表示画
面上で大きく見えるほど、そのテクスチャの表示は、よ
り詳細になる。このように、その対象がその表示画面の
かなりの部分を占めるとき、多数のピクセルがその表示
画面上でその対象を描写するのに使われ、その対象を描
写する各ピクセルは、テクスチャ・マップの中で、1つ
のテクセルと1対1の対応でマッピングするか、あるい
は、1つのテクセルは、複数のピクセルにマッピングす
る。しかしながら、その対象がその表示画面の比較的小
さい部分を占めるとき、非常に少ない数のピクセルが、
その対象を描写するために使われ、少ない細部で描写さ
れるテクスチャになる結果、各々のピクセルが、複数の
テクセルにマッピングする場合がある。更に、テクスチ
ャが対象の小さい部分にマッピングされるとき、各ピク
セルは複数のテクセルにマッピングする。結果として生
じるテクセル・データは、複数のテクセルにマッピング
する各ピクセルに対して計算される。ピクセルが複数の
テクセルにマッピングすることが一般的であるように、
ピクセルに対して結果として生じるテクセル・データ
は、一般的に、そのピクセルにマッピングするテクセル
の平均を描写する。
システムは、一般的に、表現される対象に関連するテク
スチャを描写するデータを記憶するローカル・メモリを
含む。上述のように、ピクセルは複数のテクセルにマッ
ピングする場合がある。テクスチャ・マッピング・ハー
ドウェアが、平均値を生成するために、ローカル・メモ
リからピクセルへマッピングするテクセルを多数読み出
すことが必要であるならば、多数のメモリが読取りを行
い、多数のテクセル値の平均化が必要とされ、時間がか
かり,システムの性能を引き下げる。
に対して、「MIP」(「小型で内容豊富」、即ち、小
さい場所で多くのものを意味する)マップと呼ばれる一
連のマップの作成と、テクスチャ・マッピング・ハード
ウェアのローカル・メモリへの表現されている対象に関
連したテクスチャのMIPマップの記憶とを含む方式が
開発されている。テクスチャのMIPマップは、一連の
フィルタをかけられたマップと同様に、テクスチャ・マ
ップに直接対応するベース・マップを含む。ここで、各
々の連続したマップは、各々の2つのテクスチャ・マッ
プ次元の2つの係数によって、サイズが縮小される。図
1は、1組のMIPマップの実施例を示す。MIPマッ
プが、8×8テクセルのサイズのベース・マップ(「レ
ベル0」)100を含み、同様に、4×4テクセルである
レベル1、2×2テクセルであるレベル2、1テクセル
であるレベル3をそれぞれ表す、一連のマップ102、10
4、及び108を含む。
ス・マップ100をフィルタにかける(縮小する)ボック
スによって生成され、レベル1のマップ102の各々のテ
クセルは、レベル0のベース・マップ100からの4つの
テクセルの平均に対応する。例えば、レベル1のマップ
102のテクセル110は、レベル0の(ベース)マップ100
のテクセル112-115の平均に等しい。同じく、レベル1
のマップ102のテクセル118及び120は、レベル0の(ベ
ース)マップ100のテクセル121-124及び125-128のそれ
ぞれの平均に等しい。同様に、2×2の(レベル2)マ
ップ104は、レベル1のマップ102にフィルタをかけるボ
ックスによって生成され、レベル2のマップ104のテク
セル130は、レベル1のマップ102のテクセル110及び118
-120の平均に等しい。レベル3のマップ108の1つのテ
クセルは、レベル2のマップ104の4つのテクセルを平
均することによって生成される。
に、表示画面上で表現された図形要素で使われるテクス
チャの完全な一連のMIPマップを、ホスト・コンピュ
ータの主記憶装置からテクスチャ・マッピング・ハード
ウェアのローカル・メモリへダウンロードする。このよ
うに、テクスチャ・マッピング・ハードウェアは、どの
一連のMIPマップからでも、テクスチャ・データにア
クセスすることができる。ある特別なピクセルにテクセ
ル・データを提供するために、アクセスするマップを決
定することは、ピクセルがマッピングするテクセルの数
に依存する。例えば、ピクセルがテクスチャ・マップの
単一テクセルに1対1でマッピングするならば、ベース
・マップ100がアクセスされる。しかしながら、そのピ
クセルが4、16、又は64テクセルにマッピングする
ならば、それらのマップが、それぞれテクスチャ・マッ
プの4、16、及び64テクセルの平均を描写している
テクセル・データを記憶するので、マップ102、104及び
108がそれぞれアクセスされる。
に異なる対象の図形要素上で実行されるため、いくつか
のテクスチャ・マッピング・システムはパイプライン化
される。しかしながら、テクスチャの一連のMIPマッ
プは、大きくなる可能性がある。大部分のシステムは、
一度に、1つのそのような大きい一連のMIPマップだ
けを記憶することができるローカル・メモリを使用す
る。したがって、図形要素を表現するのに使われるテク
スチャに切換えがあるとき、そのシステムは、新しい一
連のMIPマップをダウンロードしなければならない。
一般的に、テクスチャ・マッピング・ハードウェアにお
いて、新しいテクスチャ・データをローカル・メモリへ
ロードするために使われるデータ・パスは、システムの
図形要素レンダリング・パイプラインの通過を含む。し
たがって、新しいテクスチャがマッピングされるとき、
新しい一連のMIPマップがダウンロードされる前に、
図形要素レンダリング・パイプラインは空になっていな
ければならない。一連のMIPマップがダウンロードさ
れると、パイプラインは再び一杯に満たされる。新しい
テクスチャが要求される度に図形要素レンダリング・パ
イプラインをフラッシュする必要があることは、そのシ
ステムのバンド幅を減らすことになる。
写するためにホスト・コンピュータと通信するハードウ
ェア装置と、システム・ホスト・コンピュータのプロセ
ッサ上で動くソフトウェアの階層を示す、従来のコンピ
ュータ・グラフィックス・システムのハードウェアと階
層的なソフトウェアのブロック図である。図2で示され
るように、ホスト・コンピュータのシステム・メモリ
は、システム・プロセッサで実行することができる複数
のユーザ対話型プロセスPR1、PR2、...、PR
Nを記憶する。各々のプロセス(PRi)は、データベ
ース、CAD/CAMアプリケーション、建築学デザイ
ン・アプリケーション、土木工学アプリケーション、言
語処理パッケージなどのような高水準コンピュータ図形
処理のソフトウェア・プログラム又はアプリケーション
である。
コンテキスト(context)をつくることができる。プロ
セス内でつくられた各々のコンテキストは、同じ画像の
異なる表示を含む場合がある。例えば、建築学の技術的
なデザイン・アプリケーション処理において、ユーザ
は、建物のような、同じ構造の異なる表示をつくる場合
がある。各々のコンテキストは、その画像を表現するた
めに、テクスチャ・マッピングを要求する場合がある。
この例では、テクスチャ・マップは、建物の床、壁、天
井,及び他の表面の特徴を表現することを要求される場
合がある。このように、ユーザは、コンテキストの画像
を表現するために、テクスチャ・マップを提供する。同
じプロセスにおいて生成された複数のコンテキストが、
一般的に同じ画像の異なる表示を含むため、ある処理に
おけるコンテキストは、一般に、同じテクスチャを必要
とする。
とき、ユーザはその画像を描く高水準処理プログラミン
グ言語によって認識できるコマンドを出す。画像がテク
スチャ・マップを必要とするならば、コマンドには、テ
クスチャ・マップが必要であるという指示が入力され、
テクスチャ・マップは、ユーザによって外部入力装置、
フロッピ・ディスクなどから提供される。プロセス又は
高水準プログラミング言語は、そのコマンドを下位レベ
ルのソフトウェア・コマンドへ変換して、ユーザによっ
て入力されたテクスチャをコピーする。図2で示された
ような従来のシステムにおいて、単一のプロセスで生成
された各々のコンテキストは、そのテクスチャの自身の
コピーを必要とする。各々のコンテキストは、ホスト・
コンピュータのシステム・メモリの専用の領域でテクス
チャのコピーを記憶する。このように、プロセス内の複
数のコンテキストが、同じテクスチャの使用を必要とす
るとき、各々のコンテキストに1つずつコピーが対応し
て、そのテクスチャの複数のコピーは、システム・メモ
リに記憶される。
スチャを使用する画像を描くためのユーザ入力コマンド
は、プロセスから基本的なグラフィックス・アプリケー
ション・プログラマ・インターフェース(「API」)
に伝達される。図2で示されるように、固有のグラフィ
ックスAPIは、システムの各々のプロセスと通信を行
う。各々のグラフィックスAPIは、基本的な下位レベ
ル・ソフトウェア言語であり、ホスト・コンピュータの
プロセッサ上で実行され、対応するプロセスから受取ら
れた各々の高水準グラフィックス・コマンドを下位レベ
ル・ソフトウェア・コード化コマンドに変換する。ま
た、グラフィックスAPIは、システム・メモリのそれ
自身の専用の領域に、画像を表現するために要求された
各々のテクスチャのコピーを記憶する。更に、グラフィ
ックスAPIは、四角形や多角形のようなグラフィック
ス成分に表現された画像を崩す。そして、そのような情
報は、対応するハードウェア・ドライバに提供される。
グラフィックスAPIと通信する。各々のハードウェア
・ドライバは、APIから受け取られた各々の低レベル
・グラフィックス・コマンドを、ホスト・コンピュータ
に接続されるグラフィックス・ハードウェア装置によっ
て認識できるハードウェア・コマンドに変換する、他の
基本的な下位レベル・グラフィックス・ソフトウェア言
語である。そして、これらのコマンドは、ハードウェア
・ドライバからハードウェア装置に伝達され、これに応
じて、ハードウェア装置に接続する表示画面上に、テク
スチャ・マッピングされた画像を表現する。図2に示さ
れるように、固有のハードウェア・ドライバHWD1、
HWD2、...、HWDNは、各々のグラフィックス
API、API1、API2、...、APINと通信
を行う。
・ドライバは、単一のグラフィックス・ハードウェア装
置150に接続される。しかしながら、当業者にとって明
らかなように、ホスト・コンピュータは、各々のハード
ウェア装置と通信している異なるハードウェア・ドライ
バで、複数の異なるグラフィックス・ハードウェア装置
に接続する場合がある。
のテクスチャを使用するテクスチャ・マッピングされた
多角形を描写するために、低レベル・ソフトウェア・コ
マンドを提供するとき、グラフィックス・ハードウェア
・ドライバは、その低レベル・コマンドをハードウェア
装置150によって認識できるハードウェア・コマンドに
変換する。そして、グラフィックス・ハードウェア・ド
ライバは、ハードウェア装置内の専用レジスタと入力バ
ッファへの書込みによって、ハードウェア装置150に多
角形を描写するためにコマンドを提供する。さらに、グ
ラフィックス・ハードウェア・ドライバは、その固有の
多角形を描写する間、ハードウェア装置150のローカル
・メモリ155に、一時的に記憶されるその多角形のテク
スチャ・データを提供する。ここで記述されているよう
に、従来のコンピュータ・グラフィックス・システム
は、画像または画像の成分を描写するためにテクスチャ
が要求されるたびに、グラフィックス・ハードウェア・
ドライバからハードウェア装置のローカル・メモリに、
単一テクスチャの全ての一連のMIPマップをダウンロ
ードする。
単一テクスチャの複数のコピーは、ホスト・コンピュー
タのシステム・ソフトウェア・メモリの異なる領域に記
憶される。例えば、プロセスPR1のコンテキスト1A
とコンテキスト1Bが、固有の画像の異なる表示を表現
するために同じテクスチャを要求した場合、そのテクス
チャの最初のコピーが初めに定義され、プロセスに導入
されるときに、ユーザはそのテクスチャの最初のコピー
を提供する。グラフィックスAPI1は、コンテキスト
1Aのテクスチャのコピー(2番目のコピー)と、コン
テキスト1Bのテクスチャのもう1つのコピー(3番目
のコピー)とを作って、APIとハードウェアの間で共
有されるメモリに記憶する。したがって、同じテクスチ
ャの3つの個別のコピーが、同じテクスチャを使う同じ
画像の2つの表示を表現するために、システム・ソフト
ウェア・メモリの異なる領域に記憶される。さらに、テ
クスチャの4番目と5番目のコピーが、ハードウェア装
置に提供されて、ローカル・メモリの中に記憶される。
IPマップは、記憶のために多量のシステム・ソフトウ
ェア・メモリを必要とする。例えば、1024×1024テクセ
ルのテクスチャ・ベース・マップを有するテクスチャの
一連のMIPマップは、MIPマッピングされたテクス
チャの1つのコピーを記憶するために、5メガバイト以
上のシステム・ソフトウェア・メモリを必要とする。し
たがって、MIPマッピングされたテクスチャの複数の
記憶されたコピーは、システム・ソフトウェア・メモリ
のかなりの量を使用する。
バイト以上のソフトウェア・データを記憶している場
合、テクスチャ・ハードウェア装置の典型的な専用ロー
カル・ハードウェア・テクスチャ・メモリは、非常に少
ないデータしか記憶することができない。そのようなロ
ーカル・テクスチャ・ハードウェア・メモリは、一般的
に、4メガバイトから16メガバイトの範囲である。し
たがって、多くのテクスチャ・マッピング・アプリケー
ションにおいて、テクスチャによって消費されるシステ
ム・メモリの量は、ローカル・ハードウェア・テクスチ
ャ・メモリの量をはるかに上回る。一般的に、システム
・メモリが、プロセスの複数のコンテキストで使用する
複数のMIPマッピングされたテクスチャを記憶する
間、ローカル・ハードウェア装置メモリは、一時点で、
限られたサイズの1つのテクスチャだけを記憶する。し
たがって、ハードウェア装置のローカル・テクスチャ・
メモリの適切な管理は、システムの最大パフォーマンス
を達成するために重要である。
ステム・ソフトウェア・メモリの大量の消費に加えて、
一般的に、従来のローカル・ハードウェア・テクスチャ
・メモリ管理方式において、システムの帯域幅が問題と
なる。従来のローカル・ハードウェア・メモリ管理方式
は、ローカル・ハードウェア・メモリ内で、全ての一連
のテクスチャMIPマップを、繰返し書き換える。テク
スチャが多角形を表現するのに必要とされるたびに、テ
クスチャの一連のMIPマップは、ローカル・メモリの
中で書き換えられる。そのような方式は、そのテクスチ
ャの使用の履歴を考慮できず、また、そのテクスチャの
将来の使用を予測することもできない。システム・メモ
リからローカル・ハードウェア・テクスチャ・メモリ
に、全ての一連の同じテクスチャを繰返してダウンロー
ドすることによって、システムの帯域幅はネガティブに
作用する。
書換アルゴリズムが、全てのテクスチャMIPマップ列
をダウンロードするので、各々のテクスチャMIPマッ
プ列は、ローカル・ハードウェア・テクスチャ・メモリ
の物理的な記憶容量の限界を上回ることができない。し
たがって、個別のハードウェア装置に接続しているグラ
フィックス・プロセスのユーザは、ローカル・テクスチ
ャ・メモリの容量を知っている必要があり、その容量よ
り大きいテクスチャが使われないようにする。多くのア
プリケーション(プロセス)がいくつかの異なる基本的
なハードウェア装置で動くことができるとき、各々の個
別のローカル・テクスチャ・メモリの制約において、そ
のような制約についての知識を持ち、装置依存機能方法
で画像を作成するユーザの負担を軽減する。
ピーを、あらゆる与えられたテクスチャに対して作るこ
とができる。しかしながら、多くの場合、それらのソフ
トウェア・コピーの全てが必要とされるわけではない。
これらの場合、ユーザは決してテクスチャを戻して参照
せず、テクスチャの寿命がくるまで、常に、それを記憶
する領域がテクセル・キャッシュに存在する。この問題
に対する従来の解決案は、グラフィックス・コア・メモ
リにコピーする前に、テクスチャ・マップ上で実行され
るオペレーションの数を減らすことに集中し、いろいろ
なソフトウェア・コピーを排除しなかった。これは、グ
ラフィックス・コアがテクスチャ上で実行(例えば、テ
クスチャの参照)されることがありえる将来の機能を決
定することができないので、ソフトウェア・コピーが必
要だと思われていたためである。
た米国特許番号第08/486447号の「TEXEL CACHE INTERRU
PT DAEMON FOR VIRTUAL MEMORY MANAGEMENT OF TEXTURE
MAPS」に上述のTIMが記述され、これによって、シ
ステム・メモリ内に共用して記憶された、マネージャ
(「TIM」)中のテクスチャ、ハードウェア・ドライ
バ、及び対応するグラフィックスAPIが提供された。
マネージャは、単一プロセスの複数のコンテキストに、
テクスチャを共有して記憶することを提供する。ガネッ
トによって記述された管理方式は、従来技術と比較して
相当なバンド幅の節減とシステム・ソフトウェア・メモ
リ空間の節減を提供する。さらに、ガネットによって記
述されたシステムは、高水準グラフィックス・プロセス
のユーザが、基本的なハードウェア装置のローカル・メ
モリの記憶容量の限界についての知識がなくとも、装置
と独立した方法で画像を作成できるようにする。
示したのと同様にして図3にブロックダイヤグラムを示
す。このシステムは、システム・プロセッサ上で稼動す
る複数のユーザ対話型プロセスPR1、PR
2、...、PRNを含む。各々のプロセスにおいて、
ユーザは、同じテクスチャ・マップを必要とする複数の
コンテキストをつくることができる。また、システム
も、基本的なグラフィックスAPIとグラフィックス・
ハードウェア・ドライバを各々のプロセスのために含
む。
スト・コンピュータのプロセッサで稼動する独立型のス
タンド・アローン・ソフトウェア・プロセスである、テ
クスチャ割込管理(「TIM」)デーモン160に関連す
る。ガネットの発明のTIM160は、別個のソケットで
各々のグラフィックス・ハードウェア・ドライバと通信
する。当業者によって知られているように、ソケット
は、2つのソフトウェア・プログラムが通信することが
できるソフトウェア通信パスである。また、TIMは、
バス162上のハードウェア装置150と通信する。
・グラフィックス・ワークステーションとして知られて
いるコンピュータ・グラフィックス・システム・ホスト
・コンピュータの従来のプロセッサで実行することがで
きる。そのようなワークステーションの例として、ヒュ
ーレット・パッカード9000のシリーズJ200がある。
カル・メモリ155内のテクスチャ・データの記憶を管理
し、また、TIMは、ソフトウェア・テクスチャ・メモ
リ管理を処理する装置と独立した部分を含み、グラフィ
ックス・ハードウェア・ドライバと、バス162上のハー
ドウェア装置に対して読み書きを行う装置に依存した部
分との交信の受け口となる。
ドウェア装置のローカル・メモリは、キャッシュ・メモ
リとして配置され、テクスチャの一部分が、あらゆる時
点で、ハードウェア装置のローカル・メモリに記憶され
る。TIMの装置と独立した部分は、キャッシュに記憶
されたテクスチャ・データの部分の使用頻度を追跡し
て、それらの部分の将来の使用を予測するためにテクス
チャの優先順位を監視する。テクスチャ・データが、キ
ャッシュに現在記憶されていない画像を表現するために
ハードウェア装置によって必要とされるとき、ハードウ
ェア内でキャッシュ・ミスが起こる。キャッシュ・ミス
が起こったとき、TIMは、キャッシュ内のテクスチャ
・データのどのブロックが最も過去に使用され、どのテ
クスチャが最も低い優先度を持っているかを考慮するこ
とによって、書き換えるべきキャッシュ内のテクスチャ
・データを決定する。
Mは、システム・メモリ内に共有メモリ領域を含み、個
々のプロセスで、大きいテクスチャまたはテクスチャの
一部分がそこに記憶され、グラフィックスAPI、グラ
フィックス・ハードウェア・ドライバ、およびTIMの
間で共有される。各々のグラフィックスAPI、個々の
プロセスのグラフィックス・ハードウェア・ドライバ、
及びTIM160は、記憶されたテクスチャ・コピーにア
クセスするために、システム共用メモリ領域のある領域
にポインタを有する。更に、TIMは、単一プロセス内
でつくられる全てのコンテキストが、それらのコンテキ
ストのために必要とされるあらゆるテクスチャの同じコ
ピーを共有するような、メモリ管理方式を提供する。し
たがって、ある種のアプリケーションに対して、ガネッ
トの発明のTIMは、システム・ソフトウェア・メモリ
空間の相当な節減を果たした。
ロセスPR1のコンテキスト1Aとコンテキスト1B
は、個有の画像の異なる表示を表現するために同じテク
スチャを必要とし、テクスチャが大きければ、ガネット
の発明のTIMは、相当なシステム・メモリ空間の節減
を果たした。上述されたガネットの発明とそれ以前のシ
ステムの相違点は、テクスチャの単一コピーが記憶さ
れ、コンテキスト1Aとコンテキスト1B間で共有され
ることである。さらに、テクスチャが、それが共有メモ
リ領域に記憶される得るのに十分な大きさならば、テク
スチャの他のコピーの1つだけが、システム共有メモリ
領域に記憶され、TIM、グラフィックスAPI1、お
よびグラフィックス・ハードウェア・ドライバHWD1
の間で共有される。したがって、この実施例において、
同じテクスチャの3つの個別のコピーのみが、システム
・ソフトウェア・メモリの異なる領域に記憶され、それ
によって、同じテクスチャを使う同じ画像の2つの表示
を表現することができる。1つのコピーがユーザ・コピ
ーであり、1つのコピーがプロセスPRIの2つのコン
テキストの間で共有され、そして、1つのコピーがグラ
フィックスAPI、グラフィックス・ハードウェア・ド
ライバ、およびTIMの間で共有される。図2で示され
たガネット以前の従来のシステムにおいて、同じテクス
チャの5つのコピーが、システム・ソフトウェア・メモ
リに記憶されなければならない。したがって、ガネット
の発明のTIMにおいて、システム・ソフトウェア・メ
モリに記憶されるテクスチャのコピーは2つ少なくな
り、大きいテクスチャに対しては、大きなメモリ空間の
節減になる。
装置の使用は、テクスチャの単一コピーのみが存在し、
それがグラフィックス・ハードウェアに保持されことを
必要とする。
形を描くためには、いくつかのステップを実行すること
が必要だった10。図4に示すように、最初に、APIコ
ールを使って、アプリケーション・プログラムはテクス
チャを指定する12。APIライブラリは、APIコール
が有効であるかを検証し14、そして、APIは、ライブ
ラリ・プライベート・バッファに、テクスチャをコピー
し、それによってテクスチャの第1のコピーを生成する
16。
M」)は、デーモンのプライベート・バッファに、テク
スチャをコピーし(おそらく、デーモン要求に合わせて
再フォーマットされる)、テクスチャの第2のコピーを
生成する18。
ャ・デーモンが三角形を描くために要求されるテクスチ
ャの一部分を提供するようにする、グラフィックス・ハ
ードウェアを有することによって、テクスチャを使用す
る三角形を描く。したがって、アプリケーション・プロ
グラムは、テクスチャの必要部分をダウンロードするテ
クスチャ・デーモンを有しなければならず、これによっ
て、テクスチャの第3のコピーを生成する24。
チャの現在の値のアプリケーションによる照会を処理す
るためか、新しいテクスチャが要求されたときグラフィ
ックス・ハードウェアからテクスチャを除去するため
に、テクスチャの追加のコピーが維持される。
目的は、動的に変化するテクスチャ・マップを有するア
プリケーションを持つユーザのパフォーマンスを大いに
向上し、テクスチャ・マップからソフトウェア・コピー
を作るために必要な時間とメモリを節減できる高速ダウ
ンロード方法を提供することである。
チャのソフトウェア・コピーを作ることが確実に必要と
されるか、またはテクスチャがユーザによって無効にさ
れるまで、テクスチャのソフトウェア・コピーを作るこ
とは延期される。
使うためにテクスチャ・ダウンロードを標準化し、ソフ
トウエア・アーキテクチャを大幅に単純化して、フレー
ム・バッファが再びテクスチャ・キャッシュにコピーす
るような場合に、効率が増すようにした。このとき、そ
れが求められない限り、ソフトウェア・コピーは必要と
されない。
スチャを高速ダウンロードすること(単に「高速ダウン
ロード」と呼ばれる)は、テクセルのソフトウェア・コ
ピーの必要性を延期またはおそらく完全に除去し、ハー
ドウェア・テクセル・キャッシュに直接テクスチャをダ
ウンロードするメカニズムを提供する。これは、ハード
ウェアにテクスチャをダウンロードする効率を、劇的に
増加し、また、動的に変化するテクスチャを持つアプリ
ケーションの効率を大いに増す。
メモリ資源だけでなく、そのようなコピーを生成するた
めに費やされる時間と共に、テクスチャの多数のコピー
を避けるために、本発明は、直接、ユーザのバッファか
らグラフィックス・ハードウェアにテクスチャを設定す
る手段を提供する。本発明の使用によって、テクスチャ
のダウンロード速度が増し、動的に変化するテクスチャ
を持つアプリケーションの描写パフォーマンスが向上す
る。本発明によって、テクスチャ・マッピングのユーザ
は、直接、ハードウェア・テクセル・キャッシュにテク
スチャを効率的にダウンロードすることができる。
テクスチャを保持するメカニズムを使用し、必要とされ
るソフトウェアにテクスチャのコピーを供給する能力を
持つ。したがって、ユーザがテクスチャを戻るように参
照するか、または、グラフィックス・コンテキストが変
化するならば、テクスチャは、戻ってユーザへ提供され
る。
ラフィックス・ハードウェアに適合するのに十分なメモ
リがないとき、テクスチャ・マッピングの現在の実行に
よって、テクスチャを照会するメカニズムを提供して、
ハードウェアにテクセルをキャッシュすることを許可す
るために、ソフトウェアにユーザのテクスチャのコピー
を記憶する。多くの場合、テクスチャのそのソフトウェ
ア・コピーは、必要とされない。これらの場合、ユーザ
は、テクスチャを戻るように参照せず、テクスチャの寿
命の間、常に、それを記憶する領域がテクセル・キャッ
シュにある。本発明は、それが確実に必要とされるま
で、あるいは、テクスチャがユーザによって無効にされ
るまで、テクスチャのソフトウェア・コピーを延期する
ことによって、この場合を最適化する。
使うためにテクスチャのダウンロードを標準化し、ソフ
トウエア・アーキテクチャを大幅に単純化し、そして、
フレーム・バッファがテクスチャ・キャッシュに再びコ
ピーするような場合に、パフォーマンスが向上し、それ
が要求されない限り、ソフトウェア・コピーは必要とさ
れない。
発明の方法50に従って、きめのある三角形を描くため
に、アプリケーション・プログラムは、テクスチャを指
定して、APIコールを使用する52。APIライブラリ
は、APIコールが有効であることを検証し54、グラフ
ィックス・ハードウェアに直ちにテクスチャをダウンロ
ードする56。本発明によると、テクスチャのこのグラフ
ィックス・ハードウェア・コピーは、例外的なものが起
こらない限り、テクスチャでできる唯一のコピーであ
る。
は、テクスチャの唯一のコピーがハードウェアにあるこ
とを、ライブラリとテクスチャ・デーモンに知らせるた
めに実行される58。テクスチャがハードウェアのみにあ
るとき、このソフトウェア・コピーは、「ダーティ(di
rty)」であるとみなされる。
テクスチャの現在のコピーを保有してから、アプリケー
ション・プログラムは、単にラフィックス・ハードウェ
アに三角形を描かせることによって、テクスチャを使用
する三角形を描く60。
ェアから読み出されなければならない状況において、グ
ラフィックス・ハードウェアからテクスチャを読み出す
古いアルゴリズムでは、(ユーザが、その値を参照する
か、またはグラフィックス・ハードウェアが、適合しな
い異なるテクスチャを必要とするので、)テクスチャが
ユーザ(照会)に戻ってコピーされるか、または、グラ
フィックス・ハードウェアに(新しく必要とされたテク
スチャで)上書される。
と、アプリケーション・プログラムがテクスチャを必要
とするならば、アプリケーション・プログラムは、テク
スチャが「ダーティ」かどうか74、すなわち、それがす
でにグラフィックス・ハードウェアにあるどうかを知る
ために、最初にブックキーピング処理エントリをチェッ
クする。もしそうならば、テクスチャ・デーモンは、ハ
ードウェアからテクスチャをアップロードする76。それ
から、APIライブラリがテクスチャを必要とするなら
ば、テクスチャ・デーモンは、APIライブラリにそれ
を与える78。
当業者にとって明らかなように、本発明の方法による
と、テクスチャ・マッピング・ユーザ、特に、動的に変
化するテクスチャ・マップを有するアプリケーションを
持つユーザのパフォーマンスを大いに向上する。この方
法によれば、テクスチャ・マップからソフトウェア・コ
ピーを作るために必要な時間とメモリが、除かれる。最
悪の場合でも、ユーザがテクスチャを無効にすることな
くテクセル・キャッシュ空間を越えるまで、または、テ
クスチャがユーザの照会か他のソフトウェア要求のため
に読み戻されるまでの、時間とメモリが、削除される。
最良の場合は、必要とされる時間とメモリが、完全に除
かれる。
ンを使用するコンピュータ・グラフィックス・ハードウ
ェア・システムにおいて、テクスチャの高速ダウンロー
ドを行う方法であって、(a)グラフィック・アプリケ
ーション・プログラマ・インターフェース(「AP
I」)に、アプリケーション・プログラムによって、有
効なAPIコールに応じて、テクスチャをグラフィック
ス・ハードウェアへロードさせるステップと、(b)テ
クスチャの存在と有効性をグラフィック・ソフトウェア
に記録するためにブックキーピング処理エントリを実行
するステップと、を含み、テクスチャが必要とされたと
き、グラフィックス・ライブラリ・ソフトウェアと前記
TIMデーモンが前記ブックキーピング処理エントリを
チェックして、そのテクスチャがグラフィックス・ハー
ドウェアから読み出されなければならないかどうかを決
定することができることを特徴とする前記方法。
チャのデータ標本を前記グラフィックス・ハードウェア
にロードするステップを含む、(1)記載の方法。 (3)前記ステップ(b)は、前記TIMデーモン及び
前記グラフィックスAPIの両方からアクセスできる共
用メモリ領域にフラグをセットするステップを含む、
(2)記載の方法。 (4)前記フラグをセットするステップは、変数を、前
記グラフィックスAPIによって保持された前記テクス
チャ・データのコピーが最後に修正されてから、前記グ
ラフィックス・ハードウェアの中に保持されたテクスチ
ャ・データが変化したかどうかを示す値にセットするス
テップを含む、(3)記載の方法。 (5)更に、前記フラグが、前記グラフィックスAPI
によって保持された前記テクスチャ・データのコピーが
最後に修正されてから、前記テクスチャ・データのコピ
ーが変化したことを示す値を有する場合、前記グラフィ
ックス・ハードウェアから前記テクスチャ・データを読
み出すステップを含む、(4)記載の方法。
チャ・マップを有するアプリケーションのパフォーマン
スを向上し、テクスチャ・マップからソフトウェア・コ
ピーを作る際に必要な時間とメモリを節減することがで
きる。
ムのハードウェアの一部と階層的なソフトウェアのブロ
ック図である。
部と階層的なソフトウェアのブロック図である。
処理を示すフローチャート図である。
ーカル・メモリ 160 テクスチャ割込管理デーモン 162 バ
ス
Claims (1)
- 【請求項1】テクスチャ割込マネージャ(「TIM」)
デーモンを使用するコンピュータ・グラフィックス・ハ
ードウェア・システムにおいて、テクスチャの高速ダウ
ンロードを行う方法であって、 (a)グラフィック・アプリケーション・プログラマ・
インターフェース(「API」)が、アプリケーション
・プログラムによって、有効なAPIコールに応じて、
テクスチャをグラフィックス・ハードウェアにロードす
るようにするステップと、 (b)テクスチャの存在と有効性をグラフィックス・ソ
フトウェアに記録するブックキーピング処理エントリを
実行するステップと、を含み、テクスチャが必要とされ
たとき、グラフィックス・ライブラリ・ソフトウェアと
前記TIMデーモンが前記ブックキーピング処理エント
リをチェックして、そのテクスチャがグラフィックス・
ハードウェアから読み出されなければならないかどうか
を決定することができることを特徴とする前記方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/690,426 US5936632A (en) | 1996-07-26 | 1996-07-26 | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels |
| US690,426 | 1996-07-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH10116346A true JPH10116346A (ja) | 1998-05-06 |
| JPH10116346A5 JPH10116346A5 (ja) | 2005-04-07 |
Family
ID=24772404
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9173485A Withdrawn JPH10116346A (ja) | 1996-07-26 | 1997-06-30 | テクスチャの高速ダウンロード方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5936632A (ja) |
| JP (1) | JPH10116346A (ja) |
| DE (1) | DE19709227B4 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003530745A (ja) * | 2000-04-08 | 2003-10-14 | サン・マイクロシステムズ・インコーポレイテッド | 複数クライアントへの単一メディア・トラックのストリーミング |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3104643B2 (ja) * | 1997-05-07 | 2000-10-30 | 株式会社セガ・エンタープライゼス | 画像処理装置及び画像処理方法 |
| US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
| JP3630934B2 (ja) * | 1997-08-29 | 2005-03-23 | 三洋電機株式会社 | テクスチャ記録方法 |
| KR100300972B1 (ko) * | 1997-09-19 | 2001-09-03 | 윤종용 | 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법 |
| US6762763B1 (en) * | 1999-07-01 | 2004-07-13 | Microsoft Corporation | Computer system having a distributed texture memory architecture |
| US6529970B1 (en) * | 2000-04-13 | 2003-03-04 | Fujitsu Microelectronics America, Inc. | Method and microprocessor with fast program downloading features |
| US6604175B2 (en) * | 2001-03-01 | 2003-08-05 | Sony Corporation | Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type |
| US7443401B2 (en) * | 2001-10-18 | 2008-10-28 | Microsoft Corporation | Multiple-level graphics processing with animation interval generation |
| US7161599B2 (en) | 2001-10-18 | 2007-01-09 | Microsoft Corporation | Multiple-level graphics processing system and method |
| US7619633B2 (en) | 2002-06-27 | 2009-11-17 | Microsoft Corporation | Intelligent caching data structure for immediate mode graphics |
| US7064766B2 (en) * | 2001-10-18 | 2006-06-20 | Microsoft Corporation | Intelligent caching data structure for immediate mode graphics |
| EP1359773B1 (en) * | 2002-04-15 | 2016-08-24 | Microsoft Technology Licensing, LLC | Facilitating interaction between video renderers and graphics device drivers |
| US7219352B2 (en) * | 2002-04-15 | 2007-05-15 | Microsoft Corporation | Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays |
| US7451457B2 (en) | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
| US7486294B2 (en) | 2003-03-27 | 2009-02-03 | Microsoft Corporation | Vector graphics element-based model, application programming interface, and markup language |
| US7466315B2 (en) | 2003-03-27 | 2008-12-16 | Microsoft Corporation | Visual and scene graph interfaces |
| US7417645B2 (en) | 2003-03-27 | 2008-08-26 | Microsoft Corporation | Markup language and object model for vector graphics |
| US7088374B2 (en) * | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
| US7139002B2 (en) * | 2003-08-01 | 2006-11-21 | Microsoft Corporation | Bandwidth-efficient processing of video images |
| US7643675B2 (en) * | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
| US7158668B2 (en) | 2003-08-01 | 2007-01-02 | Microsoft Corporation | Image processing using linear light values and other image processing improvements |
| US7511718B2 (en) | 2003-10-23 | 2009-03-31 | Microsoft Corporation | Media integration layer |
| US9563971B2 (en) | 2011-09-09 | 2017-02-07 | Microsoft Technology Licensing, Llc | Composition system thread |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| JPH05257899A (ja) * | 1992-02-19 | 1993-10-08 | Nec Corp | キャッシュメモリユニット |
| US5404428A (en) * | 1993-12-07 | 1995-04-04 | Sun Microsystems, Inc. | Method and system for updating derived items in a view model which includes multiple coordinate systems |
| US5745118A (en) * | 1995-06-06 | 1998-04-28 | Hewlett-Packard Company | 3D bypass for download of textures |
| US5790130A (en) * | 1995-06-08 | 1998-08-04 | Hewlett-Packard Company | Texel cache interrupt daemon for virtual memory management of texture maps |
-
1996
- 1996-07-26 US US08/690,426 patent/US5936632A/en not_active Expired - Fee Related
-
1997
- 1997-03-06 DE DE19709227A patent/DE19709227B4/de not_active Expired - Fee Related
- 1997-06-30 JP JP9173485A patent/JPH10116346A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003530745A (ja) * | 2000-04-08 | 2003-10-14 | サン・マイクロシステムズ・インコーポレイテッド | 複数クライアントへの単一メディア・トラックのストリーミング |
Also Published As
| Publication number | Publication date |
|---|---|
| DE19709227B4 (de) | 2006-05-24 |
| DE19709227A1 (de) | 1998-01-29 |
| US5936632A (en) | 1999-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5936632A (en) | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels | |
| CN101344961B (zh) | 使用常驻小中见大贴图(mipmap)数据外推非常驻小中见大贴图数据 | |
| KR100575143B1 (ko) | 지리적 프리미티브를 포함하는 장면을 묘사하는 장치,메모리 자동 관리 방법 및 머신 판독가능 매체 | |
| US5801717A (en) | Method and system in display device interface for managing surface memory | |
| US6426753B1 (en) | Cache memory for high latency and out-of-order return of texture data | |
| US6046747A (en) | Graphics application programming interface avoiding repetitive transfer of texture mapping data | |
| US7746352B2 (en) | Deferred page faulting in virtual memory based sparse texture representations | |
| US6650333B1 (en) | Multi-pool texture memory management | |
| US6177944B1 (en) | Two phase rendering for computer graphics | |
| JP2000092390A (ja) | ディジタル・ビデオ信号処理装置及び方法 | |
| JPH07141202A (ja) | コンテキストを管理するシステム及び方法 | |
| CN101236661A (zh) | 在计算机中管理纹理数据的系统与方法 | |
| KR102480787B1 (ko) | 순서에 관계 없는 캐시 리턴 | |
| US6587113B1 (en) | Texture caching with change of update rules at line end | |
| CN115100022A (zh) | 图形处理方法及系统 | |
| US6744438B1 (en) | Texture caching with background preloading | |
| JPH09282470A (ja) | グラフィック処理システム | |
| US6683615B1 (en) | Doubly-virtualized texture memory | |
| JP2000089959A (ja) | デ―タ処理方法及び装置 | |
| JP2004505355A (ja) | データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置 | |
| EP1872331A2 (en) | Methods and systems for processing objects in memory | |
| CN112068908A (zh) | 图形处理方法及相关装置和设备 | |
| US7050061B1 (en) | Autonomous address translation in graphic subsystem | |
| US7710425B1 (en) | Graphic memory management with invisible hardware-managed page faulting | |
| US6201547B1 (en) | Method and apparatus for sequencing texture updates in a video graphics system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040517 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070124 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070330 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070404 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070717 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070918 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071210 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071213 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080317 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080407 |