JP3375074B2 - キャプチャされたグラフィクス・ハードウェア命令を使用したグラフィクス・レンダリングの方法およびシステム - Google Patents

キャプチャされたグラフィクス・ハードウェア命令を使用したグラフィクス・レンダリングの方法およびシステム

Info

Publication number
JP3375074B2
JP3375074B2 JP2000088445A JP2000088445A JP3375074B2 JP 3375074 B2 JP3375074 B2 JP 3375074B2 JP 2000088445 A JP2000088445 A JP 2000088445A JP 2000088445 A JP2000088445 A JP 2000088445A JP 3375074 B2 JP3375074 B2 JP 3375074B2
Authority
JP
Japan
Prior art keywords
hardware
program
rendering
instructions
instruction
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.)
Expired - Fee Related
Application number
JP2000088445A
Other languages
English (en)
Other versions
JP2000311240A (ja
Inventor
ロバート・ジェイ・デヴィンズ
ポール・エム・シェーンリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000311240A publication Critical patent/JP2000311240A/ja
Application granted granted Critical
Publication of JP3375074B2 publication Critical patent/JP3375074B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・グ
ラフィクス・システムに関し、詳細には、わずかなホス
ト・プロセッサ操作しか必要とせずにグラフィクス・レ
ンダリングを要求時に実行することができるレジスタ・
ベースのグラフィクス・サブシステム上に、ホスト・プ
ロセッサからのレンダリング命令をオフロード(offloa
d)することによって、グラフィクス・レンダリング速
度と効率を向上させる方法およびシステムに関する。
【0002】
【従来の技術】一般に、コンピュータ・グラフィクス画
像は、フレーム・バッファと呼ばれる記憶場所に記憶さ
れた画素定義(輝度と色)を表示画面に転送することに
よって生成される。現在、ほとんどの表示システムはラ
スタ方式、すなわち、表示画面の蛍光体被覆された内表
面をビームが適切な周波数で走査するときに、フレーム
・バッファに記憶された値によって所与の画素における
電子ビームの輝度と色が決まる方式である。
【0003】プログラム・コード中の画像定義のセット
を、CRT上に物理的に表示可能な画素値のセットに変
換し、その後でそれらの画素値をCRT上に走査するプ
ロセスを、しばしば「レンダリング」と呼ぶ。レンダリ
ングでは、プロセッサが、より複雑な画像のためのビル
ディング・ブロックであるグラフィカル・プリミティブ
の指定をアプリケーション・プログラムから取出し、そ
れらを画素定義に変換しなければならない。
【0004】グラフィクス操作の実行を必要とするアプ
リケーション・プログラムは、一般に、線、円、多角形
などのプリミティブをレンダリングする基本レンダリン
グ関数を呼び出す。これらの基本レンダリング関数は、
低水準コードで書かれ、グラフィクス・ライブラリ内に
置かれる。基本レンダリング関数のセットは、アプリケ
ーション・プログラマーズ・インタフェース(API)
と呼ばれ、これによって、プログラマは、グラフィクス
・アプリケーションをこれらの基本関数で表してCやF
ortranなどの高水準言語で書くことができ、低水
準コードを書く必要がない。標準化された市販のAPI
の中には、OpenGL、PHIGS(プログラマーズ
・ハイアラキカル・グラフィクス・スタンダード)、お
よびGKS(グラフィカル・カーネル・システム)を含
むものがある。
【0005】
【発明が解決しようとする課題】画像をレンダリングす
るためには、アプリケーション・プログラム内の高水準
API指定を実施し、ハードウェア・レベル・コードに
還元しなければならない。次に、このハードウェア・レ
ベル・コードを実行して、フレーム・バッファへの書込
みまたは修正を行うのに必要な実際の物理的入出力操作
を行わなければならない。
【0006】単純画像の場合でも、これらのタスクはプ
ロセッサ時間とシステム・メモリのかなりの部分を消費
することがある。しかし、グラフィクス・アプリケーシ
ョンはますます高度化しており、複雑で、リアルな画像
をカラーで、光や陰影などを付けてレンダリングするこ
とを必要とするようになっている。たとえばビデオ・ゲ
ームの場合に、特定の画像を繰り返し生成する必要があ
る場合、プロセッサ時間とシステム・メモリの必要量が
多いことによって画像レンダリングが遅くなり、ユーザ
を苛立たせることがある。
【0007】したがって、ホスト・プロセッサの反復的
タスクをオフロードし、必要な他のタスクを実行するこ
とができるように解放することができるレンダリング手
法が必要である。具体的には、グラフィクス・アプリケ
ーション・プログラム内の高水準API指定からハード
ウェア実行可能命令を生成するのに必要なホスト・プロ
セッサ操作を、反復してレンダリングする必要がある画
像について1回行うだけで済むようにし、それらのハー
ドウェア実行可能命令を後で要求時に実行して画像をレ
ンダリングすることができれば、ホスト・プロセッサ・
サイクルおよびメモリが節約され、レンダリング速度が
向上するであろう。このような手法が従来の技術に存在
するとは知られていない。
【0008】本発明は、レンダリング・タスクをホスト
・プロセッサから、レンダリング・タスクを要求時に実
行可能なグラフィクス・サブシステムにオフロードする
方法およびシステムを提供する。
【0009】
【課題を解決するための手段】本発明による方法および
システムでは、グラフィクス・アプリケーション・プロ
グラムによって呼び出された基本レンダリング関数によ
って生成された、グラフィクス・ハードウェアに対する
ハードウェア命令が、メモリに取り込まれる。ハードウ
ェア命令が取り込まれた後は、要求時に画像をレンダリ
ングするためにそれらの命令をグラフィクス・サブシス
テム上で実行することができ、わずかなホスト・プロセ
ッサ操作しか必要としない。
【0010】本発明によるソフトウェアは、ハードウェ
ア命令として取り込む基本レンダリング関数のシーケン
スを定義するグラフィクス・アプリケーション・プログ
ラム内の命令に応答する。アプリケーション・プログラ
ム内の命令は、典型的には、本発明が備える利点を利用
したいと考えるプログラマによってコーディングされ、
プログラム開始識別子とプログラム終了識別子とによっ
て境界が区切られた、特定の画像をレンダリングするた
めのAPI内の基本レンダリング関数に対する終了高水
準呼出しを含むことができる。
【0011】好ましい実施形態によると、アプリケーシ
ョン・プログラムが実行されると、プログラム開始識別
子が本発明のソフトウェアを呼び出す。このソフトウェ
アは、プログラム開始識別子とプログラム終了識別子と
で境界を区切られた基本レンダリング関数に対する高水
準呼出しに対応するハードウェア命令を生成する命令を
実行する。ハードウェア命令は、実行されずにメモリに
記憶される。次に、このソフトウェアは、プログラム終
了識別子に遭遇すると、蓄積された記憶ハードウェア命
令をホスト・システムに実行可能プログラムとして登録
する。
【0012】その後、アプリケーション・プログラム
は、この画像のレンダリングを必要とするときは常に、
登録されている実行可能プログラムに対する呼出しを発
行し、記憶されているハードウェア命令がグラフィクス
・サブシステム内で実行されて、画像をレンダリング
し、ホスト・プロセッサ操作はわずかしか必要としな
い。したがって、アプリケーション・プログラムによっ
て指定された基本レンダリング関数のシーケンスに対応
するハードウェア命令を1回生成するだけで済むため、
ホスト・プロセッサ・サイクルが節約され、他のタスク
のために使用することができ、システム・メモリ所要量
が低減される。
【0013】
【発明の実施の形態】図1に、従来技術のグラフィクス
・レンダリング・システムの概念概要図を示す。図1に
示すシステムでは、ホスト・オペレーティング・システ
ム5は、グラフィク・デバイス・ドライバ・ソフトウェ
ア7を有し、このグラフィクス・デバイス・ドライバ・
ソフトウェア7はグラフィクス・アプリケーション・プ
ログラム8内の高水準グラフィクス・レンダリング指定
に応答して、グラフィクス・サブシステム6内のグラフ
ィクス・アクセラレータ30に低水準命令を出す。アク
セラレータ30は、グラフィクス・デバイス・ドライバ
7の制御下で、フレーム・バッファ35に画像定義を書
込み、これらの画像定義が表示装置40上に走査されて
画像が物理的にレンダリングされる。
【0014】これと対照して、図2に本発明によるグラ
フィクス・レンダリングのための方法およびシステムに
おける基本ソフトウェア構成要素およびハードウェア構
成要素を示す。要素としては、ランダム・アクセス・メ
モリ20と、「ディスプレイ・リスト・プロセッサ(D
LP)」25と呼ばれるカスタム・グラフィクス・プロ
セッサと、アクセラレータ30と、フレーム・バッファ
35と、CRTなどの表示装置40を含むグラフィクス
・サブシステム10が含まれる。DLP25は、メモリ
20に記憶されているハードウェア命令をフェッチする
ことができ、それらの命令を発行してアクセラレータ3
0を制御することができる。アクセラレータ30は、D
LP25によって発行された命令に従って画素定義をフ
レーム・バッファ35に書き込むことができるようにす
る高速レジスタを含む。画素定義はその後フレーム・バ
ッファ35から表示装置40に走査され、画像が生成さ
れる。
【0015】次に図2と図3の両方を参照すると、本発
明の特徴を実現するコンピュータ実行可能命令がグラフ
ィクス・デバイス・ドライバ15内に実施されている。
デバイス・ドライバ15は、キャプチャ・ルーチン50
とAPIセット17、すなわち、プリミティブをレンダ
リングする基本レンダリング関数のセットを含む。AP
I内の各関数は、ハードウェア・レベルでのコンピュー
タ実行可能命令のシーケンスと、たとえば所与のプリミ
ティブの寸法および色とフレーム・バッファ内のその記
憶場所とを指定する一次レジスタ書込み命令とを含む。
【0016】API17内の関数は、固有ニーモニック
識別子、たとえば「Draw_Line」、「Draw_Circle」また
は「Fill_Circle」によって関数を指定し、それに線の
長さ、円の半径、塗りつぶす色などの適切なパラメータ
を渡すことにより、高水準プログラム内の命令によって
呼び出すことができる。
【0017】キャプチャ・ルーチン50は、ホスト・シ
ステム5上で実行されている高水準アプリケーション・
プログラム45内の命令に応答し、ランダム・アクセス
・メモリ20内にハードウェア命令として事前記憶する
API関数呼出し47のシーケンスを識別するコンピュ
ータ実行可能命令を含む。高水準プログラム内の命令
は、本発明が備える有利な機構を呼び出すために、一般
にはプログラマによって、グラフィクスのレンダリング
を必要とするアプリケーション・プログラムにコーディ
ングされる。
【0018】本発明の機構を呼び出す高水準アプリケー
ション・プログラム45内の命令は、「Begin_Progra
m」46と「End_Program」48の識別対を含み、これに
よって、デバイス・ドライバ15に備えられているAP
Iセット17内の特定のレンダリング関数に対するニー
モニック識別子による呼出しとして(必要なパラメータ
と共に)プログラマによってコーディングされたAPI
関数呼出し47のシーケンスを囲むかまたは境界を区切
る。プログラマは、所望の画像を生成するために、AP
Iシーケンスを任意にコーディングする。Begin_Progra
m/End_Program境界区切り対によって、メモリ20内に
ハードウェア命令として事前記憶するAPIシーケンス
が識別される。
【0019】アプリケーション・プログラム45内のBe
gin_Program命令46が実行されると、デバイス・ドラ
イバ・コード15内のキャプチャ・ルーチン50に対し
て関数呼出しが発行される。図3に、このキャプチャ・
ルーチンの基本的な流れを示す。図のシーケンスは、ア
プリケーション・プログラム45内のBegin_Program命
令46によって開始される。まず、ブロック55に示す
ように、キャプチャ・ルーチンは、デバイス・ドライバ
15に対して、API関数呼出し47によって生成され
たハードウェア命令をアクセラレータ30に発行するこ
とによって実行するのではなく、それらのハードウェア
命令をメモリ20に記憶するように指示するフラグを設
定する。したがって、ブロック60に示すように、プロ
グラマ指定パラメータをAPIライブラリ17内の適切
なAPIに渡し、APIをメモリ20に記憶することに
よって、Begin_Program命令46に続くAPI関数呼出
し47が評価され、対応するハードウェア命令が生成さ
れる。APIは、フレーム・バッファ35への書込みを
行い、プログラマによって呼出しパラメータに指定され
た特定のレンダリング命令関数を実行する完全機械実行
可能レジスタ命令を含む。キャプチャ・ルーチン50
は、ブロック60に示す操作を各API関数呼出し47
ごとに実行する。キャプチャ・ルーチンの間、デバイス
・ドライバは、メモリ20内に記憶された命令の開始ア
ドレスと範囲を計算し、記録する。次に、ブロック65
に示すように、アプリケーション・プログラム45がEn
d_Program命令48を発行すると、キャプチャ・ルーチ
ンは、Begin_Program命令46によって設定されたフラ
グをリセットし、記憶されたハードウェア実行可能命令
全体を実行可能プログラムとしてホスト・システム5に
登録する。これでこのプログラムは、固有ニーモニック
識別子である「id」を使用して呼び出せるようにな
る。このidは、デバイス・ドライバによって計算され
てアプリケーション・プログラム45に返される数値を
含む変数である。「id」変数には通常、プログラマに
よってBegin_Program命令46で意味のある名前が与え
られる。
【0020】デバイス・ドライバは、上述のプロセスを
アプリケーション・プログラム45内の各Begin_Progra
m/End_Program対について実行する。このような対は多
数ある場合があるが、境界を区切られたAPIシーケン
ス47がハードウェア命令に変換され、メモリ20に記
憶され、実行可能プログラムとしてホスト・システム5
に登録された後は、通常のホスト・プロセッサ、すなわ
ちデバイス・ドライバ操作の必要なしに、グラフィクス
・サブシステム10によって要求時に実行することがで
きる。図3に示すように、アプリケーション・プログラ
ム45は、Execute_Program命令49内で、割り当てら
れたニーモニック「id」を指定するだけで、表示画面
上に画像を何度でもレンダリングすることができる。Ex
ecute_Program命令49によって、DLP25が、メモ
リ20に記憶されている「id」に対応するハードウェ
ア命令を読み取り、それらの命令をアクセラレータ30
に対して発行する。アクセラレータは、レジスタ命令を
実行してフレーム・バッファ35に入れる。次に、フレ
ーム・バッファ35から画素定義が表示装置40上に走
査され、所望の画像が生成される。
【0021】必要なデバイス・ドライバ操作は、Locate
_Scene命令70で指定された画像をフレーム・バッファ
35内で探し出し、次に、Execute_Program命令49で
指定されている記憶ハードウェア命令を開始して画像を
物理的にレンダリングすることだけである。普通ならア
プリケーション・プログラムが必要とするたびにAPI
関数のシーケンスを実際に実行することによってシーケ
ンスを実行することが必要になるはずのデバイス・ドラ
イバ操作が不要になり、それらの操作に要するホスト・
プロセッサ・サイクルとメモリが他の用途のために解放
される。
【0022】プログラマがビデオ・ゲームのために自動
車の画像を生成する、本発明の一応用例を以下に示す。
この自動車の画像は、反復して生成する必要がある。
【0023】一般には、プログラマは、ホスト・プロセ
ッサと、メモリと、読取り/書込みディスク記憶装置
と、オペレーティング・システムおよびソフトウェア・
アプリケーションとのユーザ対話を可能にするキーボー
ドやマウスなどの入出力装置とを含むコンピュータ・シ
ステム上で作業をし、ソフトウェア・アプリケーション
には、ソフトウェアの作成と編集のためのテキスト・エ
ディタが含まれる。プログラマは、テキスト・エディタ
を使用して、本発明のデバイス・ドライバ・ソフトウェ
アによって認識可能な命令を含むソース・コードの作成
または編集を行う。本発明を実施するためには、コンピ
ュータ・システムは一般には、図2に示す構成要素を含
むグラフィクス・サブシステムをさらに必要とする。
【0024】このビデオ・ゲームのためのソース・コー
ドで、プログラマは一般には、自動車画像の構成要素を
レンダリングするAPI関数のシーケンスの境界を区切
るBegin_Program/End_Program対を定義するプログラム
命令を作成する。たとえば、自動車のタイヤ構成要素を
レンダリングするAPI関数のシーケンスを区切る疑似
コードは、以下のようになる。 htire = Begin_Program();//基本タイヤをレンダリングする記録プログラムを 定義する; Draw_Circle(100); //タイヤの輪郭を描く; Fill_Circle(Black); //円を黒で塗りつぶす; Draw_Circle(10); //タイヤの中央に直接より小さい円を描く; Fill_Circle(Silver); //この円にクロムの中心を付ける; End_Program(); //タイヤをレンダリングするこのハードウェア //命令を保管する;
【0025】この例では、最初の命令「htire = Begin_
Program()」によって、本発明の方法によりハードウェ
ア命令に変換してメモリに記憶するAPI関数のシーケ
ンスの開始がマークされる。ニーモニック「htire」
は、プログラマによって恣意的に割り当てられたもので
あり、デバイス・ドライバ15によって計算され、生成
する記憶プログラムの識別と追跡に使用される数値が入
る変数である。
【0026】後続の命令「Draw_Circle(100)」(「10
0」はここでは関数パラメータであり、参照番号ではな
いことに留意)、「Fill_Circle(Black)」、「Draw_Cir
cle(10)」、および「Fill_Circle(Silver)」は、プリミ
ティブをレンダリングするAPI17内の関数の呼出し
である。ここでは、API関数によって、中央に小さい
銀色の円を持つ黒い円がレンダリングされ、タイヤが表
現される。
【0027】最後の行「End_Program()」は、記憶する
APIシーケンスの終わりをマークする。
【0028】このビデオ・ゲームのソース・コードを同
様に編集して、自動車の車体、ウィンドウ、バンパなど
をレンダリングするAPIシーケンスの境界が区切られ
る。
【0029】一般に、本発明によって得られる利点を最
もよく実現するには、プログラマはアプリケーション・
プログラムの実行の準備段階または初期設定段階とし
て、上述のように、ハードウェア命令として事前記憶す
るすべてのAPIシーケンスを特定する。ハードウェア
命令が記憶された後でそれらを実行するソース・コード
が、この初期設定段階の後に続くことになる。この自動
車の例では、記憶ハードウェア命令を実行する疑似コー
ドはたとえば以下のようになる。 Locate_Scene(front); //前輪タイヤを描画する場所を指定する; Execute_Program(htire); //自動車の前部でタイヤ全体を //レンダリングする; Locate_Scene(rear); //後輪タイヤを描画する場所を指定する; Execute_Program(htire); //自動車の後部でタイヤ全体を //レンダリングする; Locate_Scene(top); //自動車の車体を描画する場所を指定する; Execute_Program(hbody); //自動車の車体を描画する(「hbody」は //「htire」と同様、事前記憶プログラムである)
【0030】上述のように事前記憶APIシーケンスを
識別し、実行するように編集された後で、このビデオ・
ゲーム・ソース・コードは、後で実行するために記憶装
置に保管される。
【0031】図4に、上述のプログラム例の実行を図示
する(自動車の車体のレンダリングは図示されていな
い)。このプログラムは、ホスト・システム5内でグラ
フィクス・アプリケーション・プログラム45として実
行される。命令「htire = Begin_Program」46の実行
の結果、キャプチャ・ルーチン50に対する関数呼出し
が行われ、図3に示す基本プロセスが開始される。上述
の特定の例のプロセスの流れを図4に示す。
【0032】まず、キャプチャ・ルーチン50が、AP
I関数呼出し47に対応するハードウェア命令を実行せ
ずにメモリ20に記憶することを示すフラグを設定す
る。したがって、ブロック60aに示すように、API
呼出し「Draw_Circle(100)」47aによって、キャプチ
ャ・ルーチン50は、対応するハードウェア命令の生成
と記憶を行う命令を実行する。そのために、キャプチャ
・ルーチンは、この所期の円の半径を定義するプログラ
マ指定パラメータ「100」を、レジスタ入出力命令を
含む基本レンダリング関数「Draw_Circle()」18に渡
し、このレジスタ命令をメモリ20に記憶する。
【0033】次に、ブロック60bに示すように、キャ
プチャ・ルーチンは、次の命令「Fill_Circle(Black)」
47bに応答し、基本レンダリング関数「Fill_Circl
e()」19に色パラメータ「Black」を渡すことによっ
て、円を黒で塗りつぶすハードウェア命令を生成し、こ
のレジスタ命令をメモリ20に記憶する。
【0034】ブロック60cおよび60dは、API指
定47cおよび47dと同様に応答する。
【0035】次に、アプリケーション・プログラムがEn
d_Program命令48を出し、キャプチャ・ルーチンはブ
ロック65に示すように応答する。Begin_Program命令
によって設定されたフラグがリセットされ、上記のプロ
セス中にメモリ20に記憶されたハードウェア命令全体
が実行可能プログラム「htire」としてホスト・システ
ム5に登録される。
【0036】アプリケーション・プログラム45は実行
を続ける。これで、タイヤの画像をレンダリングするの
に必要なすべてのハードウェア・レベルの命令が、実行
可能プログラム「htire」としてメモリ20に記憶され
ている。したがって、この後で、アプリケーション・プ
ログラムは、このタイヤを表示装置40上でレンダリン
グしたいときにいつでも「Execute_Program(htire)」命
令49を必要な回数だけ出せば、グラフィクス・サブシ
ステムがレンダリングする。その際、Locate_Scene命令
70aおよび70bでの指定に従って画像の位置を決
め、画像を物理的にレンダリングするExecute_Program
命令49で指定されている記憶ハードウェア命令を開始
する以外のデバイス・ドライバ操作は不要である。Exec
ute_Program命令49に応答して、DLP25がメモリ
20に記憶されている「htire」に対応するハードウェ
ア命令を読み取り、その命令をアクセラレータ30に対
して出す。アクセラレータは、フレーム・バッファ35
に書き込むレジスタ命令を実行する。次に、フレーム・
バッファ35から画素定義が表示装置40上に操作さ
れ、タイヤの画像が生成される。
【0037】上述の自動車レンダリングの例では、Loca
te_Scene(front)70aおよびLocate_Scene(rear)70
b疑似コード命令は、キャプチャしたハードウェア命令
を使用してタイヤのレンダリングのためのフレーム・バ
ッファ場所を指定する命令である。複雑なシーンである
自動車は、Locate_Scene命令で指定された場所に、タイ
ヤ、車体などの構成要素を組み立てることによって構成
される。
【0038】Execute_Program命令をネストすることに
よって自動車をレンダリングすることも可能である。た
とえば、「htire」、「hbody」などを呼び出すExecute_
Program命令を含む「hcar」というメイン・プログラム
を作成することができる。これらのExecute_Program命
令の前に、基本シーンを基準にして、基本シーン内のオ
ブジェクトをレンダリングする場所を指定するLocate_S
cene_Object命令を付ける。次に、「hcar」がキャプチ
ャされたら、単一のExecute_Program(hcar)命令を使用
して自動車全体をレンダリングすることができる。
【0039】自動車レンダリングの例で示したように、
本発明が備える利点は、上述の方法およびシステムによ
り、ハードウェア命令としてキャプチャされたより単純
で再配置可能なサブシーンを使用することによって、複
雑なシーンを効率的に作成することができることであ
る。フレーム・バッファ内の基本シーンの場所を指定
し、次に、キャプチャされたハードウェア命令を使用し
て基本シーン内にサブシーンを配置することによって複
雑なシーンを迅速にレンダリングすることができる。
【0040】Locate_Scene命令自体を、再配置可能サブ
シーンと共にハードウェア命令としてキャプチャするこ
とによって、さらに改良された機構を実現することがで
きる。一例を、以下の疑似コードに示す。//右下隅付近
に対角線を含む再配置可能サブシーンを作成する hprog = Begin_Program() //「hprog」という記憶プログラムを作成す る //キャプチャ・ルーチンを開始する; Locate_Scene_Object(20,20) //指定された基本シーン座標を基準にして //座標(20,20)にオブジェクトを配置する //ハードウェア命令を生成し、記憶する; Drawn_in_Object(0,0,10,10) //10画素の対角線をレンダリングする //ハードウェア命令を生成し、記憶する; End_Program(hprog) //キャプチャ・ルーチンを終了し、 //「hprog」を実行可能プログラムとして //ホスト・システムに登録する
【0041】アプリケーション・プログラム45で上記
の疑似コードをコーディングし、図2および図3に示す
ようにホスト・システム5上で実行すると、メモリ20
上のハードウェア命令から成る記憶プログラムが作成さ
れ、これがDLP25で実行されると、基本シーン内の
指定座標を基準にして、デカルト(x,y)座標(2
0,20)を有するフレーム・バッファ場所に10画素
の対角線がレンダリングされる。
【0042】キャプチャされたプログラム「hprog」を
使用して基本シーン内にサブシーンを効率的に再配置
し、レンダリングする例を、以下の疑似コードに示す。 Locate_Scene(primary_scene,0,0,) //基本シーン内の座標(0,0)に //サブシーンを配置する; Execute_Program(hprog) //キャプチャしたハードウェア命令 //を使用し、(0,0)を基準にして //(20,20)にサブシーン(10画素の //対角線)をレンダリングする; Locate_Scene(primary_scene,55,59) //基本シーン内の座標(55,59)に //サブシーンを配置する; Execute_Program(hprog) //キャプチャしたハードウェア命令 //を使用し、(55,59)を基準にして //(20,20)にサブシーン(10画素の //対角線)をレンダリングする
【0043】上記の疑似コード例を、アプリケーション
・プログラム45内で実行すると、DLP25は、キャ
プチャされたハードウェア命令「hprog」を使用して、
「primary_scene」によって指定された基本シーン内の
座標(20,20)および座標(75,79)に、10
画素の対角線から成るサブシーンをレンダリングする。
【0044】上述の本発明の概念は、広範囲の可能な応
用分野を持ち、これを使用して、アプリケーション・プ
ログラマによる指定の通りに、様々なタイプの高水準コ
ンピュータ・プログラム命令シーケンスから再使用可能
記憶ハードウェア・レベル命令を生成することができ
る。次に、この記憶ハードウェア命令を、サブシステム
上で実行することができ、ホスト・オペレーティング・
システムは最小限の操作しか必要とせず、ホスト・プロ
セッサ・サイクルおよびメモリの必要量が低減される。
【0045】前述のように、本発明は、グラフィクス・
サブシステムのグラフィクス・デバイス・ドライバ内の
コンピュータ実行可能命令として実施されるので有利で
ある。実施のために、デバイス・ドライバ・コードを適
切な場所の任意のコンピュータ使用可能媒体上、たとえ
ばコンピュータ・メモリ内に、ホスト・オペレーティン
グ・システムの完全リンク・サブルーチンとして常駐さ
せることができる。アクティブに実施しない場合には、
コードをテープ、フロッピィ・ディスク、ハード・ディ
スク、CD−ROMなどの携帯用コンピュータ使用可能
媒体上に入れることができる。
【0046】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0047】(1) グラフィクス・レンダリングを行
う方法であって、グラフィクス・アプリケーション・プ
ログラムによって呼び出された基本レンダリング関数に
よって生成されたハードウェア命令を、実行可能なプロ
グラムとしてメモリ内にキャプチャするステップと、グ
ラフィクス・サブシステム上で前記キャプチャされたハ
ードウェア命令を要求時に実行して、画像をレンダリン
グするステップと、を含み、ここで前記キャプチャする
ステップが、前記レンダリング関数に対応する前記ハー
ドウェア命令を生成することにより、グラフィクス・ア
プリケーション・プログラム内の、基本レンダリング関
数のシーケンスの境界を区切る命令に応答するステップ
を含む、前記方法。 (2) 前記キャプチャするステップが、前記応答する
ステップの後に、前記ハードウェア命令をメモリ内に記
憶するステップと、及び前記記憶された前記ハードウェ
ア命令を実行可能プログラムとしてホスト・オペレーテ
ィング・システムに定義するステップと、を更に含む、
(1)に記載の方法。 (3) 前記ハードウェア命令が、基本レンダリング関
数の集合から得られた基本レンダリング関数にユーザ指
定パラメータを渡すことによって生成される、(1)に
記載の方法。 (4) 前記実行ステップが、グラフィクス・プロセッ
サを使用して、前記メモリから前記キャプチャされたハ
ードウェア命令を発行するステップと、及びグラフィク
ス・アクセラレータを使用して、前記キャプチャされた
命令を受け取り、そして前記キャプチャされた命令から
得られた画像情報をフレーム・バッファに書き込み、画
像をレンダリングするステップと、を含む、(1)に記
載の方法。 (5) グラフィクス・レンダリングを行うコンピュー
タ・システムにおいて、ホスト・オペレーティング・シ
ステムと、及びレンダリング操作を実行するためのハー
ドウェアを含むグラフィクス・サブシステムと、を含
み、ここで前記ホスト・オペレーティング・システム
が、グラフィクス・アプリケーション・プログラムによ
って発行された命令に応答して、前記グラフィクス・ア
プリケーションによって呼び出された基本レンダリング
関数によって生成された前記グラフィクス・サブシステ
ムに対するハードウェア命令を、実行可能なプログラム
としてメモリ内にキャプチャするためのコンピュータ実
行可能命令を含み、ここで前記ソフトウェアが、前記レ
ンダリング関数に対応する前記ハードウェア命令を生成
することにより、グラフィクス・アプリケーション・プ
ログラム内の、基本レンダリング関数のシーケンスの境
界を区切る命令に応答する命令によって、前記ハードウ
ェア命令をキャプチャするところの前記コンピュータ・
システム。 (6) 前記ソフトウェアが、前記基本レンダリング関
数のシーケンスの境界を区切る命令に前記応答した後
に、前記ハードウェア命令をメモリ内に記憶し、前記記
憶された前記ハードウェア命令を実行可能なプログラム
として前記ホスト・オペレーティング・システムに定義
する命令によって、前記ハードウェア命令をキャプチャ
する、(5)に記載のコンピュータ・システム。 (7) 前記ハードウェア命令が、基本レンダリング関
数の集合から得られた基本レンダリング関数にユーザ指
定パラメータを渡すことによって生成される、(5)に
記載のコンピュータ・システム。 (8) グラフィクス・レンダリングを行う前記ハード
ウェアが、前記メモリから前記キャプチャされた前記ハ
ードウェア命令を発行するためのグラフィクス・プロセ
ッサと、及び前記キャプチャされた前記命令を受け取
り、かつ前記キャプチャされた前記命令から得られた画
素情報をフレーム・バッファに書き込み、画像をレンダ
リングするためのグラフィクス・アクセラレータと、を
含む、(5)に記載のコンピュータ・システム。 (9) グラフィクス・レンダリングを行う方法を実施
するためのコンピュータ実行可能プログラム・コードを
記録したコンピュータ使用可能な記録媒体であって、グ
ラフィクス・アプリケーション・プログラム内の命令に
応答して、前記グラフィクス・アプリケーション・プロ
グラムによって呼び出された基本レンダリング関数によ
って生成されたハードウェア命令を、実行可能なプログ
ラムとしてメモリ内にキャプチャする命令を含む前記プ
ログラム・コードと、及び、前記レンダリング関数に対
応する前記ハードウェア命令を生成することにより、グ
ラフィクス・アプリケーション・プログラム内の、基本
レンダリング関数のシーケンスの境界を区切る命令に応
答する命令によって、前記ハードウェア命令をキャプチ
ャする命令を含む前記プログラム・コードとを更に含む
ところのプログラム・コードを記録したコンピュータ使
用可能な記録媒体。 (10) 前記コードが、前記基本レンダリング関数の
シーケンスの境界を区切る命令に前記応答した後に、前
記ハードウェア命令をメモリに記憶し、記憶された前記
ハードウェア命令を実行可能プログラムとしてホスト・
オペレーティング・システムに定義することによって、
前記ハードウェア命令をキャプチャする命令を含むとこ
ろのプログラム・コードを記録した(9)に記載のコン
ピュータ使用可能な記録媒体。 (11) 前記ハードウェア命令が、基本レンダリング
関数の集合から得られた基本レンダリング関数にユーザ
指定パラメータを渡すことによって生成されるところの
プログラム・コードを記録した(9)に記載のコンピュ
ータ使用可能媒体。 (12) 前記コードが、グラフィクス・プロセッサを
制御して、前記メモリから前記キャプチャされたハード
ウェア命令をグラフィクス・アクセラレータに対して発
行するように命令を含むところのプログラム・コードを
記録した(9)に記載のコンピュータ使用可能媒体。 (13) ホスト・オペレーティング・システムのサブ
システム上で要求時に実行可能な再使用可能ハードウェ
ア・レベル命令を使用して、高水準コンピュータ・プロ
グラム命令シーケンスを実行する方法であって、前記ア
プリケーション・プログラムによって発行された前記高
水準命令によって生成された前記サブシステムに対する
ハードウェア命令を、実行可能なプログラムとしてメモ
リ内にキャプチャするステップと、及び前記サブシステ
ム上で前記キャプチャされたハードウェア命令を要求時
に実行するステップと、を含み、ここで前記キャプチャ
・ステップが、前記高水準命令に対応する前記ハードウ
ェア・レベルの命令を生成することにより、グラフィク
ス・アプリケーション・プログラム内の、高水準命令の
シーケンスの境界を区切る命令に応答するステップを含
む、前記方法。 (14) 前記キャプチャするステップが、前記応答す
るステップの後に、前記ハードウェア命令をメモリ内に
記憶するステップと、及び前記記憶されたハードウェア
命令を実行可能なプログラムとしてホスト・オペレーテ
ィング・システムに定義するステップと、を含む、(1
3)に記載の方法。 (15) 前記ハードウェア命令が、ハードウェア・レ
ベル関数の集合から得られたハードウェア・レベル関数
にユーザ指定パラメータを渡すことによって生成され
る、(13)に記載の方法。 (16) グラフィクス・レンダリングを行う方法であ
って、メモリ内にハードウェア命令としてキャプチャさ
れるべきシーケンスとして基本レンダリング関数のシー
ケンスをグラフィクス・アプリケーション・プログラム
内に定義するステップと、前記定義されたシーケンスを
含む前記グラフィクス・アプリケーション・プログラム
を実行して、前記キャプチャされたハードウェア命令を
生成するステップと、前記キャプチャされた前記ハード
ウェア命令を実行して、画像をレンダリングするステッ
プと、を含み、ここで前記定義ステップが、前記キャプ
チャ・プロセスを呼び出すために識別子間で基本レンダ
リング関数のシーケンスの境界を区切るステップを含
む、前記方法。 (17) 前記グラフィクス・アプリケーション・プロ
グラムを実行する前記ステップが、グラフィクス・サブ
システムを有するホスト・オペレーティング・システム
上で実行され、及び前記ホスト・オペレーティング・シ
ステムが、基本レンダリング関数のシーケンスの境界を
区切る前記グラフィクス・アプリケーション・プログラ
ム内の前記識別子に応答して、前記レンダリング関数に
対応するグラフィクス・ハードウェアに対してハードウ
ェア命令を生成し、前記ハードウェア命令をメモリ内に
記憶し、前記記憶されたハードウェア命令を実行可能な
プログラムとして前記ホスト・オペレーティング・シス
テムに定義する命令を含むソフトウェアを含む、(1
6)に記載の方法。 (18) グラフィクス・レンダリングを行う方法であ
って、グラフィクス・アプリケーション・プログラムに
よって呼び出された基本レンダリング関数のシーケンス
によって生成されたハードウェア命令を実行可能プログ
ラムとしてメモリ内にキャプチャするステップと、ここ
で前記シーケンスはサブシーンを定義するレンダリン
グされるべき前記サブシーンの基本シーン内の場所を指
定するステップと、及びキャプチャされた前記命令を実
行して、前記サブシーンを前記指定された場所でレンダ
リングするステップと、を含み、ここで前記キャプチャ
するステップが、 前記レンダリング関数に対応する前記
ハードウェア命令を生成することにより、グラフィクス
・アプリケーション・プログラム内の、基本レンダリン
グ関数のシーケンスの境界を区切る命令に応答するステ
ップを含む、前記方法。 (19) グラフィクス・レンダリングを行う方法を実
施するコンピュータ実行可能プログラム・コードを記録
したコンピュータ使用可能な記録媒体であって、前記方
法が、グラフィクス・アプリケーション・プログラムに
よって呼び出された基本レンダリング関数のシーケンス
によって生成されたハードウェア命令を実行可能プログ
ラムとしてメモリ内にキャプチャするステップと、ここ
で前記シーケンスはサブシーンを定義するレンダリン
グされるべき前記サブシーンの基本シーン内の場所を指
定するステップと、及びキャプチャされた前記命令を実
行して、前記サブシーンを前記指定された場所でレンダ
リングするステップと、を含み、ここで前記キャプチャ
するステップが、前記レンダリング関数に対応する前記
ハードウェア命令を生成することにより、グラフィクス
・アプリケーション・プログラム内の、基本レンダリン
グ関数のシーケンスの境界を区切る命令に応答するステ
ップを含むプログラム・コードを記録した前記コンピュ
ータ使用可能な記録媒体。
【図面の簡単な説明】
【図1】従来技術のグラフィクス・レンダリング・シス
テムの概要を示す図である。
【図2】本発明を実施するシステムの基本ソフトおよび
ハードウェア構成要素を示す図である。
【図3】本発明によるキャプチャ・ルーチンの流れを示
す図である。
【図4】本発明を使用するアプリケーション・プログラ
ムの一例を示す図である。
【符号の説明】
5 ホスト・システム 10 グラフィクス・サブシステム 15 グラフィクス・デバイス・ドライバ 17 APIライブラリ 18 基本レンダリング関数 19 基本レンダリング関数 20 ランダム・アクセス・メモリ 25 フレーム・バッファ 30 アクセラレータ 35 フレーム・バッファ 40 表示装置 45 高水準グラフィクス・アプリケーション・プログ
ラム 46 Begin_Program命令 47 API関数呼出し 48 End_Program命令 50 キャプチャ・ルーチン
フロントページの続き (72)発明者 ポール・エム・シェーンリー アメリカ合衆国05452 バーモント州エ セックス・ジャンクション ブラウン ズ・リバー・ロード 429 (56)参考文献 特開 平5−290147(JP,A) 特開 平9−27042(JP,A) 特開 昭63−62079(JP,A) 特開 平9−319882(JP,A) 特開 平9−62852(JP,A) 特開 平10−69548(JP,A) 特開 昭61−150059(JP,A) 特開 平10−275248(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 1/00 G06T 11/00

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】グラフィクス・レンダリングを行う方法で
    あって、 グラフィクス・アプリケーション・プログラムによって
    呼び出された基本レンダリング関数によって生成された
    ハードウェア命令を、実行可能なプログラムとしてメモ
    リ内にキャプチャするステップと、グラフィクス・サブシステム上で前記 キャプチャされた
    ハードウェア命令を要求時に実行して画像をレンダリ
    ングするステップと、 を含み、 ここで前記キャプチャするステップが、 前記レンダリング関数に対応する前記ハードウェア命令
    を生成することにより、グラフィクス・アプリケーショ
    ン・プログラム内の、基本レンダリング関数のシーケン
    スの境界を区切る命令に応答するステップを含む、前記
    方法。
  2. 【請求項2】前記キャプチャするステップが、 前記応答するステップの後に、 前記ハードウェア命令をメモリに記憶するステップ
    と、及び前記記憶された前記ハードウェア命令を実行可
    能プログラムとしてホスト・オペレーティング・システ
    ムに定義するステップと、を更に 含む、請求項1に記載の方法。
  3. 【請求項3】前記ハードウェア命令が、基本レンダリン
    グ関数の集合から得られた基本レンダリング関数にユー
    ザ指定パラメータを渡すことによって生成される、請求
    項1に記載の方法。
  4. 【請求項4】前記実行ステップが、 グラフィクス・プロセッサを使用して、前記メモリから
    前記キャプチャされたハードウェア命令を発行するステ
    ップと、及びグラフィクス・アクセラレータを使用し
    て、前記キャプチャされた命令を受け取り、そして前記
    キャプチャされた命令から得られた画像情報をフレーム
    ・バッファに書き込み、画像をレンダリングするステッ
    プと を含む、請求項1に記載の方法。
  5. 【請求項5】グラフィクス・レンダリングを行うコンピ
    ュータ・システムにおいて、 ホスト・オペレーティング・システムと、及びレンダリ
    ング操作を実行するためのハードウェアを含むグラフィ
    クス・サブシステムと、 を含み、ここで 前記ホスト・オペレーティング・システムが、グ
    ラフィクス・アプリケーション・プログラムによって発
    行された命令に応答し、前記グラフィクス・アプリケ
    ーションによって呼び出された基本レンダリング関数に
    よって生成された前記グラフィクス・サブシステムに対
    するハードウェア命令を、実行可能プログラムとして
    メモリ内にキャプチャするためのコンピュータ実行可能
    命令を含み、 ここで前記ソフトウェアが、 前記レンダリング関数に対応する前記ハードウェア命令
    を生成することにより、グラフィクス・アプリケーショ
    ン・プログラム内の、基本レンダリング関数のシーケン
    スの境界を区切る命令に応答する命令によって、前記ハ
    ードウェア命令をキャプチャするところの前記 コンピュ
    ータ・システム。
  6. 【請求項6】前記ソフトウェアが、前記基本レンダリング関数のシーケンスの境界を区切る
    命令に前記応答した後に、 前記ハードウェア命令をメモリに記憶し、前記 記憶された前記ハードウェア命令を実行可能プロ
    グラムとして前記ホスト・オペレーティング・システム
    に定義する命令によって、 前記ハードウェア命令をキャプチャする、請求項5に記
    載のコンピュータ・システム。
  7. 【請求項7】前記ハードウェア命令が、基本レンダリン
    グ関数の集合から得られた基本レンダリング関数にユー
    ザ指定パラメータを渡すことによって生成される、請求
    項5に記載のコンピュータ・システム。
  8. 【請求項8】グラフィクス・レンダリングを行う前記ハ
    ードウェアが、 前記メモリから前記キャプチャされた前記ハードウェア
    命令を発行するためのグラフィクス・プロセッサと、
    前記キャプチャされた前記命令を受け取り、かつ前記
    キャプチャされた前記命令から得られた画素情報をフレ
    ーム・バッファに書き込み、画像をレンダリングする
    めのグラフィクス・アクセラレータと を含む、請求項5に記載のコンピュータ・システム。
  9. 【請求項9】グラフィクス・レンダリングを行う方法を
    実施するためのコンピュータ実行可能プログラム・コー
    を記録したコンピュータ使用可能な記録媒体であっ
    て、 グラフィクス・アプリケーション・プログラム内の命令
    に応答し、前記グラフィクス・アプリケーション・プ
    ログラムによって呼び出された基本レンダリング関数に
    よって生成されたハードウェア命令を実行可能プロ
    グラムとしてメモリにキャプチャする命令を含む前記
    プログラム・コードと、及び、 前記レンダリング関数に対応する前記ハードウェア命令
    を生成することにより、グラフィクス・アプリケーショ
    ン・プログラム内の、基本レンダリング関数のシーケン
    スの境界を区切る命令に応答する命令によって、前記ハ
    ードウェア命令をキャプチャする命令を含む前記プログ
    ラム・コードとを更に含むところのプログラム・コード
    を記録した コンピュータ使用可能な記録媒体。
  10. 【請求項10】前記コードが、前記基本レンダリング関数のシーケンスの境界を区切る
    命令に前記応答した後に、 前記ハードウェア命令をメモリに記憶し、 記憶された前記ハードウェア命令を実行可能プログラム
    としてホスト・オペレーティング・システムに定義する
    ことによって、前記ハードウェア命令をキャプチャする
    命令を含むところのプログラム・コードを記録した請求
    項9に記載のコンピュータ使用可能な記録媒体。
  11. 【請求項11】前記ハードウェア命令が、基本レンダリ
    ング関数の集合から得られた基本レンダリング関数にユ
    ーザ指定パラメータを渡すことによって生成されるとこ
    のプログラム・コードを記録した請求項9に記載のコ
    ンピュータ使用可能媒体。
  12. 【請求項12】前記コードが、グラフィクス・プロセッ
    サを制御して、前記メモリから前記キャプチャされたハ
    ードウェア命令をグラフィクス・アクセラレータに対し
    て発行するように命令を含むところのプログラム・コー
    ドを記録した請求項9に記載のコンピュータ使用可能媒
    体。
  13. 【請求項13】ホスト・オペレーティング・システムの
    サブシステム上で要求時に実行可能な再使用可能ハード
    ウェア・レベル命令を使用して、高水準コンピュータ・
    プログラム命令シーケンスを実行する方法であって、 前記アプリケーション・プログラムによって発行された
    前記高水準命令によって生成された前記サブシステムに
    対するハードウェア命令を、実行可能プログラムとし
    てメモリ内にキャプチャするステップと、及び 前記サブ
    システム上で前記キャプチャされたハードウェア命令を
    要求時に実行するステップと、 を含ここで前記キャプチャ・ステップが、 前記高水準命令に対応する前記ハードウェア・レベルの
    命令を生成することにより、グラフィクス・アプリケー
    ション・プログラム内の、高水準命令のシーケンスの境
    界を区切る命令に応答するステップを含む、前記 方法。
  14. 【請求項14】前記キャプチャするステップが、 前記応答するステップの後に、 前記ハードウェア命令をメモリに記憶するステップ
    と、及び 前記記憶されたハードウェア命令を実行可能
    プログラムとしてホスト・オペレーティング・システム
    に定義するステップと、 を含む、請求項13に記載の方法。
  15. 【請求項15】前記ハードウェア命令が、ハードウェア
    ・レベル関数の集合から得られたハードウェア・レベル
    関数にユーザ指定パラメータを渡すことによって生成さ
    れる、請求項13に記載の方法。
  16. 【請求項16】グラフィクス・レンダリングを行う方法
    であって、 メモリ内にハードウェア命令としてキャプチャされるべ
    シーケンスとして基本レンダリング関数のシーケンス
    をグラフィクス・アプリケーション・プログラム内に定
    義するステップと、前記 定義されたシーケンスを含む前記グラフィクス・ア
    プリケーション・プログラムを実行し前記キャプチ
    ャされたハードウェア命令を生成するステップと、前記 キャプチャされた前記ハードウェア命令を実行し
    画像をレンダリングするステップと、 を含み、 ここで前記定義ステップが、前記キャプチャ・プロセス
    を呼び出すために識別子間で基本レンダリング関数のシ
    ーケンスの境界を区切るステップを含む、前記 方法。
  17. 【請求項17】前記グラフィクス・アプリケーション・
    プログラムを実行する前記ステップが、グラフィクス・
    サブシステムを有するホスト・オペレーティング・シス
    テム上で実行され、及び前記ホスト・オペレーティング
    ・システムが、 基本レンダリング関数のシーケンスの境界を区切る前記
    グラフィクス・アプリケーション・プログラム内の前記
    識別子に応答して、前記レンダリング関数に対応する
    ラフィクス・ハードウェアに対してハードウェア命令を
    生成し、 前記ハードウェア命令をメモリに記憶し、前記 記憶されたハードウェア命令を実行可能プログラ
    ムとして前記ホスト・オペレーティング・システムに定
    義する命令を含むソフトウェアを含む、請求項16に記
    載の方法。
  18. 【請求項18】グラフィクス・レンダリングを行う方法
    であって、 グラフィクス・アプリケーション・プログラムによって
    呼び出された基本レンダリング関数のシーケンスによっ
    て生成されたハードウェア命令を実行可能プログラムと
    してメモリ内にキャプチャするステップと、ここで前記
    シーケンスはサブシーンを定義する レンダリングされるべき前記サブシーンの基本シーン内
    の場所を指定するステップと、及びキャプチャされた前
    記命令を実行して、前記サブシーンを前記指定された場
    所でレンダリングするステップと、 を含み、ここで前記キャプチャするステップが、 前記レンダリング関数に対応する前記ハードウェア命令
    を生成することにより、グラフィクス・アプリケーショ
    ン・プログラム内の、基本レンダリング関数のシーケン
    スの境界を区切る命令に応答するステップを含む、 前記
    方法。
  19. 【請求項19】グラフィクス・レンダリングを行う方法
    を実施するコンピュータ実行可能プログラム・コードを
    記録したコンピュータ使用可能な記録媒体であって、 前記方法が、 グラフィクス・アプリケーション・プログラムによって
    呼び出された基本レンダリング関数のシーケンスによっ
    て生成されたハードウェア命令を実行可能プログラムと
    してメモリ内にキャプチャするステップと、ここで前記
    シーケンスはサブシーンを定義する レンダリングされるべき前記サブシーンの基本シーン内
    の場所を指定するステップと、及びキャプチャされた前
    記命令を実行して、前記サブシーンを前記指定された場
    所でレンダリングするステップと、 を含み、ここで前記キャプチャするステップが、 前記レンダリング関数に対応する前記ハードウェア命令
    を生成することにより、グラフィクス・アプリケーショ
    ン・プログラム内の、基本レンダリング関数のシーケン
    スの境界を区切る命令に応答するステップを含む プログ
    ラム・コードを記録した前記コンピュータ使用可能な記
    録媒体。
JP2000088445A 1999-03-31 2000-03-28 キャプチャされたグラフィクス・ハードウェア命令を使用したグラフィクス・レンダリングの方法およびシステム Expired - Fee Related JP3375074B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/283386 1999-03-31
US09/283,386 US6952215B1 (en) 1999-03-31 1999-03-31 Method and system for graphics rendering using captured graphics hardware instructions

Publications (2)

Publication Number Publication Date
JP2000311240A JP2000311240A (ja) 2000-11-07
JP3375074B2 true JP3375074B2 (ja) 2003-02-10

Family

ID=23085812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000088445A Expired - Fee Related JP3375074B2 (ja) 1999-03-31 2000-03-28 キャプチャされたグラフィクス・ハードウェア命令を使用したグラフィクス・レンダリングの方法およびシステム

Country Status (5)

Country Link
US (1) US6952215B1 (ja)
JP (1) JP3375074B2 (ja)
KR (1) KR100357296B1 (ja)
CN (1) CN100342396C (ja)
TW (1) TW463104B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209140B1 (en) * 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6828975B2 (en) * 2001-03-01 2004-12-07 Microsoft Corporation Method and system for managing graphics objects in a graphics display system
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US10360545B2 (en) * 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7380120B1 (en) 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
KR100914120B1 (ko) * 2002-04-15 2009-08-27 마이크로소프트 코포레이션 비디오 렌더러와 그래픽 디바이스 드라이버, 및 이들간의 상호 작용을 용이하게 하기 위한 장치, 시스템, 방법 및 전자적으로 액세스 가능한 매체
US7451457B2 (en) 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US7158668B2 (en) 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
KR20080008137A (ko) 2006-07-19 2008-01-23 삼성전자주식회사 영상 복원 장치 및 방법
KR100803216B1 (ko) 2006-09-28 2008-02-14 삼성전자주식회사 3차원 그래픽 데이터를 저작하는 방법 및 장치
US7817154B1 (en) * 2006-12-12 2010-10-19 Nvidia Corporation Graphics system with state transition caching
US20090096792A1 (en) * 2007-10-15 2009-04-16 Ati Technologies Ulc Fill mode determination in vector graphics
EP2321730B1 (en) * 2008-07-25 2018-04-11 Qualcomm Incorporated Performance analysis during visual creation of graphics images
US8587593B2 (en) 2008-07-25 2013-11-19 Qualcomm Incorporated Performance analysis during visual creation of graphics images
US9792718B2 (en) 2008-07-25 2017-10-17 Qualcomm Incorporated Mapping graphics instructions to associated graphics data during performance analysis
US20130187931A1 (en) * 2010-10-05 2013-07-25 Tao Zhao System and method for multiple native software applications user interface composition
CN102467737B (zh) * 2010-11-04 2015-05-13 扬智科技股份有限公司 用于向量图形的线段对照表产生方法与产生装置
KR102001191B1 (ko) * 2011-06-30 2019-10-01 구글 엘엘씨 라인을 따른 텍스트 이미지 렌더링
US10154265B2 (en) 2013-06-21 2018-12-11 Nvidia Corporation Graphics server and method for streaming rendered content via a remote graphics processing service
KR101847262B1 (ko) 2016-03-18 2018-05-28 연세대학교 산학협력단 하드웨어 가속기를 포함하는 메인 메모리 및 메인 메모리의 동작 방법
CN107797904B (zh) * 2017-09-12 2021-12-24 福建天晴数码有限公司 一种测量响应时间的方法及终端
CN108717354B (zh) * 2018-05-17 2021-12-17 广州多益网络股份有限公司 手机游戏渲染数据的采集方法、装置及存储设备
CN110942518B (zh) 2018-09-24 2024-03-29 苹果公司 上下文计算机生成现实(cgr)数字助理
CN110969685B (zh) * 2018-09-28 2024-03-12 苹果公司 使用渲染图的可定制渲染管线
CN114669047B (zh) * 2022-02-28 2023-06-02 荣耀终端有限公司 一种图像处理方法、电子设备及存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61150059A (ja) 1984-12-24 1986-07-08 Sony Corp デ−タ処理装置
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
JPS6362079A (ja) 1986-09-03 1988-03-18 Agency Of Ind Science & Technol グラフイツクデイスプレイ
US5509115A (en) 1990-08-08 1996-04-16 Peerless Systems Corporation Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
JP2558991B2 (ja) 1992-04-06 1996-11-27 松下電器産業株式会社 視点・光源機能の属性追加交換直接操作システム
CN2181711Y (zh) * 1993-03-02 1994-11-02 郭玉霞 图形分层产生装置
AUPM701394A0 (en) * 1994-07-22 1994-08-18 Monash University A graphical display system
AUPM704394A0 (en) 1994-07-25 1994-08-18 Canon Information Systems Research Australia Pty Ltd Optimization method for the efficient production of images
US5764243A (en) * 1995-03-24 1998-06-09 3Dlabs Inc. Ltd. Rendering architecture with selectable processing of multi-pixel spans
JPH08272344A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd 高速画面表示装置及び方法
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US5659407A (en) * 1995-06-06 1997-08-19 Apple Computer, Inc. Method and system for rendering achromatic image data for image output devices
JP3002406B2 (ja) 1995-07-12 2000-01-24 株式会社ハドソン グラフィックプロセッサ
JP3038139B2 (ja) 1995-08-30 2000-05-08 株式会社クボタ グラフィックプロセッサ
US6222542B1 (en) * 1995-10-10 2001-04-24 Anysoft, Ltd Apparatus for and method of acquiring, processing and routing data contained in a GUI window
US5657479A (en) * 1995-12-04 1997-08-12 Silicon Graphics, Inc. Hierarchical display list processing in graphics data retrieval system
US5675773A (en) * 1995-12-21 1997-10-07 Cirrus Logic, Inc. Graphics display system with a low level hardware dependent graphics library
US5793937A (en) 1996-03-29 1998-08-11 Peerless Systems Corporation Fallback processing for page generation using memory reduction techniques
US5821950A (en) * 1996-04-18 1998-10-13 Hewlett-Packard Company Computer graphics system utilizing parallel processing for enhanced performance
KR970071323A (ko) 1996-04-22 1997-11-07 포만 제프리 엘 그래픽 서브시스템
US5790125A (en) * 1996-04-22 1998-08-04 International Business Machines Corporation System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span
JP2768352B2 (ja) 1996-05-24 1998-06-25 日本電気株式会社 図形描画処理システム
US5995113A (en) * 1996-08-02 1999-11-30 Hewlett-Packard Company Coloring events in event streams in order to provide information about operation of a software library
JPH1055166A (ja) * 1996-08-09 1998-02-24 Mitsubishi Electric Corp 多角形塗りつぶしアクセラレータ
US5812136A (en) * 1996-10-30 1998-09-22 Microsoft Corporation System and method for fast rendering of a three dimensional graphical object
US5889994A (en) 1997-03-27 1999-03-30 Hewlett-Packard, Co. Method for cataloging graphics primitives by rendering state
US5969728A (en) * 1997-07-14 1999-10-19 Cirrus Logic, Inc. System and method of synchronizing multiple buffers for display

Also Published As

Publication number Publication date
US6952215B1 (en) 2005-10-04
KR20010006855A (ko) 2001-01-26
CN100342396C (zh) 2007-10-10
KR100357296B1 (ko) 2002-10-19
TW463104B (en) 2001-11-11
JP2000311240A (ja) 2000-11-07
CN1270366A (zh) 2000-10-18

Similar Documents

Publication Publication Date Title
JP3375074B2 (ja) キャプチャされたグラフィクス・ハードウェア命令を使用したグラフィクス・レンダリングの方法およびシステム
JP3218029B2 (ja) グラフィックス・システム、グラフィックス・オペレーションを実行する方法及びコンピュータ読取り可能媒体
RU2363984C2 (ru) Интерфейсы визуального объекта и графа сцены
RU2324229C2 (ru) Визуальный и пространственный графические интерфейсы
US6046747A (en) Graphics application programming interface avoiding repetitive transfer of texture mapping data
JP3618838B2 (ja) 画像出力方法
JP2662168B2 (ja) グラフィックス・システム・レンダリング・コンテキスト・データを管理するシステム及び方法
US6362825B1 (en) Real-time combination of adjacent identical primitive data sets in a graphics call sequence
US5459832A (en) Method and apparatus for editing groups of graphic images
US7554550B2 (en) Non-destructive processing of digital image data
JP2005525617A (ja) ゾーン・レンダリング用の自動メモリ管理
JP3618839B2 (ja) 画像出力方法
KR100615784B1 (ko) 에빅션 억제 방법, 프리미티브를 포함하는 장면을 렌더링하는 장치 및 머신 판독가능 매체
US6952217B1 (en) Graphics processing unit self-programming
JP3883078B2 (ja) グラフィックイメージ生成方法
JPH07282270A (ja) 画像生成方法および装置
JP2000331185A (ja) 画像処理方法、画像処理装置、及びプログラム提供媒体
JP2007334739A (ja) 画像生成装置
JP2747055B2 (ja) 図形表示装置
JP2002341853A (ja) 動的コード生成に基づくキャラクタの表示を制御する方法
JP3225633B2 (ja) 画像データ管理装置
US20200273142A1 (en) Bin resolve with concurrent rendering of a next bin
JPH08185531A (ja) 画像塗りつぶし装置
JPS6217768B2 (ja)
JP2005148995A (ja) 画像表示装置ならびにその表示方法、表示プログラム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees