JP3860859B2 - 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム - Google Patents

高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム Download PDF

Info

Publication number
JP3860859B2
JP3860859B2 JP14620696A JP14620696A JP3860859B2 JP 3860859 B2 JP3860859 B2 JP 3860859B2 JP 14620696 A JP14620696 A JP 14620696A JP 14620696 A JP14620696 A JP 14620696A JP 3860859 B2 JP3860859 B2 JP 3860859B2
Authority
JP
Japan
Prior art keywords
vertex
circuit
input
clipping
primitive
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 - Lifetime
Application number
JP14620696A
Other languages
English (en)
Other versions
JPH0935075A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0935075A publication Critical patent/JPH0935075A/ja
Application granted granted Critical
Publication of JP3860859B2 publication Critical patent/JP3860859B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ・グラフィックス・システムにおける形状アクセレレータに関する。さらに具体的には、グラフィックス・プリミティブのクリッピングが改善された形状アクセレレータに関する。
【0002】
【従来の技術】
コンピュータ・グラフィックス・システムは一般に、オブジェクトのグラフィックス表示を2次元の表示画面に表示するために使用されている。現在のコンピュータ・グラフィックス・システムはきわめて細かい表示を行うことができ、各種の用途で使用されている。
【0003】
典型的なコンピュータ・グラフィックス・システムでは、表示画面に表示されるオブジェクトは、複数のグラフィックス・プリミティブに分割される。プリミティブはグラフィックス・ピクチャの基本的な構成要素であり、点、線、ポリライン、ベクトル、および三角形や四辺形などの多角形を含む。通常、画面に表示される1つまたは複数のオブジェクトのビューを表すグラフィックス・プリミティブを、2次元の表示画面にレンダリングないし描画するハードウェア/ソフトウェア方式が実施されている。
【0004】
通常、レンダリング対象の3次元オブジェクトを画定するプリミティブは、各プリミティブをプリミティブ・データによって定義しているホスト・コンピュータによって与えられる。例えば、プリミティブが三角形である場合、ホスト・コンピュータは、プリミティブをその頂点のx、y、z座標によって、また各頂点のR、G、Bカラー値によって定義することができる。レンダリング・ハードウェアは、プリミティブ・データを補間して、各プリミティブを表すためにオンになっている表示画面ピクセル、および各ピクセルのR、G、B値を計算する。
【0005】
コンピュータ・グラフィックス・システムの基本的な構成要素は、一般に、形状エンジン、すなわち形状アクセレレータ、ラスタライザおよびフレーム・バッファを含む。システムは、テクスチャ・マッピング・ハードウェアも含むことができる。形状アクセレレータは、表示されるビューを構成するプリミティブを定義するプリミティブ・データをホスト・コンピュータから受け取る。形状アクセレレータは、プリミティブ・データを使用して、各プリミティブに対して、変換、四辺形の三角形への分解、ライティング、クリッピングおよび平面式計算を実行する。形状アクセレレータの出力は、ラスタライザとテクスチャ・マッピング・ハードウェアによって使用されるデータをレンダリングして、各プリミティブ内の各ピクセルのデータを生成する。ラスタライザからのピクセル・データとテクスチャ・マッピング・ハードウェアからのピクセル・データは結合され、ビデオ表示画面に表示するためにフレーム・バッファ内に格納される。
【0006】
「クリッピング」は、形状アクセレレータがプリミティブのどの部分をいわゆる「クリップ領域」内に表示すべきかを決定する操作である。クリップ領域は、ウィンドウなどの2次元面積かまたは3次元ビュー体積である。クリップ領域内に表示されるプリミティブは、1次元(例えば線)または2次元(例えば多角形)である。
【0007】
点、線、および多角形をクリップするための様々な技法が開発されている。それらの技法には、Cohen−Sutherland線クリッピング、パラメトリック線クリッピング、Weiler多角形クリッピング、Liang−Barsky多角形クリッピング、および、Sutherland−Hodgman多角形クリッピングがある。これらの技法は、特に3次元クリップ領域に対して多角形をクリップするのに適用する場合の計算中心グラフィックス操作である。
【0008】
【発明が解決しようとする課題】
形状アクセレレータの動作の速度を増すために、クリッピング操作専用の特殊目的回路を実施することが周知である。それにもかかわらず、性能をさらに改善する必要がある。特に、形状アクセレレータによるデータの処理および計算の効率を向上させる必要がある。
【0009】
【課題を解決するための手段】
1つの一般態様では、本発明は、クリッピング・プロセッサの頂点データ入力に頂点入力データ・パスが動作可能に接続されたクリッピング・プロセッサを含むグラフィックス・アクセレレータで使用するためのグラフィックス処理回路を特徴とする。クリッピング・プロセッサ回路は、頂点入力データ・パスに動作可能に接続された頂点データ入力と、クリッピング・プロセッサの制御入力に動作可能に接続された制御出力とを有する。クリッピング・プロセッサは、頂点入力データ・パスからのプリミティブ頂点データとクリップ領域の間の関係の評価を実行し、この評価に基づいて制御出力に信号を提供するように構成配置される。
【0010】
グラフィックス・アクセレレータは、使用可能入力を有し、かつその頂点データ入力からのプリミティブ頂点データに基づいてプリミティブの表示パラメータを生成する頂点処理回路を含む。グラフィックス処理回路は、頂点入力データ・パスと頂点処理回路の頂点データ入力との間に第1の回路パスを含み、かつ制御出力と頂点処理回路の使用可能入力との間に第2の回路パスを有する。クリッピング・プリプロセッサは、それぞれシフト・レジスタ内にメモリ・セルを含むx、y、およびz座標プリプロセシング回路と、メモリ・セルの出力に動作可能に接続された組合せ論理回路とを含む。クリッピング・プリプロセッサ回路は、頂点座標レジスタ、および頂点入力データ・パスに動作可能に接続されたウィンドウ・エッジ座標レジスタ、および頂点座標レジスタの出力に動作可能に接続された第1の入力とウィンドウ・エッジ座標レジスタの出力に動作可能に接続された第2の入力とを有する比較器、ならびに比較器の比較出力に動作可能に接続された入力を有するマッチング回路を含む。比較器は、浮動小数点比較器でよい。マッチング回路は、それぞれ比較出力に動作可能に接続された並列入力を有するシフト・レジスタを含む。マッチング回路は、トリビアル受容出力とトリビアル拒否出力を有する。クリップ・コード・バスは、クリッピング・プリプロセッサとクリッピング・プロセッサの間に動作可能に接続される。クリッピング・プリプロセッサは、それぞれ使用可能線を有する頂点処理回路を含む。クリッピング・プリプロセッサは、少なくとも3つの頂点処理回路を含む。
【0011】
他の一般態様では、本発明は、クリップ領域の外側にある座標だけを有する第1のプリミティブの定義から表示パラメータを生成するステップと、同時に座標がすべてクリップ領域の外側にあるか判定するステップと、判定ステップが座標がすべてクリップ領域の外側にあると判定した場合に生成ステップを停止するステップを含むグラフィックス処理方法を特徴とする。
【0012】
生成ステップは第1のグラフィックス・プロセッサ部分によって実施され、この方法は、判定ステップが座標がすべてクリップ領域の外側にあると判定した場合に、表示パラメータを第2のグラフィックス・プロセッサ部分に転送することを抑制するステップを含む。この方法はまた、第1のプリミティブと異なりかつまたクリップ領域の外側にある座標だけを有する第2のプリミティブの定義から表示パラメータを生成するステップと、第2のプリミティブの座標がすべてクリップ領域の外側にあると判定しないステップを含む。この方法はさらに、第1のプリミティブと異なりかつクリップ領域の内側にある座標だけを有する第2のプリミティブの定義から表示パラメータを生成するステップと、第2のプリミティブの座標がすべてクリップ領域の内側にあると判定するステップを含む。生成ステップは第1のグラフィックス・プロセッサ部分によって実施され、この方法は、プリミティブ用のクリップ・コードを第2のグラフィックス・プロセッサ部分に転送するステップを含む。この方法は、第1のプリミティブと異なる個数の頂点を有する第2のプリミティブの定義から表示パラメータを生成するステップを含む。
【0013】
他の一般態様では、本発明は、第1の座標の最小値より小さい第1の半空間を画定するステップと、第1の座標の最大値より大きい第2の半空間を画定するステップと、第2の座標の最小値より小さい第3の半空間を画定するステップと、第2の座標の最大値より大きい第4の半空間を画定するステップと、第3の座標の最小値より小さい第5の半空間を画定するステップと、第3の座標の最大値より大きい第6の半空間を画定するステップと、第1のプリミティブを構成する頂点がすべて半空間のうちの1つの半空間の内側にあるかどうか判定するステップと、判定ステップが第1のプリミティブを構成する頂点がすべて半空間のうちの1つの半空間の内側にあると判定した場合に、第1のトリビアル拒否信号を生成するステップを含むグラフィックス処理方法を特徴とする。
【0014】
判定ステップは、浮動小数点比較ステップを含む。この方法は、第1のプリミティブを構成する頂点のすべてが、すべての半空間の外側にあるかどうか判定するステップと、このステップが第1のプリミティブを構成する頂点のすべてがすべての半空間の外側にあると判定した場合に、第1のトリビアル受容信号を生成するステップを含む。この方法はさらに、第2のプリミティブを構成する異なる個数の頂点がすべて半空間のうちのいずれかの半空間の内側にあるかどうか判定するステップと、このステップが第2のプリミティブを構成する頂点がすべて半空間のうちのいずれかの半空間の内側にあると判定した場合に、第2のトリビアル拒否信号を生成するステップを含む。
【0015】
本発明による改善されたクリッピング・プリプロセシングを有する形状アクセレレータは、クリッピング領域の内側に完全に入るかまたはクリッピング領域の完全に外側にあるプリミティブの計算負担が大幅に軽減できるので有利である。これにより、グラフィックス・アクセレレータが所定の時間中により多くのプリミティブを表示できるようになる。さらに、本発明によるクリッピング・プリプロセシングは、比較的小さい回路を使用して実施できる。これにより、あまり費用のかからない形状アクセレレータが実施でき、また集積回路上にグラフィックス処理特徴用の余地を残すことができる。さらに、クリッピング・プリプロセシングがクリップ・コードを生成する場合、これらは、全特徴クリッパによって再生成する必要がなく、したがってクリッパの性能がさらに改善できる。
【0016】
本発明をよりよく理解するために、参照することによって本明細書に組み込まれる添付図面を参照する。
【0017】
【発明の実施の形態】
図1は、本発明によるクリッピング・プリプロセシングを組み込むのに適したコンピュータ・グラフィックス・システムの第1の実施形態のブロック図である。図示の例証としての実施形態は、基板とチップの数、これらを区画する態様、バス幅、およびデータ転送レートに関して例示的なものに過ぎないことを理解すべきである。他の多数の実施形態が使用できる。図示のように、システムは、フロント・エンド基板10、テクスチャ・マッピング基板12、およびフレーム・バッファ基板14を含む。フロント・エンド基板10は、52ビット・バス16によってホスト・コンピュータ15と通信を行う。フロント・エンド基板10は、レンダリング対象のプリミティブをバス16によってホスト・コンピュータ15から受け取る。プリミティブは、プリミティブが三角形である場合の頂点などのプリミティブのすべての部分に対するx、y、zベクトル座標データ、R、G、Bカラー・データおよびテクスチャS、T座標によって規定される。次いで、プリミティブを3次元で表すデータは、フロント・エンド基板10によって、85ビット・バス18によってテクスチャ・マッピング基板12およびフレーム・バッファ基板14に与えられる。テクスチャ・マッピング基板12は、受け取ったプリミティブ・データを補間して、プリミティブを表す画面表示ピクセルを計算し、各プリミティブ・ピクセルの対応する合成テクスチャ・データを決定する。合成テクスチャ・データは、図面が見やすいように図1では単一のバスとして示されている5本の55ビット・バス28によってフレーム・バッファ基板14に提供される。
【0018】
フレーム・バッファ基板14もフロント・エンド基板10から受け取ったプリミティブ・データを補間して、各プリミティブを表す表示画面上のピクセルを計算し、各ピクセルのオブジェクト・カラー値を決定する。次いで、フレーム・バッファ基板14は、ピクセルごとに、オブジェクト・カラー値を、テクスチャ・マッピング基板12から提供される合成テクスチャ・データと組み合わせて、各ピクセルの得られた画像のR、G、B値を生成する。各ピクセルのR、G、Bカラー制御信号はそれぞれ、表示画面27のピクセルを制御するためにR、G、Bライン29によって提供され、テクスチャ・マップされたプリミティブを表す得られた画像を表示画面27に表示する。
【0019】
フロント・エンド基板10、テクスチャ・マッピング基板12およびフレーム・バッファ基板14はそれぞれパイプライン化されており、複数のプリミティブに対して同時に動作する。テクスチャ・マッピング基板12とフレーム・バッファ基板14が、前にフロント・エンド基板10によって提供されたプリミティブに対して動作している間に、フロント・エンド基板10は、テクスチャ・マッピング基板12およびフレーム・バッファ14中のパイプラインがいっぱいになるまで動作し続け、新しいプリミティブを提供し続ける。
【0020】
フロント・エンド基板10は、ディストリビュータ・チップ30、3個の3次元(3−D)形状アクセレレータ・チップ32A、32Bおよび32C、2次元(2−D)形状アクセレレータ・チップ34ならびにコンセントレータ・チップ36を含む。ディストリビュータ・チップ30は、バス16によってホスト・コンピュータ15からX、Y、Z座標データおよびカラー・プリミティブ・データを受け取り、3−Dプリミティブ・データを3−D形状アクセレレータ・チップ32A、32Bおよび32Cに均等に分配する。このようにすると、プリミティブの3つのグループが同時に操作されるので、システムの帯域幅が増加する。データは、40ビット・バス38Aによって3−D形状アクセレレータ・チップ32Aおよび32Bに提供され、また40ビット・バス38Bによってチップ32Cに提供される。バス32Aおよび32Bはどちらも、60MHzの速度でデータを転送し、2個の3−D形状アクセレレータ・チップをサポートするのに十分な帯域幅を提供する。2−Dプリミティブ・データは、44ビット・バス40によって40MHzの速度で2−D形状アクセレレータ・チップ34に提供される。
【0021】
各3−D形状アクセレレータ・チップ32A−Cは、受け取ったプリミティブを画定するx、y、z座標を対応する画面空間座標に変換し、その画面空間座標に関するオブジェクトのR、G、B値およびテクスチャのS、T値を決定し、プリミティブの四辺形を三角形に圧縮解除し、各三角形を画定する三角形平面式を計算する。各3−D形状アクセレレータ・チップ32A−Cはまた、ビュー・クリッピング操作を行って、複数のウィンドウが表示されている場合、またはプリミティブの一部が表示画面27に表されたビュー体積を超えた場合に、得られた画像が正確に画面表示されるようにする。3−D形状アクセレレータ・チップ32Aおよび32Bおよび32Cからの出力データはそれぞれ、44ビット・バス42Aおよび42Bによって60MHzの速度でコンセントレータ・チップ36に提供される。2次元形状アクセレレータ・チップ34も、46ビット・バス44によって45MHzの速度で出力データをコンセントレータ・チップ36に提供する。コンセントレータ・チップ36は、3−D形状アクセレレータ・チップ32A−Cから受け取った3−Dプリミティブ出力データを組み合わせ、プリミティブをこれらがディストリビュータ・チップ30によって分配される前に有していた元の順序に並べ換え、組み合わされたプリミティブ出力データをバス18によってテクスチャ・マッピング基板12およびフレーム・バッファ基板14に提供する。
【0022】
テクスチャ・マッピング基板12は、テクスチャ・マッピング・チップ46と、キャッシュ・メモリとして配置されることが好ましいローカル・メモリ48を含む。本発明の好ましい実施形態では、ローカル・メモリは、複数個のSDRAM(同期ダイナミック・ランダム・アクセス・メモリ)によって形成される。キャッシュ・メモリ48は、フレーム・バッファ基板14にレンダリングされるプリミティブと関連するテクスチャMIPマップ・データを記憶する。テクスチャMIPマップ・データは、ホスト・コンピュータ15のメイン・メモリ17から、バス40を通り、2−D形状アクセレレータ・チップ34を介し、かつ24ビット・バス24を通ってダウンロードされる。
【0023】
テクスチャ・マッピング・チップ46は、バス18によって、表示画面27にレンダリングされるプリミティブを表すプリミティブ・データを逐次受け取る。上述したように、3−D形状アクセレレータ・チップ32A−Cによって提供されるプリミティブは、線および三角形を含む。テクスチャ・マッピング基板12は、点や線のテクスチャ・マッピングは行わず、三角形のプリミティブだけに動作する。三角形のプリミティブを表すデータは、少なくとも1つの頂点に関するx、y、zオブジェクト・ピクセル座標、少なくとも1つの頂点のオブジェクト・カラーR、G、B値、少なくとも1つの頂点に対応するテクスチャ・マップの部分のS、Tの座標、および三角形の平面式を含む。テクスチャ・マッピング・チップ46は、オブジェクト・ピクセルのz座標およびオブジェクト・カラーR、G、B値を無視する。テクスチャ・マッピング・チップ46は、x、yピクセル座標を補間し、プリミティブを表す各x、y画面表示ピクセルに対応するSおよびT座標を補間する。各ピクセルに関して、テクスチャ・マッピング・チップ46は、キャッシュ・メモリ48からそれに対応するテクスチャMIPの部分にアクセスし、ピクセルの合成テクスチャ・データを計算する。このデータは、複数のテクセルの加重平均を含む。
【0024】
各ピクセルのテクスチャ・データは、テクスチャ・マッピング・チップ46によって、5本のバス28によってフレーム・バッファ基板14に提供される。5本のバス28はそれぞれ、フレーム・バッファ基板上に設けられた5個のフレーム・バッファ・コントローラ・チップ50A、50B、50C、50Dおよび50Eに結合され、合成テクスチャ・データをフレーム・バッファ・コントローラ・チップ50A−Eに並列に提供する。フレーム・バッファ・コントローラ・チップ50A〜Eはそれぞれ、関連するVRAM(ビデオ・ランダム・アクセス・メモリ)チップ51A〜Eのグループに結合される。さらに、フレーム・バッファ基板14は、4個のビデオ・フォーマット・チップ52A、52B、52Cおよび52Dと、RAMDAC(ランダム・アクセス・メモリ・ディジタル・アナログ変換器)54を含む。フレーム・バッファ・コントローラ・チップ50A−Eは、表示画面27の異なる非重畳セグメントを制御する。各フレーム・バッファ・コントローラ・チップ50A−Eは、バス18によってフロント・エンド基板10からプリミティブ・データを受け取り、またバス28によってテクスチャ・マッピング基板12から合成テクスチャ・マッピング・データを受け取る。フレーム・バッファ・コントローラ・チップ50A−Eは、プリミティブ・データを補間して、プリミティブを表すチップのそれぞれのセグメントにおける画面表示ピクセル座標、および各ピクセル座標の対応するオブジェクトR、B、Gカラー値を計算する。合成テクスチャ・データがテクスチャ・マッピング基板12から提供されるこれらのプリミティブ(すなわち、三角形)に対して、フレーム・バッファ・コントローラ・チップ50A−Eは、ピクセルごとに、オブジェクト・カラー値と合成テクスチャ・データを組み合わせて、表示画面27に表示される各ピクセルの最終的なR、G、B値を生成する。
【0025】
オブジェクト・カラー値とテクスチャ・カラー値を組み合わせる態様は、様々な方法で制御することができる。例えば、置換モードでは、オブジェクト・カラー値をテクスチャ・カラー値と置き換えるだけで、テクスチャ・カラー値だけをピクセルのレンダリングに使用できる。あるいは、変調モードでは、オブジェクト・カラー値とテクスチャ・カラー値を乗算して、ピクセルの最終的なR、G、B値を生成することができる。さらに、対応するテクスチャ・カラー値をオブジェクト・カラー値と組み合わせる態様を規定する比率を指定するカラー制御ワードを各テクセルに関して記憶することができる。各ピクセルに対応しかつバス28によってフレーム・バッファ・コントローラ・チップに提供される合成テクセル・データに関して合成カラー制御ワードを決定でき、したがってコントローラ・チップが対応する合成制御ワードによって指定された比率を使用して、各ピクセルの最終的なR、G、B値を決定することができる。
【0026】
フレーム・バッファ・コントローラ・チップ50A〜Eによって生成された、各ピクセルのR、G、B値を含む得られた画像のビデオ・データは、対応するVRAMチップ51A〜Eに記憶される。VRAMチップ51A〜Eの各グループは8個のVRAMチップを含み、40個のVRAMチップがフレーム・バッファ基板上に配置されるようになっている。ビデオ・フォーマット・チップ52A〜Dはそれぞれ、10個のVRAMチップの異なる組に接続され、それらからデータを受け取る。ビデオ・データは、VRAMチップ51A−Eから直列にシフト・アウトされ、それぞれ64ビット・バス58A、58B、58Cおよび58Dによって33MHzの速度で4個のビデオ・フォーマット・チップ52A、52B、52Cおよび52Dに提供される。ビデオ・フォーマット・チップ52A−Dは、RAMDAC54によって処理できるようにビデオ・データをフォーマットし、かつフォーマットされたデータを32ビット・バス60A、60B、60Cおよび60Dによって33MHzの速度でRAMDAC54に提供する。RAMDAC54は、ディジタル・カラー・データをアナログR、G、Bカラー制御信号に変換し、各ピクセルのR、G、B制御信号をアナログR,G,B制御ライン29に沿って画面表示27に提供する。
【0027】
本発明の一実施形態では、いくつかのプリミティブ・レンダリング・タスクを複数のプリミティブ上で並行して実行できるように、テクスチャ・マッピング基板12とフレーム・バッファ基板14上のハードウェアを複製し、それによってシステムの帯域幅を増加させる。そのような本発明の他の実施形態の例を図2に示す。図2はいくつかのハードウェアが複製された本発明のコンピュータ・グラフィックス・システムのブロック図である。図2のシステムは、4個の3−D形状アクセレレータ・チップ32A、32B、32Cおよび32D、それぞれキャッシュ・メモリ48Aおよび48Bと関連した2個のテクスチャ・マッピング・チップ46Aおよび46B、およびそれぞれVRAMチップ51A−Jのグループと関連した10個のフレーム・バッファ・コントローラ・チップ50A〜Jを含む。図2のシステムの動作は、上述の図1のシステムの動作と同じである。図2の実施形態のハードウェアの複製では、いくつかのプリミティブ・レンダリング動作を複数のプリミティブ上で並列に実行できるので、システムの帯域幅が増加する。
【0028】
形状アクセレレータ32A、32Bおよび32Cを表わす簡単化したブロック図を図3に示す。ホスト・コンピュータ15からのプリミティブ・データは、入力FIFO100を介して、第1の頂点RAM(バッファ0)102と第2の頂点RAM(バッファ1)104とを含むダブルバッファ頂点RAMに供給される。形状アクセレレータは、パイプライン構成中に別個の2個のプロセッサを含む。左側スタック110は、クリップ・コード論理112、レジスタ・ファイル114、マルチプレクサ116、浮動小数点ALU118、および浮動小数点マルチプレクサ120を含む。左側スタック110の動作は、左側スタック制御ユニット122によって制御される。左側スタック110からの結果は、第1のプリミティブRAM(バッファ0)132と第2のプリミティブRAM(バッファ1)134とを含むダブルバッファ・プリミティブRAMを介して、右側スタック130に供給される。右側スタックは、カラー・クランパ/コンパレータ138、レジスタ・ファイル140、マルチプレクサ142、浮動小数点ALU144、浮動小数点マルチプレクサ146、および浮動小数点分割/平方根ユニット148を含む。右側スタック130からの結果は、出力FIFO150を介して、テクスチャ・マッピング基板12およびフレーム・バッファ基板14(図1参照)に供給される。右側スタック130の動作は、ライティング、クリッピング、および平面式生成論理を含む右側スタック制御ユニット152によって制御される。スタック制御ユニットは階層的に設計されており、各ユニットが高レベル・ディスパッチャとスタックの様々な機能用の複数の低レベルコントローラを含む。ハンドシェーキング制御ユニット107は、左側スタック制御ユニット122と右側スタック制御ユニット152の間の対話を制御する。クリッピング・パラメータおよびライティング・パラメータは、ホスト・コンピュータ15によってクリッピング/ライティングRAM154に供給される。
【0029】
形状アクセレレータは、変換、四辺形と三角形の圧縮解除、ライティング(またはシェーディング)、クリッピング、およびランダムに配向し画定された四辺形(クワッド)、三角形およびベクトルの平面式(またはスロープ)計算を実行する。出力は、ピクセル・データにレンダリングするためにフレーム・バッファ基板14内のスキャン変換器に供給され、かつ、ピクセル毎のテクスチャ・カラー値を生成するためにテクスチャ・マッピング基板12に供給される。
【0030】
図3の例では、サイズおよびコストを制限するために右側スタック130だけが分割器を含む。右側スタック130は分割器を含み、左側スタックは分割器を含まないので、形状アクセレレータの機能性の区分化は、左側スタック110が、変換、部分スロープ計算、クリップ・チェック、圧縮解除、およびライティングの事前計算を実行することである。右側スタック130は、ライティング、クリッピング、および平面式計算を実行する。動作の基本的な流れは、プリミティブ・データをホスト・コンピュータ15から入力FIFO100に入れることである。プリミティブ・データは、頂点RAMバッファ102および104の一方に入れられる。左側スタック110は、変換、圧縮解除、部分スロープ計算を実行し、その結果をローカル・バス129を介してプリミティブRAMバッファ132および134内に入れる。左側スタック110がプリミティブに対してその動作を完了すると、そのコントローラ122は、ハンドシェーキング制御ユニット107を介して、右側スタック130のコントローラ152にプリミティブに対する動作を開始するように告知する。次いで、左側スタック110は、次のプリミティブに対する作業を開始できる。同時に、右側スタック130は、プリミティブRAMバッファ内にあるプリミティブに対して、ライティング、クリッピング(必要な場合)、および平面式計算を実行する。他の実施形態では、左側スタック110と右側スタック130はどちらも、分割器を含む同一のハードウェアを含む。この構成では、機能性は、各スタックが異なるプリミティブに対して同じ動作を実行するように区分化される。
【0031】
次に、図3および図4を参照して、本発明の形状アクセレレータ内でクリッピング・プリプロセシングを実行する回路の構造について詳細に説明する。クリップ・コード論理112は、シーケンシャル・ディジタル・クリッピング・プリプロセシング回路であり、出力バス129を介して左側スタック110の出力ポートに動作可能に接続された入力ポートと、クリップ・コード・バス113に動作可能に接続された出力ポートとを有する。トリビアル受容出力線109とトリビアル拒否出力線111は、ハンドシェーキング制御ユニット107の入力に供給され、トリビアル拒否出力線111は、左側スタック制御ユニット122の入力にも供給される。
【0032】
クリッピング・プリプロセシング回路は、最大クリッピング・エクステント・レジスタ200、クリッピング頂点座標レジスタ202、および最小クリッピング・エクステント・レジスタ204を含む。これらはそれぞれ左側スタック110のローカル・バス129に動作可能に接続された入力ポートを有する。第1の浮動小数点比較器206は、頂点座標レジスタ202の出力ポートから第2のレジスタ出力バス203に動作可能に接続された第1の入力ポートと、最大クリッピング・エクステント・レジスタ200の出力ポートから第1のレジスタ出力バス201に動作可能に接続された第2の入力ポートとを有する。第2の浮動小数点比較器208は、第2のレジスタ出力バス203に動作可能に接続された第1の入力ポートと、最小クリッピング・エクステント・レジスタ204の出力ポートから第3のレジスタ出力バス205に動作可能に接続された第2の入力ポートとを有する。
【0033】
浮動小数点比較器206、208は、それぞれ受け取った2つの浮動小数点数を比較し、どちらが大きいかを示す信号を提供する。特に、第1の浮動小数点比較器206は、頂点座標レジスタ202から受け取った値が最大レジスタ200から受け取った値よりも大きい場合に、最大出力線210に論理ハイ信号(2進数1)を提供する。反対に、第2の浮動小数点比較器208は、頂点座標レジスタ202から受け取った値が最小レジスタ204から受け取った値よりも小さい場合に、最小出力線212に論理ハイ信号を提供する。
【0034】
浮動小数点比較器は、2つの32ビットIEEE−754標準浮動小数点フォーマット数に対して動作する。このフォーマットでの最上位ビットは、1がその数が負であることを示し、0がその数が正であることを示す符号ビットである。次の8つの最上位ビットは指数部であり、最後の23ビットは仮数部である。
【0035】
比較器は、符号付きの値に対して動作するために、追加の回路を有する絶対値比較器として実施される。特に、図5も参照すると、第2の比較器208は、頂点座標レジスタ202の出力ポートからの第2の出力バス203に動作可能に接続された第1の入力ポートを有する絶対値比較器213を含む。絶対値比較器213は、最小クリッピング・エクステント・レジスタ204の出力ポートからの第3の出力バス205に動作可能に接続された第2の入力ポートを有する。
【0036】
絶対値比較器213は、まず、その2つの入力ポートで受け取った数をそれらの符号ビットをスワッピングすることによって修正し、次いで第1の出力NDD0および第2の出力NCD0上で信号を生成する絶対値の比較を行う。第1の出力NDD0上の論理ハイ出力は2つの数が等しいことを示し、論理ロー出力はそれらが等しくないことを示す。第1の出力NDD0上の論理ロー出力と結合する第2の出力NCD0上の論理ハイ出力は、第1の入力ポートからの修正された数が、第2の入力ポートからの修正された数よりも大きいことを示す。2つの出力NDD0および出力NCD0は、比較器出力調整回路214に提供される。
【0037】
図6も参照すると、比較器出力調整回路214は、頂点座標レジスタ202からの符号ビット(符号A)に応答する第1の入力と、最小クリッピング・エクステント・レジスタ204からの符号ビット(符号B)に応答する第2の入力と、絶対値比較器213の第1の出力NDD0の反転出力に応答する第3の入力とを有するANDゲート216を含む。ANDゲートの出力は、NCD0に応答する第1のデータ入力とNCD0の反転出力に応答する第2のデータ入力とを有するマルチプレクサ218の選択入力に動作可能に接続される。マルチプレクサ218は、比較器出力調整回路214の出力の役目をするデータ出力SNCD0を有する。排他的NORゲート215は、データ出力SNCD0に動作可能に接続された第1の入力と、絶対値比較器213の第1の出力NDD0に動作可能に接続された第2の入力とを有する。排他的NORゲート215の出力は、第2の比較器208の最小出力線212の役目をする。第1の比較器206は、排他的NORゲート215を含まない点を除いて、第2の比較器と同じである。その代わり、マルチプレクサのデータ出力SNCD0が最大出力210として使用される。
【0038】
再び図3および図4を参照すると、第1の比較器206からの最大出力線210および第2の比較器208からの最小出力線212はそれぞれ、一連の各頂点クリップ・コード・シフト・レジスタ220、244、246、248のそれぞれの並列入力線に動作可能に接続される。プリプロセシング回路112は、2つまたはそれ以上のシフト・レジスタを含み、シフト・レジスタの個数はプリプロセシング回路によって処理される頂点の個数に対応する。この例示的な実施形態では、4つのシフト・レジスタが備えられているが、第2のシフト・レジスタ244、第3のシフト・レジスタ246、および第4のシフト・レジスタ248は構造的に第1のシフト・レジスタ220と同じであるので、第1のシフト・レジスタ220についてのみ詳細に説明する。
【0039】
第1の頂点クリップ・コード・シフト・レジスタ220は、一連の単一ビット・メモリ・セルを構成するシフト・レジスタ記憶要素を含む。この実施形態は3次元座標空間に対して動作するので、この実施形態には6個のメモリ・セル232、234、236、238、240、242がある。この回路はまた、他の種類の座標空間を使用して動作するように構成できるが、その場合異なる個数のメモリ・セルを使用することになる。
【0040】
第1の頂点クリップ・コード・シフト・レジスタ220は、第1の頂点ロード制御線224、第1のセル232用の第1の並列入力線226、第2のセル234用の第2の並列入力線228を有する。第1の並列入力線226は最小出力線212に動作可能に接続され、第2の並列入力線228は最大出力線210に接続される。頂点ロード制御線224は、左側スタック制御ユニット122によって駆動される。
【0041】
メモリ・セル232、234、236、238、240、242は、2つの要素によってそれらの内容をシフトするように接続され、2ビット並列ロードを同時に実行する。特に、頂点ロード制御線224上でロード信号を受け取ると、第1のメモリ・セル232の内容は第3のメモリ・セル236にシフトされ、一方、第2のメモリ・セル234の内容は第4のメモリ・セル238にシフトされる。同様に、第3のメモリ・セル236の内容は第5のメモリ・セル240にシフトされ、一方、第4のメモリ・セル238の内容は第6のメモリ・セル242にシフトされる。同時に、最小出力線212上の信号は第1のメモリ・セル内に並列にロードされ、最大出力線210上の信号は第2のメモリ・セル内に並列にロードされる。第2のシフト・レジスタ244、第3のシフト・レジスタ246、および第4のシフト・レジスタ248はそれぞれ、それらの別個の頂点ロード制御入力線245、247、249の制御下で同様に独立して動作する。
【0042】
シフト・レジスタ220、244、246、248は、受容/拒否回路250の異なる入力に動作可能に接続される並列出力を有する。受容/拒否回路250は、使用可能なすべてのシフト・レジスタ内のすべてのビットが0である場合に、トリビアル受容線109にトリビアル受容信号をアサートし、すべてのシフト・レジスタ内の同じビットが1にセットされている場合に、トリビアル拒否線111にトリビアル拒否信号をアサートする。
【0043】
図4および図8を参照すると、受容/拒否回路250はトリビアル受容回路251を含む。トリビアル受容回路251は、第1のシフト・レジスタ220の並列出力からの6つの信号線に動作可能に接続された6つの入力線を有する第1のORゲート252を含む。同様に、第2のORゲート254、第3のORゲート256、および第4のORゲート258はそれぞれ、第2のシフト・レジスタ244、第3のシフト・レジスタ246および第4のシフト・レジスタ248の6つの出力線にそれぞれ動作可能に接続された6つの入力線を有する。第1のORゲート、第2のORゲート、第3のORゲート、および第4のORゲートはそれぞれ、第1のNANDゲート272、第2のNANDゲート274、第3のNANDゲート276、第4のNANDゲート278の第1の入力線に動作可能に接続される。これらのNANDゲートはまた、第1の頂点使用可能線262、第2の頂点使用可能線264、第3の頂点使用可能線266、および第4の頂点使用可能線268に動作可能に接続された第2の入力線を有する。4つのNANDゲートは、出力NANDゲート280の4つの入力のうちの1つの入力に動作可能に接続された出力線を有する。NANDゲートの出力線は、トリビアル受容出力109の役目をする。
【0044】
図4および図9を参照すると、受容/拒否回路250はトリビアル拒否回路350も含む。この回路は、第1のNORゲート352、第2のNORゲート354、第3のNORゲート356、第4のNORゲート358、第5のNORゲート360、および第6のNORゲート362を含むNORゲートの第1のバンクを含む。これらのNORゲートはそれぞれ、第1のシフト・レジスタ220の出力線のうちの1つの出力線に動作可能に接続された第1の入力線を有し、またそれぞれ第1の頂点使用可能線262の反転出力に動作可能に接続された第2の入力線を有する。同様にして、第1のNORゲート364、第2のNORゲート366、第3のNORゲート368、第4のNORゲート370、第5のNORゲート372、および第6のNORゲート374を含むNORゲートの第2のバンクは、第2のシフト・レジスタ244の出力および第2の頂点使用可能線264の反転出力に動作可能に接続される。さらに、NORゲート376、378、380、382、384、386の第3のバンクは、第3のシフト・レジスタ246の出力および第3の頂点使用可能線266の反転出力に動作可能に接続され、NORゲート388、390、392、394、396、398の第4のバンクは、第4のシフト・レジスタ248の出力線および第4の頂点使用可能線268の反転出力に動作可能に接続される。
【0045】
各バンク内の第1のNORゲート352、364、376、388(すなわちその対応するシフト・レジスタの第1のメモリ・セルの出力線に動作可能に接続された入力線を有するNORゲート)の出力線は、第1の4入力NORゲート400の入力線のうちの1つの入力線に動作可能に接続される。同様に、各バンクの第2のNORゲート354、366、378、390の出力線は、第2の4入力NORゲート402の入力線のうちの4つの入力に動作可能に接続される。各バンクの第3のNORゲート、第4のNORゲート、および第5のNORゲートも、第3の4入力NORゲート、第4の4入力NORゲート、および第5の4入力NORゲート(図示せず)に動作可能に接続された出力線を有する。各バンク内の第6のNORゲート362、374、386、398は、第6の4入力NORゲート410の1つの入力線に動作可能に接続された出力線を有する。第1の4入力NORゲート、第2の4入力NORゲート、第3の4入力NORゲート、第4の4入力NORゲート、第5の4入力NORゲート、および第6の4入力NORゲートの出力はそれぞれ、6入力ORゲート412の1つの入力線に動作可能に接続される。この6入力ORゲートの出力は、トリビアル拒否出力線111の役目をする。
【0046】
動作に際して、図3〜10を参照すると、クリッピング・プリプロセシング回路112は、左側スタック110からクリップすべきプリミティブの各頂点のクリッピング・エクステントと変換された座標を受け取る。クリッピング・エクステントは、プリミティブの各座標の最大値と最小値を含む。例えば、3次元座標の場合、これらのエクステントは、xの最小値xmin 、xの最大値xmax 、yの最小値ymin 、yの最大値ymax 、zの最小値zmin 、およびzの最大値zmax を含む。
【0047】
左側スタック110内のプリミティブの第1の頂点に関して変換動作が終了し、プリミティブの第1の頂点の変換された第1の座標(例えばx座標)が得られたらクリッピング・プリプロセシング300を開始する(ステップ302)。クリッピング・プリプロセシングの進行中に、左側スタック110が変換動作を終了する。
【0048】
また、クリッピング・プリプロセシングのおよその開始時に、左側スタック制御ユニット122は、プリミティブ内の頂点の数に等しい数のいくつかの頂点使用可能線262、264、266、268に使用可能信号を提供する(ステップ304)。線セグメントの場合、第1の頂点使用可能信号と第2の頂点使用可能信号をアサートする。三角形の場合、第1の頂点使用可能信号、第2の頂点使用可能信号、および第3の頂点使用可能信号をアサートする。四辺形の場合、4つの頂点使用可能線上の4つの信号すべてをアサートする。この実施形態では、ポイント・プリミティブがサポートされていないが、そのようなプリミティブは、単一の使用可能信号を使用可能にすることによって対処できる。ベクトルの場合は、4つのうち2つの頂点使用可能線上の信号の任意の組合せをアサートできる。回路は、任意の数の頂点を有するプリミティブを処理できるように、任意の数の頂点使用可能線および関連する回路を含むことができる。
【0049】
パースペクティブが使用可能である場合、次いで左側スタック110は、浮動小数点マルチプレクサ120を使用して、変換された頂点に関するパースペクティブ係数Wによって、プリミティブの第1の頂点の第1の座標に関する最大クリップ・エクステントおよび最小クリップ・エクステントを乗算することによってそれらを修正する(ステップ306)。パースペクティブ・モードが使用可能である場合、その側面が一定のデカルト座標を有しない特性を有するビュー体積が切頭角錐になるので、この修正が必要となる。したがって、パースペクティブ・モードでは、最大クリップ・エクステントおよび最小クリップ・エクステントは、プリミティブの各頂点で異なる。
【0050】
任意選択の修正ステップ306の後、プリミティブの第1の頂点の第1の座標(例えばx座標)をクリップ比較レジスタ202内にロードし、この第1の座標の最小クリップ・エクステントを最小クリップ・エクステント・レジスタ204内にロードし、この第1の座標の最大クリップ・エクステントを最大クリップ・エクステント・レジスタ200内にロードする(ステップ308)。第1の浮動小数点比較器206および第2の浮動小数点比較器208は、これらの値を比較し、第1の比較器206が最大フラグ・ビットを生成し、一方、第2の比較器208が最小フラグ・ビットを生成する。これらの値が安定したら、左側スタック制御ユニット122は、頂点ロード制御線224上に信号をアサートすることによって、第1のシフト・レジスタ220の第1のセル232内に最小フラグ・ビットをロードし、第1のシフト・レジスタ220の第2のセル234内に最大フラグ・ビットをロードする(ステップ310)。頂点の単一の座標に関するこのようなフラグ・ビットの対は「クリップ・サブコード」と呼ばれる。同時に、シフト・レジスタは、2つのセルによってその内容の残りをシフトする。
【0051】
次に、頂点に関する座標が残っている場合(ステップ312の「NO」ブランチ)、クリップ・エクステントを修正するステップ(ステップ306)、クリップ・エクステント内に座標をロードするステップ(ステップ308)、およびクリップ・サブコードを生成、ロードおよびシフトするステップ(ステップ310)を、第1の頂点の残りの座標について繰り返す。第1の頂点に関するすべてのクリップ・サブコードが生成、記憶されており(ステップ312の「YES」ブランチ)、かつプリミティブ内に頂点が残っている場合(ステップ316の「NO」ブランチ)、上述のステップを繰り返して、残りの頂点の各座標に関するサブコードを生成する。
【0052】
プリミティブ内のすべての頂点に関してサブコードが生成、記憶されている場合(ステップ316の「YES」ブランチ)、受容/拒否回路250は、それぞれトリビアル受容出力線109上およびトリビアル拒否出力線111上にトリビアル受容信号およびトリビアル拒否信号を生成する(ステップ318)。プリミティブがトリビアル拒否またはトリビアル受容されない場合は、第1のシフト・レジスタ220、第2のシフト・レジスタ244、第3のシフト・レジスタ246、および第4のシフト・レジスタ248に記憶されるクリップ・コードは、クリップ・コード・バス113によって右側スタック130に転送され(ステップ322)、プリミティブのプリプロセシングが完了する(ステップ324)。頂点がトリビアル拒否かまたはトリビアル受容される場合は、クリップ・コードは転送されない。
【0053】
シフト・レジスタ内のデータの転送を図7に示す。特に、頂点の最小xフラグおよび最大xフラグは、まず第1のメモリ・セル232内および第2のメモリ・セル234内にそれぞれ記憶される。次いでフラグは、それぞれ第3のメモリ・セル236および第4のメモリ・セル238へ2だけシフトされる。一方、yクリップ・コードは、それぞれ第1のメモリ・セル内および第2のメモリ・セル内に挿入される。次に、xクリップ・コードは再び、今度は第3のメモリ・セルおよび第4のメモリ・セルから第5のメモリ・セル240および第6のメモリ・セル242にそれぞれ転送され、yクリップ・コードは、それぞれ第1のメモリ・セルおよび第2のメモリ・セルから第3のメモリ・セルおよび第4のメモリ・セルに転送され、zクリップ・コードは、第1のメモリ・セルおよび第2のメモリ・セル内にロードされる。
【0054】
サブコードをこのようにシフトすることによって、各座標に関するクリップ・サブコードを含むクリップ・コード・ワードをシフト・レジスタ内にアセンブルする。座標に関するクリップ・サブコードはすべて1つの大きい組合せ回路内で同時に生成でき、シフト・レジスタは不要になることに留意されたい。この回路はより大きい集積回路面積を必要とするので、この実施形態ではこれは行わない。さらに、残りの頂点に関して変換計算を実行する際に、連続的な方法で左側スタック110による変換計算から頂点座標が得られるので、クリッピング・プリプロセッサは、座標に対して同時に動作する必要がない。
【0055】
トリビアル拒否出力線111は、左側スタック制御ユニット122の入力に動作可能に接続される。トリビアル拒否信号をアサートすると、プリミティブに関する圧縮解除および部分スロープ計算が、左側スタック制御ユニット122によって、例えば左側スタック110に対して使用可能入力をアサート解除することによって直ちに停止する。また、この信号をアサートすると、左側スタック制御ユニット122が左側スタック110からプリミティブRAMバッファ132、134のうちの一方へ転送されたプリミティブに関するデータを検証するのが防止され、したがって拒否されたプリミティブ頂点データが右側スタック130へ転送されるのが効率的に防止される。これにより、左側スタック110および右側スタック130が、圧縮解除、部分スロープ計算、クリッピング、ライティング、および全く表示されない頂点データに関するその他の計算を実行する手間が省ける。その結果、どちらのスタックもより効率的に動作できる。
【0056】
トリビアル拒否出力線111も、ハンドシェーキング制御ユニット107の入力に動作可能に接続される。ハンドシェーキング制御装置は、この線に応答して、トリビアル拒否線の状態を示すトリビアル拒否フラグを、内部レジスタを介して右側スタック制御ユニット152に提供する。右側スタック制御ユニット152は、そのプリミティブが一連のプリミティブまたはプリミティブの「チャック」のうちの最後の1つである場合にこのフラグを使用して、そのプリミティブに送るパラメータがない場合でも、チャック終端の指示をコンセントレータに送るかどうか判断する。チャック内の最後のプリミティブがクリッピング領域の外側にある場合にこの指示を送ると、コンセントレータがプリミティブ・データの流れと同期したままになる。
【0057】
クリップ・コード・バス113は、右側スタック制御ユニット152の入力に直接動作可能に接続される。トリビアル受容線109は、ハンドシェーキング制御ユニット107の入力に動作可能に接続される。ハンドシェーキング制御ユニット107は、この線に応答して、トリビアル受容線の状態を示すトリビアル受容フラグを、内部レジスタを介して右側スタック制御ユニット152に提供する。トリビアル受容フラグおよびクリップ・コードは、右側スタックの一部として実施されるクリッピング・プロセッサによって使用される。このクリッピング・プロセッサは、一時記憶用のクリッピング/ライティングRAM154を使用し、I.E.SutherlandおよびG.W.hodgman が「Reentrant Polygon Clippinng 」CACM、17(1)、1974年1月、34−32に記載した方法など、周知のクリッピング方法を適用できる。
【0058】
右側スタック制御ユニット152は、トリビアル受容フラグのアサートされた状態に応答して、クリッピング・プロセッサを使用可能にするのを止める。これは、トリビアル受容フラグのアサートは、プリミティブがクリップ体積内に完全に入ることを示すために行われ、したがってそれに対してクリッピング処理を実行する必要はない。事前受容されたプリミティブに関してクリッピング・プロセッサを使用可能にするのを止めることによって、右側スタック130は、他の動作を自由に実行できるようになる。
【0059】
トリビアル受容出力線109上のトリビアル受容信号とトリビアル拒否出力線111上のトリビアル拒否信号のどちらにもアサートしない場合、クリッピング・プロセッサは、プリミティブに対してクリッピング動作を実行する。クリップ・コード論理112はすべての拒否可能なプリミティブをトリビアル拒否しないので、これらの動作の結果さらに表示されないプリミティブが生じる。クリップ・コード論理112がすべての拒否可能なプリミティブをトリビアル拒否しない理由は、図11に示す3次元クリップ領域420を参照すればより容易に理解できよう。まず、すべての頂点が、最小値x座標xmin と最大x座標xmax の間にx座標を有し、最小値y座標ymin と最大y座標ymax の間にy座標を有し、最小値z座標zmin と最大z座標zmax の間にz座標を有するプリミティブについて考える。これらの頂点はすべてクリップ領域内に入るので、プリミティブ全体はクリップ領域内に必ず入る。これは、トリビアル受容状態に対応する。
【0060】
一方、トリビアル拒否の場合には、すべてのプリミティブの頂点は、クリップ領域の外側の6つの半空間のいずれか1つの半空間内に必ずある。これらの半空間は、頂点のx座標がxmin より下にある空間、x座標がxmax より上にある空間、y座標がymin より下にある空間、y座標がymax より上にある空間、z座標がzmin より下にある空間、z座標がxmax より上にある空間を含む。プリミティブは、これらの半空間のうちの複数の半空間内にその頂点を有することができるが、まだ全体的にクリッピング領域の外側にある。例えば、三角形プリミティブ422は、x座標がxmax より上にある半空間内に2つの頂点424、426と、その体積中にない頂点428とを有することができるが、y座標がymax より上にある半空間内に挿入される。クリッピング・プリプロセッサ112は、このプリミティブようなプリミティブを除去せず、スタック110、130はどちらもそれに対してより多くの処理を実行し、その後右側スタック130内のクリッピング・プリプロセッサがそれを表示する必要がないと決定する。しかしながら、結局、多くの場合、クリッピング・プリプロセシングではさらに、処理の速度が大幅に上がり、したがって性能の全体的な改善が得られる。さらに、クリッピング・プリプロセッサはクリップコードを生成するので、クリッピングを実行する場合にクリッピング・プリプロセッサはそれらを再計算する必要がない。クリップコードは、クリッピング・プリプロセッサがどの頂点をクリップするかを決定するのを助ける。
【0061】
上記の回路はまた、多角形および三角形ストリップを処理するように作成することができる。ポリラインは、一連の頂点によって画定される終端間線の連続で構成されるプリミティブである。ポリラインの頂点を受容するたびに、新しいセグメントがポリライン中に画定され、次いでクリッピング・プリプロセッサを動作させて、このセグメントがトリビアル受容またはトリビアル拒否できるかを判定する。この動作は、新しい頂点に関する座標を受容するたびに、2つのシフト・レジスタを交互に使用することによって行う。一方のシフト・レジスタは、新しい頂点に関するクリップ・コードを受容し、他方のシフト・レジスタには最後の頂点からのクリップ・コードだけが残り、次いで新たに画定されたセグメントに関するトリビアル受容信号およびトリビアル拒否信号がこれらのクリップ・コードから生成される。
【0062】
三角形ストリップは、一連の頂点によって画定される隣接する三角形の連続で構成されるプリミティブである。第1の三角形が三角形ストリップ内に画定されると、他の頂点は、受容されるたびに、受容された最後の2つの頂点とともに新しい三角形を画定する。これらの頂点は、クリップ・コード・プリプロセッサが2つではなく3つのシフト・レジスタを交互に使用する点を除いて、ポリラインの場合とまったく同様にして処理される。
【0063】
本明細書で図示説明した回路は単なる例として挙げたものである。例えば、ゲート・レベルに直接に設計され、Synopsysが市販している論理合成ソフトウェアを使用した大規模カスタム集積回路で、回路を実現することが好ましい。論理合成ソフトウェアは、Veralogなどの高水準言語で書かれた回路記述を最適化し、論理ゲートに変換する。5ボルトで動作する1ミクロンFETを作成するCMOSプロセス、3.3ボルトで動作する0.6ミクロン描画ゲート長デバイスを作成するCMOSプロセス、あるいはディジタル回路を実現する任意のその他適切なプロセスを使用して、回路を実現してもよい。論理合成ソフトウェアへの入力は、構造的というよりも機能的なものであるので、論理合成ソフトウェアによって生成される実際の回路は、本明細書で開示したものと異なるものであることもある。
【0064】
以上本発明の好ましい実施形態について図示説明したが、添付の図面によって規定されているように、本発明の範囲から逸脱することなく、本発明に様々な変更および修正を加えることができることが、当業者には明らかであろう。
なお、本発明による実施態様を列挙すると、概ね以下の通りである。
【0065】
(1) 頂点データ入力と制御入力とを有し、かつその頂点データ入力からのプリミティブ頂点データに基づきかつその制御入力の制御下で、クリップ領域に対して関してプリミティブをクリップするように構成配置されるクリッピング・プロセッサを含むグラフィックス・アクセレレータで使用するためのグラフィックス処理回路において、クリッピング・プロセッサの頂点データ入力に動作可能に接続された頂点入力データ・パス(129)と、頂点入力データ・パスに動作可能に接続された頂点データ入力と、クリッピング・プロセッサの制御入力に動作可能に接続された制御出力(109、111)とを有するクリッピング・プリプロセッサ回路(112)とを備えており、クリッピング・プリプロセッサが、頂点入力データ・パスからのプリミティブ頂点データとクリップ領域の間の関係の評価を行い、この評価に基づいて制御出力に信号をもたらすように構成配置される装置。
【0066】
(2) クリッピング・プリプロセッサがx座標プリプロセシング回路、y座標プリプロセシング回路、およびz座標プリプロセシング回路を含み、かつx座標プリプロセシング回路、y座標プリプロセシング回路、およびz座標プリプロセシング回路がそれぞれシフト・レジスタ内にメモリ・セルを含みかつメモリ・セルの出力に動作可能に接続された組合せ論理回路を含むことを特徴とする、上記(1) に記載の装置。
【0067】
(3) クリッピング・プリプロセッサ回路が、頂点入力データ・パスに動作可能に接続された頂点座標レジスタと、頂点入力データ・パスに動作可能に接続されたウィンドウ・エッジ座標レジスタと、頂点座標レジスタの出力に動作可能に接続された第1の入力とウィンドウ・エッジ座標レジスタの出力に動作可能に接続された第2の入力とを有し、かつ比較出力を有する比較器と、比較出力に動作可能に接続された複数の入力を有するマッチング回路とを含むことを特徴とする、上記(1) に記載の装置。
【0068】
(4) クリッピング・プリプロセッサ回路がトリビアル受容出力とトリビアル拒否出力とを有することを特徴とする、上記(1) に記載の装置。
【0069】
(5) さらにクリッピング・プリプロセッサとクリッピング・プロセッサの間に動作可能に接続されたクリップ・コード・バスを含むことを特徴とする、上記(1) に記載の装置。
【0070】
(6) クリップ領域の境界の外側にある座標だけを有する第1のプリミティブの定義から表示パラメータを生成するステップと、生成ステップと同時に実行される、プリミティブの座標がすべてクリップ領域の境界の外側にあるかどうか判定するステップと、プリミティブの座標がすべてクリップ領域の境界の外側にあると判定ステップが判定した場合に、判定ステップの結果に応答して生成ステップを停止するステップとを含むグラフィックス処理方法。
【0071】
(7) さらに、プリミティブの座標がすべてクリップ領域の境界の外側にあると判定ステップが判定した場合に、判定ステップの結果に応答してプリミティブの表示パラメータを第2のグラフィックス・プロセッサ部分に転送することを抑制するステップを含み、さらに、第1のプリミティブと異なりかつまたクリップ領域の境界の外側にある座標だけを有する第3のプリミティブの定義から表示パラメータを生成するステップと、第3のプリミティブの座標がすべてクリップ領域の境界の外側にあると判定しないステップとを含む、生成ステップが第1のグラフィックス・プロセッサ部分によって実行されることを特徴とする、上記(6) に記載の方法。
【0072】
(8) さらに、第1のプリミティブと異なりかつクリップ領域の境界の内側にある座標だけを有する第2のプリミティブの定義から表示パラメータを生成するステップと、第2のプリミティブの座標がすべてクリップ領域の境界の内側にあることを判定するステップとを含むことを特徴とする、上記(6) に記載の方法。
【0073】
(9) 第1の座標の最小値(Xmin )より下にある第1の半空間を定義するステップと、第1の座標の最大値(Xmax )より上にある第2の半空間を定義するステップと、第2の座標の最小値(Ymin )より下にある第3の半空間を定義するステップと、第2の座標の最大値(Ymax )より上にある第4の半空間を定義するステップと、第3の座標の最小値(Zmin )より下にある第5の半空間を定義するステップと、第3の座標の最大値(Zmax )より上にある第6の半空間を定義するステップと、第1のプリミティブを構成する第1の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のうちの1つの半空間の内側にあるかどうか判定するステップと、第1のプリミティブを構成する第1の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のうちの1つの半空間の内側にあると判定ステップが判定した場合に、第1のトリビアル拒否信号を生成するステップとを含むグラフィックス処理方法。
【0074】
(10) 第1のプリミティブを構成する第1の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のすべての半空間の外側にあるかどうか更に判定するステップと、第1のプリミティブを構成する第1の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のすべての半空間の外側にあると更に判定するステップが判定した場合に、第1のトリビアル受容信号を生成するステップと、 第2のプリミティブを構成する第1と異なる数の第2の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のいずれか1つの半空間の内側にあるかどうか更に判定するステップと、第2のプリミティブを構成する第2の複数の頂点がすべて、第1、第2、第3、第4、第5および第6の半空間のいずれか1つの半空間の内側にあると更に判定するステップが判定した場合に、第2のトリビアル拒否信号を生成するステップとを含むことを特徴とする、上記(9) に記載の方法。
【0075】
【発明の効果】
以上、記述した本発明のクリッピング・プリプロセシングを有する形状アクセレレータは、クリッピング領域の内側に完全に入るかまたはクリッピング領域の完全に外側にあるプリミティブの計算負担が大幅に軽減できるので、グラフィックス・アクセレレータが所定の時間中により多くのプリミティブを表示できる。さらに、本発明によるクリッピング・プリプロセシングは、比較的小さい回路を使用して実施できので、あまり費用のかからない形状アクセレレータが実施でき、また集積回路上にグラフィックス処理特徴用の余地を残すことができる。さらに、クリッピング・プリプロセシングがクリップ・コードを生成する場合、これらは、全特徴クリッパによって再生成する必要がなく、したがってクリッパの性能がさらに改善できる。
【図面の簡単な説明】
【図1】本発明を組み込むコンピュータ・グラフィックス・システムの第1の実施形態のブロック図である。
【図2】本発明を組み込むコンピュータ・グラフィックス・システムの第2の実施形態のブロック図である。
【図3】図1および図2のグラフィックス・システムに接続して使用する本発明による形状アクセレレータのブロック図である。
【図4】図3の形状アクセレレータの一部をなすクリッピング・プリプロセシング回路のブロック図である。
【図5】図4のクリッピング・プリプロセシング回路用の浮動小数点比較器のブロック図である。
【図6】図5の浮動小数点比較器の比較器出力調整ブロックのブロック図である。
【図7】図4のクリッピング・プリプロセシング回路中の第1のシフト・レジスタの動作を示すデータ・フロー・ダイヤグラムである。
【図8】図4のクリッピング・プリプロセシング回路のトリビアル受容回路の論理図である。
【図9】図4のクリッピング・プリプロセシング回路のトリビアル拒否回路の論理図である。
【図10】単一のプリミティブ用の図4のクリッピング・プリプロセシング回路の動作を示すフローチャートである。
【図11】クリップ領域および図3の形状アクセレレータによってレンダリングされる三角形プリミティブを示す図である。
【符号の説明】
10 フロント・エンド基板10
12 テクスチャ・マッピング基板
14 フレーム・バッファ基板
16 52ビット・バス
15 ホスト・コンピュータ
18 85ビット・バス
28 55ビット・バス
29 R、G、Bライン
30 ディストリビュータ・チップ
32A、32B、32C 3−Dアクセレレータ・チップ
34 2−Dアクセレレータ・チップ
36 コンセントレータ・チップ
50A、50B、50C、50D、50E、50Jフレーム・バッファ・コントローラ・チップ
51A〜J VRAMチップ
52A〜D ビデオ・フォーマット・チップ
109 トリビアル受容出力
111 トリビアル拒否出力
110 左側スタック
130 右側スタック
112 クリップ・コード論理(クリッピング・プリプロセッサ回路)
122 左側スタック制御ユニット
129 頂点入力データ・パス
152 右側スタック制御ユニット

Claims (6)

  1. 頂点データ入力と制御入力とを有し、かつその頂点データ入力からのプリミティブ頂点データに基づきかつその制御入力の制御下で、クリップ領域に対して関してプリミティブをクリップするように構成配置されるクリッピング・プロセッサを含むグラフィックス・アクセレレータで使用するためのグラフィックス処理回路において、
    前記クリッピング・プロセッサの前記頂点データ入力に作動的に結合された頂点入力データ・パス(129)と、
    前記頂点入力データ・パスに作動的に結合された頂点データ入力と、前記クリッピング・プロセッサの前記制御入力に作動的に結合された制御出力(109、111)とを有するクリッピング・プリプロセッサ回路(112)とを備えており、
    前記クリッピング・プリプロセッサ回路が、前記頂点入力データ・パスからの前記プリミティブ頂点データと前記クリップ領域の間の関係の評価を行い、この評価に基づいて前記制御出力に信号をもたらすように構成配置され、
    前記クリッピング・プリプロセッサ回路は、それぞれがクリップコード回路を含む少なくとも三つの頂点処理回路(220、244、246;250)を備え、さらに前記クリッピング・プリプロセッサ回路は、各頂点処理回路の前記クリップコード回路に応答する入力を有するトリビアル受容/拒否回路(250)を含み、
    前記クリッピング・プリプロセッサ回路における各頂点処理回路が、x座標プリプロセシング回路、y座標プリプロセシング回路、およびz座標プリプロセシング回路を含み、
    前記x座標プリプロセシング回路、前記y座標プリプロセシング回路、および前記z座標プリプロセシング回路がそれぞれシフト・レジスタ内にメモリ・セルを含み、
    前記トリビアル受容/拒否回路(250)は、前記メモリ・セルの出力に作動的に結合された組合せ論理回路を含むことを特徴とする回路
  2. 各頂点処理回路が使用可能入力を有し、前記頂点データ入力からの前記プリミティブ頂点データに基づき前記プリミティブに対するクリップコード(113)を発生するよう構成配置されており、
    前記グラフィックス処理回路は、前記頂点入力データ・パス(129)と前記頂点処理回路の前記頂点データ入力の間の比較器をさらに備えることを特徴とする、請求項1に記載の回路
  3. 頂点データ入力と制御入力とを有し、かつその頂点データ入力からのプリミティブ頂点データに基づきかつその制御入力の制御下で、クリップ領域に対して関してプリミティブをクリップするように構成配置されるクリッピング・プロセッサを含むグラフィックス・アクセレレータで使用するためのグラフィックス処理回路において、
    前記クリッピング・プロセッサの前記頂点データ入力に作動的に結合された頂点入力データ・パス(129)と、
    前記頂点入力データ・パスに作動的に結合された頂点データ入力と、前記クリッピング・プロセッサの前記制御入力に作動的に結合された制御出力(109、111)とを有するクリッピング・プリプロセッサ回路(112)とを備えており、
    前記クリッピング・プリプロセッサ回路が、前記頂点入力データ・パスからの前記プリミティブ頂点データと前記クリップ領域の間の関係の評価を行い、この評価に基づいて前記制御出力に信号をもたらすように構成配置され、
    前記クリッピング・プリプロセッサ回路は、それぞれがクリップコード回路を含む少なくとも三つの頂点処理回路(220、244、246;250)を備え、さらに前記クリッピング・プリプロセッサ回路は、各頂点処理回路の前記クリップコード回路に応答する入力を有するトリビアル受容/拒否回路(250)を含み、
    前記クリッピング・プリプロセッサ回路が、
    前記頂点入力データ・パスに作動的に結合された頂点座標レジスタと、
    前記頂点入力データ・パスに作動的に結合されたウィンドウ・エッジ座標レジスタと、
    前記頂点座標レジスタの出力に作動的に結合された第1の入力と、前記ウィンドウ・エッジ座標レジスタの出力に作動的に結合された第2の入力とを有し、かつ比較出力を有する比較器と、を備え、
    前記頂点処理回路が、前記比較出力に作動的に結合された複数の入力を含み、かつ、それぞれ前記比較出力に作動的に結合された並列入力を有するシフトレジスタを含むことを特徴とする回路。
  4. 前記比較器が、浮動小数点比較器である、請求項3に記載の回路。
  5. 前記クリッピング・プリプロセッサ回路と前記クリッピング・プロセッサとの間に作動的に結合されるクリップ・コード・バス(113)をさらに含む、ことを特徴とする請求項1又は3に記載の回路。
  6. 前記頂点処理回路はそれぞれ頂点使用可能線を有する、ことを特徴とする請求項1又は3に記載の回路。
JP14620696A 1995-06-08 1996-06-07 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム Expired - Lifetime JP3860859B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US488-639 1995-06-08
US08/488,639 US5720019A (en) 1995-06-08 1995-06-08 Computer graphics system having high performance primitive clipping preprocessing

Publications (2)

Publication Number Publication Date
JPH0935075A JPH0935075A (ja) 1997-02-07
JP3860859B2 true JP3860859B2 (ja) 2006-12-20

Family

ID=23940506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14620696A Expired - Lifetime JP3860859B2 (ja) 1995-06-08 1996-06-07 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム

Country Status (4)

Country Link
US (1) US5720019A (ja)
EP (1) EP0747861B1 (ja)
JP (1) JP3860859B2 (ja)
DE (1) DE69624868T2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203180B2 (ja) * 1996-03-27 2001-08-27 三菱電機株式会社 幾何学演算装置
JPH10293853A (ja) * 1997-04-21 1998-11-04 Mitsubishi Electric Corp クリップ処理装置
US6057852A (en) * 1997-04-30 2000-05-02 Hewlett-Packard Company Graphics accelerator with constant color identifier
US5930519A (en) * 1997-04-30 1999-07-27 Hewlett Packard Company Distributed branch logic system and method for a geometry accelerator
US6184902B1 (en) * 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US5956047A (en) 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US5920326A (en) * 1997-05-30 1999-07-06 Hewlett Packard Company Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5969726A (en) * 1997-05-30 1999-10-19 Hewlett-Packard Co. Caching and coherency control of multiple geometry accelerators in a computer graphics system
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6057862A (en) * 1997-07-01 2000-05-02 Memtrax Llc Computer system having a common display memory and main memory
US20010013867A1 (en) * 1998-04-27 2001-08-16 Kenshiu Watanabe Object search method and object search system
US6577316B2 (en) * 1998-07-17 2003-06-10 3Dlabs, Inc., Ltd Wide instruction word graphics processor
US6288724B1 (en) * 1998-09-16 2001-09-11 Texas Instruments Incorporated Clipping and trapezoid decomposition of polygons for printing files in a page description language
US6693719B1 (en) * 1998-09-16 2004-02-17 Texas Instruments Incorporated Path to trapezoid decomposition of polygons for printing files in a page description language
US6229518B1 (en) 1998-10-07 2001-05-08 Seiko Epson Corporation Apparatus and method for controlling a software cursor
US6271862B1 (en) * 1998-10-07 2001-08-07 Seiko Epson Corporation Apparatus and method for determining line clipping intersection points
EP1163591B1 (en) * 1999-02-12 2017-08-16 ARM Finance Overseas Limited Processor having a compare extension of an instruction set architecture
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
US6181352B1 (en) 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
US6359630B1 (en) * 1999-06-14 2002-03-19 Sun Microsystems, Inc. Graphics system using clip bits to decide acceptance, rejection, clipping
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US7346643B1 (en) * 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6515660B1 (en) 1999-12-14 2003-02-04 Intel Corporation Apparatus and method for dynamic triangle stripping
US6686924B1 (en) * 2000-02-02 2004-02-03 Ati International, Srl Method and apparatus for parallel processing of geometric aspects of video graphics data
US6967664B1 (en) * 2000-04-20 2005-11-22 Ati International Srl Method and apparatus for primitive processing in a graphics system
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7561155B1 (en) * 2000-10-23 2009-07-14 Evans & Sutherland Computer Corporation Method for reducing transport delay in an image generator
US20030095137A1 (en) * 2001-11-16 2003-05-22 Chung-Yen Lu Apparatus and method for clipping primitives in a computer graphics system
JP4300001B2 (ja) * 2002-07-31 2009-07-22 ソニー株式会社 クリッピング装置
US7616218B1 (en) 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US7292254B1 (en) 2005-12-05 2007-11-06 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with reduced sensitivity to vertex ordering
US7439988B1 (en) 2005-12-05 2008-10-21 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with respect to a clipping plane
US7420572B1 (en) 2005-12-19 2008-09-02 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with accelerated context switching
US7714877B1 (en) 2005-12-19 2010-05-11 Nvidia Corporation Apparatus, system, and method for determining clipping distances
US8068120B2 (en) * 2008-03-07 2011-11-29 Via Technologies, Inc. Guard band clipping systems and methods

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US5003497A (en) * 1988-12-15 1991-03-26 Sun Micosystems Inc Method for three-dimensional clip checking for computer graphics
US5051737A (en) * 1989-02-23 1991-09-24 Silicon Graphics, Inc. Efficient graphics process for clipping polygons
US5079719A (en) * 1989-06-09 1992-01-07 Sun Microsystems, Inc. Method and apparatus for clipping polygons
US5208909A (en) * 1989-10-23 1993-05-04 International Business Machines Corporation Pre-drawing pick detection in a graphics display system
FR2693012A1 (fr) * 1992-06-26 1993-12-31 Thomson Csf Procédé de visualisation d'images synthétiques de volumes en temps réel.

Also Published As

Publication number Publication date
JPH0935075A (ja) 1997-02-07
EP0747861A1 (en) 1996-12-11
DE69624868D1 (de) 2003-01-02
US5720019A (en) 1998-02-17
DE69624868T2 (de) 2003-09-11
EP0747861B1 (en) 2002-11-20

Similar Documents

Publication Publication Date Title
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
US5801711A (en) Polyline and triangle strip data management techniques for enhancing performance of computer graphics system
US6115047A (en) Method and apparatus for implementing efficient floating point Z-buffering
Deering et al. The triangle processor and normal vector shader: a VLSI system for high performance graphics
US5821950A (en) Computer graphics system utilizing parallel processing for enhanced performance
US5877773A (en) Multi-pass clipping in a geometry accelerator
US7015914B1 (en) Multiple data buffers for processing graphics data
US5949440A (en) Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware
US20080211827A1 (en) Filtering unit for floating-point texture data
JPH0749961A (ja) グラフィックアクセラレータの浮動小数点プロセッサ及びその浮動小数点機能を実行する方法
JP2003515853A (ja) 単一の半導体プラットフォームで支持される変換、ライティング、ラスター化システム
JP3476094B2 (ja) 高性能3次元グラフィック・アクセラレータの作図プロセッサ
US7310103B2 (en) Pipelined 2D viewport clip circuit
US5651106A (en) Method and apparatus for vertex sorting in a computer graphics system
US5696944A (en) Computer graphics system having double buffered vertex ram with granularity
US5784075A (en) Memory mapping techniques for enhancing performance of computer graphics system
US6778188B2 (en) Reconfigurable hardware filter for texture mapping and image processing
US5892516A (en) Perspective texture mapping circuit having pixel color interpolation mode and method thereof
US5732248A (en) Multistep vector generation for multiple frame buffer controllers
US5657436A (en) Preprocessing apparatus and method for line scan conversion in a computer graphics system
GB2302001A (en) Computer graphics system having per pixel depth cueing
US5623527A (en) Method and apparatus for determining an integer power of a floating point number
JP3839870B2 (ja) 四辺形を表わす画素データを生成する装置および方法
US6003098A (en) Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information
US6847378B2 (en) System and method for performing scale and bias operations by preclamping input image data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060510

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060814

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: 20060905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060925

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100929

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110929

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110929

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120929

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130929

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130929

Year of fee payment: 7

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130929

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130929

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

EXPY Cancellation because of completion of term