JP2003281558A - 最適なタイリング性能のためにグラフィックスをラスタライズするための方法 - Google Patents

最適なタイリング性能のためにグラフィックスをラスタライズするための方法

Info

Publication number
JP2003281558A
JP2003281558A JP2003064582A JP2003064582A JP2003281558A JP 2003281558 A JP2003281558 A JP 2003281558A JP 2003064582 A JP2003064582 A JP 2003064582A JP 2003064582 A JP2003064582 A JP 2003064582A JP 2003281558 A JP2003281558 A JP 2003281558A
Authority
JP
Japan
Prior art keywords
walking
span
edge
triangle
scan lines
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.)
Pending
Application number
JP2003064582A
Other languages
English (en)
Inventor
Patrick Shehane
パトリック・シィハン
Michael G Lavelle
マイケル・ジィ・レイベル
Mark E Pascual
マーク・イー・パスクァル
Wing-Cheong Tang
ウィン−チェン・タン
Nandini Ramani
ナンディニ・ラマーニ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2003281558A publication Critical patent/JP2003281558A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Abstract

(57)【要約】 【課題】 メモリがピクセル・データを受け取るよう設
計されている速度に一致するよう、ピクセル生成の速度
を最適化できるグラフィックス・システムおよび方法を
提供すること。 【解決手段】 メモリが多数のピクセルを実質的に同時
に格納するよう構成されている場合は、同数のピクセル
を実質的に同時にかつ同じ速度でレンダリングすること
が有利であろう。多数のスキャン・ラインを実質的に同
時に生成するために多数の組のアキュムレータを利用す
るエッジ・ウォーカおよび多数のピクセル値を実質的に
同時にレンダリングするために多数の組のアキュムレー
タを利用するスパン・ウォーカについて記述する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般に、コンピュ
ータ・グラフィックスの分野に関し、より詳細には、高
性能コンピュータ・グラフィックス・システムに関す
る。
【0002】
【従来の技術】初期の頃のグラフィックス・システム
は、2次元(2D)グラフィックスに限定されており、
表示されたそれぞれのピクセルに対してグレイ・スケー
ル値を計算するよう構成され、表示デバイスに対する簡
単なトランスレータまたはインターフェイスとして働く
ものであった。しかし、最新の高性能グラフィックス・
システムは、アンチエイリアシング、テクスチャ、シェ
ーディング、フォギング、アルファ・ブレンディング、
スペキュラ・ハイライティングなど、1つまたは複数の
特別な効果を持つ、3次元(3D)グラフィックスをサ
ポートできる。3Dグラフィックス・データは、相当す
る2Dグラフィックス・データよりも数桁大きい。3D
グラフィックス・データは、描写すべきオブジェクト
(対象物)をモデリングするために使用される幾何プリ
ミティブのそれぞれの頂点のための、1組の情報コンポ
ーネントを含む。
【0003】近年、複雑な3次元(3D)オブジェクト
およびシーンをレンダリングすることのできる高性能グ
ラフィックス・システムの需用が、実質的に増加してき
ている。この増加は、少なくともある程度は、映画用に
コンピュータで生成されるアニメーション、仮想現実シ
ミュレータ/トレーナ、対話型コンピュータ・ゲームな
どの新しいアプリケーションの需用によるものである。
これらの新しいアプリケーションは、グラフィックス・
システムに対して途方もない計算負荷を課す。最新のコ
ンピュータ・ディスプレイもまた改良されてきており、
ピクセル解像度が著しく高くなり、色の深みも大きくな
り、初期の頃のモデルと比べると、より高いリフレッシ
ュ速度で、より複雑な画像を表示することができるよう
になっている。その結果、最新の高性能グラフィックス
・システムには、かなりの複雑さとパワーを有するグラ
フィックス・プロセッサが組み込まれており、1ピクセ
ルの色値は、いくつかのモデルに伴う多くの計算および
数学的近似法の累積結果である。
【0004】
【発明が解決しようとする課題】グラフィックス・シス
テムの世代が新しくなる度に、処理すべき画像データが
増え、処理がより複雑となり、データを処理するための
時間が少なくなってきている。このような、より多くの
処理パワーの必要性が、より多くのハードウェア・リソ
ースおよび/またはより効率的なプロセスの組み合わせ
と一致する。
【0005】
【課題を解決するための手段】上記に記載した問題は、
いくつかの実施態様において、少なくともある程度、ピ
クセル生成の速度を最適化して、メモリ・アーキテクチ
ャがピクセル・データを受け取るよう設計されている速
度に一致させることのできるグラフィックス・システム
および方法により解決できる。メモリが多くのピクセル
を実質的に同時に格納するよう構成されている場合、同
数のピクセルを実質的に同時にかつ同じ速度で、レンダ
リングすることが有利であろう。多数のスキャン・ライ
ンを生成し、実質的に同時に多数のピクセル値をレンダ
リングするために多数の組のアキュムレータを利用して
いる、本明細書に記述したエッジ・ウォーカおよびスパ
ン・ウォーカ・アーキテクチャがこの目標を達成できる
であろう。
【0006】エッジ・ウォーカは、2本のスキャン・ラ
イン用の2組のエンド・ポイントのためのパラメータ値
を実質的に同時に生成するために、2組のアキュムレー
タを有することができる。スパン・ウォーカは、2本の
スキャン・ラインのそれぞれ上の第1および第2のピク
セルのためのパラメータ値を実質的に同時に判断するた
めに、4組のアキュムレータを使用できる。この構成に
より、エッジ・ウォーカおよびスパン・ウォーカが、4
つのピクセルのためのパラメータ値を実質的に同時に生
成することができるようになる。他の実施態様では、追
加のアキュムレータを利用して、2つを超えるスキャン
・ラインを実質的に同時に処理することができる。
【0007】本発明の、上述の、および他の目的、特
徴、利点は、以下の詳細な説明を参照しながら、添付図
面を見ることにより、より完全に理解できるであろう。
【0008】本発明は、さまざまな修正形態および代替
形態が可能であるが、それらの特定の実施形態を、図面
内に例示として示し、本明細書に詳細に記述する。しか
し、これらの図面および詳細な説明は、開示した特定の
形態に本発明を限定するものではなく、むしろその反対
に、添付の特許請求の範囲で定義した本発明の趣旨およ
び範囲内に含まれる、すべての修正形態、均等物、代替
形態を包含するものとする。見出しは、単に整理上のた
めであって、本記述または特許請求の範囲を限定したり
解釈したりするために使用するものではないことに留意
されたい。さらに、用語「可能性がある、できる(ma
y)」を、本出願全体にわたって使用しているが、許容
の意味(すなわち、可能性を有する、できる)であっ
て、命令の意味(すなわち、しなければならない)では
ないことに留意されたい。用語「含む(includ
e)」、およびその派生語は、「含むが、それに限定さ
れない」という意味である。用語「接続された(con
nected)」は、「直接的にまたは間接的に接続さ
れた」という意味であり、用語「結合された(coup
led)」は、「直接的にまたは間接的に結合された」
という意味である。
【0009】
【発明の実施の形態】コンピュータ・システム−図1 図1は、グラフィックス・システムを含むコンピュータ
・システム80の一実施形態を示す図である。グラフィ
ックス・システムは、特に、コンピュータ・システム、
ネットワークPC、インターネット設備、テレビジョン
(たとえば、HDTVシステムや対話型テレビジョン・
システム)、携帯型情報端末(PDA)、仮想現実シス
テム、2Dおよび/または3Dグラフィックスを表示す
る他のデバイスなどの、さまざまなシステムのいずれの
中にも含まれることができる。
【0010】示してあるように、コンピュータ・システ
ム80は、システム・ユニット82と、システム・ユニ
ット82に結合されたビデオ・モニタまたは表示デバイ
ス84とを含む。表示デバイス84は、さまざまなタイ
プの表示モニタまたはデバイス(たとえば、CRT、L
CD、またはガスプラズマ・ディスプレイ)のいずれで
もよい。キーボード86および/またはマウス88、あ
るいは他の入力デバイス(たとえば、トラックボール、
ディジタイザ、タブレット、6自由度の入力デバイス、
ヘッド・トラッカ、アイ・トラッカ、データ・グロー
ブ、またはボディ・センサ)を含むさまざまな入力デバ
イスをコンピュータ・システムに接続できる。アプリケ
ーション・ソフトウェアが、コンピュータ・システム8
0によって実行されて、グラフィカル・オブジェクトを
表示デバイス84上に表示することができる。
【0011】コンピュータ・システムのブロック図−図
2 図2は、図1のコンピュータ・システムを簡単に示すブ
ロック図である。示してあるように、コンピュータ・シ
ステム80は、ホスト・バス104とも呼ぶ、高速メモ
リ・バスまたはシステム・バス104に結合された中央
演算処理装置(CPU)102を含む。システム・メモ
リ106(本明細書では、主記憶装置とも呼ぶ)も、高
速バス104に結合することができる。
【0012】ホスト・プロセッサ102が、たとえば、
マイクロプロセッサ、マルチプロセッサ、CPUなど
の、さまざまなタイプの、1つまたは複数のプロセッサ
を含むことができる。システム・メモリ106は、ラン
ダム・アクセス・メモリ(たとえば、特に、スタティッ
ク・ランダム・アクセス・メモリすなわち「SRA
M」、シンクロナス・ダイナミック・ランダム・アクセ
ス・メモリすなわち「SDRAM」、ラムバス・ダイナ
ミック・ランダム・アクセス・メモリすなわち「RDR
AM」)、読取り専用メモリ、大容量記憶デバイスなど
の、異なるタイプのメモリ・サブシステムの、どのよう
な組み合わせも含むことができる。システム・バスまた
はホスト・バス104は、1つまたは複数の通信または
ホスト・コンピュータ・バス(ホスト・プロセッサ、C
PU、メモリ・サブシステム間の通信用)および専用サ
ブシステム・バスを含むことができる。
【0013】図2では、グラフィックス・システム11
2が、高速メモリ・バス104に結合されている。グラ
フィックス・システム112は、たとえば、クロスバ・
スイッチまたは他のバス接続論理により、バス104に
結合できる。他のさまざまな周辺デバイス、または他の
バスが、高速メモリ・バス104に接続できることが想
定される。グラフィックス・システム112が、コンピ
ュータ・システム80内の1つまたは複数のバスに結合
でき、かつ/またはさまざまなタイプのバスに結合でき
ることに留意されたい。そのうえ、グラフィックス・シ
ステム112は、通信ポートに結合でき、それにより、
外部ソース、たとえば、インターネットまたはネットワ
ークから、グラフィックス・データを直接受け取ること
ができる。図に示してあるように、1つまたは複数の表
示デバイス84が、グラフィックス・システム112に
接続できる。
【0014】ホストCPU102が、ホスト・バス10
4を介して、プログラミングされた入出力(I/O)プ
ロトコルに従って、グラフィックス・システム112
へ、かつそこから情報を転送することができる。あるい
は、グラフィックス・システム112が、直接メモリ・
アクセス(DMA)プロトコルに従ってまたはインテリ
ジェント・バス・マスタ方式によって、システム・メモ
リ106にアクセスすることができる。
【0015】OpenGL(登録商標)またはJava
(登録商標)3Dなどのアプリケーション・プログラミ
ング・インターフェイス(API)に準拠しているグラ
フィックス・アプリケーション・プログラムが、ホスト
CPU102上で実行し、表示デバイス84に出力する
ためのポリゴンなどの幾何プリミティブを定義するコマ
ンドおよびグラフィックス・データを生成することがで
きる。ホスト・プロセッサ102が、グラフィックス・
データをシステム・メモリ106に転送することができ
る。その後、ホスト・プロセッサ102は、ホスト・バ
ス104を介してグラフィックス・システム112にグ
ラフィックス・データを転送するよう動作することがで
きる。別の実施形態では、グラフィックス・システム1
12は、DMAアクセス・サイクルを使用してホスト・
バス104を介して幾何データ・アレイを読み込むこと
ができる。さらに別の実施形態では、グラフィックス・
システム112は、インテル社(Intel Corp
oration)によって広められたアドバンスト・グ
ラフィックス・ポート(AGP)などの、直接ポートを
通じてシステム・メモリ106に結合することができ
る。
【0016】グラフィックス・システムは、ホストCP
U102および/またはシステム・メモリ106、他の
メモリを含むさまざまなソースのいずれかから、あるい
はネットワーク(たとえば、インターネット)などの外
部ソースから、あるいはたとえば、テレビジョンなどの
放送媒体から、あるいは他のソースからグラフィックス
・データを受け取ることができる。
【0017】グラフィックス・システム112がコンピ
ュータ・システム80の一部として表してあるが、グラ
フィックス・システム112は、(たとえば、それ自体
の内蔵ディスプレイを備える)スタンドアローン・デバ
イスとして構成することもできることに留意されたい。
グラフィックス・システム112は、シングル・チップ
・デバイスとして、あるいはシステム・オン・チップま
たはマルチチップ・モジュールの一部として構成するこ
ともできる。さらに、いくつかの実施形態では、例示し
たグラフィックス・システム112の要素によって実行
される、いくつかの処理オペレーションがソフトウェア
で実現できる。
【0018】グラフィックス・システム−図3 図3は、グラフィックス・システム112の一実施形態
を示す機能ブロック図である。グラフィックス・システ
ム112の、他の多くの実施形態が可能であり、かつ想
定されることに留意されたい。グラフィックス・システ
ム112が、1つまたは複数のメディア・プロセッサ1
4、1つまたは複数のハードウェア・アクセラレータ1
8、1つまたは複数のテクスチャ・バッファ20、1つ
または複数のフレーム・バッファ22、1つまたは複数
のビデオ出力プロセッサ24を含むことができる。ま
た、グラフィックス・システム112は、ディジタル/
アナログ・コンバータ(DAC)26、ビデオ・エンコ
ーダ28、フラット・パネル・ディスプレイ・ドライバ
(図示せず)、および/またはビデオ・プロジェクタ
(図示せず)などの、1つまたは複数の出力デバイスも
含むことができる。メディア・プロセッサ14および/
またはハードウェア・アクセラレータ18が、適切なタ
イプの高性能プロセッサ(たとえば、専用グラフィック
ス・プロセッサまたは計算ユニット、マルチメディア・
プロセッサ、DSP、または汎用プロセッサ)を含むこ
とができる。
【0019】いくつかの実施形態では、これらのコンポ
ーネントのうちの1つまたは複数を除くことができる。
たとえば、テクスチャ・バッファは、テクスチャ・マッ
ピングを用意しない実施形態には含まれなくてもよい。
他の実施形態では、メディア・プロセッサまたはハード
ウェア・アクセラレータのいずれかまたは両方に組み込
まれている機能のすべてまたは一部が、ソフトウェア内
で実現できる。
【0020】1組の実施形態では、メディア・プロセッ
サ14が1つの集積回路であり、ハードウェア・アクセ
ラレータが別の集積回路である。他の実施形態では、メ
ディア・プロセッサ14とハードウェア・アクセラレー
タ18を同じ集積回路内に組み込むことができる。いく
つかの実施形態では、メディア・プロセッサ14および
/またはハードウェア・アクセラレータ18の一部を別
々の集積回路内に組み込むことができる。
【0021】示してあるように、グラフィックス・シス
テム112が、図2のホスト・バス104などのホスト
・バスに対するインターフェイスを含み、それにより、
グラフィックス・システム112がコンピュータ・シス
テム80などのホスト・システムと通信できるようにす
ることができる。より詳細には、ホスト・バス104に
より、ホスト・プロセッサがコマンドをグラフィックス
・システム112に送ることができるようになってい
る。一実施形態では、ホスト・バス104が、双方向バ
スである。
【0022】メディア・プロセッサ−図4 図4は、メディア・プロセッサ14の一実施形態を示す
図である。示してあるように、メディア・プロセッサ1
4が、コンピュータ・システム80とグラフィックス・
システム112間のデータの転送を制御することによ
り、グラフィックス・システム112とコンピュータ・
システム80間のインターフェイスとして動作できる。
いくつかの実施形態では、メディア・プロセッサ14
を、グラフィックス・データ上で変換、ライティングお
よび/または他の汎用処理オペレーションを実施するよ
う構成することもできる。
【0023】変換とは、オブジェクト(またはオブジェ
クトの一部)の空間操作を指し、平行移動、スケーリン
グ(たとえば、引伸ばしや収縮操作)、回転、反転、ま
たはそれらの組み合わせを含む。より一般的には、変換
は、線形マッピング(たとえば、マトリクス乗算)、非
線形マッピング、それらの組み合わせを含むことができ
る。
【0024】ライティングとは、それぞれ個々のオブジ
ェクトがどの色値および/または輝度値を有するかを判
断するために、表示された画像内のオブジェクトの照度
を計算することを指す。使用されるシェーディング・ア
ルゴリズム(たとえば、固定、グロー、またはフォン)
により、ライティングをいくつかの異なる空間位置で評
価できる。
【0025】例示してあるように、メディア・プロセッ
サ14を、ホスト・インターフェイス11を介してグラ
フィックス・データを受け取るよう構成することができ
る。ホスト・インターフェイス11の加速ポートを介し
て受け取った1ストリームのデータをバッファするため
に、グラフィックス待ち行列148がメディア・プロセ
ッサ14内に含まれている。受け取ったグラフィックス
・データは、1つまたは複数のグラフィックス・プリミ
ティブを含むことができる。本明細書で使用するよう
に、グラフィックス・プリミティブという用語は、ポリ
ゴン、パラメトリック曲面、スプライン、NURBS
(不均一有理Bスプライン)、細分表面、フラクタル、
ボリューム・プリミティブ、ボクセル(すなわち、3次
元ピクセル)、粒子システムを含むことができる。一実
施形態では、メディア・プロセッサ14がまた、幾何デ
ータ・プリプロセッサ150と1つまたは複数のマイク
ロプロセッサ・ユニット(MPU)152とを含むこと
もできる。MPU152を、頂点変換、ライティング計
算および他のプログラム可能な機能を実施し、その結果
をハードウェア・アクセラレータ18に送るよう構成す
ることができる。MPU152がまた、ハードウェア・
アクセラレータ18内のテクセル(すなわち、テクスチ
ャ・マップの最小のアドレス可能ユニット)およびピク
セルに対する読取り/書込みアクセスを有することもで
きる。幾何データ・プリプロセッサ150を、幾何を復
元し、頂点データを変換し、フォーマットし、頂点およ
び命令をMPU152にディスパッチし、頂点および属
性タグまたはレジスタ・データをハードウェア・アクセ
ラレータ18に送るよう構成することができる。
【0026】示してあるように、メディア・プロセッサ
14が、1つまたは複数のメモリに対するインターフェ
イスを含む、他の可能なインターフェイスを有すること
ができる。たとえば、示してあるように、メディア・プ
ロセッサ14が、直接ラムバスDRAM(DRDRA
M)16に対する直接ラムバス・インターフェイス15
6を含むことができる。DRDRAM16などのメモリ
を、MPU152のためのプログラムおよび/またはデ
ータ記憶装置のために使用することができる。DRDR
AM16を、ディスプレイ・リストおよび/または頂点
テクスチャ・マップを格納するために使用することもで
きる。
【0027】メディア・プロセッサ14が、グラフィッ
クス・システム112の他の機能コンポーネントに対す
るインターフェイスを含むこともできる。たとえば、メ
ディア・プロセッサ14が、ハードウェア・アクセラレ
ータ18などの別の専用プロセッサに対するインターフ
ェイスを有することができる。例示した実施形態では、
メディア・プロセッサ14がハードウェア・アクセラレ
ータ18を制御できるようにした加速ポート経路をコン
トローラ160に含む。メディア・プロセッサ14は、
バス・インターフェイス・ユニット(BIU)154な
どの直接インターフェイスも含むことができる。バス・
インターフェイス・ユニット154は、コントローラ1
60を介して、メモリ16への経路とハードウェア・ア
クセラレータ18およびビデオ出力プロセッサ24への
経路を提供する。
【0028】ハードウェア・アクセラレータ−図5 1つまたは複数のハードウェア・アクセラレータ18
を、メディア・プロセッサ14からグラフィックス命令
とデータを受け取り、受け取った命令に従って受け取っ
たデータに関していくつかの機能を実施するよう構成す
ることができる。たとえば、ハードウェア・アクセラレ
ータ18を、グラフィックス・データ内に生じるさまざ
まなグラフィックス・プリミティブの、ラスタライズ、
2Dおよび/または3Dテクスチャリング、ピクセル転
送、イメージング、フラグメント処理、クリッピング、
奥行き表現、トランスペアレンシ処理、セットアップ、
および/またはスクリーン空間レンダリングを実施する
よう構成することができる。
【0029】クリッピングとは、ワールド空間内の3D
ビュー・ボリュームの外側にあるグラフィックス・プリ
ミティブまたはその一部を削除することを指す。3Dビ
ュー・ボリュームとは、ワールド空間内に位置する仮想
オブザーバ(または仮想カメラ)に対して見えるワール
ド空間の一部を意味している。たとえば、ビュー・ボリ
ュームは、2Dビュー・ウィンドウ、ワールド空間内に
置かれたビューポイント(視点)、フロント・クリッピ
ング面、バック・クリッピング面によって生成された先
端が切り取られたピラミッドである。ビューポイント
は、ワールド空間内における仮想オブザーバの場所を意
味する。大抵の場合、3Dビュー・ボリュームの外側に
あるプリミティブやその一部は、現在見えず、その後に
処理されることはない。3Dビュー・ボリュームの内側
にあるプリミティブまたはプリミティブの一部が、2D
ビュー・ウィンドウへの投影の候補となる。
【0030】セットアップとは、3次元ビューポートに
プリミティブをマッピングすることを指す。これには、
元の「ワールド座標」系から確立されたビューポート座
標へオブジェクトを移動し、変換することを含む。これ
により、スクリーン上に表示される3次元オブジェクト
のための正しい透視図が作成される。
【0031】スクリーン空間レンダリングとは、表示さ
れる各ピクセルを形成するために使用されるデータを生
成するために実施される計算を指す。たとえば、ハード
ウェア・アクセラレータ18が「サンプル」を計算する
ことができる。「サンプル」は、カラー情報を有する
が、実領域を有さないポイントである。サンプルによ
り、ハードウェア・アクセラレータ18が、「スーパー
サンプリングする」、すなわちピクセル当たり1を超え
るサンプルを計算することができる。スーパーサンプリ
ングすることにより、より高い品質の画像が生じる。
【0032】ハードウェア・アクセラレータ18はいく
つかのインターフェイスを含むこともできる。たとえ
ば、例示した実施形態では、ハードウェア・アクセラレ
ータ18は4つのインターフェイスを有する。ハードウ
ェア・アクセラレータ18は、メディア・プロセッサ1
4と通信するためにインターフェイス161(「北イン
ターフェイス」と呼ぶ)を有する。ハードウェア・アク
セラレータ18は、インターフェイス161を通じてメ
ディア・プロセッサ14からコマンドおよび/またはデ
ータを受け取ることができる。さらに、ハードウェア・
アクセラレータ18はバス32に対するインターフェイ
ス176を含む。バス32が、ハードウェア・アクセラ
レータ18を、ブートPROM30および/またはビデ
オ出力プロセッサ24に接続することができる。ブート
PROM30を、フレーム・バッファ22のためのシス
テム初期設定データおよび/または制御コードを格納す
るよう構成することができる。ハードウェア・アクセラ
レータ18は、テクスチャ・バッファ20に対するイン
ターフェイスを含むこともできる。たとえば、ハードウ
ェア・アクセラレータ18がテクスチャ・バッファ20
に対して読取りや書込みを行うために、ハードウェア・
アクセラレータ18は、エイトウエイ・インターリーブ
されたテクセル・バスを使用してテクスチャ・バッファ
20に対してインターフェイスをとることができる。ま
た、ハードウェア・アクセラレータ18はフレーム・バ
ッファ22に対してもインターフェイスをとることがで
きる。たとえば、ハードウェア・アクセラレータ18
を、フォーウエイ・インターリーブされたピクセル・バ
スを使用して、フレーム・バッファ22から読み取りか
つ/またはそこに書き込むよう構成することができる。
【0033】頂点プロセッサ162を、メディア・プロ
セッサ14から受け取った頂点タグを使用して、MPU
152からの頂点データを順序付けて組み立てるように
構成することができる。頂点を、メッシュ・バッファ1
64内に保存かつ/またはそこから検索することができ
る。
【0034】レンダリング・パイプライン166を、2
Dウィンドウ・システム・プリミティブおよび3Dプリ
ミティブをフラグメントにラスタライズするように構成
することができる。1つのフラグメントが、1つまたは
複数のサンプルを含むことができる。それぞれのサンプ
ルが、カラー・データおよび恐らくはアルファ・タグや
制御タグなどの他のデータのベクトルを含むことができ
る。2Dプリミティブは、ドット、フォント、ブレセン
ハム・ライン、2Dポリゴンなどのオブジェクトを含
む。3Dプリミティブは、平滑で大きいドット、平滑で
広いDDA(ディジタル微分解析法)ライン、3Dポリ
ゴン(たとえば、3D三角形)などのオブジェクトを含
む。
【0035】たとえば、レンダリング・パイプライン1
66を、三角形を定義する頂点を受け取り、三角形と交
差するフラグメントを識別するよう構成することができ
る。
【0036】レンダリング・パイプライン166を、フ
ルスクリーン・サイズのプリミティブを取り扱い、面お
よびエッジの傾斜を計算し、以下のものなどの補完因子
またはコンポーネントを使用して、(カラーなどの)デ
ータをタイル解像度(またはフラグメント解像度)にま
で補間するよう構成することができる。すなわち、 r、g、b(すなわち、赤、緑、青の頂点カラー) r2、g2、b2(すなわち、明るいテクスチャからの
赤、緑、青のスペキュラ・カラー) アルファ(すなわち、トランスペアレンシ) z(すなわち、深度) s、t、r、w(すなわち、テクスチャ・コンポーネン
ト)
【0037】スーパーサンプリングを使用する実施形態
では、サンプル・ジェネレータ174を、レンダリング
・パイプライン166によって出力されたフラグメント
からサンプルを生成し、どのサンプルがラスタライズ・
エッジの内側にあるかを判断するよう構成することがで
きる。サンプル位置は、確率的サンプル位置決めパター
ンを可能にするためのユーザ・ローダブル・テーブルに
よって決めることができる。
【0038】ハードウェア・アクセラレータ18を、3
Dプリミティブからフレーム・バッファ22へテクスチ
ャされたフラグメントを書き込むように構成することが
できる。レンダリング・パイプライン166は、r、
s、t、wを定義するピクセル・タイルをテクスチャ・
アドレス・ユニット168に送ることができる。テクス
チャ・アドレス・ユニット168は、r、s、t、wテ
クスチャ座標を使用して、テクセル・アドレス(たとえ
ば、1組の隣接テクセルのためのアドレス)を計算し、
テクスチャ・フィルタ170のための補間係数を判断す
る。テクセル・アドレスは、テクスチャ・バッファ20
からテクスチャ・データ(すなわち、テクセル)にアク
セスするために使用される。テクスチャ・バッファ20
は、それぞれのクロック内でできるだけ多くの隣接テク
セルを得るためにインターリーブすることができる。テ
クスチャ・フィルタ170は、双一次(バイリニア)、
トライリニア、またはカドリニア補間を実施することが
できる。ピクセル転送ユニット182はまた、テクセル
をスケールし、かつバイアスし、かつ/またはルックア
ップすることができる。テクスチャ環境180は、テク
セルをサンプル・ジェネレータ174によって作り出さ
れたサンプルに適用することができる。テクスチャ環境
180を使用して、画像上に幾何学的変換(たとえば、
バイリニアのスケーリング、回転、フリップ)を実施
し、かつテクスチャ・バッファ画像データに他の画像フ
ィルタリング・オペレーション(たとえば、バイキュー
ビック・スケーリングや畳込み)も実施することができ
る。
【0039】例示した実施形態では、ピクセル転送MU
X178は、ピクセル転送ユニット182に対する入力
を制御する。ピクセル転送ユニット182は、北インタ
ーフェイス161を介して受け取ったピクセル・データ
を選択してアンパックし、フレーム・バッファ22また
はテクスチャ・バッファ20のいずれかからチャネルを
選択し、あるいはテクスチャ・フィルタ170またはサ
ンプル・フィルタ172から受け取ったデータを選択す
ることができる。
【0040】ピクセル転送ユニット182を使用して、
スケール、バイアス、および/またはカラー・マトリク
ス・オペレーション、カラー・ルックアップ・オペレー
ション、ヒストグラム・オペレーション、アキュームレ
ーション・オペレーション、正規化オペレーション、お
よび/または最小化/最大化機能を実施することができ
る。処理されたデータのソース(およびデータに実施さ
れたオペレーション)により、ピクセル転送ユニット1
82は、処理されたデータを、(テクスチャ・バッファ
MUX186を介して)テクスチャ・バッファ20に、
(テクスチャ環境ユニット180およびフラグメント・
プロセッサ184を介して)フレーム・バッファ22
に、あるいは(北インターフェイス161を介して)ホ
ストに出力できる。たとえば、一実施形態では、ピクセ
ル転送ユニット182は、ピクセル転送MUX178を
介してホストからピクセル・データを受け取ると、ピク
セル転送ユニット182を使用して、スケールとバイア
スまたはカラー・マトリクス・オペレーション、それに
続き、カラー・ルックアップ・オペレーションまたはヒ
ストグラム・オペレーション、それに続き、最小化/最
大化機能を実施することができる。次いで、ピクセル転
送ユニット182は、テクスチャ・バッファ20または
フレーム・バッファ22のいずれかにデータを出力する
ことができる。
【0041】フラグメント・プロセッサ184を使用し
て、OpenGL(登録商標)フラグメント処理オペレ
ーションなどの標準フラグメント処理オペレーションを
実施することができる。たとえば、オーバラップしてい
るウィンドウを加速するために、フラグメント・プロセ
ッサ184を、以下のオペレーション、すなわち、フォ
ギング、領域パターン、シザリング、アルファ/カラー
・テスト、所有権テスト(WID)、ステンシル・テス
ト、深度テスト、アルファ・ブレンドまたは論理ops
(ROP)、プレーン・マスキング、バッファ選択、ピ
ック・ヒット/オクルージョン(occlusion)検出、お
よび/または予備のクリッピングを実施するよう構成す
ることができる。
【0042】テクスチャ・バッファ20テクスチャ・バ
ッファ20はいくつかのSDRAMを含むことができ
る。テクスチャ・バッファ20を、ハードウェア・アク
セラレータ18のために、テクスチャ・マップ、画像処
理バッファ、アキュームレーション・バッファを格納す
るよう構成することができる。テクスチャ・バッファ2
0が、(たとえば、テクスチャ・バッファ20内に含ま
れるSDRAMのタイプにより)多くの異なるキャパシ
ティを有することができる。いくつかの実施形態では、
それぞれの対のSDRAMが、独立して行および列にア
ドレス可能である。
【0043】フレーム・バッファ22 また、グラフィックス・システム112はフレーム・バ
ッファ22を含むこともできる。一実施形態では、フレ
ーム・バッファ22は、三菱電気株式会社製の3D・R
AMメモリ・デバイスなどの、多数のメモリ・デバイス
を含むことができる。フレーム・バッファ22を、表示
ピクセル・バッファ、オフスクリーン・ピクセル・バッ
ファ、および/またはスーパーサンプル・バッファとし
て構成することができる。さらに、一実施形態では、フ
レーム・バッファ22のある一部を、表示ピクセル・バ
ッファとして使用し、他の一部を、オフスクリーン・ピ
クセル・バッファおよびサンプル・バッファとして使用
することができる。
【0044】ビデオ出力プロセッサ−図6 グラフィックス・システム112内にビデオ出力プロセ
ッサ24を含むことができる。ビデオ出力プロセッサ2
4は、フレーム・バッファ22から出力されるピクセル
をバッファし処理することができる。たとえば、ビデオ
出力プロセッサ24を、フレーム・バッファ22からピ
クセルのバーストを読み取るよう構成することができ
る。また、ビデオ出力プロセッサ24を、フレーム・バ
ッファ22がダブル・バッファされている場合にはダブ
ル・バッファ選択(dbsel)、オーバーレイ・トラ
ンスペアレンシ(トランスペアレンシ/オーバーレイ・
ユニット190を使用して)、面グループ抽出、ガンマ
補正、擬似カラーまたはカラー・ルックアップまたはバ
イパス、および/またはカーソル生成を実施するよう構
成することもできる。たとえば、例示した実施形態で
は、出力プロセッサ24は、WID(ウィンドウID)
ルックアップ・テーブル(WLUT)192とガンマお
よびカラー・マップ・ルックアップ・テーブル(GLU
T、CLUT)194とを含む。一実施形態では、フレ
ーム・バッファ22は、トランスペアレンシ・オーバー
レイ190とWLUT192のすべてまたはいくつかを
含む、多数の3DRAM64 201を含むことができ
る。2つの独立したビデオ・ラスタ・タイミング・ジェ
ネレータ196を使用して、ビデオ出力プロセッサ24
を、2つのディスプレイへの2つのビデオ出力ストリー
ムをサポートするよう構成することもできる。たとえ
ば、1つのラスタ(たとえば、196A)は、1280
×1024 CRTを駆動し、もう1つ(たとえば、1
96B)は、符号化したテレビジョン映像を備えるNT
SCまたはPAL装置を駆動することができる。
【0045】DAC26は、グラフィックス・システム
112の最終出力ステージとして動作することができ
る。DAC26は、GLUT/CLUT/カーソル・ユ
ニット194から受け取ったディジタル・ピクセル・デ
ータをアナログ・ビデオ信号に変換し、この信号は、次
いで、表示デバイスに送られる。一実施形態では、DA
C26を、アナログ・ビデオ信号の代りにディジタル・
ピクセル・データを出力するために、バイパスするかま
たは完全に省略することができる。このことは、表示デ
バイスが、ディジタル技術(たとえば、LCDタイプの
ディスプレイまたはディジタル・マイクロミラー・ディ
スプレイ)に基づいている場合に有益であろう。
【0046】DAC26は、陰極線管(CRT)モニタ
などの表示デバイスにアナログ・ビデオ出力を提供する
よう構成された、赤/緑/青のディジタル/アナログ・
コンバータでよい。一実施形態では、DAC26を、2
40MHzのドット・レートで高解像度RGBアナログ
・ビデオ出力を提供するよう構成することができる。同
様に、エンコーダ28を、符号化したビデオ信号をディ
スプレイに提供するよう構成することができる。たとえ
ば、エンコーダ28は、符号化したNTSCまたはPA
LビデオをSビデオまたは合成ビデオ・テレビジョン・
モニタまたは録音デバイスに提供することができる。
【0047】他の実施形態では、ビデオ出力プロセッサ
24は、ピクセル・データを他の組み合わせのディスプ
レイに出力できる。たとえば、ピクセル・データを(1
つのDAC26と1つのエンコーダ28ではなく)2つ
のDAC26に出力することにより、ビデオ出力プロセ
ッサ24が、2つのCRTを駆動できる。あるいは、2
つのエンコーダ28を使用することにより、ビデオ出力
プロセッサ24が、適切なビデオ入力を2つのテレビジ
ョン・モニタに提供することができる。一般的に、多く
の異なる組み合わせの表示デバイスを、その表示デバイ
スのための適切な出力デバイスおよび/またはコンバー
タを提供することにより、サポートすることができる。
【0048】サンプルからピクセルへの処理の流れ 1組の実施形態では、ハードウェア・アクセラレータ1
8が、メディア・プロセッサ14から三角形などのプリ
ミティブを定義する幾何学的パラメータを受け取り、サ
ンプルとしてプリミティブをレンダリングすることがで
きる。サンプルは、フレーム・バッファ22のサンプル
記憶装置領域(サンプル・バッファとも呼ぶ)内に格納
することができる。次いで、サンプルは、フレーム・バ
ッファ22のサンプル記憶装置領域から読み取られ、サ
ンプル・フィルタ22によってフィルタがかけられて、
ピクセルを生成する。ピクセルは、フレーム・バッファ
22のピクセル記憶装置領域内に格納される。ピクセル
記憶装置領域を、ダブルバッファすることができる。ビ
デオ出力プロセッサ24が、ピクセルをフレーム・バッ
ファ22のピクセル記憶装置領域から読み取り、そのピ
クセルからビデオ・ストリームを生成する。ビデオ・ス
トリームは、DAC26および/またはビデオ・エンコ
ーダ28を通して、1つまたは複数の表示デバイス(た
とえば、モニタ、プロジェクタ、ヘッドマウント・ディ
スプレイなど)に提供することができる。
【0049】サンプルは、2次元サンプル空間(レンダ
リング空間とも呼ぶ)内の位置で計算される。サンプル
空間は、1アレイのビン(本明細書では、フラグメント
とも呼ぶ)に区分することができる。フレーム・バッフ
ァ22のサンプル記憶装置領域内のサンプルの記憶は、
図7に例示したようなビン、すなわちフラグメントに従
って組織化することができる。それぞれのビンが、1つ
または複数のサンプルを含むことができる。ビン当たり
のサンプルの数は、プログラム可能なパラメータであり
得る。
【0050】レンダリング・パイプライン−図8 図8は、レンダリング・システムまたはレンダリング・
パイプライン166の一実施形態をより詳細に示すブロ
ック図である。示してあるように、レンダリング・パイ
プライン166は、頂点プロセッサ(VP)162と、
プリセットアップ・ユニット(PSU)302と、セッ
トアップ・ユニット(SU)304と、エッジ・ウォー
カ(EW)306と、スパン・ウォーカ(SW)308
とを備えることができる。
【0051】頂点プロセッサ162は、メディア・プロ
セッサ14から受け取った頂点情報から三角形(または
ポリゴン)をアセンブルするよう動作する。プリセット
アップ・ユニット302は、三角形データをプリプロセ
スするよう動作する。セットアップ・ユニット304
は、三角形のエッジおよび三角形を横切るパラメータ値
(x、y、z、r、g、b...)の変形を決める。エ
ッジ・ウォーカ306は、三角形の制御エッジ(最長ま
たは主要エッジ)から従属エッジまで、三角形をまたが
るスキャン・ラインのスタート・ポイントおよびエンド
・ポイントを決めるように動作する。スキャン・ライン
は、1ステップだけ主要方向にステップさせられる。ス
パン・ウォーカ308は、スキャン・ラインに沿ってピ
クセル値を補間するよう動作する。EW306によって
出されるそれぞれのスキャン・ラインについて、SW3
08は、スキャン・ライン上の制御エッジ・ポイントと
従属エッジ・ポイント間のスキャン・ライン上にあるそ
れぞれのピクセル位置のためのパラメータ値を補間す
る。
【0052】エッジ・ウォーカおよびスパン・ウォーカ
の内部構造−図9 図9は、EW306およびSW308の一実施形態を示
す図である。EW306は、2本のスキャン・ラインに
対する2組のエンド・ポイントのためのパラメータ値を
実質的に同時に生成するために、2組のアキュムレータ
410〜420を備えることができる。SW308は、
2本のスキャン・ラインのそれぞれにある第1および第
2のピクセルのためのパラメータ値を実質的に同時に判
断するために、4組のアキュムレータ430〜460を
使用することができる。この構成により、EW306お
よびSW308が、4つのピクセルのためのパラメータ
値を実質的に同時に生成できる。他の実施形態では、追
加のアキュムレータを利用して、2つを超えるスキャン
・ラインを実質的に同時に処理できるようにしている。
図9a〜cは、クロックサイクル毎に1ピクセルのレー
トで1本のスキャン・ラインと1組のアキュムレータと
でピクセルを順に処理するスパン・ウォーカを、2本の
スキャン・ラインと4組のアキュムレータとで1クロッ
クサイクルに実質的に同時に4ピクセルを処理するスパ
ン・ウォーカ308の実施形態と比較した視覚的表現で
ある。
【0053】多数のピクセルを実質的に同時にレンダリ
ングするための方法−図10 図10は、グラフィックス・システム内で三角形(また
はポリゴン)をレンダリングするための方法の一実施形
態を示す流れ図である。この方法は、三角形の制御エッ
ジ(主要エッジまたは最長エッジ)および2つの従属エ
ッジのためのデータを含む三角形に関する受信情報、お
よび三角形を横切るパラメータ値(x、y、z、r、
g、b...)の変形形態を含む(ステップ500)。
エッジ・ウォーカ306は、第1のスキャン・ライン
(本明細書では、スパンまたはスライスとも呼ぶ)のた
めのx座標を判断し(ステップ510)、次いで、実質
的に同時に、xおよびx+1で2本のスキャン・ライン
のためのスタート・ポイントおよびエンド・ポイントの
ためのy座標を計算する(ステップ520)。スパン・
ウォーカ308は、1度に4つのピクセル位置のための
パラメータ値、つまり、xで第1のスキャン・ライン上
にある2つおよびx+1で第2のスキャン・ライン上に
ある2つを、実質的に同時に補間し(ステップ53
0)、ピクセルのそれぞれ2×2タイルを出力する(ス
テップ540)。エッジ・ウォーカ306は、xをx+
2で置換し、新しいx座標がx max、つまり三角形
のエンドのためのx座標より大きいかどうか判断するよ
うテストする(ステップ560)。xがx maxより
大きい場合は、三角形は、十分にレンダリングされる
(ステップ570)。xがx maxより大きくない場
合は、エッジ・ウォーカ306は、新しいxおよびx+
1座標で2つの新しいスキャン・ラインのためのスター
ト・ポイントおよびエンド・ポイントのためのy座標を
計算する(ステップ520)。そして、ステップ530
〜560を繰り返す。いくつかの実施形態では、ピクセ
ルの2×2タイルの4つのピクセルを、メモリ22に実
質的に同時に書き込むことができる。
【0054】他の実施形態では、エッジ・ウォーカ30
6を、3つまたはそれ以上のスキャン・ラインを実質的
に同時に処理するよう構成することができ、スパン・ウ
ォーカ308を、2×2またはそれより大きいピクセル
・アレイを実質的に同時に処理するよう構成することが
でき、メモリ22を、4つまたはそれ以上のピクセルを
実質的に同時に受け取るよう構成することができる。
【0055】以下本発明実施形態をより具体的に説明す
る。本発明は、グラフィックス・システム内で複数の三
角形をレンダリングするための方法である。三角形のそ
れぞれに対して、その三角形に関する情報を受け取っ
て、三角形の主要エッジを指定し、三角形の主要エッジ
に沿ってエッジ・ウォーキングを実施し、その後に複数
のスキャン・ラインに沿ってスパン・ウォーキングを実
施する。そのエッジ・ウォーキングによって三角形を横
切るスキャン・ラインのスタートとエンドを決める対の
ポイントを複数生成し、かつ、複数のスキャン・ライン
を実質的に同時に生成する。また、スパン・ウォーキン
グは複数のスキャン・ライン上で実質的に同時に動作し
て、スキャン・ラインの1つの上にあり、かつ三角形内
にある、それぞれのピクセル位置のためのパラメータ値
を判断する。
【0056】エッジ・ウォーキングによって同時に生成
されるスキャンラインは2本であることが望ましい。そ
の2本のスキャン・ラインから2×2ピクセル・タイル
を生成する。エッジ・ウォーキングを実施することとス
パン・ウォーキングを実施することは、次の複数のスキ
ャン・ラインが三角形の外側に始まるまで繰り返され
る。また、エッジ・ウォーキングとスパン・ウォーキン
グによって生成されたピクセルに応答して、複数のピク
セルを実質的に同時にメモリに書き込む。
【0057】他の実施形態は、三角形のそれぞれについ
て、三角形に関する情報を受け取り、三角形の主要エッ
ジを指定し、三角形の主要エッジに沿って動作して、三
角形の各スパンを決めるスタート・ポイントとエンド・
ポイントを生成し、かつ複数のスパンを実質的に同時に
生成する。さらに、スパンを実質的に同時に生成したあ
と、複数のスパン上で実質的に同時に三角形のスパン内
のピクセル位置でパラメータ値を判断する。
【0058】上述の実施形態を、かなり詳細に記述して
きたが、他のバージョンも可能である。上記の開示を十
分に理解されたならば、数多くの変形形態および修正形
態が、当業者には明らかとなろう。以下の特許請求の範
囲は、このようなすべての変形形態および修正形態を包
含すると解釈されるものとする。本明細書で使用したセ
クションの見出しは、単に整理上のためであり、本明細
書または本明細書に添付した特許請求の範囲に記載され
た記述を限定するものではないことに留意されたい。
【図面の簡単な説明】
【図1】コンピュータ・システムの一実施形態を示す透
視図である。
【図2】コンピュータ・システムの一実施形態を簡単に
示すブロック図である。
【図3】グラフィックス・システムの一実施形態を示す
機能ブロック図である。
【図4】図3のメディア・プロセッサの一実施形態を示
す機能ブロック図である。
【図5】図3のハードウェア・アクセラレータの一実施
形態を示す機能ブロック図である。
【図6】図3のビデオ出力プロセッサの一実施形態を示
す機能ブロック図である。
【図7】1アレイのビンに区分されたサンプル空間を示
す図である。
【図8】図5のレンダリング・パイプラインの一部をよ
り詳細に示すブロック図である。
【図9】図8のエッジ・ウォーカおよびスパン・ウォー
カの内部構造を示すブロック図である。
【図9a】1スキャンライン処理に対する2スキャンラ
イン処理の視覚的比較を示す図である。
【図9b】1スキャンライン処理に対する2スキャンラ
イン処理の視覚的比較を示す図である。
【図9c】1スキャンライン処理に対する2スキャンラ
イン処理の視覚的比較を示す図である。
【図10】多数のピクセルを実質的に同時にレンダリン
グするための方法を示す流れ図である。
【符号の説明】
11 ホスト・インターフェイス 14 メディア・プロセッサ 16 直接ラムバスDRAM(DRDRAM) 18 ハードウェア・アクセラレータ 20 テクスチャ・バッファ 22 フレーム・バッファ 24 ビデオ出力プロセッサ 26 ディジタル/アナログ・コンバータ(DAC) 28 ビデオ・エンコーダ 30 ブートPROM 32 バス 80 コンピュータ・システム 82 システム・ユニット 84 表示デバイス 86 キーボード 88 マウス 102 中央演算処理装置(CPU) 104 システム・バス 106 システム・メモリ 112 グラフィックス・システム 148 グラフィックス待ち行列 150 幾何データ・プリプロセッサ 152 マイクロプロセッサ・ユニット(MPU) 154 バス・インターフェイス・ユニット(BIU) 156 直接ラムバス・インターフェイス 160 コントローラ 160、176 インターフェイス 162 頂点プロセッサ 164 メッシュ・バッファ 166 レンダリング・パイプライン 168 テクスチャ・アドレス・ユニット 170 テクスチャ・フィルタ 172 サンプル・フィルタ 174 サンプル・ジェネレータ 178 ピクセル転送MUX 180 テクスチャ環境ユニット 182 ピクセル転送ユニット 184 フラグメント・プロセッサ 186 テクスチャ・バッファMUX 190 トランスペアレンシ/オーバーレイ・ユニット 192 WID(ウィンドウID)ルックアップ・テー
ブル(WLUT) 194 ガンマおよびカラー・マップ・ルックアップ・
テーブル(GLUT、CLUT) 196 ビデオ・ラスタ・タイミング・ジェネレータ 201 3DRAM64 302 プリセットアップ・ユニット(PSU) 304 セットアップ・ユニット(SU) 306 エッジ・ウォーカ(EW) 308 スパン・ウォーカ(SW) 410〜420、430〜460 アキュムレータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 パトリック・シィハン アメリカ合衆国・94538・カリフォルニア 州・フレモント・ブラニング ストリー ト・39627 (72)発明者 マイケル・ジィ・レイベル アメリカ合衆国・95070・カリフォルニア 州・サラトガ・アーゴン ドライブ・ 13443 (72)発明者 マーク・イー・パスクァル アメリカ合衆国・95131・カリフォルニア 州・サン ノゼ・バーチメドウ コート・ 1593 (72)発明者 ウィン−チェン・タン アメリカ合衆国・94587・カリフォルニア 州・ユニオン シティ・ニュー ハーバー ウェイ・5404 (72)発明者 ナンディニ・ラマーニ アメリカ合衆国・95070・カリフォルニア 州・サラトガ・サラトガ ハイツ ドライ ブ・21531 Fターム(参考) 5B080 AA14 CA01 CA04 CA05 CA08 FA02 FA16 GA25

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 グラフィックス・システム内で複数の三
    角形をレンダリングするための方法であって、それらの
    三角形のそれぞれについて、 三角形に関する情報を受け取り、三角形の主要エッジを
    指定することと、 三角形の主要エッジに沿ってエッジ・ウォーキングを実
    施することとを含み、前記エッジ・ウォーキングが複数
    の対のポイントを生成し、それぞれの対のポイントが、
    三角形を横切るスキャン・ラインのスタートおよびエン
    ドを定義し、前記エッジ・ウォーキングを実施すること
    が、複数のスキャン・ラインを実質的に同時に生成し、 さらに、複数のスキャン・ラインに沿ってスパン・ウォ
    ーキングを実施することを含み、前記スパン・ウォーキ
    ングが、スキャン・ラインの1つの上にあり、かつ三角
    形内にある、それぞれのピクセル位置のためのパラメー
    タ値を判断し、前記スパン・ウォーキングが前記エッジ
    ・ウォーキング後に実施され、前記スパン・ウォーキン
    グが複数のスキャン・ライン上で実質的に同時に動作す
    る方法。
  2. 【請求項2】 前記エッジ・ウォーキングを実施するこ
    とが、2本のスキャン・ラインを実質的に同時に生成
    し、 前記スパン・ウォーキングが、2本のスキャン・ライン
    上で実質的に同時に動作する、請求項1に記載の方法。
  3. 【請求項3】 前記スパン・ウォーキングが、2本のス
    キャン・ラインから2×2ピクセル・タイルを生成す
    る、請求項2に記載の方法。
  4. 【請求項4】 複数のピクセルを実質的に同時にメモリ
    に書き込むことをさらに含み、前記書き込むことが、前
    記エッジ・ウォーキングおよび前記スパン・ウォーキン
    グによって生成されたピクセルに応答して実施される、
    請求項1に記載の方法。
  5. 【請求項5】 前記エッジ・ウォーキングを実施するこ
    とおよび前記スパン・ウォーキングを実施することが、
    パイプライン方式で実施される、請求項1に記載の方
    法。
  6. 【請求項6】 前記エッジ・ウォーキングを実施するこ
    とおよび前記スパン・ウォーキングを実施することが、
    次の複数のスキャン・ラインが三角形の外側に始まるま
    で繰り返される、請求項1に記載の方法。
  7. 【請求項7】 グラフィックス・システム内で複数の三
    角形をレンダリングするための方法であって、それらの
    三角形のそれぞれについて、 三角形に関する情報を受け取り、三角形の主要エッジを
    指定することと、 三角形の主要エッジに沿って動作して、スタート・ポイ
    ントおよびエンド・ポイントを生成することとを含み、
    スタート・ポイントおよびエンド・ポイントが三角形の
    各スパンを定義し、前記動作することが、複数のスパン
    を実質的に同時に生成し、 さらに、三角形のスパン内のピクセル位置でパラメータ
    値を判断することを含み、前記判断することが、前記動
    作することの後に実施され、前記判断することが、複数
    のスパン上で実質的に同時に動作する方法。
  8. 【請求項8】 グラフィックス・システム内で複数の三
    角形をレンダリングするための方法であって、それらの
    三角形のそれぞれについて、 三角形に関する情報を受け取り、三角形の主要エッジを
    指定することと、 三角形の主要エッジに沿ってエッジ・ウォーキングを実
    施して、2対のスタート・ポイントおよびエンド・ポイ
    ントを生成することとを含み、2対のスタート・ポイン
    トおよびエンド・ポイントが三角形の各スパンを定義
    し、 さらに、スパン・ウォーキングを実施して、スタート・
    ポイントおよびエンド・ポイントに基づく、三角形の2
    つのスパン内のピクセル位置でパラメータ値を判断する
    ことを含み、前記スパン・ウォーキングが、前記エッジ
    ・ウォーキング後に実施され、前記スパン・ウォーキン
    グが、2つのスパン上で実質的に同時に動作し、前記ス
    パン・ウォーキングが、4つのピクセルのためのパラメ
    ータ値を実質的に同時に生成し、 さらに、4つのピクセルのそれぞれのグループをメモリ
    内に実質的に同時に格納することを含む方法。
  9. 【請求項9】 三角形に関する情報を受け取り、三角形
    の主要エッジ上でエッジ・ウォーキングを実施して、ス
    タート・ポイントおよびエンド・ポイントを生成するエ
    ッジ・ウォーカ・ユニットを含み、スタート・ポイント
    およびエンド・ポイントが三角形を横切る各スキャン・
    ラインを定義し、エッジ・ウォーカ・ユニットが、複数
    のスキャン・ラインを実質的に同時に生成し、 さらに、エッジ・ウォーカ・ユニットに結合し、スキャ
    ン・ライン上のピクセル位置でパラメータ値を判断する
    スパン・ウォーカ・ユニットを含み、前記スパン・ウォ
    ーカ・ユニットが前記エッジ・ウォーカ・ユニットの後
    に動作し、前記スパン・ウォーカ・ユニットが複数のス
    キャン・ライン上で実質的に同時に動作するグラフィッ
    クス・システム。
  10. 【請求項10】 エッジ・ウォーカ・ユニットが、第1
    の複数のアキュムレータを含み、 第1の複数のアキュムレータが、実質的に同時に動作し
    て、複数のスキャン・ラインを生成し、 スパン・ウォーカ・ユニットが、第2の複数のアキュム
    レータを含み、 第2の複数のアキュムレータが、複数のスキャン・ライ
    ン上で実質的に同時に動作する、請求項9に記載のシス
    テム。
  11. 【請求項11】 メモリをさらに備え、メモリが、三角
    形内のそれぞれのピクセルのために判断されたパラメー
    タ値を格納するよう構成された、請求項9に記載のシス
    テム。
  12. 【請求項12】 グラフィックス・システムに接続され
    た、ホスト・プロセッサと、入力デバイスと、メモリ
    と、表示デバイスとの、1つまたは複数をさらに備え
    る、請求項9に記載のシステム。
JP2003064582A 2002-03-12 2003-03-11 最適なタイリング性能のためにグラフィックスをラスタライズするための方法 Pending JP2003281558A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/096,346 US6900803B2 (en) 2002-03-12 2002-03-12 Method for rasterizing graphics for optimal tiling performance
US10/096346 2002-03-12

Publications (1)

Publication Number Publication Date
JP2003281558A true JP2003281558A (ja) 2003-10-03

Family

ID=27765401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003064582A Pending JP2003281558A (ja) 2002-03-12 2003-03-11 最適なタイリング性能のためにグラフィックスをラスタライズするための方法

Country Status (3)

Country Link
US (1) US6900803B2 (ja)
EP (1) EP1345178A2 (ja)
JP (1) JP2003281558A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7081903B2 (en) * 2001-12-12 2006-07-25 Hewlett-Packard Development Company, L.P. Efficient movement of fragment stamp
US7764287B2 (en) * 2003-07-07 2010-07-27 Arcsoft, Inc. Graphic engine for approximating a quadratic bezier curve in a resource-constrained device
US7142211B2 (en) 2003-07-07 2006-11-28 Arcsoft, Inc. Graphic engine for fill style transferring in a resource-constrained device
US7161597B2 (en) * 2003-07-07 2007-01-09 Arcsoft, Inc. Graphic engine for rasterizing a straight edge in a resource-constrained device
US8610731B2 (en) * 2009-04-30 2013-12-17 Microsoft Corporation Dynamic graphics pipeline and in-place rasterization
US9582287B2 (en) * 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016151A (en) * 1997-09-12 2000-01-18 Neomagic Corp. 3D triangle rendering by texture hardware and color software using simultaneous triangle-walking and interpolation for parallel operation
US6094201A (en) * 1998-04-08 2000-07-25 Webtv Networks, Inc. Polygon rendering method and system with dedicated setup engine

Also Published As

Publication number Publication date
EP1345178A2 (en) 2003-09-17
US20030174130A1 (en) 2003-09-18
US6900803B2 (en) 2005-05-31

Similar Documents

Publication Publication Date Title
US6914610B2 (en) Graphics primitive size estimation and subdivision for use with a texture accumulation buffer
US6816161B2 (en) Vertex assembly buffer and primitive launch buffer
US6806883B2 (en) System and method for handling display device requests for display data from a frame buffer
US6924808B2 (en) Area pattern processing of pixels
US20030174136A1 (en) Multipurpose memory system for use in a graphics system
US7310103B2 (en) Pipelined 2D viewport clip circuit
US6731300B2 (en) Efficient anti-aliased dot rasterization
US6859209B2 (en) Graphics data accumulation for improved multi-layer texture performance
US6975317B2 (en) Method for reduction of possible renderable graphics primitive shapes for rasterization
US6914609B2 (en) Multiple scan line sample filtering
US6867778B2 (en) End point value correction when traversing an edge using a quantized slope value
US6943791B2 (en) Z-slope test to optimize sample throughput
US6963342B2 (en) Arbitration scheme for efficient parallel processing
US7145570B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
JP2003281558A (ja) 最適なタイリング性能のためにグラフィックスをラスタライズするための方法
US6819320B2 (en) Reading or writing a non-super sampled image into a super sampled buffer
US20020171656A1 (en) Sample cache for supersample filtering
US6885375B2 (en) Stalling pipelines in large designs
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US6895458B2 (en) Opcode to turn around a bi-directional bus
US6847372B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US20040174364A1 (en) Rendering patterned lines in a graphics system
US6847368B2 (en) Graphics system with a buddy / quad mode for faster writes
US6831645B2 (en) System and method for performing font operations when background color is transparent
US20030169255A1 (en) Two-sided lighting in a single pass