JPH07134776A - 画像レンダリング方法とその装置 - Google Patents

画像レンダリング方法とその装置

Info

Publication number
JPH07134776A
JPH07134776A JP6117277A JP11727794A JPH07134776A JP H07134776 A JPH07134776 A JP H07134776A JP 6117277 A JP6117277 A JP 6117277A JP 11727794 A JP11727794 A JP 11727794A JP H07134776 A JPH07134776 A JP H07134776A
Authority
JP
Japan
Prior art keywords
data
pixel
image
value
polygon
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
JP6117277A
Other languages
English (en)
Inventor
Kutsukukuda Rooman
クッククダ ローマン
Rigu Jiyon
リグ ジョン
Rei Enrikeezu Maniyueru
レイ エンリケーズ マニュエル
Bui Henson Jieemusu
ブイ. ヘンソン ジェームス
Suterii Kaato
ステリー カート
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.)
Biprogy Inc
Original Assignee
Nihon Unisys Ltd
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 Nihon Unisys Ltd filed Critical Nihon Unisys Ltd
Publication of JPH07134776A publication Critical patent/JPH07134776A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/40Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 エイリアス除去と透明性のための視覚画像の
レンダリングを行う方法とその装置を提供する。 【構成】 本レンダリングシステムは、エイリアス除去
/ピクセルブレンド/パイプライン技術から成る。並列化
レンダリングパイプラインは、ポリゴンエッジの補間と
ピクセルブレンドとエイリアス除去レンダリングを実行
する。プリミテイブポリゴンは、サブピクセル座標に変
換され、スライスされ、ダイシングされて、各ピクセル
にマッピングした"ピクスリンク"要素を生成する。フレ
ームバッファメモリは、各ピクセルに対する多くのピク
スリンクを格納する。Zソーテイングは、ピクセルスタ
ックの各ピクスリンクベクトルに対してリンクされたリ
ストデータオブジェクトによって不要となる。X、Y、Z、R、
G、BとピクセルカバレージAに対する全画像データは、ピ
クスリンクデータオブジェクト内に保持され、ブレンデ
ィング処理がエイリアス除去と透明化に対して適用可能
である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的に、画像のレン
ダリング方法とその装置、特に、面積計算およびピクセ
ルブレンディングを行うことによって、ピクセルブレン
ディングおよびエイリアス除去を行なう高速ハードウエ
アプロセッサに関する。
【0002】
【従来の技術】従来の三次元グラフィックワークステー
ションには、きわめて単純な走査変換ハードウエアがあ
り、単一のきわめて小さいサンプルピクセルを用いて、
点、線、ポリゴンをサンプリングする。結果的にこれら
表示要素をレンダリングすると、エイリアスのある画像
が生じる。モニタピクセル密度を増加させると、エイリ
アス効果は多少軽減されるが、現代の高速ワークステー
ションにおいて、モーションの使用が増大すると、この
改良されたエイリアスが相殺される。このため、エイリ
アスの問題は、全てのワークステーション画像レンダリ
ングプロセッサで、厄介な問題として残されている。
【0003】現代のワークステーションを用いる技術に
携わる人々は、様々な技術を駆使して、エイリアスの問
題を解決しようとしている。点および線に対する適切な
ピクセルカバレッジを計算する装置を提供している業者
もある。その一例として、ポール ハエバリ(Paul haeb
erly)らが提案する累積バッファ技術がある。(”The
Accumulation Buffer: Hardware Support forA High-Q
uality Rendering",ACM Computer Graphics , Vol.24,
No.4, pp.309-318, August 1990)。ハエバリ(Haeberl
i)らはポリゴンエイリアス除去解決方法を提案してお
り、この場合、既存の走査変換システムと互換性がある
上、低性能ワークステーションにおいて品質を高めかつ
円滑に性能/品質のトレードオフを行なう。この技術に
おいては、全体画像は何度もピクセルメモリ内に描き直
される。画像の作画は、作画ごとにわずかに異なる画面
位置決め値を用いる。画像は累積バッファ内で平均化さ
れ、最終画像を生成し、エイリアス除去された特性を示
す。この技術は、点、線、ポリゴンに適している。その
技術は、単純な透過を許し、他の特定の目的にも使用で
きるが、複数の作画が必要であるため非効率である。
【0004】ローレン カーペンター(Loren Carpente
r) ("The A Buffer And Anti-Aliased Hidden Surface
Method", ACM Computer Graphics, Vol.18, No.3, pp.
103-108, July 1984)は、A−バッファエイリアス除去
領域平均化累積バッファ技術を提案した。A−バッファ
は、比較的単純なエイリアス除去機構であり、例外的な
ケースでは計算時間がかかることもあるが、膨大な数の
ピクセルを最小手順で最高精度に処理することを目的と
して設計されている。このため、同一ピクセルにおい
て、いくつかの表面が交差する場合には、この技法に用
いるフラグメントの交差近似は問題を生じうる。ビット
マスク間隔より小さいポリゴンについては、適切にサン
プリングされない。
【0005】他の業者は、J. ツルーブラッド(J. Tru
eblood)らが提案した近似テーブルコンセプトに追従し
ている("An Efficient Anti-Aliasing Software Algor
ithm", Society For Information Display Internation
al Symposium, San diego, Session 19,Digest of Tech
nical Papers, Vol.17, pp.348-351, May 6-8, 1986)。
ツルーブラッド(Trueblood)らは、錯視を利用するソ
フトウエアエイリアス除去アルゴリズムを提案してい
る。二つの隣接するピクセルの相対輝度を制御すること
によって眼球は光を統合し、単一スポットの印象を与え
る。ここで、この単一スポットの中心は、二つのスポッ
トの明るい方にオフセットされ、また、そのスポット輝
度は、両スポット輝度の合計に等しい。この種のエイリ
アス除去技術は、主として線および点の作画に利用され
てきた。ピクセルに関する位置およびオリエンテーショ
ンは、消去値テーブルの指標として用いられる。その値
は、ピクセルを介する線の輝度を示す。ピクセルに寄与
する複数の線は累積されて、輝度レベルは最高に達す
る。残念ながら、この輝度近似技術は、ポリゴンには適
用できず、透過をサポートしない。正確なサンプリン
グ、およびポリゴンエイリアス除去の問題は、たびた
び、数多くの方法で解決されてきた。しかしながら、ほ
とんどの高性能ワークステーショングラフィックプロセ
ッサでの明らかな傾向は、毎秒当たり大量の小ポリゴン
をレンダリングする能力の方に向いている。最近の装置
は、RGB照射され、ゴーラッド(Gourad)シェーディ
ングされ、Zバッファリングされた連結した三角形を、
毎秒100万個以上処理することができる。第2の傾向
は、サンプリングの質の改善である。
【0006】これらは、相反する利益をもたらす傾向が
ある。従来のワークステーション走査変換システムは、
算術処理において多くの簡便法を用い、大量のポリゴン
のスループットをサポートする。これらの簡便法は、精
密な技術を使用せずに、サブピクセル以外の位置決め
(変換後、頂点座標を整数画面空間において最も近いピ
クラル位置に丸められる)と、ブレセンハム(Bresenha
m)サンプリング(領域サンプリングの代わりに線フィ
ルに対する最適の算術に基づいたポリゴンの走査変換の
中にピクセルが含まれる)と、スロッピー反復(輪郭反
復中、正確度は不十分のままであり、傾斜および初期パ
ラメータ値は頂点、スパンまたは走査のサブピクセル位
置に関して補正を受けない)から発生するエイリアスを
除去する。正確なポリゴンサンプリングアーキテクチャ
は、1985年にすでにヘンリーフチ(Henry Fuchs)
らが導入している("Fast Spheres, Shadows, Texture
s, Transparencies and Image Enhancements in Pixel-
Planes", ACM Computer Graphics, Vol.19, No.3, pp.1
11-120, July 1985)が、近年になって、ようやく最高速
のグラフィックプロセッサが出現し、これら三つの問題
にすべて正確に対応できるようになった。
【0007】多くの他の業者も、エイリアス問題に関す
る解決方法を提示している。たとえば、米国特許第5,
142,273号において、オバーミン(Wobermin)
は、シンボルジェネレータを開示し、これによりピクセ
ルの重なりを表わす頂点は、色ブレンディングリストを
用いて色をブレンドする。米国特許第5,153,937
号において、オバーミン(Wobermin)らは、エイリアス
除去ビデオ信号を生成する同様のシステムを開示してい
る。さらに、米国特許第5,175,809号において、
オバーミン(Wobermin)らは、これより先に開示したピ
クセルソート方法および色重複方法を使用するパイプラ
イン処理装置を開示している。パイプライン機構によっ
て、技術上の処理能力は高まるが、レンダリングを適用
する場合には非常に効率が悪い。
【0008】米国特許4,930,091号において、ブ
ライアン D. シュローダー(BrianD. Schroeder)ら
は、グラフィックプロセッサのレンダリングエンジンに
基本三角形入力の自動的アレンジメントを実行する三次
元グラフィック表示システムのための三角形分類機構を
開示した。シュローダー(Schroeder)らは、ルックア
ップテーブルを使用し、入力される頂点から三角形パラ
メータを計算した後、入力される三角形をカバーする。
こうして前処理をすると、後の処理は不要になる。
【0009】米国特許第5,138,699号において、
バレー L. ミラー(Barry L. Minor)らは、ハードウ
ェア色補間装置を開示しており、この装置はレイ・トレ
ーシング法を用い、以前に色画像化されたピクセル間の
領域に介在するピクセルに対する色値を補間する。処理
能力およびマージンの向上方法を考慮していない業者は
少数である。
【0010】米国特許第4,885,688号において、
カール R. クロフォード(Carl R.Crawford)は、ピク
セルデータを補間し、三次元表面構造を表示するシステ
ムを開示している。米国特許第5,070,465号にお
いて、テツロウ カトウ(Tetsurou Kato)らは、ビデオ
画像変換方法およびビデオ画像変換装置を開示してお
り、これは長方形のプリミテイブを用い、生成される三
角形の区画上で補間する。同様に、米国特許第5,10
9,481号において、オーリン G. ラスロップ(Olin
G. Lathrop)らは、三角形のプリミテイブ内の頂点補
間に基づく二次のシェーディングを使用するシェーディ
ング画像生成のために、二次の補間技術を開示してい
る。最後に、米国特許第5,123,085号において、
スターツC. ウエルズ(Stuart C.Wells)らは、エイリ
アス除去ポリゴンをレンダリングする方法および装置を
開示しており、これは、単一パス走査変換処理に依存
し、ポリゴンのエッジおよび頂点のピクセルは、最初に
ポリゴン頂点データから決定される。ウエルズ(Well
s)らによれば、各入力因子を合成することによって、
以後の各プリミテイブに対応するサブピクセル値から、
1つのピクセルでの画像を累積する。この方法によっ
て、合成前にポリゴンをZ深度の順にソートする処理に
時間を消費せずに、ポリゴンを最小のエイリアスでレン
ダリングすることができる。ウエルズ(Wells)らは、
幾何ピクセルカバレッジ面積計算については触れておら
ず、またこの装置は、レンダリングされた画像データを
格納するための単一層のフレームバッファに限られてい
る。単一層フレームバッファは、複数ポリゴンからピク
セル因子を効果的に統合することができず、ソーティン
グ処理に時間消費しなければ透過性のレンダリングをサ
ポートすることができない。これらの業者は、この技術
に制約を課す処理能率限界を引き下げることに努力して
いる。
【0011】他の業者は、各ピクセルの画像をレンダリ
ングするための改良技術を提案している。たとえば米国
特許第4,679,040号において、ジョンソン K.
ヤン(Johnson K. Yan)は、信号変調回路を有するシス
テムを開示し、このシステムは予め決定された輝度変調
因子をいまだ凍結されていない領域すべてに適用する。
このため、ヤン(Yan)の技術では、輝度が低下した半
透明領域の裏の領域の表示が可能になる。
【0012】米国特許第4,945,500号において、
ミッシェル F. デイアリング(Michael F. Deering)
は、三次元グラフィックディスプレイシステムに関する
三角形プロセッサを開示し、これは走査中の各ピクセル
をポリゴンと比較し、そのピクセルがポリゴン内にある
かどうかを決定する。デイアリング(Deering)は、そ
の後、相対Z位置に対応して、そのピクセルデータを格
納し、ハードウエア内の能率向上のためのパイプライン
処理を提案している。"走査ライン"ピクセルプロセッサ
の代わりに"ポリゴンプロセッサ"を使用することによっ
て、正規ポリゴンオーバレイ処理を覆した。
【0013】米国特許第5,142,617号において、
ジョン C. ダリンプル(John C. Dalrymple)らは、各
頂点に対応する表面正規ベクトルと頂点とを連結する線
によって定義される表示領域をタイリングするための方
法およびその装置を開示した。補間を介して、付加的な
頂点および表面正規ベクトルを計算することによって、
この表示領域は、下位表示領域に細分化される。こうし
て生じた副表示領域は、その頂点の輝度値を計算し、算
出した頂点輝度値を直線補間することにより領域をタイ
リングすることによって、レンダリングされる。
【0014】米国特許第5,179,638号において、
ジョン F. ドーソン(John F. Dawson)らは、テクス
チュアマッピングされた正面図を生成する方法および装
置を開示しているが、これは平面のポリゴン頂点補間に
依存している。このため、エイリアス除去は、各ポリゴ
ンエッジの描写を不鮮明にすることにより完成させるこ
とができ、"階段ステップ"エイリアス効果の出現を抑え
るだけならば十分であるが、実際に線をぼやけさせるに
は不十分である。
【0015】他の構成では、ピクセルの幾何学的中心か
らのエッジの距離によってピクセル上のエッジ効果にウ
エイト付けすることで、エイリアスを減少させ、その結
果、ピクセルの中心に近接するポリゴンエッジの色がそ
のピクセルを支配するものもある。エッジがピクセルを
ただかすめるだけの場合は、エッジの色はピクセルの色
に対して最小限の影響しか与えない。また周知のよう
に、実際の画面ピクセルより緻密な解像度を有するサブ
ピクセルの仮想セット上の線またはエッジの因子を計算
し、その後、実際のピクセル各々に対応するサブピクセ
ルの因子を累積することによって、画像をレンダリング
する。透過の問題も、多くのレンダリング技術によって
追求されている。透過の問題に関して提示された従来の
解決方法には、スクーリンドア技術があるが、この技術
は最も使用方法が単純である。マスクを用いて、あるオ
ブジェクトにおけるピクセルのいくつかを存在するもの
とし、残りを存在しないものとして選別する。これは、
新聞の写真印刷に使用するカバー技術に似ている。結果
はきわめて粗雑なクラスで、コンピュータ画面上に現れ
る。透過性のレンダリングを扱う当業者も、ソートZリ
スト技術を提案している。まず、プリミテイブの物体
は、不透明と透明の二つのリストに区分される。不透明
の物体は、可視性を決定するために、通常Zバッファを
使用してレンダリングされる。透明の物体は、視点から
の距離によってソートされ、その後レンダリングされ
る。この技術によって、適度に上質な画像が得られる
が、分離およびソート操作はきわめて非効率で遅い。
【0016】マルチパス技術もまた、透過性のレンダリ
ングに有用であるが、本来は、上述の累積バッファレン
ダリングと併用する。透明度50%のオブジェクトは、図
形の半分においては不透明としてレンダリングされ、か
つ残りの半分においては透明としてレンダリングされ、
最終的に、図形は平均化されオブジェクトの透明度は5
0%になる。マルチパス方法は、複数の図形に対して必
要なため時間を要し、また、透明のタイプにも制限があ
る。パス数を増加させることによってレンダリングが遅
くなるのと引き換えに、精密な透明特性が得られるが、
離散断片的透明値でのみでしかレンダリングをすること
ができない。この方法では、ポリゴンを横切る透明値を
補間することはできない。
【0017】数多くの高度なレンダリング技術が存在す
るにもかかわらず、ほとんどのワークステーションレン
ダリング処理には、限界があるので、多くの簡便法を用
いる単純な方法に制限される。このため、エイリアス除
去の問題は、より汎用性の高い画像変換アルゴリズムお
よびプロシージャと同様に、正確なハードウエア処理を
用いることに着目すべきである。
【0018】
【発明が解決しようとする課題】本発明は上記従来例に
鑑みてなされたもので、エイリアス除去と透明性の処理
を含むグラフィクスデータのレンダリングを高精度にか
つ高速に行うレンダリング処理方法とその装置を提供す
ることを目的とする。
【0019】
【課題を解決するための手段】上記目的を達成するた
め、本発明の画像レンダリング処理方法とその装置は以
下の構成を備える。即ち、各ピクセルデータは複数の画
像値を含み、画像表示装置上に前記ピクセルデータの配
列としてのグラフィクスデータをレンダリングするレン
ダリング装置であって、グラフィクスデータに対応し、
複数の画像値を有する少なくとも1つの頂点画像データ
を含むプリミテイブポリゴンデータを作成するポリゴン
ジェネレータ手段と、前記プリミテイブポリゴンデータ
の拡張とソートを行い、また、前記頂点画像データのペ
ア間の傾斜を計算する、前記ポリゴンジェネレータ手段
に結合されたセットアップ手段と、前記頂点画像データ
のペア間を補間し、前記ピクセル配列内の個々のピクセ
ルに対する前記プリミテイブポリゴンデータの部分のマ
ッピングを表すピクスリンクデータを生成する、前記セ
ットアップ手段に結合したレンダリング手段と、複数の
前記ピクスリンクデータを合成し、前記ピクセル配列中
の前記ピクセルデータの各々に対する前記画像値を生成
する、前記レンダリング手段に結合したブレンディング
手段と、第1の複数の前記ピクスリンクデータと第2の
複数の前記ピクスリンクデータを格納する、前記ブレン
ディング手段に結合したフレームバッファ手段と、ビデ
オ表示信号を前記ピクセルデータに対応して生成する、
前記ブレンディグ手段に接続したミキサー手段とを備
え、前記ピクスリンクデータの各々は、水平位置(X)
と、垂直位置(Y)と、視点からの距離(Z)と、赤
(R)と、緑(G)と、青(B)と、ピクセル領域カバ
レッジ(A)を含み、前記ピクセル画像は、前記画像表
示装置でレンダリングされる。
【0020】また、別の発明は、表示装置上に、ピクセ
ル画像配列としてのグラフィクスデータをレンダリング
する方法であって、前記グラフィクスデータの複数の2
次元断片を表すプリミテイブポリゴンデータを生成する
工程と、前記第1の頂点データを拡張して、前記画像値
を複数の第2の頂点データの各々が備える第2のポリゴ
ンデータを形成する工程と、第2の頂点データのペアを
表現する複数の第2のポリゴンエッジの傾斜を計算する
工程と、前記第2のポリゴンエッジの各々に沿って、前
記第2の頂点画像値を補間して、前記第2のポリゴン画
像の各々に沿った位置毎に、前記画像値を定義する工程
と、前記第2のポリゴンデータを、前記ピクセル画像配
列の水平境界にマッピングして、前記第2のポリゴンデ
ータをスライスし、また、複数の第3のポリゴンデータ
を生成する工程と、前記第3のポリゴンデータを、前記
ピクセル画像配列の垂直境界にマッピングして、前記第
3のポリゴンデータをダイシングし、各々が複数の前記
画像値を有する各複数のピクスリンクデータを生成する
工程と、前記ピクセル画像配列のピクセル領域に対し、
前記ピクスリンクデータの各々の面積を計算する工程
と、前記ピクスリンクデータを、前記ピクスリンクデー
タが視点(Z)の画像値からの前記距離によって順序付
けされるようにメモリに格納する工程と、前記ピクセル
配列中の前記ピクセルの各々に対する前記ピクセルデー
タを生成する工程とを備え、前記プリミテイブポリゴン
データは、水平位置(X)と、垂直位置(Y)と、視点
からの距離(Z)と、赤(R)と、緑(G)と、青
(B)と、透明度(T)とを含む複数の画像値を有す
る、少なくとも1つの第1の頂点データを含み、前記ピ
クセルデータを生成する工程は、前記ピクセルデータ
を、もし、対応するピクスリンク領域カバレッジ値Aが
単一であるなら、前記画像値(Z)の最小値を有する前
記対応するピクスリンクデータと等しいみなし、単一で
ないなら、前記視点からの距離(Z)の相対値に比例す
る前記対応するピクスリンクデータの各々に対する前記
画像値と、前記対応するピクスリンクデータ内の前記領
域カバレッジ(A)をブレンディングして、前記ピクセ
ルデータの各々に対する画像値を生成する工程と、前記
ピクセルデータを、メモリに格納する工程と、前記格納
されたピクセルデータに対応するビデオ表示信号を生成
する工程を備える。
【0021】また、別の発明は、複数の画像値を含むピ
クセルデータの配列としてのグラフィクスデータを、画
像表示装置上にレンダリングするレンダリング装置であ
って、グラフィクスデータに対応するプリミテイブポリ
ゴンデータを作成するポリゴンジェネレータ手段と、前
記プリミテイブポリゴンデータの拡張とソートを行い、
また、前記プリミテイブポリゴンデータが備える頂点画
像データのペア間の傾斜を計算するセットアップ手段
と、前記頂点画像データのペア間を補間し、前記ピクセ
ル配列内の個々のピクセルに対する前記プリミテイブポ
リゴンデータの部分のマッピングを示すピクスリンクデ
ータを生成するレンダリング手段と、複数の前記ピクス
リンクデータを合成し、前記ピクセル配列中の前記ピク
セルデータの各々に対する前記画像値を生成するブレン
ディング手段と、第1の複数の前記ピクスリンクデータ
と第2の複数の前記ピクスリンクデータを格納するフレ
ームバッファ手段と、ビデオ表示信号を前記ピクセルデ
ータに対応して生成するミキサー手段と、前記ビデオ表
示信号に基づいて、前記画像表示装置上に画像を形成す
る画像形成手段とを備える。
【0022】また、別の発明は、複数の画像値を含むピ
クセルデータの配列としてのグラフィクスデータを、画
像表示装置上にレンダリングするレンダリング方法であ
って、グラフィクスデータに対応するプリミテイブポリ
ゴンデータを作成するポリゴンジェネレータ工程と、前
記プリミテイブポリゴンデータの拡張とソートを行い、
また、前記プリミテイブポリゴンデータが備える頂点画
像データのペア間の傾斜を計算するセットアップ工程
と、前記頂点画像データのペア間を補間し、前記ピクセ
ル配列内の個々のピクセルに対する前記プリミテイブポ
リゴンデータの部分のマッピングを示すピクスリンクデ
ータを生成するレンダリング工程と、複数の前記ピクス
リンクデータを合成し、前記ピクセル配列中の前記ピク
セルデータの各々に対する前記画像値を生成するブレン
ディング工程と、第1の複数の前記ピクスリンクデータ
と第2の複数の前記ピクスリンクデータを格納するフレ
ームバッファ工程と、ビデオ表示信号を前記ピクセルデ
ータに対応して生成するミキサー工程と、前記ビデオ表
示信号に基づいて、画像を形成する画像形成工程とを備
える。
【0023】
【作用】以上の構成において、グラフィクスデータに対
応し、複数の画像値を有する少なくとも1つの頂点画像
データを含むプリミテイブポリゴンデータを、ポリゴン
ジェネレータ手段が作成し、前記ポリゴンジェネレータ
手段に結合されたセットアップ手段が、前記プリミテイ
ブポリゴンデータの拡張とソートを行い、また、前記頂
点画像データのペア間の傾斜を計算し、前記セットアッ
プ手段に結合したレンダリング手段が、前記頂点画像デ
ータのペア間を補間し、前記ピクセル配列内の個々のピ
クセルに対する前記プリミテイブポリゴンデータの部分
のマッピングを表すピクスリンクデータを生成し、前記
レンダリング手段に結合したブレンディング手段が、複
数の前記ピクスリンクデータを合成し、前記ピクセル配
列中の前記ピクセルデータの各々に対する前記画像値を
生成し、前記ブレンディング手段に結合したフレームバ
ッファ手段が、第1の複数の前記ピクスリンクデータと
第2の複数の前記ピクスリンクデータを格納し、前記ブ
レンディグ手段に接続したミキサー手段が、ビデオ表示
信号を前記ピクセルデータに対応して生成し、前記ピク
セル画像は、前記画像表示装置でレンダリングされる。
【0024】また、別の発明は、表示装置上に、ピクセ
ル画像配列としてのグラフィクスデータをレンダリング
する方法であって、前記グラフィクスデータの複数の2
次元断片を表すプリミテイブポリゴンデータを生成し、
前記第1の頂点データを拡張して、前記画像値を複数の
第2の頂点データの各々が備える第2のポリゴンデータ
を形成し、第2の頂点データのペアを表現する複数の第
2のポリゴンエッジの傾斜を計算し、前記第2のポリゴ
ンエッジの各々に沿って、前記第2の頂点画像値を補間
して、前記第2のポリゴン画像の各々に沿った位置毎
に、前記画像値を定義し、前記第2のポリゴンデータ
を、前記ピクセル画像配列の水平境界にマッピングし
て、前記第2のポリゴンデータをスライスし、また、複
数の第3のポリゴンデータを生成し、前記第3のポリゴ
ンデータを、前記ピクセル画像配列の垂直境界にマッピ
ングして、前記第3のポリゴンデータをダイシングし、
各々が複数の前記画像値を有する各複数のピクスリンク
データを生成し、前記ピクセル画像配列のピクセル領域
に対し、前記ピクスリンクデータの各々の面積を計算
し、前記ピクスリンクデータを、前記ピクスリンクデー
タが視点(Z)の画像値からの前記距離によって順序付
けされるようにメモリに格納し、前記ピクセル配列中の
前記ピクセルの各々に対する前記ピクセルデータを生成
し、前記プリミテイブポリゴンデータは、水平位置
(X)と、垂直位置(Y)と、視点からの距離(Z)
と、赤(R)と、緑(G)と、青(B)と、透明度
(T)とを含む複数の画像値を有する、少なくとも1つ
の第1の頂点データを含み、前記ピクセルデータの生成
は、以下の手順で実行する。即ち、前記ピクセルデータ
を、もし、対応するピクスリンク領域カバレッジ値Aが
単一であるなら、前記画像値(Z)の最小値を有する前
記対応するピクスリンクデータと等しいみなし、単一で
ないなら、前記視点からの距離(Z)の相対値に比例す
る前記対応するピクスリンクデータの各々に対する前記
画像値と、前記対応するピクスリンクデータ内の前記領
域カバレッジ(A)をブレンディングして、前記ピクセ
ルデータの各々に対する画像値を生成し、前記ピクセル
データを、メモリに格納し、前記格納されたピクセルデ
ータに対応するビデオ表示信号を生成する。
【0025】また、別の発明は、複数の画像値を含むピ
クセルデータの配列としてのグラフィクスデータを、画
像表示装置上にレンダリングするレンダリング装置であ
って、ポリゴンジェネレータ手段が、グラフィクスデー
タに対応するプリミテイブポリゴンデータを作成し、セ
ットアップ手段が、前記プリミテイブポリゴンデータの
拡張とソートを行い、また、前記プリミテイブポリゴン
データが備える頂点画像データのペア間の傾斜を計算
し、レンダリング手段が、前記頂点画像データのペア間
を補間し、前記ピクセル配列内の個々のピクセルに対す
る前記プリミテイブポリゴンデータの部分のマッピング
を示すピクスリンクデータを生成し、ブレンディング手
段が、複数の前記ピクスリンクデータを合成し、前記ピ
クセル配列中の前記ピクセルデータの各々に対する前記
画像値を生成し、フレームバッファ手段が、第1の複数
の前記ピクスリンクデータと第2の複数の前記ピクスリ
ンクデータを格納し、ミキサー手段が、ビデオ表示信号
を前記ピクセルデータに対応して生成し、画像形成手段
が、前記ビデオ表示信号に基づいて、前記画像表示装置
上に画像を形成する。
【0026】また、別の発明は、複数の画像値を含むピ
クセルデータの配列としてのグラフィクスデータを、画
像表示装置上にレンダリングするレンダリング方法であ
って、グラフィクスデータに対応するプリミテイブポリ
ゴンデータを作成し、前記プリミテイブポリゴンデータ
の拡張とソートを行い、また、前記プリミテイブポリゴ
ンデータが備える頂点画像データのペア間の傾斜を計算
し、前記頂点画像データのペア間を補間し、前記ピクセ
ル配列内の個々のピクセルに対する前記プリミテイブポ
リゴンデータの部分のマッピングを示すピクスリンクデ
ータを生成し、複数の前記ピクスリンクデータを合成
し、前記ピクセル配列中の前記ピクセルデータの各々に
対する前記画像値を生成し、第1の複数の前記ピクスリ
ンクデータと第2の複数の前記ピクスリンクデータをフ
レームバッファに格納し、ビデオ表示信号を前記ピクセ
ルデータに対応して生成し、前記ビデオ表示信号に基づ
いて、画像を形成する。
【実施例】ハードウェア内で実行される本実施例に係る
方法は、標準幾何学的公式を使用し、あらゆるピクセル
と各エッジのオーバーラップを計算することによる第1
の原理に帰着する。面積計算を制御自在にするために、
各ポリゴンを水平方向バンドおよび垂直方向バンドにス
ライスして、長方形、三角形、台形に変換し、全体の複
雑な面積計算を減らす。本実施例に係る方法は、添付の
図1〜図5に示される一連のステップを含む。
【0027】図1において、三角形またはポリゴンが設
定され、関連するピクセルが設定される。点は、大きさ
がゼロの数学的抽象点から、その点のサブピクセル位置
に中心を置くピクセルよりもやや広く覆う小ポリゴンま
で拡張される。端点のサブピクセル位置を用いて、線
は、幅がゼロの抽象点から細長長方形にまで拡張され
る。ポリゴン頂点は、最小画像パラメータ値を有する頂
点から、反時計回り(CCW)に順番に順序付けられ
る。ピクセルの境界は、図1に点線で示されている。各
ポリゴンエッジの傾斜は、所望の画像パラメータ各々に
対して計算され、線形補間係数は所望の画像パラメータ
すべてに対して計算される(図6)。
【0028】図2は、図1の三角形を垂直ピクセル境界
に沿って走査ラインに"スライス"したものである。各走
査ラインの最初のピクセルに対する画像パラメータ値が
計算される。
【0029】図3においては、走査ライン区画はさいの
目状に切られ、複数の単一のピクセルが生成され、ま
た、部分的にカバーされた各ピクセルの面積が計算され
る。各ピクセルを通過するエッジの位置に依存して、種
々の加減算を使用すれば、部分的なピクセル領域カバレ
ージを十分計算することができる。各カバレージ領域
は、三角形、長方形または台形のいずれかであるので、
計算は比較的単純である。
【0030】図4は、代表的な部分的カバーピクセルを
示す。その領域は、長方形の領域から三角形を差引いた
ものである。
【0031】図5は、3つの個別の面積計算を必要とす
る複合カバレージ計算を示す図である。各画像成分から
の因子を加算することによって、7つの所望の画像パラ
メータが、各ピクセルで計算される。ここで、この因子
は、全ピクセル領域によって分割された画像成分によっ
てカバーされるピクセル領域の割合に等しい。
【0032】最終表示画像は、各ピクセルでの、複数の
異なる構成ポリゴンからの因子を混合することによって
得られる。"さいの目分割"によって生成された因子を"
ピクスリンク"と呼ぶ。さいの目分割処理から得られる
各ピクスリンクは、7つの画像パラメータに対する個々
の値を含むデータオブジェクトにリンクされる。単一の
ピクスリンクは、ピクセル全体または一部をカバーする
ことができる。幾つかのピクスリンクは、一つの単一の
ピクセルに寄与するかもしれない。さいの目分割処理か
らの得られる各ピクスリンクは、独立して処理され、こ
の処理の結果は混合され、合成画像パラメータが生成さ
れる。
【0033】例えば、視点(Z)からの画像"距離"が比
較され、視点からの距離の順に、より近い因子は遠い因
子上に混合される。より近いピクセルリンク領域値が完
全なカバレージを示す時、最上部のピクスリンクの色が
そのピクセルに割当てられる。もし、より上部のピクス
リンクが完全にピクセルをカバーしない場合は、その色
は、より下部のピクセルリンクからのピクスリンク色と
混合される。この色の混合は、より上部のピクセルリン
クとより下部のピクセルリンクの領域カバレージに比例
する。もし、2つ以上のピクセルリンクが単一のピクセ
ルに寄与する場合、ピクセルの完全なカバレージを得る
ために、これらの因子は最上部から最下部まで混合され
る。他のイメージパラメータ、例えば、輝度のようなも
のも、同様に混合される。
【0034】1つ以上のポリゴンまたはエッジが、いく
つかのピクセルで存在するかもしれない。このことは、
線がその他の線またはポリゴン上に描かれた場合やオブ
ジェクトがポリゴンエッジの陰に見える時などに、実際
に頻繁に発生する。また、透明画像の場合、単一のピク
セルが、しばしばより近くの透明オブジェクトおよびよ
り遠くの不透明オブジェクトの両方を表すことがある。
これらの異なるピクセルの因子の効果は合成される必要
がある。
【0035】従来の技術では、より遠くのオブジェクト
上のエッジのエイリアス除去と透過性を得るためには、
視点からオブジェクトまでの距離に対応して、オブジェ
クトをソーテイングする必要があった。本実施例の方法
では、リストデータオブジェクトを用いることによっ
て、複数因子の合成が各ピクセルごとに達成され、様々
な関連するポリゴンに対する画像パラメータ因子を格納
する。このため、色の画像パラメータについては、1つ
のポリゴンがピクセルの色に寄与する場合、視点からの
ポリゴンの距離が用いられ、リスト中のその場所を得
る。本実施例の利点は、このようなすべてのポリゴン
を、どのような順序でもシステムに提供することができ
るので、ソーテイング操作は必要とされない。さらに、
本実施例では、視点から遠方のオブジェクトに対して、
適切なエッジのエイリアス除去を行うことができる。
【0036】本実施例に係るリストデータオブジェクト
は、視点からの距離の順に維持される。このリストは、
リスト中のどの点にでも新しい要素を挿入することがで
きるよう構成されている。リストは、デイスプレー上の
各ピクセルに対して維持される。完全にカバーされ、そ
のため見ることができないオブジェクトは、そのリスト
が構築されるとき、そのリストから除去される。このた
め、ソーテイング処理は必要とされない。本実施例によ
れば、大きい画像が多数の小ポリゴンから構成される場
合、処理時間を大幅に節約することができる。
【0037】最後に、本実施例のシステム全体は、ハー
ドウェアに組み込まれる。これは、コマンドパイプライ
ン処理の導入と、プロセス制御のシングルステートマシ
ンを用いることで可能となる。本実施例の目的と有効な
点は、サブピクセルスライス技術と、さいの目分割技術
と、ピクスリンク混合技術との組合せをハードウェアに
組み込むことによって、そのハードウェア実行の処理パ
ワーを高めることにある。
【0038】[図面の簡単な説明] 本実施例をより完全に理解するために、添付図面に描か
れた実施例の詳細な説明を以下行う。図1は、本実施例
の基本三角形の用語を示す図である。
【0039】図2は、本実施例の基本三角形スライス操
作を示す図である。
【0040】図3は、本実施例の基本三角形ダイシング
(さいの目分割)操作を示す図である。
【0041】図4は、本実施例のシステムに使用する部
分的にカバーされたピクセルの面積計算を示す図であ
る。
【0042】図5は、本実施例のシステムに使用する部
分的にカバーされたピクセルの複合面積計算を示す図で
ある。
【0043】図6は、本実施例のシステムにおいて使用
する画像パラメータに関する平面方程式の公式を示す図
である。
【0044】図7は、本実施例の方法の利用に適したワ
ークステーショングラフィックプロセッサを示す図であ
る。
【0045】図8は、本実施例のレンダリングパイプラ
インの機能ブロック図である。
【0046】図9Aと図9Bは、本実施例の画像生成ボ
ード(IGB)の詳細機能ブロック図である。
【0047】図10Aと図10Bは、本実施例のPHI
GS幾何ボード(PGB)の詳細機能ブロック図であ
る。
【0048】図11Aと図11Bは、本実施例のフレー
ムバッファメモリを示すブロック図である。
【0049】図12A、図12BA、図12BB、図1
2BC、図12BD、図12CA、図12CB、図12
CCは、本実施例のブレンダASICを示す詳細機能ブ
ロック図である。
【0050】図13は、本実施例の単純パイプライン制
御の概念を示す図である。
【0051】図14は、本実施例の完全パイプライン制
御の概念を示す図である。
【0052】図15は、本実施例のステートマシンで使
われる2ホットステート符号化パラメータのテーブルを
示す。
【0053】図16Aと図16Bと図16Cは、本実施
例のレンダリング(スライサー/ダイサー)ASICを
示す詳細機能ブロック図である。
【0054】図17は、本実施例のレンダリングASI
Cにおいて使用されるX-on-next-Y公式を示す図であ
る。
【0055】図18は、本実施例のレンダリングASI
Cにおいて使用されるX-on-next-Y公式を示す図であ
る。
【0056】図19は、本実施例のレンダリングASI
Cによって使用される調整された基本色公式を示す図で
ある。
【0057】図20は、本実施例のレンダリングASI
Cによって使用される長方形公式を示す図である。
【0058】図21A、図21B、図21Cは、本実施
例のフィル長方形(Fill Rectangle)プロシージャとフィ
ルイン次ピクセル(Fill-in Next Pixel)プロシージャを
示す図である。
【0059】図22A、図22B、図22Cは、本実施
例の点と線インターセプトプロシージャを示す図であ
る。
【0060】図23A、図23BA、図23BBは、本
実施例の三角形インターセプトプロシージャを示す図で
ある。
【0061】図24A、図24B、図24C、図24D
は、本実施例のピクセル生成ユニットのポリゴン処理ユ
ニット(PIXGENA)の特性を示す図である。
【0062】図25は、本実施例のピクセル生成ユニッ
トのスパン処理ユニット(PIXGENBEN)のスパ
ンカウンタユニット(PBCNT)の特性を示す図であ
る。
【0063】図26A、図26B、図26C、図26
D、図26Eは、本実施例のピクセル生成ユニットのス
パン処理ユニット(PIXGENBEN)のセグメント
ユニット(PBSEG)の特性を示す図である。
【0064】図27A、図27B、図27Cは、本実施
例のピクセル生成ユニットのスパン処理ユニット(PI
XGENBEN)のセグメントユニット(PBSEG)
によって使用される計算プロシージャを示す図である。
【0065】図28Aと図28Bは、本実施例のピクセ
ル生成ユニットのピクセル処理ユニット(PIXGEN
C)の面積計算要素において使用される計算プロシージ
ャを示す図である。
【0066】図29Aと図29Bは、本実施例のピクセ
ル生成ユニットのピクセル処理ユニット(PIXGEN
C)の面積計算要素によって使用される擬似コードを示
す図である。
【0067】図30は、本実施例のピクセル生成ユニッ
トのピクセル処理ユニット(PIXGENC)の色補間
要素の機能ブロックを示す図である。
【0068】図31は、本実施例のセットアップASI
Cの機能ブロック図である。 [好適な実施例の詳細な説明] レンダリングシステムの性能の概要 本実施例のレンダリングシステムは、以下の性能を有す
る。点、線およびポリゴンはエイリアス除去される。本
システムは、主に、使用可能なエイリアス除去を実行す
る。標準解像度は、1280×1024である。オプシ
ョン解像度は、2048×2048である。仮想画像解
像度は、少なくとも物理解像度の8倍である(すなわち
1280×1024システムに対しては10240×8
192である)。色は、完全24ビットRGBである。
表示信号は、標準色モニタに適応する。
【0069】点、線の端点およびポリゴンの頂点は、少
なくともピクセルの8分の1の精度で位置設定される。
背景は、いかなる色でも可能で、黒色である必要はな
い。線の輝度は、表示の角度により異なる。線端は、正
方形で線の角度に対し垂直である。透明はサポートさ
れ、透明オブジェクトをランダムなZ順にレンダリング
することができる。本実施例のレンダリングシステム
は、一枚の9U形式因子ボードに完全に適合するハード
ウエア内で実現される。
【0070】本実施例のレンダリングプロシージャは、
概念的に、以下に示す3つのタスクに分類される。 1) 基本ポリゴンによってカバーされるピクセルが認
識される。
【0071】2) 赤(R)、緑(G)、青(B)、Z
深度(Z)、透明度(T)およびパターン座標(Uおよ
びV)値は、第1のタスクにおいて認識される各ピクセ
ルに対して決定される。
【0072】3) 第2のタスクから生じたピクセル
(色とZ値を含む)は、予めレンダリングされたプリミ
テイブから生じたピクセルと合体される。第1のカバレ
ージタスク開始には、各プリミテイブは、1個以上の頂
点を有することに注意する。各頂点は、それぞれに対応
するX、Y、Z、R、G、B、T、UおよびVの値を有
する。ピクセルは、長方形二次元グリッドとして考える
ことができる。X値およびY値は整数部と小数部の両方
から成る実数であり、ピクセルグリッド上のプリミテイ
ブの頂点の位置を表す。点は、領域内の1つかそれ以上
のピクセルをわずかに広くカバーする正方形として表さ
れる。線は、一方の端点から他の端点まで伸びる細長い
長方形で、幅はピクセルよりわずかに広いものとして表
される。ポリゴンは、単に頂点によって囲まれた領域と
して表される。
【0073】ピクセルは、部分的または全体的にプリミ
テイブにカバーされる。完全にカバーされたピクセルの
処理は単純だが、部分的にカバーされたピクセルには、
より多くの作業が必要になる。これらのピクセルについ
て、そのカバレージ領域は計算される必要がある。プリ
ミテイブ内の全ピクセルが識別され、部分的カバレージ
領域が計算された時、第1のカバレージタスクの処理は
終了する。
【0074】第2のタスクでは、第1の工程における各
ピクセルの色値およびZ値は、プリミテイブ頂点の色お
よびZ値を線形補間することにより計算される。
【0075】第3のタスクでは、Zバッファのように配
列したリンクリストを使用することによって、第2の工
程からのピクセルは、他のプリミテイブからのピクセル
と混合される。ピクセルの部分カバレージの場合には、
複数の部分カバレージ因子は、Z順に格納される。プリ
ミテイブによって部分的にカバーされたピクセルに対す
る因子は、そのプリミテイブによってカバーされたピク
セル領域に比例する。これは、ボックスフィルタを用い
ることによって、効果的なエイリアス除去を行う。
【0076】上述のプロシージャのコンピュータによる
実現は、異なるシーケンスで生じる。ピクセルを識別す
るタスク1と、ピクセルにおける値を検出するタスク2
とが組み合わされる。ピクセルを混合するタスク3は、
異なる工程として残される。
【0077】タスク1とタスク2を組み合せて、以下3
つのサブタスクを実行する。サブタスク1A) セット
アップ − 点は、ゼロサイズの数学的抽象点から、そ
の点のサブピクセル位置に中心を置くピクセルよりもや
や広くカバーする小ポリゴンまで拡張される。線は、そ
の端点のサブピクセル位置を用いて、幅がゼロの抽象線
から、細長い長方形まで拡張される。ポリゴンの頂点
は、方向(時計回りと反時計回り)がチェックされ、必
要に応じて(このハードウエアは、反時計回り(CC
W)のポリゴンだけを描画する)、反転されて、Xにお
ける最小頂点が配置される。図1は、CCW順にソート
された頂点P0、P1およびP2を持つ三角形を示す。
ピクセルの境界は、鎖線で描画され、ポリゴンの処理を
描いている。セットアップASICは、ポリゴンエッジ
の斜きを計算する。次に、R、G、B、Z、T、Uおよ
びVの線形補間係数が計算される。ポリゴンによって
は、これらの値の全ての補間を必要としないものもある
かもしれない。例えば、パタンがそのプリミテイブに適
用されていないならば、UおよびVは不要である。パタ
ンが適用されているプリミテイブに対して、そのパタン
のミップマップ(mipmap)レベルが計算される。
【0078】サブタスク(1B) スライシング −
ポリゴン(今、すべてのプリミテイブはポリゴンである
とする)は、走査ライン境界上でスライスされる。図2
は、図1と同様の三角形を示し、垂直ピクセル境界に沿
って、複数の走査ラインにスライスされる。走査ライン
上の第1のピクセルのR、G、B、Z、T、UおよびV
の値が計算される。
【0079】サブタスク(1C)ダイシング − 走査
ラインの小片を、個々のピクセルに分割し、部分的にカ
バーされたピクセルの領域(A)が計算される。図3
は、水平ピクセル境界に沿ってカットされた三角形を示
す。部分的にカバーされたピクセルの領域が計算され
る。ピクセルを通過する基本ポリゴンエッジに基づい
て、ピクセル領域カバレッジを計算するために、領域の
様々な加減算が必要とされる。各サブ領域は、三角形か
長方形か台形であるため、必要な計算は単純である。
【0080】図4は、部分的にカバーされたピクセルの
一例を示す。その領域は、長方形の面積(H*W)から
三角形の面積(h1*w1)/2を引いた部分になる。
図5は、より複雑な例を示す。エリア1は、上辺より下
の領域であり、長方形(H*W)から三角形((hr*
wr)/2)を引いた領域である。エリア2は、底辺よ
り下の領域であり、台形((h11+h12)/2*w))
である。カバーピクセル領域は、エリア1からエリア2
を引いた領域である。
【0081】図6は、頂点間のZ、R、G、B、T、U
およびVの値の補間に使用する平面方程式の公式化を示
す。部分的に透明なプリミテイブに関して、領域(A)
には透明度(T)が乗じられ、縮小された領域カバレッ
ジ因子(A)を生成する。
【0082】タスク(3)ブレンディング − ここで
は"ピクセル"という用語は、より厳密に定義され、本実
施例のブレンダで使用する部分カバー要素を識別する。
ピクセルは、画面の最小の離散アドレス可能領域として
定義される。フレ−ムバッファ内に格納され、また、画
面のアップデートに用いられる最終色もまた、ピクセル
と呼ばれる。逆に、ピクスリンク(PIXLINK)
は、ダイサによって生成された値として定義される。ダ
イサから生成された各ピクスリンクは、X、Y、Z、
R、G、BおよびA値のベクトルにリンクされる。ピク
スリンクは、ピクセルの一部または全部をカバーするこ
とができる。いくつかのピクスリンクは、単一のピクセ
ルに寄与するかも知れない。フレームバッファは、各ピ
クセルいおいて、Z、R、G、BおよびA値を含む、1
個以上のピクスリンクを格納する。
【0083】ダイサから生成される各ピクスリンクは、
独立に処理される。この処理結果は、ブレンドされて、
フレームバッファに格納される。各新ピクスリンクのZ
値は、フレームバッファの最上部のピクスリンク値と比
較される。もし、新Zが旧Zより視点に近ければ、新ピ
クスリンクは、旧ピックスリンク上に"ブレンド"され
る。それ以外は、新ピクスリンクは、旧ピクスリンクの
下に"ブレンド"される。Zが等しい場合は、新ピックス
リンクは、旧ピックスリンクの下に"ブレンド"される。
最上部のピクスリンク領域値が、完全なカバレージを示
している場合には、最上部のピクスリンクの色が使われ
る。この1つの条件が、本技術における標準Zバッファ
プロシージャに等価である。
【0084】最上部のピクスリンクが、ピクセルの部分
的カバレージを示す領域値を有する場合には、ブレンデ
ィングは必要とされない。結果として生成されるピクセ
ル色は、最上部ピクスリンク色と下層ピクスリンク色を
ブレンディングした混合色である。色の混合は、最上部
および下位のピックスリンクの領域カバレージに比例す
る。単一のピクセルに寄与する、2つ以上のピクスリン
クがあっても良い。このような場合には、完全なピクセ
ルカバレージが達成されるまで、いくつかのピックスリ
ンクは先頭から底部までブレンドされる。
【0085】パタンは、ブレンダによって適用される。
パタンが使用可能な場合には、ピクスリンクからのUお
よびVのパタン座標値、およびミップマップ(mipm
ap)レベルが、セットアップ手続きによって計算され
る。その後、これらは8個のパタン値を得るために使わ
れる。パタン値は3線補間され、単一のパタン値を生成
する。この値は、ピクスリンクのR、G、BおよびA値
を修正するために適用される。ピクスリンクがフレーム
バッファで処理される前に、パタンは適用される。 ハードウェア実施例の概要 本実施例のレンダリングシステムのハードウェア態様
は、上述した手続き的実現に非常に似ている。そのハー
ドウェア態様は、4つの異なる専用集積回路(ASI
C)設計を含む。フレームバッファを伴い、それらの4
つのASICは、本実施例のレンダリングパイプライン
を構成する。本実施例のパイプラインを説明するため
に、PHIGS画像表示システムハードウェアが、トッ
プダウンに説明される。
【0086】図7のPHIGSウィンドウズ表示システ
ムは、2つの主要なサブシステムから成るグラフィクス
ワークステーションである。第1のサブシステムは、C
PU(Sun SPARC)、またはワークステーションプロセ
ッサ(WP)20である。第2のサブシステムは、Mega
tecグラフィックアクセラレータ22である。各サブシ
ステムは、独自のシャーシに存在する。両サブシステム
は、ケーブルによって接続されている。本実施例のレン
ダリングシステムは、グラフィックアクセラレータ22
内に備えられる。
【0087】WP20は、標準CPUであり、キーボー
ド、色モニタ、ディスクなどを含む。ワークステーショ
ンインタフェースボード(WIB)24は、WPシャシ
内のスロットを占有する。
【0088】グラフィックスサブシステム22は、バッ
クプレーン(図示せず)と3枚のボードとを備えるシャ
ーシを含む。グラフィックスインタフェースボード(G
IB)26はケーブルを介してWIB24に接続され、
バックプレーンを介してその他のボードに接続される。
PHIGS幾何ボード(PGB)28は、グラフィック
ス表示リストを格納し、表示リストを検索し、幾何プリ
ミティブを変換する。画像生成ボード(IGB)30
は、幾何プリミティブをレンダリングし、画像を構築
し、完成画像をRGBケーブルを介して色モニタ(不図
示)に表示する。
【0089】図7の画像表示システムの心臓部は、PG
B28とIGB30にあり、これらは互いにすべてのグ
ラフィックスを機能的に供給する。PGB28は、サー
バ側の中央構造記憶装置(CSS)と複数(9個まで)
のインテル社(Intel)80860XPマイクロプロセッサとを
含む。これらは、PHIGS CSS検索と、Xおよび
PHIGSの幾何計算と、イメージングなどの付加的な
機能とを実行する。IGB30は、フレームバッファ
と、オフ画面記憶装置と、色探索表と、カーソルハード
ウェアと、複数のカスタムグラフィックスチップを含
み、本実施例に係るピクセルレンダリングプリミティブ
およびビデオ出力生成プロシージャを実行する。
【0090】図8は、本実施例に係るレンダリングシス
テムを示し、これはIGB30内に含まれる。IGB3
0は、グラフィックスアクセラレータの半分である。I
GB30は、専用レンダリングパイプラインと、フレー
ムバッファと、オフスクリーンメモリとから成る。IG
B30は、専用集積回路(ASIC)を使用し、非常に
高い性能を提供する。IGB30は、限定数の処理を非
常に高速に実行する。複合タスクはIGB30用に単純
な演算に分解される。IGB30レンダリングパイプラ
インは、主に図8に示す5つの構成要素を含む。セット
アップASIC32は、頂点データをバッファリング
し、傾斜を計算し、線を指定の線幅にまで拡張し、点を
指定の点サイズまで拡大し、その点を三角形にソート
し、データをスライサ/ダイサに伝送する。IGB30
は、2つのセットアップASICを含む。上述のセット
アップ演算に加えて、セットアップASICも1組の頂
点レジスタを含む。これらのレジスタは、バッファとし
て機能し、複数の頂点のロードを一度に1つ実行するこ
とができる。
【0091】スライサ/ダイサASIC34(レンダリ
ングASIC34とも呼ぶ)は、点、線およびポリゴン
のエッジを走査し、X、Y、Z、R、G、B、T、Uお
よびVのデータを走査線に補間する。そして、走査線の
ピクセルの領域カバレージを計算し、ピクセルデータを
ブレンダにパスする。IGB30は、5つのスライサ/
ダイサを含む。
【0092】ブレンダASIC36は、領域カバレージ
を含むピクセル値をスライサ/ダイサから受信し、Zバ
ッファリングを実行する。そして、複数のプリミティブ
によって部分的にカバーされ、またパタンをマッピング
するピクセルに対して、色をブレンドする。IGB30
は、10個のブレンダASICを含む。ブレンダASI
C36は、(非常に高速の)20通りのインタリーブア
クセスをバッファメモリ38に提供する。
【0093】フレームバッファメモリ38は、(A)
(ピクセルエリアカバレージ)と同様に、通常のRGB
Z値を格納する。フレームバッファメモリ38は、ピク
セルあたりRGBZA値の複数のセットを格納し、エイ
リアス除去および透明化プロシージャに使用する。フレ
ームバッファ38は、20バンクのメモリに分割され
る。
【0094】ミクサASIC40は、ビテオタイミング
と制御ロジックを含む。これは、7色ハードウェアカー
ソルを組み込む。IGB30は、3つのミクサASIC
を含む。
【0095】本実施例に係るレンダリングシステムは、
スライサ/ダイサASIC34、ブレンダASIC36
およびフレームバッファメモリ38に含まれる。
【0096】図9Aと図9Bは、本実施例に係るIGB
30の機能ブロック図である。図10Aと図10Bは、
本実施例のPGB28の機能ブロック図である。PHI
GS幾何ボード(PGB)PGB28は、グラフィック
スパイプラインの第1のボードであり、WPと残りのグ
ラフィックスシステムの間の論理インタフェースを提供
する。図10Aと図10Bは、PGBハードウェアを示
し、カスタム高性能バスに対するインタフェースと、C
CSマネジメントと、変換と、IGBインタフェース
と、タイミングレジスタと、LEDクラス標識、バージ
ョンEAROM、ブートPROMおよびワークステーシ
ョンプロセッサコンソールサポートとを含む。
【0097】PGB−WPインタフェースは、WPのS
バス上の単一のインタフェースボード24を介する。F
IFOは、システムデータフローに対して、WP20を
補助する。
【0098】サーバ側中央ストラクチャストア(CS
S)管理は、編集および検索処理を含む。これらの機能
は、トラバーサルエンジン(TE)42によって、PG
B28上で実行される。ハードウェア構成要素(図10
Aと図10B)は、CSS管理に含まれ、ワークステー
ションプロセッサトラバーサルエンジン(WP−TE)
FIFO44と、トラバーサルエンジン(TE)42
と、トラバーサルエンジン中央ストラクチャストアメモ
リ46と、トラバーサルエンジンダイレクトメモリアク
セスサポート48とを含む。
【0099】PGB28は、WP20とTE42との間
に、ハードウェアWP−TE FIFO44を含む。こ
れによって、TW42がWP20からのデータ受取りが
可能になるまで、WP20を待たせることなしに、32
ビットコマンドおよびデータをWP20からTE42へ
パスすることを許す。
【0100】PGB上のトラバーサルエンジン(TE)
42は、50MHzのIntel 80860XPである。TE42は、
PHIGSサーバ側CSSを検索し、PFIGSウィン
ドウグラフィックスのプリミティブ、属性および変換値
と、Xウィンドウのグラフィックスのプリミティブおよ
び属性とを幾何エンジン(GES)に伝送する。TE4
2は、WP−TE FIFO44と、TW−CSSメモ
リ46と、ブートPROM(不図示)と、バージョンE
AROM(不図示)と、タイミングレジスタ50と、G
Eメモリ52と、フレームバッファメモリ38とにアク
セスする。PGB28上のTE−CSSメモリ46は、
TE42に対するコードおよびデータと、PHIGSサ
ーバ側CSSすなわちPHIGS表示リストを含む。
【0101】TE−CSSメモリ46のコンフィグレー
ションは、表面実装メモリチップである4MBパリティ保
護DRAMを用いて、32MBまたは64MBを構成してい
る。ユーザが入手できるTE−CSSメモリ46の量
は、TEコードとデータの格納に必要な概算の2MB、お
よびコンソールメールボックスメモリに割当てられる1
60KBよりも少ない。TE−CSSメモリ46を、プロ
プラエタリ高性能IバスおよびTE−CSSローカルバ
スからアクセスすることができる。プロプラエタリ高性
能Iバスインタフェースによって、TE−CSSメモリ
46のすべてにアクセスし、TE42に対するコードお
よびデータをロードすることができる。TE42は、80
860XPメモリマネジメント装置(MMU)を利用し、C
SSデータを含むTE−CSSメモリ46の部分を仮想
アドレス空間にマッピングする。TE42は、WP20
で実行するページドメイン処理(不図示)を伴い、仮想
CSSをサポートする。CSSデータを含むTE−CS
Sメモリ46の物理ページは、WP20のメモリから、
また、WP20のメモリにスワップされ、ページドメイ
ンによって管理される。
【0102】CSSとWP−TE FIFO44の間の
データ転送速度を上げるため、DMA機能が提供され
る。TE42が、命令語と、エレメントの1つかそれ以
上の引数を読込み、そのタイプとサイズを決定しなけれ
ばならない場合、CSSからのエレメントを読込み、必
要に応じて、WP−TE FIFO44に書込む。これ
からWP−TE FIFO44に書込まれなければなら
ないエレメントに対する語数が一旦決まると、TE42
は、このDMA機能を用いて転送する。このモードによ
って、TE42がCSSから各値を読み、それをWP−
TE FIFO44に書込む手間が省ける。その代わり
に、TE42は、エレメントに対して残っている語を読
込み、自動的にWP−TE FIFO44に書込むこと
ができる。
【0103】いくつかの画像変換機能は、幾何エンジン
48のPGB28上のIntel 80860XPプロセッサによっ
て実行される。この変換動作に関するハードウェア要素
には、トラバーサルエンジン−幾何エンジン(TE−G
E) FIFO54と、8個のプロセッサGE0A-GE
3Aを備える幾何エンジン(GE)48と、幾何エンジ
ンメモリ52と、各GEプロセッサに対する幾何エンジ
ン−IGB FIFO56と、幾何エンジンルーチン制
御ハードウェア58とを含む。次に、これらを簡潔に説
明する(図10Aと図10B)。
【0104】トラバーサルエンジン−幾何エンジン(T
E−GE)FIFO54は、GE48が読込み可能にな
るまでTE42を待たせることなく、64ビットコマン
ドおよびデータをTE42からGE48にパスすること
ができる。
【0105】8個の幾何エンジン(GE)プロセッサ4
8は、Xと、PHIGSと、画像変換を実行する。各プ
ロセッサ48は、40MHzで実行するIntel 80860XPプロ
セッサである。全てのGEプロセッサ48は、すべての
GEに対する共通コードと各GEに必要なXおよびPH
IGSのデータの専用コピーとを含むメモリ52を共有
する。このメモリ52はまた、WP20にアクセスし
て、GEコードおよびデータをロードすることができ
る。
【0106】GE48は、XおよびPHIGSグラフィ
ックスプリミティブを変換し、PHIGS変換を連結
し、PHIGS光照射計算を実行し、XおよびPHIG
S属性情報をIGB30にパスし、複合画像処理機能を
実行する。各GE48は、WP−TE FIFO44
と、GEメモリ52と、GE−IGB FIFO56
と、TE−CSSメモリ46と、ブートPROM(図示
せず)と、バージョンEAROM(不図示)と、タイミ
ングレジスタ50と、フレームバッファメモリとにアク
セスする。
【0107】PGB28は、GE48とIGB30上の
セットアップグラフィックスチップ60(図9)間に、
4つのFIFO56を含む。各FIFOは、2つのGE
によって共有される。これによって、セットアップグラ
フィックスチップ60がデータを受けとるまでGEが待
つことなしに、GEからセットアップグラフィックスチ
ップ60に、32ビットコマンドおよびデータをパスす
ることができる。
【0108】ルーテイングハードウェア58は、(1)
WP−TE FIFO44とGE48の間と、(2)4
つのGE−IBG FIFO56とセットアップグラフ
ィックチップ60との間に存在する。このルーテイング
ハードウェア58は、中央スイッチとして機能し、各G
Eに入力を分配し、各GEから出力を集める。
【0109】GEルーテイングハードウェア58は、ラ
ウンドロビン技術を利用して、データの収集分配を行
う。GE入力ルーテイングハードウェアは、WP−TE
FIO44からデータを読込み、1つのコマンドおよ
びその引数をGE48に書込む。GE出力ルーテイング
ハードウェアは、GE−IGB FIFO56から1コ
マンドとその引数を読込み、IGB30上のセットアッ
プグラフィックスチップ60に書込む。各コマンド処理
後、それら両者は順に次のGE48またはGE−IGB
FIFO56に移る。このラウンドロビン技術は、コ
マンドがGE48に伝送された順番を維持する。 イメージングとグラフィクスボード IGB30は、本実施例に係るレンダリングシステム
(図9Aと図9B)を含む。このレンダリングシステム
は、XとPHIGSプリミテイブを描画する。PGB2
8は、XYデータを、サブピクセル情報と24ビットZ
値と共にスクリーン座標として、IGB30へ転送す
る。IGB30は、幾何学的レンダリング、色レンダリ
ング、X値比較の機能を実行する。幾何学的レンダリン
グの時、IGB30は、ポリラインやポリゴンの頂点座
標間のピクセル座標とZ値を補間する。これは、エイリ
アス除去のためにカバーされたピクセルの一部分の面積
計算の実行を含む。色レンダリングを行う時、IGB3
0は、頂点間のRGB色とテクスチャ座標を補間する。
これは、各プリミテイブに対する幾何学的レンダリング
からのピクセル値に適用され、また、エイリアス除去処
理のために、異なるプリミテイブからのピクセルに対す
る色値のブレンデイングの実行を含む。このデータは、
次に、フレームバッファメモリ38に書かれる。
【0110】IGB30は、図9に示すようなハードウ
エアを含む。即ち、複数のカスタムグラフィクスレンダ
リングチップ34と36、フレームバッファメモリ3
8、ピクセルコオペレーション、制御プレーン、ビデオ
出力サブシステム62、LEDステータスインデイケー
タ(不図示)、カスタム高性能Iバスインターフェイス
64、PGBインターフェイス66である。
【0111】IGB30は、複数のセットアップグラフ
ィクスチップ32を含む3種のカスタムグラフィクスレ
ンダリングチップと、複数のレンダリンググラフィクス
チップ34と、複数のブレンデインググラフィクスチッ
プ36を含む。
【0112】各グラフィクスチップは、マガテク(Maga
tek)社によってカスタム設計されたASICである。
ボード上に、どのバージョンの各グラフィクスチップが
搭載されているか確認するために、全グラフィクスチッ
プは、TE42によって読みだし可能なステッピング情
報を有するレジスタを含む。
【0113】これらのチップ(複数のASIC)につい
て、次に説明する。2つのセットアップチップ32は、
ポリラインやポリゴン頂点の斜度、即ち、線セグメント
やポリゴンエッジに沿ったピクセルをフィルする時使う
XとYの増加量を決定するための計算を実行する。
【0114】4つのスライサ/ダイサや複数のレンダリ
ングチップ34は、ピクセルアドレス、色、頂点間のテ
クスチャ座標の補間処理を実行する。グローシェーデイ
ング(Gouraud shading)のための色補間は、ポリライ
ンの色値間やポリゴン頂点間で、線形である。レンダリ
ングチップ34はまた、エイリアス除去処理のためのブ
レンデイングに使うための各プリミテイブによってカバ
ーされたピクセル領域を計算し、また、最終的なピクセ
ル色を決定するために使われる各プリミテイブに対す
る、断片的ピクセルカバレージのアルファ(A)値を生
成する。
【0115】本実施例のエイリアス除去処理は、点、
線、ポリゴンに対して選択的に実行可能にされる。描画
されたイメージの仮想解像度は、少なくとも10240
x8192サブピクセルである。デイスプレイは、好ま
しくは、点、線端、ポリゴン頂点が、少なくともピクセ
ルの1/8の精度(XとYの両方について)で位置決め
された標準の1280x1024カラーモニタが良い。
2kx2kまでのデイスプレイの解像度は、ハードウエ
アによってサポートされる。
【0116】10個のブレンダチップ36は、複数のプ
リミテイブから単独の値までの各ピクセルに対し複数の
色値をブレンドする計算を実行し、結果として、エイリ
アス除去された線とポリゴンエッジが生成される。ブレ
ンダチップ36はまた、ポリゴン表面にわたるテクスチ
ャマップからの値を補間する。
【0117】ブレンダチップ36はまた、次の処理を実
行する。即ち、Z値が小さいか等しいか大きいかの比較
(この処理は、イネーブルかデイスエーブルにされえ
る)、幻影線スタイルの比較、ピクセル処理、制御プレ
ーンの使用である。幻影線スタイルの比較は、ポリゴン
要素をワイアフレームとして引くために使われる。ポリ
ゴンレンダリングで隠れなかったエッジは、ソリッド線
として引かれる。ポリゴンレンダリングで普通に隠れた
エッジは、非ソリッド線スタイルで引かれる。これは、
2つの処理を必要とする。即ち、1つは、全ポリゴンに
Z値を設定することで、2つ目の処理は、エッジを描画
することである。
【0118】IGB30のフレームバッファメモリ(F
BM)38は、VRAMとDRAMに分かれる。2MBの
VRAMから成る20MBは、ビデオリフレッシュされる
必要のあるデータのために使われ、24ビットのフレー
ムバッファと制御プレーンを含む。DRAMの52MB
は、24ビットZバッファとオフスクリーンフレームバ
ッファメモリのような、24ビットフレームバッファに
関連する非ビデオデータのために使われる。
【0119】RGB色プレーンは、24ビットでダブル
バッファである。このコンフィギュレーションは、同時
表示可能な16.7M色までサポートする。エイリアス除
去処理のためのブレンデイング計算を実行する時に、色
当たり8ビット精度を維持するために、その色プレーン
は、実際に27ビット(各レッド、グリーン、ブルーに
対するエキストラビットと共に)を格納する。
【0120】メモリ38は、5対4(X:Y)メモリイ
ンターリーブで配列されているので、連続するFBM3
8のアクセスは、5個の連続するX位置、または4個の
連続するY位置(図11A)に対して、同じVRAMを
アクセスしない。これは、XとPHIGSレンダリング
性能を最大化させる。VRAMの20MBは、2つのバッ
ファ、AとB(図11B)に分割される。バッファは、
ウインドウを更新するためか、または、スクリーンのビ
デオリフレッシュを実行するためかのどちらかのために
使われる。プレーンが選択されたフレームバッファは、
どのバッファがビデオリフレシュのために使われるか決
定する。
【0121】IGB30でサポートされる制御プレーン
は、ウインドウクリッププレーン、フレームバッファセ
レクトプレーン、Zバッファイレースステータスプレー
ンを含む。加えて、IGB30は、ピクセル当たりのブ
リンクを制御するブリンクプレーンを含む。
【0122】DRAMの52MBの内、10MBは、Zとア
ルファに対して割り当てられる。そのアルファバッファ
は、ピクセル当たり9ビットのデータを含む。アルファ
(A)バッファ値は、幾何プリミテイブによってカバー
されるピクセルのパーセンテージを含み、また、エイリ
アス除去処理のために、ブレンダチップ36によって使
われる。
【0123】DRAMの残り42MBは、エイリアス除
去、Xピクスマップ、イメージプリミテイブ、テクスチ
ャのためにシェアされる、プールされたオフスクリーン
メモリスペースを含む。幾何プリミテイブの検索とレン
ダリングの間に、エイリアス除去に使われるメモリスペ
ースは、レンダリングチップによって動的に割り当てら
れて、その後、解放される。エイリアス除去のために使
われるメモリスペースの量は、描画される線とポリゴン
エッジの数と、単独のピクセルをどのくらいカバーする
か、また、透明性のものであるかどうかに依存する。
【0124】ピクセルブロック転送("PixBLT")は、ソ
ースアドレスとデステネーションアドレス(テキストの
スクローリングで必要とされる)のオーバーラッピング
と、並べられていないピクセルアドレスと、ピクスマッ
プ拡張(1:24 - ラスタフォント出力)へのビット
マップ、ウインドウまたはピクスマップ上での処理能力
について取り扱う機能を備える。そのピクセル処理は、
簡単なイメージ処理に必要とされるものを含む。より複
雑なイメージ処理は、PGB28上で実行される。 ASICのセットアップ セットアップASIC32は、主に、頂点バス、即ち、
ドローポイント(P0)、ドローライン(P0,P
1)、ドロートライアングル(P0,P1,P2)を経
由してPGBから送られる3種のグラフィクプリミテイ
ブを取り扱うように設計される。図31は、セットアッ
プASIC32の機能ブロック図である。
【0125】Pnは、9個の異なるパラメータ、即ち、
(X,Y,R,G,B,T,U)によって完全に記述す
ることができる点(頂点)を意味する。全てのパラメー
タが、いつも頂点に伴って出されるとは限らない。使用
可能にされるモードビットに依存して、T,U,Vパラ
メータは、オンまたはオフされ、セットアップASIC
32は、それらのパラメータに対して計算を実行しなけ
ればならないかどうかを検出する。
【0126】セットアップASIC32は、頂点データ
をバッファし、頂点をソートし、必要な斜度を計算し、
線を具体的に指定された線幅に拡張し、図6に示すプレ
ーンの計算に対応するプレーンのフォーマットでRGB
ZTUVパラメータを計算する。スライサ/ダイサ34
やブレンダ36に対する他のコマンドとデータは、セッ
トアップASIC32によって扱われ、何等の処理なし
に他のASICに転送される。セットアップASIC3
2は、40MHzで動作するように設計されている。好
適な設計性能は、1秒間に百万ポリゴンのスピードで、
ポリゴンメッシュを処理する。しかしながら、1秒間に
1万ポリゴンの性能を達成するためには、2つのセット
アップが1GBごとに要求される。そのポリゴンデータ
情報は、両方のセットアップにロードされ、現在動作可
能にされるそのセットアップは、そのポリゴン情報を処
理するための優先度を保持する。もし、1つのチップが
データを処理中で、他のチップがその前のコマンドを終
了しているなら、2つのセットアップ間のトグル動作が
発生する。
【0127】それらセットアップASICの各々は、自
分自身にルックアップテーブル(LUT)を分割するこ
とを要求する。2つの分離したテーブルの各々は、2つ
の、32kx8、12nsアクセスのスタテイックRAM
から構成される。通常の実行条件では、そのテーブル
は、そのテーブルに接続しているセットアップASIC
によってのみアクセスされる。しかしながら、LUTそ
れ自体は、レンダリングパイプがイネーブルにされる前
に、初期化されなければならない。4つのアドレスがこ
れらLUTのリード/ライトのために必要となる。デー
タをライトするとき、両方のLUTには、同じ時間に同
じデータがライトされる。"ライト アドレス/データ"ポ
ートは、データの下位の15ビット(14-0)を、L
UTアドレスレジスタにラッチする。同じライトサイク
ル間に、上位16ビット(31-16)は、SRAMに
ライトされるデータとなる。リード動作は、2サイクル
動作である。第1に、そのテーブルに対するアドレスま
たはインデックスは、"そのライトアドレスオンリイ"ポ
ートと共に、LUTアドレスレジスタにライトされる。
繰り返すが、そのアドレスフィールドはデータビット1
4-0である。このアドレスは、両方のLUTによって
シェアされる。そのデータは、LUT1リードポートと
LUT2リードポート別々に、各LUTから再びリード
される。データは、ビット31-16上に戻される。 レンダリング(スライサ/ダイサ)ASIC 本実施例の高性能処理では、IGB30の各々のASI
Cの複数のコピーが必要である。最も単純な構成では、
レンダリングパイプは、2つのセットアップASICか
ら成り、各々はデータを5つのスライサ/ダイサに供給
する。図16A−図16Cは、スライサ/ダイサASI
C34について説明するための機能ブロック図を示す。
【0128】図8および図10Aと図10Bに示すよう
に、スライサ/ダイサASIC34は、ドロー(Draw)
コマンドデータをセットアップASIC32から受信
し、ブレンダASIC26にパスされるピクセル情報を
生成する。スライサ/ダイサASIC34は、点、線お
よび三角形の作画をサポートする。スライサは、これら
のプリミティブ各々を複数の垂直スパンに"スライス"
(図2)し、それらの垂直スパンは、ダイサにパスさ
れ、ピクセル処理(図3)にパスされる。5つのダイサ
の各々は、5番目の垂直スパン毎に処理する。スライサ
は、情報をダイサモジュールに転送し、ダイサは、スパ
ンの各ピクセルに対する座標を計算する。スライサは、
色情報も転送する。
【0129】各ピクセルに対し、ダイサは、ピクセル座
標を表すX、YおよびZと、ピクセル色を表すR、Gお
よびBと、ピクセルカバレッジ領域を表すα(A)とを
生成する。モードレジスタ内の値によって、ダイサは、
テクスチャ処理のために使用されるU、Vと、透明度の
ために使用されるTを生成することもできる。
【0130】モードレジスタは、3ビットレジスタであ
り、IGBパイプコマンドによってセットされる。IG
Bパイプコマンドは、レンダリングパイプラインにパス
され、ASICの内部クラスを変更する。各IGBパイ
プコマンドは、特定のASICに対してアドレス指定さ
れる。モードレジスタのビット2の設定は、T値の生成
を可能にする。同様に、ビット1の設定は、U、V値の
生成を可能にする。どちらの場合にも、レンダリングA
SIC34は、セットアップASIC22からU、Vや
Tに関する付加的な情報を期待する。ビット0の設定
は、エイリアス除去モードを使用可能にする。エイリア
ス除去処理が使用不可能な場合、レンダリングASIC
34は、常時ピクセル領域値Aを最大値にセットする。
ただし、エイリアス除去処理が使用できる場合、ダイサ
は、プリミテイブによってカバーされるピクセル各々の
断片領域Aを計算する。
【0131】スライサ/ダイサASIC34は、三角形
スパン、水平スパンおよびピクセルフィルを高速処理す
るために使用される一連のIGBのドロー(Draw)コマ
ンドもまたサポートする。このような状況の場合、色は
グラフィックエンジンから受信されるが、スライサ/ダ
イサASIC34は、ブレンダ36によって処理される
座標情報を生成する。
【0132】プリミテイブエッジを走査する処理は、プ
リミテイブの最も左下の頂点から開始される(図1)。
セットアップASIC32は、これが点ゼロ(Pnt0)で
あることを保証する。Pnt0から、処理はプリミテイブエ
ッジを走査し、各連続するスパンを通過する時、エッジ
に対する上および下のY座標を計算する。Y座標は、エ
ッジに対する傾斜値およびスパンと交差するエッジの長
さを使用して計算される。各スパンに対して2対の座標
が計算されるが、その1対は上位のエッジであり、もう
1対は下位のエッジである。Y座標は、ダイサに渡さ
れ、ピクセル領域を計算し、ピクセル走査線に対する値
X、Y、Z、R、G、B、T、UおよびVを補間する。
【0133】ASIC34のダイサは、下位エッジのY
座標ペアを使用して、処理すべきスパンの第1のピクセ
ルの初期Y座標を決定する。ダイサは、Y座標が上のY
座標対によって交差されるまで、各新ピクセル座標を処
理して、Y座標をインクリメントする。演算モードによ
って、ダイサは、各処理されたピクセルに対するR、
G、B、T、U、V、Zと領域Aの値を生成しなければ
ならないこともある。ピクセル各々に対する値は、スパ
ンに対してASIC34中のスライサから受信される値
と、Y軸における単位変化に対する各軸の差異とに基づ
く。各プリミテイブに対するY軸、最小値Zおよび最大
値Zにおける単位変化当たりの差異は、その内部論理初
期化フェーズ中、スライサから受信される。各スライサ
/ダイサASIC34は、毎秒百万個のポリゴンを処理
し、各ピクセルに対するX、Y、R、G、B、Zおよび
領域(A)を生成する。 ブレンダASIC 図12A−図12Cを参照して、ブレンダASIC36
は、ピクセルを処理してフレームバッファ38に格納す
るために、ピクセルおよびコマンドを垂直バスを介して
受信する。データの2つのソースは、垂直バスを介し
て、ブレンダ36経由でフレームバッファ38にアクセ
スする。スライサ/ダイサASIC34は、ピクセルお
よびコマンドの1ソースである。Iバスインタフェース
は、第2のソースである。Iバスは、ブレンダ36を介
して、フレームバッファ38からピクセルのライト/リ
ードを行う。ブレンダ36のコマンドレジスタとコント
ロールレジスタはまた、Iバス I/Fによってリードされ
る。各ブレンダ36は、フレームバッファメモリの2つ
のバンクを制御するよう設計されている。IGB30上
のフレームバッファ38は、20個のメモリバンクを有
しているので、10個のブレンダが必要となる。ブレン
ダは、ピクセルの最終的分配を、フレームバッファ38
に行う。ブレンダASIC36で実行された機能は、エ
イリアス除去、パタンマッピング、線形成、IGB同期
化、領域フィル、隠れ面消去、Zソーテイング、深度キ
ューイング、かぶりと霞み、ピクセルのレフレッシュを
含む。
【0134】エイリアス除去が実行可能な場合、ブレン
ダは、6ビットのα(A)値をデータR、G、Bおよび
Zとともに、各ピクセル毎にダイサから受信する。αA
値は、ポリゴンがピクセル通ってスライスするように生
成する領域カバレージの割合を示す。ブレンダは、領域
値を使用し、すでにフレームバッファ内にあるピクセル
色またはバックグラウンド色のパーセンテージに対し
て、ピクセル色のパーセンテージをブレンドする支援を
行う。
【0135】パタンが使用可能な場合、ブレンダは、1
6ビットのUと16ビットのV値をR、G、B、Aおよ
びZデータと共に、各ピクセルデータごとにダイサから
受取る。以前にブレンダ内にロードされ、ミップマップ
(MIPMAP)三角形UVデータのサイズログは、ブレンダ
によって使用され、8パタンまでのピクセルをインデッ
クスする。これらのパタンは、フレームバッファのオフ
スクリーンメモリに配置されるパタンマップテーブル内
にある。UVおよびログの各値を使用して、インデック
スされた複数のピクセルを双一次的に補間して、1つの
ピクセルを生成する。それから、もし、エイリアス除去
処理がイネーブルなら、その1ピクセルは、そのα値に
基づきブレンディングされ、フレームバッファに格納で
きる。
【0136】ライン形成機能は、ブレンダ上のパタンマ
ッピング能力を利用する。ドット−ダッシュパタンは、
パタンマップテーブルに格納される。この機能は、各ピ
クセルと共にU値入力が必要なので、インデックス付け
を1次元にする。
【0137】ブレンダは、本実施例のレンダリングパイ
プライン中の最後の部分であり、グラフィックスパイプ
ラインをIバスI/Fと同期化する。レンダリングパイ
プラインASICの各々は、シンク(SYNC)コマンドを
パイプライン経由で受取る。受取りと同時に、セットア
ップASICおよびスライサ/ダイサASICは、たま
に、パイプライン経由でコマンドをパスして処理を継続
する。スライサ/ダイサは、ブレンダの"BLENDE
R BSY*"信号を受信した後にのみ、処理を中断す
る。スライサ/ダイサがバックアップする場合、レデイ
(READY)信号を除去し、セットアップを停止す
る。
【0138】異なる2つのタイプのシンク(sync)
コマンド、"シンクオンリー(synconly)"と、"シンク
ウイズ インタラプト(sync with interrupt)"とがあ
る。"シンクオンリー(sync only)"コマンドは、ブレ
ンダに、シンク(sync)コマンドに先行する全ての
ピクセルとコマンドに関してを完了させ、シンクダン
(SYNC_DONE*)を生成させる。IGB論理は、
すべてのブレンダが同期されているかを検出する際、ピ
ックヒット(pick hit)クラスをチェックする。どのブ
レンダからもピックヒットが起こっていない場合は、グ
ルー(glue)論理は、50ns間ブレンダリクエス
ト(BLENDER REQUEST)信号をロウ(lo
w)にストローブすることにより、自動的にブレンダを
再始動させる。その後ブレンダはパイプライン処理に戻
る。
【0139】"シンク ウイズ インタラプト(sync with
interrupt)"コマンドは、ブレンダに、疑のピックヒ
ット(pick hit)を発生させる。すべてのブレンダが同
期されている場合には、IGB論理は、すべてのPIC
K_HIT*信号のクラスを調べる。PICK_HIT*
検出された場合(即ち、それらのすべてが、このコマン
ドに従う場合)、IGBは、TE42に対しIバス割り
込み(Ibus interrupt)を起こす。I/Oマップトポー
トBLENDER REQUEST*がライトされるま
で、その割り込み要求は続く。BLENDER REQ
UEST*は、ブレンダを"レンダリング中断(renderin
g-suspended)"クラスにしておく。このクラスの間は、
Iバス(IBus)は、ブレンダレジスタまたはフレームバ
ッファにアクセスできる。要求中のIバスマスタが、ブ
レンダ転送を完了させる場合には、Iバスが、IBLO
CKOUT*およびBLENDER REQUESTを除
去し、レンダリング処理を再開する。
【0140】Iバス転送の初期化には、複数のブレンダ
レジスタは、それらの元々のレンダリング値から修正さ
れる。どのレジスタおよびいくつのレジスタが、元々の
クラスから変わっているかは、Iバスが何の機能を実行
するかによる。Iバスのトランザクションが完了し、I
BLOCKOUT*が解除された後、ブレンダは、パイ
プラインコマンド処理を再開する。最初のすこしのコマ
ンドは、以前のブレンダのレンダリングクラスを再度初
期化するのに必要なブレンダレジスタロードである。シ
ンク(SYNC)コマンドが、そのパイプラインは既知
のクラスにあることを確実にしても、ブレンダサイクル
を要求することは必要とされない。IBLOCKOUT
*信号のみを送出することによりブレンダは停止し、I
バスをアクセスすることが許可される。
【0141】高速領域フィル機能に対して、ブレンダ
は、VRAMフレームバッファ38にページブロックラ
イトサイクルを生成することによって、長方形領域を迅
速にフィルすることができる。長方形領域は、Xデバイ
ス座標においては20で、またYデバイス座標において
は、4で割り切れなければならない。また、その長方形
の左上隅は、5×4の偶数境界から始まる必要がある。
もし、その長方形がこの規則を満たしていない場合に
は、正規のポリゴンとしてフィルされる必要がある。ペ
ージブロックライトサイクル中は、ウインドウクリッピ
ング機能は使用できない。
【0142】ブレンダは、すべての3Dデータに対する
24ビットのZデータを受け取り、Zバッファ内の目的
のピクセルのZデータをリードし、その両者の値を比較
する。Z深度について、入力ピクセル値が目的ピクセル
値より小さい場合は、新ピクセルが旧ピクセルに置き変
わる。ブレンダ上でのエイリアス除去処理が可能な場
合、Zソーティング機能は自動的に完了する。エイリア
ス除去処理は、Z深度に基づいてピクセルリンク(PixL
inks)を生成するために、ピクセルリンク(PixLink)
構築動作が、Zソーティング処理にとって代わる。
【0143】ブレンダ36とIバス64間でデータ転送
を迅速に行うするには、DMAエンジンが使用される。
エンジンの心臓部は、Lattice ISPLSSI-1032 PALであ
る。付加的な外部レジスタおよびカウンタが必要とされ
る。´1032デバイスは、ソフトウエアポートを通し
てロード可能であるが、ボード上に組み込まれる前に、
予めプログラムされている。そのソフトウェアのプログ
ラム可能性は、フィールドアップグレードを許容する。
【0144】パタンは、オフスクリーンメモリに格納さ
れる。ブレンダによる高速アクセスを行うには、各ブレ
ンダが、そのパタンのコピーを持つ必要がある。パタン
は、2つのフォーマット、即ち、レギュラー(regula
r)とミップマップ(mipmap)で格納される。開始アド
レス、Xサイズ、Yサイズおよびフォーマットを指定す
ることは、完全にパタンを記述することになる。セット
アップチップは、各頂点に対するU、Vパタン座標のセ
ットを保持する。それらは、ポリゴンの各ピクセルに対
して線形補間される。パタン配列に格納された値は、R
GBAの4つのグループである。そのパタン配列からの
各要素は、対応する入力ピクセル値と乗算される。 R=R入力 * Rパタン G=G入力 * Gパタン B=B入力 * Bパタン A=A入力 * Aパタン それから、結果は、シフト操作によって正規化される。
パタンが適用される方法として、異なる3種の方法があ
る。RGB色、A領域、またはその両方が使用可能であ
る。
【0145】次に、図12のブレンダASICブロック
図に関して説明する。ブレンダが、スライサを中断させ
た時、垂直バス(Vertical Bus)やスライサ垂直バスイ
ンターフェイス(Slicer Vertical bus interface)の
最後のパイプステージに残されている最後の数ワードを
吸収するには、その入力FIFOは、十分な深度であ
る。
【0146】ページ検索論理は、パイプラインを下るピ
クセルストリームで必要とされるのど同様に、遠い先を
チェックして、また、それら背中合わせのピクセルの幾
つが、同じページに入るか決定する。このことによっ
て、可能な限り長いページサイクル中で、メモリタイミ
ングが発生することを許容される。フレームバッファ3
8は、すべてのベンチマーク三角形がメモリバンクの同
一ページに残るように設計されている。一旦、ページ検
索論理が、ピクセルのストリームがページに適合してい
ると決定すると、そのピクセルのストリームだけが次の
下位のパイプラインステージに落ちて、新たなメモリサ
イクルを開始することが許される。
【0147】バンク1およびバンク2のアドレスコント
ローラは同一のものである。これらのバンクは、それぞ
れのメモリバンクに対する行アドレスおよび列アドレス
の複数のソースを生成する。スクリーンリフレッシュカ
ウンタは、9ビットラインカウンタであり、ステレオに
対して1024× 512本の解像度をサポートする。リンクポ
インタは、16ビットカウンタであり、ピクスリンク
(Pixlink)アドレスをエイリアス除去モード中に生成
する。アドレスバッファ選択レジスタは、IGBコマン
ドによってロードされ、単にサブメモリバンクポインタ
として使用される。垂直バス上のYフィールドはわずか
8ビットであり、バンク全体を直接アドレスするには不
十分であるために、これが必要とされる。
【0148】RAM制御機能は、プログラマブルステー
トマシンであり、VRAMおよびDRAMに必要なタイ
ミングすべてを生成する。異なるサイクルタイプを必要
とする異なる操作には、ページリードサイクル、ページ
ライトサイクル、ページリード−モデファイ−ライトサ
イクル、リード転送サイクル、ライト転送サイクル、専
用VRAMレジスタロードサイクル、CAS-ビフォア-
RASEサイクル、ページブロックライトサイクルが含
まれる。
【0149】RGBAUVブレンダブロックは、多重レ
ベルデータフローパイプラインであり、乗算器、算術演
算ユニット、シフト、レジスタ、マルチプレクサを含
む。サポートされる6つの基本機能は、αブレンド、非
αブレンド、Xピクセル操作、オーバーフローおよびア
ンダーフロー保護、テクスチャテクセル(texture texe
ls)の双線形補間、霧と霞みと深度のキューイングであ
る。リンクバッファは、32ワード×66ビットRAM
から構成される。専用アドレスジェネレータおよびコン
トローラは、バッファをサポートし、このバッファは、
ピクスリンクスタック(pixlink stack)に使用され、
PixBLT中に、中間バッファとして使用される。
【0150】比較論理ブロックは、RGBAUVブレン
ダからの結果をテストするための、24ビットのマグニ
チュード比較器から8個の大型比較器までの範囲の比較
器を含む。12ビットの比較器は、ピック論理モード
(Pick logic mode)に対するXY座標をテキスト化す
る。
【0151】α非ブレンド処理がときどき必要となる
時、αルックアップテーブルが、エイリアス除去処理中
に使用される。この非ブレンドは、8を6で割る関数で
ある。このルックアップテーブルは、αの逆数である。
インデックスは9ビットであり、出力ワードは9ビット
である。 ミクサASIC 1つの共通部分が複数の構成をサポートするため、ミク
サASIC40は、さまざまな機能をサポートする。I
GB30は、2つの主要な構成、即ち、単一IGB構成
と二重IGB構成を有する。ミクサは次の機能、即ち、
ビデオタイミング生成、ハードウェアカーソル(カーソ
ルRAM、十字および長方形ウィンドウ)、フレームバ
ッファブリンク論理、2つのバッファ選択論理、そし
て、二重IGBモードで、IGBフレームバッファを交
互に選択するMUX論理を備える。
【0152】ミクサは、3つの異なるカーソル機能をサ
ポートとする。これらは、一色の64×64のカーソル
RAM、フル-スクリーン十字カーソル、ウィンドウカ
ーソルである。カーソルRAMと十字カーソルは、Broo
ktree(ブルックトリー社製) BT431のオペレーション
とコンパチブルである。ウィンドウカーソル機能は、十
字カーソルと同様の方法で制御される。ミクサが、他の
セットのミクサからのピクセルを受取るモードで使用さ
れた場合、マスタIGBの第2ステージのミクサは、す
べてのカーソルデータを生成する。
【0153】カーソル分裂を避けるために、ミクサは、
全てのカーソル位置レジスタにシャドーレジスタを持
ち、全ての位置レジスタが、アップデートが可能になる
前に、ロードされる必要がある。その位置に影響を与え
る全レジスタがロードされた後で、かつ、そのミクサが
垂直ブランク期間にある時、そのカーソル位置は、スク
リーン上で更新される。
【0154】ローデイングの順番は、Xがロウ、Xがハ
イ、Yがロウ、次に、Yがハイである。これによって、
ソフトウェアがいつでもその位置をアップデートし、ハ
ードウェアが、垂直ブランクまでシャドーレジスタに新
しい値を保持することを許す。もし、すでに垂直ブラン
ククラスにあり、すべてのレジスタがロードされている
ならば、その位置は直ちに更新される。
【0155】各ミクサは、1ビット深度の64×64の
カーソルRAMを備える。3つのミクサが24ビットシ
ステムに使用された場合、7つのカーソル色が可能とな
る。
【0156】512バイトRAMには、自動インクリメ
ントアドレスポインタによってアドレスされ、一度に8
ビットロードされる。カーソルRAMのアドレス0は、
カーソルイメージの左上を示し、X方向に交差してアド
レスステップをインクリメントする。8箇所のRAM位
置は、各リードまたはライトサイクルごとにアクセスさ
れる。データビット7は、最下位のX位置であるカーソ
ルビットに対応する。すなわち、これは、データビット
0が表示されるところの左画面に表示される。
【0157】64×64カーソルは、X、Yカーソル位
置レジスタ内にロードされた値付近の33、31のオフ
セットの位置にその中心を置く。カーソル論理全体を制
御するクロックは、LD_CLK(RAMDACに対し
てドライブされるクロック)である。3つのカーソルす
べてが、非LD_CLK境界上の画面上に位置決めされ
るので、ミクサ内にバッファリング論理とミキシング論
理がなければならず、これによって、カーソルRAM、
十字カーソルおよびウィンドウカーソルを画面上のどこ
へでも配置することができる。
【0158】十字カーソルは、1、3または5つのピク
セル幅の水平垂直十字カーソルを生成する。十字カーソ
ルのサイズは、CH_WIDTHレジスタとCH_HEI
GHTレジスタによって指定される十字ウィンドウの境
界に限定される。カーソル位置レジスタは十字の中心を
決定するので、ソフトウェアは中心を十字ウィンドウ内
に存在するよう指定しなければならない。X CHOP
レジスタとY CHOPレジスタは、十字クリッピング
ウィンドウを位置決めする。十字自体は、カーソルRA
Mの中心に置かれ、X CUR_POSレジスタとY_C
UR POSレジスタによって位置決めされる。十字
は、CURSOR_CNTLレジスタによって、使用可
能または使用不可能にされる。十字ウィンドウカーソル
は、同一の色である。
【0159】ウィンドウカーソルは、長方形ボックスが
生成されることを除き、十字カーソルと同様の操作をす
る。セグメントの幅は、1、3または5個のピクセル幅
であり、ウィンドウサイズは、RW_WIDTHレジス
タおよびRW_HEIGTHレジスタによって決定され
る。ウィンドウカーソルセグメントは、幅と高さを決定
する値に関して、中心に置かれる。ウインドウカーソル
の位置決めは、十字カーソルを中心に置くのと同じ値に
よって中心に置かれ、また、CURSOR_-CNTLレ
ジスタを通して実行可能/不可能に設定される。ウィン
ドウカーソルは、十字カーソルと同色である。
【0160】表示される3つカーソルのどの組合わせも
可能である。カーソル以上のものが表示された場合に
は、ユーザは、どのようにカーソルの交差または重複が
処理されるべきかを決定することができる。カーソルR
AMと、十字カーソルまたは十字ウィンドウのいずれか
が使用可能な時、CURSOR_CNTLレジスタの優
先ビットは、カーソルRAMと十字/ウィンドウカーソ
ルのいずれが表示されるかを決定する。
【0161】ミクサのロジックは、ピクセルのブリンク
やハードウェアカーソルをブリンクさせることを許容す
る。そのブリンク機能は、フレームバッファから駆動さ
れる1つのブリンクビットに基づいたピクセル単位ベー
スで働く。ブリンクのレートとデューティサイクルは、
BRINK_RATE_ONレジスタおよびBLINK_
RATE_OFFレジスタによって決定される。B_CO
UNT_ONカウンタおよびB_CONUT_OFFカウ
ンタは、8でプリスケールされた垂直シンク(vertical
sync)によってインクリメントされる。この構成で
は、1280×1024 74Hzのビデオタイミングを
使用する場合、ブリンクレートのオンとオフ時間を、
0.1秒から5秒まで0.1秒単位で調整することができ
る。3つのミクサ全体に対するブリンクレートカウンタ
は、RESET時に同期化され、また、マスタビデオタ
イミングジェネレータからドライブされるVSYNC信
号に基づき、インクリメントする。BT459とは異な
り、ピクセルブリンクマスク当り8ビットを指定するこ
とは不可能である。単一ビットの使用可/不可ブリンク
が、供給されるすべてである。ブリンク色操作のモード
は1つしかない。ブリンク可能なピクセルは、イントリ
ンシックフレームバッファ値からBLINK_CLRレ
ジスタに指定された色までブリンクする。
【0162】3つのミクサは、8ビットの色を供給する
各ミクサに対して、単一ピクセルの全体の幅を定義する
ことが求められるので、フル24ビットのブリンク色の
定義が可能である。
【0163】フレームバッファデータブリンクに加え
て、カーソルをブリンクさせることもできる。CURS
OL_CNTLレジスタ中のCUR_BLINKビットを
セットすることによって、表示されるすべてのカーソル
は、ブリンクレジスタに指定されたレートでブリンクす
る。ユーザに対して柔軟性を付加するために、カーソル
がブリンクする方法として、プログラムを組み込む方法
がある。カーソルは、フレームバッファデータに同期し
たブリンクか、180゜位相を異にしたブリンクを行う
ことができる。これは、CURSOL_CNTLレジス
タによって制御される。
【0164】カーソルに対応するブリンク色はなく、R
AMDACのオーバーレイルックアップ内にロードされ
た色か、または透明かが選択される。
【0165】ミクサは、必要なビデオタイミングすべて
を生成する。ビデオタイミングに柔軟性を附与するため
に、そのビデオタイミングは、TI 34020 の後にモデル
化された複数の異なるレジスタにロードされる値によっ
て制御される。その解像度は、ステレオモードで、60
Hzと74Hzで1280x1024、また、120H
zで640x512である。すべてのレジスタは、リー
ド/ライトアクセスできるが、VCOUNTカウンタ
は、リードアクセスしかしない。VCOUNTのリード
アクセスを可能にすることによって、通常、垂直同期
(sync)に依存する機能に対する処理遅延時間を減
少させる。ビデオタイミングは、フリーランニング5X
ピクセルクロックから派生生成される。MODE_CN
TLレジスタのMASTER_EN構成ビットは、どの
ミクサがマスタビデオタイミングジェネレータかを決定
する。スレーブミクサは、同期(sync)信号をマス
タから入力し、そのビデオタイミングと同期化させる。 フレームバッファ フレームバッファ38は、メモリプレーンのセットであ
る。バッファ内のデータのほとんどは、表示される必要
はない。このため、フレームバッファ38は、2タイプ
のメモリ要素、即ち、256k×8 70nsの専用機能
VRAMと512k×8 70nsのDRAMとを含む。
フレームバッファ38は、図11Bに示すように、4つ
の基本セクションに分けられる。すなわち、表示バッフ
ァAと、表示バッファBと、表示バッファAとBに対す
る視覚化できない情報である。そのメモリは、5(X方
向)×4(Y方向)の平面配列である。全ての20個の
バンクが、互いに分離されているので、20段並列操作
が可能である。
【0166】パターンマップバッファは同じもの10個
から構成されているので、図11Bに示す全メモリは、
DRAMメモリの41.9メガバイトのすべてを含んで
はいない。10個のパターンマップの各々は、2つに分
けられ、各ブレンダ36に接続される2つのメモリブロ
ック間で分割される。図11Bに示すVRAMブロック
は、正確にVRAMメモリの全20.9Mバイトを示
す。
【0167】表示フレームバッファは、64ビットのフ
レームバッファワードの上位32ビットである。各ワー
ドは、各8ビットのR、GおよびBと、1ビットのダブ
ルバッファ選択ビット(DBS)と、1ビットのブリン
クビットと、1ビットのウィンドウクリップビット(W
CB)と、1ビットの消去クラスビットと(ES)と、
1つのリンクポインタバリッド(LPV)と、1ビット
のIDビットと、3ビットの予約ビットとを含む。
【0168】作業フレームバッファは、表示不要の情報
を含む。この情報は、エイリアス除去され、Zバッファ
リングされ、ブレンドされたピクセルを生成する際に使
用される。各ワードは、7ビットのα(A)値と、24
ビットのZ値と、16ビットのリンクポインタとを有す
る。作業フレームバッファ情報の複数レベルが、エイリ
アス除去に使用される。1以上のプリミテイブが、ピク
セルで可視である時、個々の因子は、Z深度順に、その
作業バッファの複数のレベルに格納される。
【0169】ピクスリンク(PixLink)バッファは、2
56×64ビットである。次のピクスリンク(PixLin
k)に対する次のポインタを格納するために、同一ペー
ジで隣接する2つの位置は常に相互に関連する。ピクス
リンク(PixLink)バッファは、24のRGBビット
と、24のZビットと、1ビットのNLK(Next link
on)ビットと、1ビットのOLT(Other link true)
ビットと、8ビットのMSWリンクポインタビットと、
8ビットのLSWリンクポインタビットと、7ビットの
α(a)ビットとを有する。
【0170】ウィンドウ境界に対するクリッピングは、
ピクセル当り1クリップビットで達成される。この機能
が実行可能とされている場合、ブレンダは、フレームバ
ッファの目的ピクセルについて、そのウィンドウクリッ
プビット(WCB)がオンにセットされているかどうか
をテストする。これによって、入力するピクセルがライ
トされる資格が与えられる。もし、WCBがオフ(OF
F)なら、その入力ピクセルは直ちに廃棄される。
【0171】ハイライトオーバライト機能においては、
ブレンダは、すべての入力ピクセルのRGB値に、フレ
ームバッファ内のそのピクセルの古いRGB値に加え
る。オーバーフローテストは、各々が加算された後に行
われ、真であれば、RGB値は最大値255,255,2
55に設定される。
【0172】フレームバッファ38の領域消去には、そ
の領域のピクセルのすべての値の初期化が必要である。
VRAM中のそれらの値は、非常に速く初期化すること
ができる。DRAM中の値の初期化速度は遅い。したが
って、速く消去できる単一ビットプレーンが確保され
る。消去クラスビットをセットすることで、そのピクセ
ルに対するDRAM中の値すべてが不要情報として見做
され、代わりに適切な初期値が用われるべきであること
を示す。
【0173】フレームバッファ38は、Iバス64経由
でTE42によって、直接リード/ライトできる。この
アクセス速度は、バーストモードでは、 128Mバイ
ト/秒、または、32Mピクセル/秒である。GE48
は、パイプライン経由でフレームバッファ38に書込
む。フレームバッファ38またはブレンダレジスタがア
クセスされる必要がある時、そのパイプラインは同期化
される必要はないが、同期(sync)が実行されない
なら、フレームバッファはレンダリングコマンドの意図
と一致しないクラスになるかもしれない。最初に、ブレ
ンダのアービトレーションは、IBLOCKOUTポー
トのテスト/セットによって得られなければならない。
次に、BLENDER REQUESTポートに"1"が
ライトされ、LOCKOUT信号を10個のブレンダす
べてに送出する。ブレンダは、Iバス転送の準備ができ
ていることを示すBLNDR_DRYによって、そのL
OCKOUTに応答する。その同期(sync)コマン
ドを受信すると同時に、そのブレンダは、BLENDE
R_BSY*をダイサに送出する。これによって、ダイサ
がさらにコマンドを送出することを防止する。LOCK
OUTの送出によってまた、ブレンダは、BLENDE
_BSY*を送出することによってパイプラインを凍結
させる。
【0174】フレームバッファ38は、5つの垂直バス
(各バス上には、2つのブレンダがある)に分けられる
ので、3ビットのX START REGISTERに
は、バスを選択するためにロードされる必要がある。ロ
ードされた値は、そのXアドレスのモジュール5を示
す。VERTBUS REGISTERを"0"値にセッ
トし、また、DMA制御レジスタのブロードキャストビ
ットをセットすることによって、10個のブレンダすべ
てを同報通信することができる。 レンダリングパイプラインの操作 レンダリング(スライサ/ダイサ)ASIC操作 スライサ/ダイサチップは、セットアップチップより供
給された情報を基にピクセル値を計算する。これは、点
の頂点および線セグメント、線、三角形に関する情報を
使用し、これらのプリミテイブの1つによって接触する
各ピクセルに対応する値を計算する。その結果としての
ピクセルは、垂直バス上の1対のブレンダチップに利用
される。
【0175】スライサ/ダイサは、3つのプリミテイブ
すなわち、点、線および三角形を処理する。三角形は、
セットアップASICから得られる3組の頂点情報と3
組のセグメント情報によって記述される。点および線
は、セットアップASICから得られる4組の頂点情報
によって記述される。線にはさらに4組の頂点情報画必
要である。
【0176】スライサ/ダイサは、主に、エイリアス除
去されたポリゴンをレンダリングするが、複数のエイリ
アス除去以外の関数(IGBコマンド)も有する。これ
らの関数は、フィル―ネクスト―ピクセル(fill-next-
pixel)、フィル―長方形(fill-rectangle)、フィル
―水平―スパン―ウイズ―スチプル(fill-horizontal-
span-with-stipple)であり、Xウィンドウのレンダリ
ングとテキスト操作をサポートする。さらに、ポリゴン
は、必要に応じて、エイリアス除去と共に、レンダリン
グすることができる。ポリゴンは、パタン情報を用いて
もレンダリングすることができる。
【0177】スライサ/ダイサASICは、主要な2個
の機能回路、すなわち、入力ユニット68と、ピクセル
生成ユニット70とを含む。入力ユニット68は、スラ
イサ/ダイサのフロントエンドである。これは、セット
アップASICによって供給された情報を解釈し、セッ
トアップASICでは実行されない付加的なセットアッ
プ計算を実行し、残りのASICで消費されるのに適切
なフォーマットで情報を生成する。チップの残りは、ピ
クセルジェネレータであり、抽象幾何オブジェクトをピ
クセルに変換することからの命名である。
【0178】スライサ/ダイサASICは、一対のセッ
トアップASICからデータを受信し、一対のブレンダ
ASICにデータを供給する。セットアップASICと
スライサ/ダイサASICとの間には43ビットバスが
2つある。これらのデータバスは、SETUP_VAL
信号を伴い、両データバス上の有効データの存在を示
す。スライサ/ダイサは、SLICER_BUSY信号
をセットアップASICに供給し、データフローを調整
する。
【0179】スライサ/ダイサASICからブレンダA
SICに至るデータバスは3つあり、共通して垂直バス
と名付けられている。スライサ/ダイサASICは、D
ICER_VAL信号を供給し、出力データバス上の有
効データの存在を示す。ブレンダビジー信号入力には、
BLNDR1_BUSYとBLNDR_BUSY2の2つ
がある。これらの信号は、ブレンダASIC内へのデー
タフローを調整する。
【0180】スライサ/ダイサASICは、複数の軸の
縦座標値を計算する。これらの軸は以下の通りである。 X、Y − プリミテイブによってカバーされるピク
セルのXおよびY座標。
【0181】Z − フロントクリップ面からの
ピクセルまでの距離。
【0182】U、V − パタンによってカバーされ
るピクセルのパタン座標。
【0183】R、G、B− ピクセルの色値。
【0184】A − プリミテイブ(PIXLI
NK)の一部によってカバーされる1ピクセルの領域ア
ルファ T − 透明度、表示された場合に浮出る下部の
色の百分率。 ポリゴンプリミテイブに関連するパラメータを参照する
ために、ここでは簡潔な名称を使用する。この名称は、
VHDL方式のレコード形式内に存在する。図1は、任
意の三角形の頂点およびセグメントに対する名称を示
す。頂点には、"P"とそれに続く数字で参照符号を付
す。最も左側の頂点は、常にP0である。図示の如く、
ポリゴンの反時計回りに番号が増加されている。セグメ
ントには、"P"とそれに続くセグメントが及ぶ端点の数
字で参照符号を付す。最左端点は、最初に指定される。
セグメントの名称は、プリミテイブによって様々に異な
るので(すなわち、三角形に対するセグメント2は、P
12とP21のいずれにもなり得る)、"S"とそれに続
く数字で呼ばれる。S0は、常にP0に関する最初の反
時計回りのセグメントである。
【0185】傾斜などのセグメント量は、常にセグメン
トの最左端に関して指定される。頂点およびセグメント
の量は、VHDLレコード形式またはCレコード形式と
して処理される。これらの構造に関連する値は、レコー
ドのフィールドとして参照される。このため、セグメン
トP01の傾斜は、P01.,Sとなり、逆傾斜は、P0
1.I.となる。このフォーマットを使用するその他のデ
ータとしては、基本色値にたいする"B"と、デルタ-X
(Delta-X)色傾斜に対する"DX"と、デルタ-Y(Delt
a-Y)色傾斜に対する"DY"である。例えば、"DY.T"
は、T軸のデルタ-Y(Delta-Y)値を表している。
【0186】基本コマンドには、"ドローポイント(d
raw point)"と、"ドロー三角形(draw
triangle)"と、"ドロー線(drawlin
e)"の3つがある。各基本コマンドに対するデータ
は、プリミテイブの種類に基づく所定のシーケンスで、
ストローブされて、スライサ/ダイサへ入力される。
【0187】プリミテイブ頂点は、セットアップチップ
によってソートされ、最左端頂点は常に頂点0となる。
残りの頂点は、頂点0から反時計回りに指定される。傾
斜および逆傾斜もセットアップチップによってソートさ
れる。傾斜0は、ポリゴンのセグメント0に対応する。
セグメント0は、頂点0をその左端点に有する。残りの
セグメントおよび逆傾斜は、セグメント0から反時計回
りに指定される。
【0188】点は、ダイヤモンド形のポリゴンとしてレ
ンダリングされる。この点は、4頂点と単一の基本色値
とを有する。透明も可能である場合は、基本の透明値も
有する。点コマンドには、2つのバージョンがある。す
なわち、透明の表現が可能なコマンドと、透明を表現で
きないコマンドとがある。透明を扱わない時、そのコマ
ンドの実行には、6サイクル必要である。透明を扱う時
には、7サイクル必要である。
【0189】三角形は、3頂点と、3傾斜と、3逆傾斜
とによって指定される。さらに、X座標またはY座標の
値の変化率を記述する基本値とデルタ値は、Z軸、R
軸、G軸およびB軸に対して指定される。透明を扱う場
合には、基本値とデルタも、T軸に対して指定される。
パタンを扱う場合には、基本値およびデルタが、U軸お
よびV軸に対しても同様に指定される。三角形コマンド
には、4つのバージョンがある。そのコマンドは、透明
とパタンのどの組合わせかによって変化する。
【0190】線は、4つの頂点、4つの斜度、4つの逆
斜度によって指定される。さらに、X座標値とY座標値
の変化率を記述する基本値とデルタ値は、Z軸、R軸、
G軸、B軸に対して指定される。もし、透明を扱う場合
は、基本値とデルタが、U軸とV軸に対して指定され
る。その線コマンドには、4つのバージョンがある。そ
のコマンドは、透明とパタンの組み合わせに依存して変
化する。
【0191】IGBコマンドには、"フィル-長方形(f
ill−rectangle)"と、"フィル-ネクスト-
ピクセル(fill−next−pixel)"と、"フ
ィル-スパン-ウイズ-スチプル(fill−span−
with−stipple)"の3つがある。これら
は、エイリアス除去をしないレンダリングコマンドであ
り、単一色値を有するピクセルまたはピクセルグループ
をレンダリングする。各IGBコマンドに対するデータ
は、そのコマンドのタイプによって所定のシーケンス
で、ストローブされて、スライサ/ダイサに入力する。
フィル-三角形(fill−rectangle)コマ
ンドは、スライサ/ダイサに一セットのピクセルを生成
させ、一定色の長方形領域をカバーさせる。このコマン
ドは、色値と、左下コーナーと右上コーナーの座標とを
指定する。基本のZ値、および基本値がまた、指定され
る。
【0192】フィル-ネクスト-ピクセル(fill−n
ext−pixel)コマンドは、前にレンダリングし
たピクセルのX座標をインクリメントし、次のピクセル
を、指定された色でレンダリングする。このコマンドの
最初の発生は、一領域に関するフィル-長方形(fil
l−rectangle)コマンドが先に実行されるべ
きである。
【0193】点画(stipple)コマンドは、水平スパン
にわたるピクセルを、指定された1ビット深度パタンで
レンダリングする。点画データタイプの各ビットは、個
々のピクセル値を表し、最の左のピクセルから始まる。
もし、ビットがセットされているなら、そのピクセルに
対する色は、点画フォーグラウンドレジスタによって決
定される。もし、ビットがクリアされているなら、その
ピクセルは、変更されないままか、あるいは、点画モー
ドレジスタに格納された点画モードに依存する点画バッ
クグラウンドレジスタに格納された値でレンダリングさ
れる。
【0194】スライサ/ダイサチップは、ソフトウェア
によってロード可能な9個の内部レジスタを備える。こ
れらは、さまざまな関数を制御し、チップが使用する重
要なパラメータを保持する。
【0195】最初の4つのレジスタは、点画のためのパ
ラメータ用である。点画長レジスタは、5ビット幅であ
る。点画長と、点画コマンドで扱う点画データタイプか
ら、ビット数が決められる。その値の範囲は0〜31で
あり、また、それぞれは、1〜32までの点画長を示
す。点画値0を用いて、点画タイプは、点画バックグラ
ウンド色でピクセルをレンダリングすべきか、あるい
は、全くレンダリングしないかを示す。点画タイプが0
の時、点画値が0であれば、ピクセルはレンダリングさ
れない。点画タイプが1の時、点画バックグラウンド色
を用いて、ピクセルはレンダリングされる。点画フォア
グラウンドレジスタと、点画バックグラウンドレジスタ
は、24ビットのRGB色値を保持し、点画をレンダリ
ングする場合に、それらを使用する。
【0196】モードレジスタの3ビット各々は、スライ
サ/ダイサ機能のために使用可能なモードである。この
モードでは、エイリアス除去、パタン、透明を扱う。
【0197】アルファラウンドアップレジスタは、アル
ファ(A)乗算後に、丸め処理を行うために用われる大
きな小数を格納する8ビットワードである。幅レジスタ
および高さレジスタは、レンダリングウィンドウの右上
座標を保持する。この長方形領域外のすべての値は、ク
リップされる。
【0198】ブレンダイネーブルレジスタは、適切なビ
ットを設定することによって、スライサ/ダイサから、
より下位のパイプラインコマンドを受取るように、ブレ
ンダチップをイネーブルにすることができる。各スパン
に対して、このレジスタには別々のイネーブルビットが
あるので、ブレンダチップペアは、個々にイネーブルに
されることができる。
【0199】スライサ/ダイサASIC34は、2個の
主要なユニット、即ち、入力ユニット68とピクセルジ
ェネレータユニット70に分割される。
【0200】入力ユニット68は、複数セグメントが交
差する最近隣の整数X値と整数Y値を用いて、各セグメ
ントの第1の切片値を計算する。
【0201】さらに、入力ユニット68は、基本色値
(R、G、B、UとV)と、基本透明値(T)を調整
し、また、ポリゴンの頂点を伴い供給されるそれらの値
から得られる基本Z値を調整する。入力ユニット68が
これらの基本値を調整するため、それらの値は、頂点を
カバーするピクセルの重心に対する正確な値を表す。
【0202】ピクセルジェネレータユニット70は、ポ
リゴンプリミテイブを一連の垂直スパンにスライスし、
各スライスされたスパンの各ピクセルの各軸に対する値
を計算する。結果のピクセルは、ブレンダASIC36
のペアに出力される。
【0203】入力ユニット操作: スライサ/ダイサ入
力ユニット68は、ピクセルジェネレータユニット(P
IXGEN)70に必要な複数の重要なセットアップ計
算を行う。ポリゴンプリミテイブに対して、入力ユニッ
ト68は、面積計算のために切片値を計算し、また、補
間に使用する調整された基本色値を計算する。IGBコ
マンド(フィル-ネクスト-ピクセル(fill-next-pixe
l)、フィル-長方形(fill-rectangle)、フィル-水平-
スパン-ウイズ-スチプル(fill-horizontal-span-with-
stipple))に対して、入力ユニット68は、同じ値を
供給し、ピクセルジェネレータに正確な値を出力させ
る。
【0204】本実施例のレンダリングエンジンの目的の
1つは、40クロックでカタログポリゴンの処理を完了
することにある。入力ユニット68は、単一ステートマ
シンでの集中制御によって、これらの要求を満たしてい
る。このステートマシンは、非常に大きいことは当然で
ある。ステートマシンは、一般に、一度に一つの作業し
か行わない(例えば、レジスタへのロード、値の計算
等)。これは、同時に所望の操作に影響するデータパス
におけるすべてのステージをセットアップするのに必要
である。もし、そのデータパスがパイプライン化されて
いないなら、これは問題にならない。しかし、40Mh
zでは、そのデータパスは、大掛かりにパイプライン化
されなければならない。このため、与えられた計算に
は、多くのサイクルがかかり、単一操作の必要条件と矛
盾する。
【0205】本発明者は、パイプライン制御の概念を導
入することによって一度に一つの作業を行う制限を緩和
せずに、この問題を解決した。図13は、その最も単純
な形態を示す。基本的には、データパス制御信号は、デ
ータと共にパイプラインで供給され、ステートマシン
は、特定のデータ値、または同時に計算に関する制御信
号をすべてを生成する。データパイプラインと制御パイ
プラインとを整合させることによって、データパスは全
くパイプライン化されていないように形成することがで
きる。このため、ステートマシン内で一度に一作業しか
行わないとの制限を性能に影響させずに適用することが
できる。
【0206】本文に使用される表記上の取決めは、デー
タ制御信号に対してアルファベットのポストスクリプト
を、データパス制御信号に付記することであり、適用さ
れるパイプライン方式のクラス数を示す。接尾字Aは、
パイプライン方式の1ステージを、接尾字Bは2ステー
ジを、接尾字Cは3ステージを示し、以後も同様であ
る。
【0207】接尾字なしは、パイプラインなしを意味す
る。この表記法は、図13〜図14に示した。
【0208】制御パイプライン方式のさらに完全な例
は、図14に示され、データのパイプラインステージ数
は一定ではない。図13では、データ入力およびデータ
出力間のどのパスも、2つのレジスタを通過する。図1
4では、パスのうち1つだけが、2つのレジスタを通過
する。計算に依存して、データパスの異なる部分は、異
なる時間に用いられることができる。このため、データ
パスの与えられた要素(YMUXなど)は、その計算に
依存した異なる時間に制御される必要があるかもしれな
い。図14では、データがXMUXからなのか、右端の
入力レジスタからなのかに依存して、YMUXは1サイ
クル後または2サイクル後に制御を必要とする。YMU
Xの選択デフォルト(インアクテイブ)値を慎重に選択
すれば、この単純な例における問題は一掃されるが、一
般的に正しくはない。
【0209】図14に示すように、本実施例のパイプラ
イン方式による解決方法では、ステートマシンが、異な
るステージの接尾字を有する同一制御信号の複数のバー
ジョンを生成することを許す。このことで、ステートマ
シンが異なるアイテムでその要素を制御することによっ
て、その計算に依存する異なる時間に使用されるデータ
パス要素の問題解決する。この制御パイプライン論理
は、要素を実際に制御するために、信号の適切な遅延バ
ージョンを組合わせる。図14の例では、この組合わせ
機能は、ORゲートを用いて達成される。ここで、OR
ゲートは、一般的な解決方法ではないことに留意された
い。使用すべき適切なゲートは、ステートマシンによっ
てその信号に割当てられたデフォルト(インアクテイ
ブ)値の機能を持つ。もし、デフォルト(インアクテイ
ブ)値がゼロである場合、図14からわかるように、O
Rゲートは、複数の信号を効果的に合成する。しかしな
がら、デフォルト(インアクテイブ)値が1なら、AN
Dゲートが使用される必要がある。
【0210】異なる時間にデータパス要素を用いる他の
結果の可能性としては、衝突がある。すなわち、2つの
計算が同時に同一の要素を使用することを要求する場合
である。
【0211】この問題の解決方法の1つは、ハードウェ
アインターロック論理である。しかしながら、ステート
マシンをそのような衝突をさけるように設計するほうが
極めて簡単である。これは、本実施例のレンダリングシ
ステムに使用される解決方法である。ステートマシンは
集中制御されているが、いくつかの制御要素は、その関
連データと共に遅延される必要がある。ステートマシン
において直接これらの遅延された制御要素を取り扱う
と、一時に一作業の制限が反転する。
【0212】より良い解決方法は、データパスを伴う制
御パイプライニング経由で制御を提供するステートマシ
ンと、ステートマシンに対してスレーブとして動作する
自律ユニットとしての、これらの遅延可能な機能を用い
ることである。本実施例の制御アーキテクチャは、単一
のステートマシンでほとんどすべての制御機能を集中化
させ、1度に1作業のみを行い、入力ユニット68の残
りに対応するインタフェースを有する。
【0213】次に、ステートマシン(INSTATEお
よびINNEXT)を構成するモジュールと、制御パス
(INSTB、INVLDおよびINMOD)を完成す
る周辺制御機能について説明する。
【0214】入力ユニットステートマシン(INSTA
TE)はミーリーマシンであり、2ブロック、即ち、ス
テートレジスタと、次ステート/出力論理とを備える。
ステートレジスタは、INSTATEブロック内で実現
され、次ステート/出力論理は、INNEXTという名
の分離ブロック内のINSTATE下にインプリメント
されている。この階層的分割によって、ステートマシン
の合成は容易になる。
【0215】入力ユニットステートマシン次ステート/
出力論理(INNEXT)は、122のステートをも
ち、2つのホットステート(フリップフロップ)符号化
を利用する。第1のホットフリップフロップは、どのス
テートのクラスがアクテイブであるかを示し、もう一方
のホットフリップフロップは、そのクラス内のどのステ
ートがアクテイブであるかを示す。これらのフリップフ
ロップは、クラス間で共用される。結果としてのステー
トベクトルは、45ビットの幅を持つ。図15は、正確
な符号化処理を示す。VHDLのステートで使用される
命名規則は、<クラス><操作>である。このような名
前が与えられているように、図15は、どの2つのフリ
ップフロップがホットであるかを示す。例えば、ステー
トマシンが、POINT_X1ステートにある時、フリ
ップフロップ#41は、ホット(POINTクラスに対
して)であり、フリップフロップ#1はホット(X1操
作に対して)である。ここで、開始ステートは1つだけ
であるので、STARTクラスには対応する操作がない
ことに留意されたい。このため、ステートマシンがその
開始クラスにいる場合、1つのフリップフロップ(#4
4)のみがホットである。これは、2つのホット規則に
対する唯一の例外である。
【0216】ステートマシン操作自体は、単純である。
ステートマシンは、スライサ/ダイサ入力ユニットの他
のモジュールとのみ対話し、外界とは直接対話しない。
ステートマシンは、制御パイプラインを使用して、他の
モジュールを制御する。複数のモジュールからステータ
ス値とデータ値を受取り、これらのデータから判断し
て、ステートの変化を決定する。
【0217】ストローブジェネレータ(INSTB)
は、ピクセルジェネレータでのラッチのローデイング制
御を行う入力ユニット信号を生成する。一般には、ラッ
チに対しては正確に1ストローブある。データパス中で
のパイプライン処理のため、ステートマシンは、これら
のストローブを直接ドライブできない。このため、ステ
ートマシンは、ストローブがデータと同時間にそのラッ
チに到着するように、ストローブジェネレータに対し
て、何時どんなストローブを出すかを通知する。標準制
御パイプライン方式は、この目的のために使われる。ス
トローブジェネレータは、実際には複数の制御パイプラ
インを持つ。
【0218】有効ジェネレータ(INVLD)は、ピク
セル生成ユニットとのハンドシェークを実行する。入力
ユニットは、全データセットのさまざまなサブセットが
4つの有効信号、即ち、X0VLD、XVLD、XYV
LD、CVLDによって何時利用できるかを示す。
【0219】有効ジェネレータは、各有効ビットに対す
るカウンタを含む。これらのカウンタは、通常0であ
る。ステートマシンは、N以上のサイクル後に出力され
るべき有効値を必要とすると決定した場合、Nをカウン
タにロードする。カウンタは、ゼロにデクリメントし、
有効値が出力される。
【0220】有効値が出力された後、その対応データセ
ットがピクセルジェネレータにストローブされるまで、
出力され続ける。X0VLD、XVLDおよびXYVL
Dに対し、ピクセルジェネレータは、これがXYSTB
によるものであることを示す。有効ジェネレータは、ス
テートマシンに送り返される2つの出力を生成する。ス
テートマシンは、これらの信号を使用し、ピクセルジェ
ネレータが前の値を作業レジスタにリードする前に、新
しいデータをピクセルジェネレータのラッチにライトす
ることを防ぐ。
【0221】モジュールカウンタ(INMOD)は、フ
ィル-ネクスト-ピクセル(Fill-Next-Pixel)性能を最
適化するために付加されていた。一般に、フィル-ピク
セル(Fill-Pixel)(例えば、幅=高さ=1.0のフィ
ル三角形(Fill-rectangle))の次には、多数のフィル
-ネクスト-ピクセル(Fill-Next-Pixel)コマンドが続
く。このような各プリミテイブは、以前のものの右側に
対する1スパンであり、第5のスパン毎に処理されるの
で、各第5のピクセルが出力される。
【0222】モジュールカウンタは、この状態の対称性
を利用する。ピクセルジェネレータに対して、5回中4
回は出力が不要の各フィル-ネクスト-ピクセル(Fill-N
ext-Pixel)をパスする代わりに、モジュールカウンタ
は、どのピクセルが廃棄されることができるかを見失わ
ないように監視するため、入力ユニットステートマシン
は、ピクセルジェネレータの関与無しに、単純にこれら
をビットバケット(bit bucket)に捨てることができ
る。フィル-ネクスト-ピクセル(Fill-Next-Pixel)の
大半をフィルタリングすることによって、ピクセルジェ
ネレータは、それらと遭遇しないため性能は相当に高ま
る。
【0223】入力ユニットデータパス: 次に、入力ユ
ニットデータパスを構成するモジュールについて詳細に
説明する。
【0224】入力データパスの単純化ブロック図を、図
16Bに示す。入力FIFO(INFIFO)ユニット
72は、セットアップASICと入力ユニット68間に
レートバッファを備える。INFIFO72はまた、ス
ライサ/ダイサASIC34とセットアップASIC3
2間に必要なハンドシェークプロトコルを実現する。
【0225】データは、SETUPDA74とSETU
PEDB76と呼ばれる2つの43ビットバス上のセッ
トアップチップから受取られる。そのデータは、SET
UPVLDと呼ばれる有効信号によって資格が与えられ
る。入力FIFO72が一杯になり始めると、ビジー信
号をセットアップチップに出力する。この信号は、SE
TUPBSYと呼ばれる。入力FIFOは、SETUP
BSYを十分早い時期に出力するので、有効データが、
FIFO72内の空間がないために失なわれるというこ
とは決してない。
【0226】有効データは入力レジスタを通過し、8の
深度のラッチベースドフォールスルーFIFO(latch
based fall-through FIFO)を介し、出力レジスタに入
る。このため、入力FIFO72は、実際には10の深
度である。
【0227】入力FIFOのデータ出力は、IF_RE
G_A 78とIF_REG_B 80と呼ばれる。これら
は、43ビットバスであり、SETUPDA 74とS
ETUPDB 76とに対応する。エンプテイ信号IF_
REG_EMは、データに資格を与えるために供給され
る。最後に、ステートマシンからの入力IF_RDは、
入力FIFO出力レジスタから、カレントのデータをス
トローブする。
【0228】フォーマッタ(INFMT)82は、デー
タパスに入る全ての値を、類似のフォーマットの中に入
れ、パスに入る値すべてに対する単一エントリポイント
を提供し、もし、セグメントの逆傾斜がゼロになると、
ステートマシンに通知する。
【0229】下位パイプFIFO(INLP)84は、
スライサに対して一切用いないセットアップチップから
多くのコマンドを受取る。そして、それらのコマンド
は、ブレンダに向かうパイプにパスされる必要がある。
これらのコマンドは、入力ユニットによって下位パイプ
FIFO内に置かれ、ピクセルジェネレータの出力ステ
ートマシンによって適切な時間に読み出される。
【0230】FIFO84内に置かれたデータの大半
は、下位パイプデータであり、そのデータにちなんでそ
のユニット名が付けられている。しかしながら、各グラ
フィックオブジェクトにおいて、入力ユニットステート
マシンは、"ロード-スライサ(Load-Slicer)"コマンド
を、そのFIFOに入力させる。このコマンドは、実際
にはブレンダに転送されない。そして、そのコマンド
は、ピクセルジェネレータ出力ステートマシンが下位パ
イプデータとピクセルデータとを同期化させるために使
用するダミートークンとしてたまに働く。下位パイプF
IFOデータ入力は、入力FIFOのA出力レジスタの
末尾32ビットである。有効データは、フォールスルー
FIFO(fall-through FIFO)を通過し、出力レジス
タに入力する。このため、FIFOの深度は9である。
ピクセルジェネレータの出力ステートマシンからの入力
は、FIFOの出力レジスタからのカレントのデータを
ストローブする。
【0231】ソフトウェアレジスタユニット(INSR
EGS)86は、スライサソフトウェア構成レジスタの
すべてを含む。これらのレジスタには、入力FIFO
(INFIFO)からのデータ出力がロードされる。3
ポートRAM(INRAM)88は、45ビットレジス
タファイルによる8ワードに、1つのライトポートと2
つのリードポートを供給する。ライトデータは、フォー
マッタ出力(FMT)、あるいは、加算器出力(AD
D)から来る。ここで、フォーマッタ出力は、43ビッ
ト幅であることに留意されたい。補正するために、筆者
らは、符号ビットを2回複製し、45ビットまでその値
を符号拡張する。ここで、このユニット88は、ステー
トマシン制御信号の遅延バージョンをどのように組合わ
せるかを定義し、ある場合には、すべてのバスのビット
すべてがステートマシンから出力されないことに留意さ
れたい。
【0232】小数数学論理(INFMATH)90にお
いて、入力データは、3ポートRAM(RAM_AD
O)のAリードポートから入力し、0.6の2の補数と
して扱われる。入力データは登録され、複数の算術関数
の一つがそれに適用される。その結果は2.6の2の補
数であり、登録され、FMATH[7:0]として出力
される。
【0233】ノーマライザ(INFORM)92の入力
は、フォーマッタ82の出力である。この入力は、43
ビットの2の補数である。10進数の仮数点の位置はさ
まざまである。また、ノーマライザに関する限りは、そ
の位置とは無関係である。ノーマライザは、4ビットの
指数を加えることによって、43から29ビットまでの
仮数部のビット数を減少させる。ノーマライザの出力は
登録される。
【0234】乗算器(INMUL)94は、3つの入
力、即ち、ノーマライザ94の仮数部出力と指数部出力
(NORM[28:0]、NORM_EXP[3:
0])、小数数学出力(FMATH[7:0])を受取
る。NORM[28:0]とNORM_EXP[3:0]
に対する値は、2の補数計算を用いて乗算される。37
ビットの結果、すなわちMUL[36:0]が登録され
る。乗算マクロ自体は、パイプラインレジスタを含み、
入力から出力に至るまでの全体的遅延は2クロックであ
る。仮数部と指数部の同期を維持するために、乗算器ユ
ニットは、二重にNORM_EXPを登録する。第2の
レジスタの出力は、MUL_EXP[3:0]と呼ばれ
る。FMATH入力は、[2.6]の固定小数点数であ
るため、指数は6だけインクリメントされなければなら
ない。何故なら、NORMでの10進数小数点が乗算の
結果シフトする場所数が6であるからである。デノーマ
ライザは、6ビットシフトを行う。
【0235】デノーマライザ(INDENORM)98
の入力は、乗算器の仮数出力および指数出力(MUL
[36:0]およびMUL_EXP[3:0])である。
デノーマライザは、シフト演算を実行し、その数を43
ビットの固定仮数点フォーマットに戻す。そのために、
ノーマライザと乗算器のアルゴリズムがあり、そのシフ
トを実行する。このことによって、10進数小数点をそ
の元の位置に正確に戻す。この出力は登録される。
【0236】加算器(INADD)98は、2つの登録
mux(マルチプレクサ)から入力する単なる登録加算
器である。A-muxレジスタおよびB-muxレジスタ
の出力は、加算器自体に供給される。この加算器は、4
5ビットの高速並列加算器である。この加算器は、キャ
リー入力/出力を持たない。内部はパイプライン化され
ていないが、レジスタが出力に置かれている。レジスタ
出力(ADD[44:0])は、ユニット出力である。
【0237】比較器(INCMP)100は、登録出力
を有する19ビットの2の補数のレスザン(less-tha
n)比較器である。フォーマッタ(FMT)出力の27-
9ビットは、加算器のB-mux出力(ADD_BMU
X)の27-9ビットと比較される。INCMP(CM
P)は、FMT < ADD_BMUXの場合はハイを、
それ以外の場合はロウを出力する。この出力は、ステー
トマシンによって使用され、S1.XとS2.Xとを比
較し、適切な頂点の並びを決定する。
【0238】出力MUX(INOUMUX)102は、
複数の2−1(two-to-one)のmuxを含む。これらの
muxは、どのデータ値がどのピクセルジェネレータ
に、どのバスを用いて入力されるかを選択する。通常、
計算値はB出力バス(LDDATAB)に置かれ、非計
算値はA出力バス(LDDATAA)に置かれる。ただ
し、IGBコマンド処理中は、しばしば逆の割当が必要
になる。出力Muxは、これら状態に対応する。
【0239】次に、入力ユニットの動作を詳細に説明す
る。
【0240】スライサ/ダイサ34は、セットアップA
SIC32によって供給されるデータに対して一連の計
算を行う必要があり、その後、ピクセル生成プロセスを
開始することができる。入力ユニット68はこうした計
算を実行する。
【0241】点、線または三角形を構成する各線セグメ
ントに対し、入力ユニット68は、左端点に対するX座
標値とY座標値と、右端点に対するX座標値とY座標値
と、傾斜値と、逆傾斜値とを受取る。ピクセルジェネレ
ータユニットは、入力ユニット68が計算する必要のあ
る各線セグメントに対して、さらに3つのデータ値を要
求する。これらの値は、次Y上のX(X-on-next
-Y)と、次X上のY(Y-on-next-X)と、セグ
メント構成値である。
【0242】図17を参照して、次Y上のX(X-on-
next-Y)値は、セグメントがそのセグメントの左
端から右に移動することで交差する第1の整数Y値での
第1のX切片である。言い替えれば、セグメントの左端
点から開始して、整数のY座標値(即ち、そのY座標値
は水平グリッドを交差する)を有するセグメント上の点
に達するまで、セグメントに沿って移動する。この点の
X座標は、線セグメントに対する次Y上のX(X-on-
next-Y)値として定義される。ある特別な場合に
ついも述べる。左端点が、整数のY座標値を持つ時、こ
の点は無視され、整数のY座標値を有する線セグメント
に沿ったその次の点が検出される。
【0243】任意の線セグメントに対しては、次Y上の
X(X-on-next-Y)値が、左端点のX座標と、
左端点のY座標と、逆傾斜の関数として計算される。こ
のことは、図17に示されている。ここで、逆傾斜の符
号によって僅かに異なる公式が適用されることに留意さ
れたい。また、水平線(すなわち、傾斜が0)の場合、
次Y上のX(X-on-next-Y)値は、定義されな
いことにも留意されたい。入力ユニット68は、この場
合を検出しないが、代わりに、不正確な値を生成する。
ピクセルジェネレータは、この場合はいずれにせよ、次
Y上のX(X-on-next-Y)値を使用しないの
で、ゴミ値を生成することが許容される。
【0244】次に、図16Bを参照して、次Y上のX
(X-on-next-Y)値を計算する入力ユニットを
通るデータパスについて説明する。
【0245】X座標値とY座標値は、逆傾斜以前に、セ
ットアップチップから受取られる。入力ユニットは、3
つの値すべてを計算に使用するので、X値とY値は、逆
傾斜値くるまでどこかに格納される必要がある。これら
の値は、セットアップチップから、[13.6]の2の
補数として受取られ、入力FIFO(INFIFO)を
通過して、フォーマッタ(INFMT)によって、[2
8.15]の2の補数に再フォーマットされ、[30.1
5]の2の補数まで符号拡張され、そして、3ポートR
AM(INRAM)にライトされる。
【0246】その後、逆傾斜値がくる。これは、[1
5.15]の2の補数として受取られ、入力FIFO
(INFIFO)を通り、フォーマッタ(INFMT)
によって、[28.15]の2の補数に再フォーマット
され、ノーマライザ(INNORM)によって、29ビ
ットの仮数と4ビットの指数に正規化され、そして、乗
算器に入力する。同時に、左端点に対するY座標の小数
上位6ビットが3ポートRAMから読み出され、小数A
LU(INFMATH)に入力し、ここで、次の公式が
適用される。 if(I<0) f(fracy) <= −fracy; else f(fracy) <= (1−fracy); end if; ここで、fracyは小数のY座標値であり、Iは逆傾
斜である。その結果は、[2.6]の2の補数であり、
乗算器に入力される。
【0247】調整された小数のY座標値は、正規化され
た逆傾斜と乗算される。その結果は、デノーマライザ
(INDENORM)によって、[28.15]の2の
補数にデノーマライズされ、加算器(INADD)に入
力される。同時に、左端点に対するX座標も、3ポート
RAM(INRAM)から読み出され、加算器に入力さ
れる。それら2つの値は合計されて、その結果である、
次Y上のX(X-on-next-Y)値である[30.1
5]の2の補数は、出力mux(INMUX)を通過し
て、計算値に対して通常使用されるBバス上に至り、そ
して、ピクセルジェネレータに入力する。
【0248】次X上のY(Y-on-next-X)値
は、セグメントの左端点から右に移動することでそのセ
グメントが交差する第1のスパン境界を有する第1のY
切片である。線セグメントの左端点に始まり、整数のX
座標値(すなわち、そのX座標は垂直グリッドと交差す
る)を有するセグメント上の第1の点が検出される。こ
の点のY座標値は、線セグメントに対する、次X上のY
(Y-on-next-X)値として定義される。
【0249】以下に説明するように、次X上のY(Y-
on-next-X)値計算と、次Y上のX(X-on-n
ext-Y)値計算はとても類似している。本質的に、
上述したのと同じ場合もまた、ここで述べられる必要が
ある。すなわち、左端点が整数のX座標値を持つ場合、
それは無視され、また、線セグメントに沿う整数のX座
標値を持つ次の点が検出される。
【0250】任意の線セグメントに対し、次X上のY
(Y-on-next-X)値は、左端点のX座標と、左
端点のY座標と、傾斜の関数として計算される。このこ
とは、図18に示されている。ここで、垂直線の場合、
次X上のY(Y-on-next-X)値は定義されてい
ないことに注意されたい。入力ユニットは、この場合を
検出しない代わりに、不正確な値を生成する。ピクセル
ジェネレータは、ここでは、次X上のY(Y-on-ne
xt-X)値を使用しないので、ゴミ値の生成が許容さ
れる。
【0251】XとYとが入れ代わり、傾斜は逆傾斜に代
わり、小数ALU(INFMATH)に以下の単純な公
式を適用する以外は、そのデータは、次Y上のX(X-
on-next-Y)計算と同様の方法で、入力ユニット
データパスを介してシャフルされる。 f(fracy) <= (1−fracy) ここで、fracyは、小数のY座標値である。その他
の点では同様である。
【0252】セグメント構成値は、ステートマシンによ
って計算される。データパスがレンダリングすることの
唯一の支援は、フォーマッタ(INFMT)に配置され
る比較器によって、0の逆傾斜値を識別することと、比
較器(INCMP)によって、座標値を比較することで
ある。
【0253】次に、セグメント構成を構築するさまざま
な値について説明する。
【0254】セグメントがオブジェクトに存在しない
か、垂直であるなら、そのセグメントは無効であると定
義される。無効としての垂直セグメントの指定は、無効
とされる。なぜなら、垂直線より上の領域が、常にゼロ
であり、そして、その領域すべてがピクセルジェネレー
タが関係するためである。
【0255】セグメントの有効性を決定するための規則
は、以下のように単純である。 (1) セグメントインデックスが3であり、オブジェ
クトが三角形である場合、そのセグメントは無効である
(三角形は、セグメントは0、1、2しか持たないた
め)。
【0256】(2) セグメントが垂直なら(すなわ
ち、フォーマッタ[INFMT]が決定したように、そ
の逆傾斜が0である)、セグメントは無効である。
【0257】(3) その他の場合は、セグメントは有
効である。符号ビットは、セグメントがオブジェクトの
最上部を形成するか底部を形成するかを識別する。特
に、セグメントがオブジェクトの最上部を形成する場合
には、ハイに設定され、それ以外はロウに設定される。
セットアップチップによって定義された頂点順番付けル
ールは、このビットがどのようにセットされてるかを決
定する。4つのセグメントを有するオブジェクトに対し
ては、セグメント0および1は常にオブジェクトの底を
形成し、セグメント2および3は常にオブジェクトの最
上部を形成する。
【0258】三角形に対しては、セグメント0は常時三
角形の底部を形成し、セグメント2は常に三角形の最上
部を形成するが、セグメント1はいずれにも成り得る。
その状態を決定する最も簡単な方法は、頂点1のX座標
(P0.X)を頂点2のX座標(P0.2)と比較し、
頂点1が頂点2の左右いずれにあるかを検出することで
ある。セグメント1より左側にある場合は、オブジェク
トの底部を形成し、それ以外は最上部を形成する。
【0259】左の端点インデックスと右の端点インデッ
クスは、頂点がセグメントに対して左の端点を形成する
か右の端点を形成するかを識別する。それらの符号化
は、上述の番号付け規則に従う。
【0260】セットアップチップによって定義される頂
点順序付けルールは、これらフィールドがどのようにセ
ットされるかを決定する。入力ユニットが受取るすべて
の点、線または三角形に対し、基本色値は補間される各
軸に対して受取られる。ここで、色は、その広い意味で
の色と理解されたい。問題は、これらの色値は、第1の
入力ポリゴン頂点(すなわち、P0.X、P0.Y)に
適用される正確な値に対応し、他方、ピクセルジェネレ
ータは、第1の入力頂点を含むピクセル中心に対して、
正確な基本色値を期待することである。このため、入力
ユニットは、その基本値を調整しなければならない。
【0261】どの与えられた色軸(仮想的軸Cのよう
な)に対しても、調整された基本値(AB.C)を、P
0.XとP0.Y座標と、B.C(Cベース)値と、D
X.C(C−X勾配)値と、DY.C(C−Y勾配)値
の関数として計算することができる。これについては、
図19に示す。
【0262】図16Bを参照して、P0.X座標値とP
0.Y座標値は、セットアップチップから最初に入力さ
れる。これらは、[13.6]の2の補数として受信さ
れ、入力FIFO72を通過し、フォーマッタ82によ
って、[28.15]の2の補数に再フォーマットさ
れ、3ポートRAM(INRAM)に書込まれる。その
後、DX.C値とDY.C値が同時に受信され、入力F
IFO72を通過する。この時点で、データパスは一度
に1つの値しか収容できないので、DX.C値とDY.
C値は直列化されて、DX.Cが最初に、そしてDY.
Cが1サイクル後に入る。これらは、フォーマッタ82
によって符号拡張され、ノーマライザ92によって正規
化され、乗算器94に伝送される。同時に、小数上位6
ビットP9.XおよびP0.Y(この順で)を3ポート
RAMから読み出し、小数ALUにパスする。ここで
は、次の公式が適用される。 f(frac) <= 0.5−frac; ここで、fracは、小数のX要素と小数のY要素であ
る。この結果は、[2.6]の2の補数となり、乗算器
94に入力されて、それぞれDX.CとDY.Cとに乗
じられる。正規化された[DX.C*(0.5−fra
c(P0.X)]および[DY.C*(0.5−fra
c(P0.Y)]の積は、デノーマライザによってデノ
ーマライズされる。DX.C項は、加算器98に入力
し、そのA入力レジスタにロードされ、そして、B入力
レジスタに移動される。この時点で、項DY.CはA入
力レジスタにロードされ、その2つの数は加算される。
結果は、加算器98に存在し、フィードバックされてI
NRAM88に格納される。後に、B.C.値が受取ら
れ、入力FIFOに渡される。フォーマッタ82は、そ
の値をゼロ拡張し、それを十分な追加小数ビットに埋め
込み、その10進小数点位置がDX.C値とDY.C値
の位置とに一致させる。小数ALU90の出力は、1.
0に強いられ、そして、この値は乗算器94へのもう一
方の入力に入る。B.C.値は、乗算器を出て、デノー
マライザ96によってデノーマライズされて、加算器9
8に入力する。
【0263】同時に、既に計算された値[[DX.C*
(0.5−frac(P0.X)]+[DY.C*
(0.5−frac(P0.Y))]]を3ポートRA
Mから読み出し、B入力を介して加算器98に入力す
る。B.C値をこの値に加え、AB.C値であるその結
果は、出力mux1092を通過し、そして、通常、計
算値に対して使用されるBバス上に渡され、ピクセルジ
ェネレータ70に入力する。
【0264】ピクセルジェネレータが要求する値の多く
は、セットアップチップによって直接供給される。この
データは、入力ユニットデータパスを通る過程は比較的
短い。
【0265】ピクセルジェネレータ70が要求する値
は、セットアップASIC32から受取られ、入力FI
FO72を通過し、フォーマッタ82によって再フォー
マットされ、出力mux102を通過し、通常は非計算
値に使用されるAバス上に渡され、ピクセルジェネレー
タ70へ入力する。
【0266】ピクセルジェネレータ70が必要とする値
には、レンダリングされているオブジェクトのタイプに
よって示唆されているものがある。例えば、Recta
ngle(長方形)やNext-Pixel(次ピクセ
ル)を構成する線セグメントの傾斜および逆傾斜は、す
べて0または不定である。これらのような値は、セット
アップチップによって転送されてず、それ故、入力68
によって合成されなければならない。これを達成するた
めに、フォーマッタ82は、特定のハードコード化され
た値(例えば、0.0や1.0など)を出力する能力を有
する。これらの値は、出力mux102を通過し、非計
算値に対して通常使用されるAバス上に渡され、ピクセ
ルジェネレータ70に入力する。
【0267】ピクセルジェネレータ70にとっては、長
方形は、他のオブジェクトとは異ならず、線とほぼ同様
に、4頂点すべてに対するX座標値とY座標値を要求す
る。しかしながら、セットアップASIC32は、この
フォーマットでの情報を提供しない。その代わり、底部
の点に対するX座標およびY座標と、長方形の幅と高さ
を提供する。残りの3頂点に対する座標値を、図20に
示したようにこの情報の関数として計算することができ
る。オブジェクトの対称性によって、2つの値だけを計
算すれば良い。すなわち、X+Width(幅)と、Y
+Height(高さ)である。
【0268】図16Bを参照して、X座標値とY座標値
は、セットアップチップから受取られる。これらの値
は、[13.6]の2の補数値として受取られる。何故
なら、その入力ユニットは要求していないが、セットア
ップチップは、小数ビットが0であることを保証するた
めである。そして、これら座標値は、入力FIFO72
を通過し、フォーマッタ82によって、[28.15]
の2の補正値に再フォーマットされ、3ポートRAM8
8に書込まれる。
【0269】その後、Width(幅)値が入力され
る。この値は[13.6]の2の補数として入力され、
FIFO72を通過し、フォーマッタ82によって、
[28.15]の2の補数に再フォーマットされ、加算
器98の入力Aに入力する。同時に、X座標値は、3ポ
ートRAMから読み出され、加算器98のB入力に入
る。結果は加算器98に存在し、出力Mux102を通
過し、多くの場合非計算値(この場合を除き)に対して
使用されるAバス上に渡され、ピクセルジェネレータ7
0に入力する。加算器98に存在する値もフィードバッ
クされ、3ポートRAMに格納される。
【0270】Width(幅)値が入力された後、He
ight(高さ)値が入力される。この値は、Widt
hと同様の方法で処理されるが、Xの代わりにYが加算
される。この値もAバス上に渡され、フィードバックさ
れ、RAM88に格納される。
【0271】3ポートRAM内にX+HeightとY
+Widthとの計算値を格納する必要はないように見
えるが、フィル-ネクスト-ピクセル(Fill-nex
t-Pixel)コマンドは格納された値を使用する。
図21Aを参照して、フィル-ネクスト-ピクセル(fill
-next-pixel)コマンドは、フィル-三角形(Fill-
Rectangle)コマンド、または他の(Fill
-next-Pixel)コマンドによって、先行され、
WidthとHeightとがそのコマンドに対し1に
セットされたと仮定していることに留意されたい。この
ため、フィル-ネクスト-ピクセル(Fill-next-
Pixel)コマンドが開始する場合、以下の4つの値
は、3ポートRAMに存在する。すなわち、X、Y、X
+1、Y+1である。Fill-Nextの"Next"
は、そのX値がインクリメントされて、X+1、X+
2、Y+1がピクセルジェネレータ90に伝送されるこ
とを示唆する。変化した値もまた、3ポートRAM88
に書込まれ、後続のフィル-ネクスト-ピクセル(Fil
l-Next-Pixel)コマンドが動作する。
【0272】図16Bを参照して、値が3ポートRAM
から一度に1つ読み出され、加算器98の入力Bに入
る。加算器98のA入力には、X値に対して1.0を、
Y値に対して0.0が強制される。このため、加算器9
8の出力は、カレントのピクセルに対して訂正値を有す
る。結果は、加算器98を出て、出力Mux102を通
過し、非計算値(この場合を除き)に対して使用される
Aバス上に渡され、ピクセルジェネレータ70に入力す
る。加算器98を出る値はまた、フィードバックされ、
3ポートRAM88に格納される。
【0273】次に、各レンダリングコマンドに対して、
入力ユニット68によって実行される切片計算を説明す
る。
【0274】基本色の計算のために、生成されるその色
値のすべてはピクセル整列される必要がある。そのた
め、その基本色値を最初に調整し、頂点0が検出される
ピクセルとともに整列させる。ここで、使用する式は、
次の通りである。 Base Color <= Base_Color+distx*DX.color+disty*DY.C
olor; ここで、 distx <= int(P0.X)−P0.X+0.5; disty <= int(P0.Y)−P0.Y+0.5; このような計算は、各色軸に関して同じである。
【0275】図22Bにおける疑似コードは、入力ユニ
ットが、点に対する切片を検出するために用いる計算を
示す。対応する切片は、図22Aに示されている。
【0276】図23Bの疑似コードは、入力ユニット
が、三角形に対する切片を検出するために用いる計算を
示す。ここで、P1とP2を結ぶセグメントに対して、
2つの場合があることに注意されたい。それら両方の場
合について、対応する切片の点を図23に示す。入力ユ
ニット68は、線に対する切片を検出するために、図2
2Cに示す計算を実行する。ある点に対する図22に示
した切片の点もまた、線に対して適当である。スライサ
−ダイサチップ34の大多数の論理は、ポリゴン、即
ち、3または4の線セグメントから構成されるオブジェ
クトの立場のみで"思考"するので、入力ユニット68は
IGBコマンドでインプリシットなセグメントパラメー
タを合成する。したがって、入力時に存在するさまざま
なオブジェクト間の差異は、ピクセルジェネレータユニ
ット70からは隠されている。
【0277】線セグメントは、すべてのオブジェクトに
対して生成されなければならない。点、線および三角形
の場合、そのセグメントはセットアップチップ32によ
って供給されるが、IGBコマンドの場合、オブジェク
トの形状はインプリシットであるため、そのセグメント
パラメータを合成しなければならない。例えば、ボック
ス形状のピクセルは、フィル-ネクスト-ピクセル(fill
-next-pixel)を表現するために、生成される必要があ
る。すべてのIGBコマンドは同様に処理される。図2
1BにおけるVHDL疑似コードは、フィル長方形(fi
ll-rectangle)とフィルスチプル(fill-stipple)コマ
ンドのための切片の割当てと計算を示す。図21Cにお
けるVHDL疑似コードは、フィル-ネクスト-ピクセル
(fill-next-pixel)コマンドのための切片の割当てと
計算を示す。
【0278】ピクセルジェネレータユニット: ピクセ
ルジェネレータユニット70は、図16Cに示す3つの
サブユニットを含む。これらのサブユニット各々は、プ
リミテイブの各ピクセルの軸に対する値が計算できるま
で、ポリゴンプリミテイブのセグメントを分析する。第
1のユニット(PIXGENA)は、セットアップチッ
プ32および入力ユニット68によって供給される頂
点、傾斜、ならびに切片データをラッチする。PIXG
ENAは、スライス操作の準備として、ポリゴンの頂点
のX座標の整数部を処理する。ここで、スライス操作は
第2のユニット(PIXGENB)で実行される。
【0279】第2のユニット(PIXGENB)は、処
理された頂点情報を使用して、プリミテイブを一連の垂
直スパンにスライスする。PIXGENBは、最左端か
らポリゴンのエッジを走査する。スパンを走査するにと
もない、一連のセグメントプロセッサはレンダリングす
べき第1のおよび最後のピクセルを決定する。このセグ
メント情報は第3のユニット(PIXGENC)に渡さ
れる。
【0280】第3のユニット(PIXGENC)は、ポ
リゴンプリミテイブの一部が接触するスパン内のピクセ
ルを生成する。PIXGENCは、X、Y、Z、A、
R、GおよびB軸に対する値を生成する。A軸値も各ピ
クセルに対して計算される。透明を扱うことが可能な
ら、T軸値が計算され、Aが乗じられる。もし、パタン
を使用できるなら、PIXGENCは、UおよびV軸に
対する計算も行う。
【0281】ピクセルジェネレータ70は、データを一
連のパイプラインレジスタに受け入れる。必要なデータ
をすべて受け入れた後、パイプラインレジスタのカウン
タは、作業レジスタにロードされ、ピクセルジェネレー
タ70はデータの処理を続ける。
【0282】パイプラインレジスタには、入力ユニット
68の出力mux102を起点とする一連のデータバス
によって供給される。パイプラインレジスタは、入力ユ
ニット68によって供給されるロードイネーブル信号に
よって制御される。パイプラインレジスタをアクセスす
るために、多重アドレシング構成が、入力ユニット68
によって使用される。入力ユニット68とピクセルジェ
ネレータユニットとのハンドシェークには、入力ユニッ
ト68が、第1の頂点に対する有効X座標をロードし、
スライス操作を開始するために、XOVLDをピクセル
ジェネレータに対して送ることが必要である。その後、
入力ユニット68は、残りのX座標値を頂点のX座標レ
ジスタにロードし、X軸処理を開始するために、XVL
Dをピクセルジェネレータ70に送る。入力ユニット6
8は、頂点パイプラインレジスタとセグメントパイプラ
インレジスタのリセットをロードする。必要なパイプラ
インレジスタがすべてロードされた時、入力ユニット6
8は、XYVLDをシグナルピクセルジェネレータに送
る。ここで、シグナルピクセルジェネレータの全パイプ
ラインレジスタは、有効情報を備える。ピクセルジェネ
レータ70が、データ処理を開始する準備ができている
場合には、パイプラインレジスタの内容を作業レジスタ
にロードするサイクル中にSYSTBを送る。以後のサ
イクルでは、入力ユニット68は、新たなデータを頂点
パイプラインレジスタおよびセグメントパイプラインレ
ジスタへのローデイングを開始することができる。作業
レジスタが空になるのを待たずに、ピクセルジェネレー
タ70は、情報がラッチ保持されている間に、幾つかの
情報を操作する。頂点に対するX座標も操作される。こ
の最適化を容易にするために、入力ユニット68は、2
つの付加的な信号、即ち、X0VLDとXVLDを備え
る。ここで、X0VLDは、頂点ゼロのX座標ラッチが
一杯になるとすぐに出され(この値は最初に必要であ
る)、また、XVLDは、残りの頂点のX座標ラッチが
一杯になるとすぐに出される(これらの値は後で必要で
ある)。X0VLDとXVLDの両方は、XYVLDに
よって出力を解除される。
【0283】色値は、別のハンドシェークを用いて処理
される。入力ユニット68は、必要な色パイプラインレ
ジスタからラッチにロードを開始する。すべての必要な
パイプラインレジスタがロードされた時、入力ユニット
68はCVLDを表明し、全パイプラインレジスタが有
効情報を含むピクセルジェネレータ70にCVLDを送
る。ピクセルジェネレータ70が、データ処理を開始す
る準備ができている場合(一般に、頂点情報とセグメン
ト情報を処理開始後の数サイクル)、パイプラインレジ
スタの内容を作業レジスタにロードしているサイクル中
にCSTBを送る。次のサイクルでは、入力ユニット6
8は、新たなデータを色パイプラインレジスタに対して
ローデイング開始することができる。
【0284】入力ユニット68は、より下位のパイプコ
マンドを下位パイプFIFO84に格納する。ピクセル
ジェネレータ70が、ポリゴンに対して動作していない
場合は、コマンドのためのFIFO89をチェックし、
そして、もしあれば、それらのコマンドをブレンダ36
に送る。"ロード-スライサ(Load-Slicer)"
コマンドに出会うと、ピクセルジェネレータ70はそれ
を破棄し、確実に次のポリゴンの処理を開始する。
【0285】ポリゴン処理ユニット(PIXGENA)
操作: PIGENAユニット(図16C)は、入力ユ
ニット68からの頂点情報を処理し、ポリゴンプリミテ
イブを一連の垂直スパンにスライスする準備をする。こ
のセクションでの計算は、スパン処理ユニットPIXG
ENBに出力される。PEIXGENAはまた、入力ユ
ニットからロードされる一連の頂点レジスタを含む。
【0286】頂点レジスタは、プリミテイブからの値が
ロードされ、左端頂点は頂点0のレジスタにロードされ
る。各連続する頂点座標レジスタは、ポリゴンの次の反
時計回り頂点がロードされる。図24Aは、頂点レジス
タと対応するロード信号を表にしたものである。数値フ
ォーマットは、信号の内部表現(TC=2の補数)を示
す。PIXGENAの入力各々は、PIGENBに対す
る出力を有するレジスタに格納される。
【0287】スパンカウンタユニットおよび除算ユニッ
トは、ともに動作する。これらの主なタスクは、レンダ
リングされる垂直スパンに関する頂点位置を計算する。
【0288】除算ユニットは、セットアップASK32
から4つまでの頂点を受取る。ここで、そのうちの第1
の頂点は、ポリゴンの左端の頂点であることは保証され
ている。この第1の頂点を5で割って、ポリゴンが交差
(左から右に移動することで)する最初のスパンに対す
る"X/5値"を得る。その値は、その最初のスパンに対
して責任のあるものである。この値は、PAB-SPA
NXと呼ばれる。除算ユニットはまた、ポリゴンに交差
する第1のスパンから、チップが責任を持つポリゴンに
交差する第1のスパンまでのスパン数を計算する。この
値は、PABOFFSETと呼ばれる。PABSPAN
Xは、処理すべき第1のスパンに対するスパン数である
が、他方、PABOFFSETは、左端頂点からスライ
サが責任を持つ第1のスパンまでのスパン数である。P
ABVX0の整数部は、第1のアクテイブスパンに関す
るこの頂点を配置するために、(4−そのスパンの位
置)をPBVX0に加算することによって、SPAN位
置から減じられる。この整数の結果はBX(12:0)
に残される。
【0289】LDVX(0)がストローブされ、頂点ゼ
ロの座標がロードされるとすぐに、頂点情報処理は開始
される。頂点0X座標レジスタにロードされると、ミー
リー(Mealy)ステートマシンは動作を開始する。これ
によって、ブレンダX座標に対する基数を生成するため
に、X座標レジスタの整数部分を5で除する処理である
複数ステージの除算処理が開始する。また、次のアクテ
イブスパンに対するオフセットを決定するために、"X
座標 mod 5"の計算を行う。これらの値は、PABSP
ANXおよびPABOFFSETとしてそれぞれ出力さ
れる。図24BのVHDL疑似コードは、使用される公
式を示す。ここで、負の場合は、頂点が負の値を使うと
ころでの、魔法(wise)の線や点の場合に、処理される
必要がある。
【0290】除算ユニットが、PABSPANXとPA
BOFFSETを計算している間、別のユニットは、他
の3頂点に対するX座標の整数部分を調整する。そこで
は、それらは、絶対座標値の代わりに、左端点からのオ
フセットを表現する。除算器と並列で動作する減算器
は、以下の計算をする。 int(PABVX1) ≦ int(PABX0) −(PABVX1) int(PABVX2) ≦ int(PABX0) −(PABVX2) int(PABVX3) ≦ int(PABX0) −(PABVX3) これら3つの減算操作は、連続的に生じるので、同一の
減算論理を共用できる。PABVX0は、左端のX座標
であるので、他のX座標値は0以下か0に等しい。であ
る。これらの計算が終了するとすぐに、PABOFFS
ETとともに、これらの値は、各頂点に対するカウンタ
を持つPIXGENBに設置されたスパンカウンタユニ
ットにパスされる。
【0291】セグメントレジスタは、スパン処理ユニッ
ト(PIXGENB)が必要とする値を含む。ポリゴン
処理ユニット(PIXGENA)は、これらの値の登録
のみを行い、修正はしない。図24Cには、セグメント
レジスタとそれに対応するロード信号が記載されてい
る。"出力"とラベル付けされたカラムは、これらの入力
に割り当てられた新たな信号名を示す。ここで、これら
の入力はラッチされる。セグメント構成レジスタPAB
SCFG(3:0)の関数は、図24Dに定義されてい
る。
【0292】スパン処理ユニット(PIXGENB)操
作: スパン処理ユニット(図16C)は、一連の垂直
スパンに対する基本処理を行う。スパン処理ユニット
は、各スパンに交差する線セグメントの少なくとも一部
を有する各スパンに対して必要な情報を処理する。スパ
ン処理ユニットは、5つのカウンタによる一連のインク
リメント値をロードするために、頂点のX座標に対する
調整値を使用する。これらのカウンタは、チップが責任
を持つスパンのために、それらスパンをステップする。
各スパンにおいて、1セットの4つのセグメントユニッ
トは、頂点情報と傾斜情報とを処理し、スパンのエッジ
とのセグメント交差点を決定する。それらはまた、スパ
ン内のプリミテイブを境界づける底ピクセルと最上部ピ
クセルを決定する。これらの値は、ピクセル処理ユニッ
ト(PIXGENC)内の面積計算部に供給される。
【0293】PIXGENBユニットは、スパンカウン
タユニット(PBCNT)と、セグメントユニット(P
BSEG)と、セグメント制御ユニット(PBCTL)
とを含む。次に、これらについて説明する。
【0294】スパン制御ユニット(PBCNT)はX頂
点座標の整数部分を処理する。カウンタは、各頂点のた
めに提供される。所定の頂点に対するカウント値は、頂
点とカレントのスパン間の関係を反映する。最初に、頂
点カウンタ(XCNTREG0)には、PABOFFS
ETがロードされて、その他のカウンタ(XCNTRE
G[1:3])には、PABVXn+PABOFFSE
T(n=1、2、3)がロードされる。これらの値は、
第1のスパンに対して正しい値である。第1のスパンが
完了すると、カウンタはすべて5インクリメントされ、
それらの値は、第2のスパンに対して正しい値となる。
この処理を、すべてのスパンについて続ける。
【0295】スパンカウンタユニット(PBCNT)は
また、PABSPNAX値を受取る。この値は、毎スパ
ン後インクリメントし、パイプラインにパスされ、最終
的には1つのスパンの全ピクセルに対するX座標とし
て、ブレンダ36に供給される。PBSEGユニットが
次のポリゴンを処理する準備ができることを示すPBC
TLユニットによって、XYSTBが出されている時、
カウンタには、次の値がロードされる。 XCNTREGO0 <= PABOFFSET : XCNTREGO1 <= Int(PABVX1) + PABOFFSET : XCNTREGO2 <= Int(PABVX2) + PABOFFSET : XCNTREGO3 <= Int(PABVX3) + PABOFFSET : ピクセル処理ユニット(PIXGENC)によって使用
される以下の信号がまた、ロードされる。 PBCX <= Int(PABVX)) + PABOFFSET; PBCXD5 <= PABSPANX; PBCNTは、X軸のスライスを5ずつ実行する。5単
位でインクリメントする一連にカウンタによってこれは
達成される。PBSTEPがPBCTLユニットによっ
て出された場合、PBSEGユニットが次のスパンに対
する準備ができていることを示し、カウンタはつぎの公
式によってインクリメントされる。 XCNTNXT0 <= XCNTREG0 + 5; XCNTNXT1 <= XCNTREG1 + 5; XCNTNXT2 <= XCNTREG2 + 5; XCNTNXT3 <= XCNTREG3 + 5; PBCX <= PBCX+5; PBSTEP信号は、各スパンが処理された後、PBC
TLユニットによって出される。整数のX座標値は、X
CNTNXT(3:0)からのデータをレジスタXCN
TREG(3:0)に転送し戻すことによって調整され
る。XCNTNXT(3:0)レジスタとXCNTRE
G(3:0)レジスタは、4つのセグメントPBSEG
ユニット各々に対して出力される。PBCNTはまた、
出力X座標に対する調整値を供給する。ブレンダのX座
標は、毎第5のスパンを意味する。結果として、X座標
が、カウンタにおいて5だけインクリメントされる時、
出力スパンX座標(PBCXD5)は、1インクリメン
トされて、 PBCXD5 <= PBCXD5+1 となる。
【0296】XCNTREG(3:0)レジスタ出力
は、2の補数値である。ここで、セグメントの端点に対
応するカウンタが、負のままである限り、また、セグメ
ントの端点に対応するカウンタが、カレントのスパンの
右に一列に並ぶ限り、セグメントの端点は、カレントの
スパンの右にあることに留意されたい。XCNTREG
(3:0)レジスタに対応する調整されたX座標は負で
ある一方、対応するセグメントの端点は、カレントのス
パンの右側にある。所定のセグメントの右端点に対する
カウント値が、ゼロか正である場合、そのセグメント
は、まはやカレントのスパンに対して有効ではなくな
る。PBCNTはまた、PIXGENCによって必要と
されるPIXGENAからの2つの別の信号をラッチす
る。PBCNTユニットの出力を図25にまとめる。
【0297】セグメントユニット(PBSEG)は、セ
グメントに対する生データを処理し、セグメントスパン
ユニットが必要なスパン指定情報を得る。セグメントユ
ニット(PBSEG)は、複数のソースから、即ち、直
接セットアップチップから、入力ユニットから、スパン
カウンタユニット(PBCNT)から、セグメント制御
ユニット(PBCTL)から受取る。
【0298】セットアップチップからは、セグメントユ
ニットは、ポリゴン頂点(PABVXn)のX座標と、
そのポリゴンセグメントの傾斜(PBASS)および逆
傾斜(BABSI)を受取る。いくつかの場合では、こ
れらの値は、セットアップチップによって生成されな
い。その場合は、適切な値が、入力ユニット68によっ
て合成される。
【0299】入力ユニット68からは、セグメントユニ
ットは、構成ワードと2つの切片値を受取る。構成ワー
ドは、セグメントがカレントのポリゴンに対して有効で
あるか否かを示すビットと、どのポリゴン頂点が、セグ
メント(PABSCFG)に対して右端点か左端点かを
示す2セットの複数ビットとを含む。供給される第1の
切片値は、左から右まで移動させるセグメント上の第1
の点のX座標値である次Y上のX(X-on-next-
Y)値である。ここで、そのY座標は整数である。
【0300】スパンカウンタユニット(PBCNT)か
らは、セグメントユニットは、各ポリゴン頂点に対する
整数値を受取る。この値は、カレントのスパンに対する
頂点の位置関係を示す。これは、スパンの左境界のX座
標から減じた頂点のX座標の下限である。このため、頂
点がスパンの右にある場合、その値は負であり、それ以
外は正である。
【0301】各スパンに対して、セグメントユニット
は、セグメントの右端点および左端点に対するカウント
値を調べ、スパンに対するセグメントの位置関係を決定
する。その位置に依存して、スパンを有する左切片は、
左端点と一致することもあれば、セグメントに沿ったあ
る中間点に位置することもある。このような全中間点
は、傾斜に次X上のY(Y-on-next-X)値を繰
り返し加算することによって計算することができる。同
様に、右切片は、右端点と一致することもあれば、セグ
メントに沿ったある中間点に位置することもある。ま
た、このような中間値は、繰り返し計算することができ
る。
【0302】小数Xオフセット(PBCSX0およびP
BCSX1)はまた、カウント値の関数である。通常の
場合、左のオフセットは0であり、右のオフセットは
1.0である。しかしながら、もし、セグメントがカレ
ントのスパンから開始するなら、左のオフセットは対応
して調整される。同様に、もし、セグメントがカレント
のスパンで終わるなら、右のオフセットは、対応して調
整される。調整されたオフセットは、セグメントスパン
ユニット(PCSEG)に転送される。
【0303】左切片と右切片が計算されるとすぐに、そ
れらは、垂直位置に対応してソートされる。下位の切片
は、4つの全セグメントに対して下位の切片を取るセグ
メント制御ユニット(PCCTL)に与えられ、最小値
を決定し、必要なY軸変換値を生成する。セグメントユ
ニットは、左切片と右切片を含むその全Y値を変換す
る。この結果の左切片値と右切片値は、整数部分と小数
部分に分けられる。小数成分(PBCSYX0、PBC
SUX1)は、直接セグメントスパンユニットに転送さ
れる。整数要素(PBCSYX0、PBCSUX1)の
両方は、もし、それぞれの小数要素がゼロであるなら、
デクリメントされ、その後、面積計算部が、それぞれセ
グメントと交差する第1および最後のピクセルを処理す
る前に、それら要素は、面積計算部によってあるべきピ
クセル数を示す。これらの値は、別々にセグメントスパ
ンユニット(PCSEG)に転送される。
【0304】左切片と右切片が計算され、ソートされ、
調整されるとすぐに、セグメントが第1の水平ピクセル
境界(PBCSXYN)と交差するセグメントの小数位
置は、セグメントと下位切片より大きな第1の整数Y値
との間の切片に反映するまで、逆傾斜を次Y上のX(X
-on-next-Y)値に繰り返し加算することによっ
て計算される。この計算結果は、セグメントスパンユニ
ット(PCSEG)に渡される。各PBSEGセグメン
トユニットは、図26Aにリストされた入力を受取る。
セグメントユニット(PBSEG)は、図26Bにリス
トされた出力信号を、セグメントスパン処理ユニット
(PCSEG)に供給する。セグメントユニット出力構
成ワードは、図26Cで定義されている。
【0305】スパン処理ユニット中には、同一のPBS
EGユニットが4個あり、ポリゴン単位で可能な4つま
でのセグメントの各々に対して1つであり、各ユニット
に対して割り当てられた出力名はユニークである。さら
に、PBCNTユニットは、次のユニットによって使用
するいくつかの信号をラッチする。スパン処理ユニット
(PIXGENB)の最上部のレベルに当てられた名前
は、図26Dにリストされている。これらの出力のすべ
ては、ピクセル処理ユニット(PIXGENC)の入力
に接続されている。各セグメントユニットからの2つの
構成ビットだけが、ピクセル処理ユニット(PIXGE
NC)内のセグメントスパンユニットに伝送される。
【0306】スパンユニットは、以下に説明する入力ミ
ックスとレジスタを含む。
【0307】セグメントユニットの幾つかは、複数の入
力マルチプレクサによって先行される。ここで、それら
の入力マルチプレクサは、正確な端点データをユニット
内部のレジスタにロードさせる。セグメント1および2
だけが、これらのマルチプレクサ(mux)を必要とす
るセグメントである。何故なら、それらの端点だけが、
右側または左側に対して異なる頂点を有するかもしれな
いからである。これらのマルチプレクサ(mux)が満
足しなければならない3つの重要な場合がある。各セグ
メントのスパンユニットが必要な頂点は、図26Eにリ
ストされている。
【0308】入力レジスタは、入力マルチプレクサ(m
ux)によって選択された頂点値とその他のユニットに
よって供給されたセグメント値を保持する。XYSTB
信号がスパン処理制御ユニット(PBCTL)によって
出された場合、これらの信号はラッチされる。XYST
B信号が出される時、以下の信号は、XYSTB信号が
送られた場合に、図中のGFGREGSにラッチされ
る。 SREG ≦ PABSS; --セグメント傾斜 IREG ≦ PABSI; --セグメント逆傾斜 CFREG ≦ PABSCFG; --セグメント構成ワード XCREG ≦ frac(PABXBL); --左端点の小数X座標 XRREG ≦ frac(PABVXR); --右端点の小数X座標 以下の信号は、XYSTBが出された時に、XYREG
Sブロックにおいてラッチされる。 YXOREG ≦ PABVYL; --左端点のY座標 XYREG ≦ PABSXYN; --セグメントのX-on-next-Y切
片 以下の信号は、XYSTBが出された時に、YXREG
Sブロックにおいてラッチされる。 YXOREG ≦ PABVYL; --左端点のY座標 YX1REG ≦ PABSYXN; --セグメントのY-on-next-X
切片 YXRREG ≦ PABVYR; --右端点のY座標 Xオフセットは、通常、右のXオフセット(PBCSX
1)に対する左オフセット(PBCSX0)に対して、
0.0である。これが真でない時は、問題の頂点がカレ
ントのスパン内にある場合に限られる。これを検出する
には、セグメントユニットは、対応する頂点のカウンタ
(PBXCNTn)内の0カウント値に関してチェック
する。これに関する論理は、図27Aの疑似コードによ
って描かれている。Y切片値(YX0REG、YX1R
EG)は、傾斜に次X上のY(Y-on-next-X)
を累積的に加算することによって、次X上のY(Y-o
n-next-X)値(PABSXYN)と傾斜(PAB
SS)から計算することができる。最初に、セグメント
が新たなスパンに対して有効になる時、左頂点のX座標
の整数値は重要になる。何故なら、正確なY切片が検出
される前に、何回、傾斜が次X上のY(Y-on-nex
t-X)に加算されなければならないかを決定するたで
ある。これは、特別の場合であり、全ての残りの切片
は、傾斜に次X上のY(Y-on-next-X)値を正
確に5回加算することによって検出される。
【0309】図27Bの左の図を参照して、陰をつけた
領域は、スライサ/ダイサがスパン0にセットされる時
に示されるポリゴンに対して計算したい領域を示す。セ
グメント0(PBCNTL)の左端点に対するカウント
値は、1である。この場合、左スパン切片(YX0RE
G)は、次X上のY(Y-on-next-X)とたまた
ま一致する。右スパンY切片(YX1RGE)は、傾斜
を次X上のY(Y-on-next-X)(PABSYX
N)に1度だけ加算することによって丸められる。図2
7Bの右側の図を参照して、セグメント0に対する左端
点は、2スパン離れている(PBCNTL=2)。左ス
パン切片(YX0REG)は、傾斜を次X上のY(Y-
on-next-X)に一回加算することによって検出さ
れる。さらに、もう一度傾斜を加算すると、右スパンY
切片(YX1REG)の位置が決定する。次X上のY
(Y-on-next-X)が、2スパンまたはそれ以上
離れている場合、Y切片は、処理のレベルを下げるため
に、シフトと加算によって計算される。
【0310】この処理機構は、各セグメントユニット内
部のステートマシンによって制御される。ステートマシ
ンは、INVALIDまたはVALID状態のいずれか
から始動する。XYSTBが新たなポリゴンの開始時に
送出された場合、YX1RGEには、次X上のY(Y-
on-next-X)値(PABSYXN)がロードさ
れ、YXOREGには、セグメントの左頂点Y座標(P
ABVYL)がロードされる。
【0311】次に、ステートマシンは、MOVEX0状
態に移行し、いつ、セグメントがカレントのスパンに対
して有効になるかをチェックする。3つの条件をチェッ
クすることによってこの処理を行う。第1に、セグメン
トの構成レジスタ(9CFREG[5])中の有効ビッ
トがセットされていなければならない。第2に、セグメ
ントカウント(PBXCNTL)が0以上かをチェック
することによって、カレントのスパンがセグメント左端
点の右側にあるかをチェックする。第3に、右頂点のX
カウンタが0以下であるかどうかをチェックすることに
よって、セグメントの右端点がカレントのスパンの右に
あるか否かを判定する。セグメントが有効な場合、2つ
の大きなシフトコード化作業(SSSEL)をセットす
る。シフト値は、0、1、2のいずれかである。
【0312】次に、ステートマシンは、SSEN信号を
出すことによって、バレルシフタを介してアキュムレー
タ(ISSNEXT)のロードを実行可能にする。バレ
ルシフタは、SSSELシフトビットによって制御され
る。ステートマシンからの別の制御ビットは、いつ加算
累積が生じるかを決定する。計算が完了する時、その結
果は、出力レジスタ(図26B参照)に格納され、セグ
メントスパン処理ユニット(PCSEG)に利用され
る。
【0313】次にステートマシンは、X切片計算に移行
する。X切片値(XYREG)は、次Y上のX(X-o
n-next-Y)値(PABSXYN)および逆傾斜
(PABSI)に基づき、逆傾斜をY-on-next-
Xに累積加算することによって計算される。Y切片計算
とは異なり、この加算操作を行う回数は、一定ではな
く、線の逆傾斜によって、様々である。Y切片計算と同
様に、シフトと加算演算は処理を削減するのに使用され
る。乗算因子(繰り返された加算数)を決定するには、
X切片計算にはY切片計算の整数の結果を使用する。次
のスパンに対する最低整数のY-on-next-X値と
X-on-next-Yの整数のY値との差が、乗算器に
与えられる。左頂点と所望のX切片の間の完全な水平ス
パンの数は、最低のスパンのY切片の整数値とX-on-
next-YのY座標との差になる。これは、確かに乗
算器である。カレントのX-on-next-Y値(PA
BSXYN)の整数Y値を検出するには、傾斜(PBA
SS)の符号とセグメントに対する左頂点の整数Y値
(PABVYL)を調査する。考えられる場合を図27
Cに示した。ここで、ある場合には頂点の値を使用し、
ある場合に頂点より1を減じ、別の2例では、頂点に1
加算していることに留意されたい。乗算器が決定される
と、ユニットは、次のスパンのX切片値をY切片と同様
の方法で計算する。この結果はXYREGに記憶され
る。ここで、この結果は、計算されるスパン内の最も低
いX切片であり、左端ではないことをに留意されたい
(図27B参照)。
【0314】Y切片計算後、ステートマシンは、傾斜を
使用してどの2つが最低かを判定する。4つのセグメン
ト各々は、この値をセグメント制御ユニット(PBCT
L)に提供する。セグメント制御ユニットは、このうち
どれが低いかを判定する。判定されるとすぐに、この値
は、各出力に対する全整数Y値から引かれる。下位およ
び上位のスパンY切片の調整された整数値はラッチさ
れ、PNCSC0およびPBCSC1のセグメントスパ
ンユニット(PGSEG)にそれぞれ供給される。これ
らの整数Y値は、セグメントが有効なカレントのスパン
において処理すべき第1のおよび最後の有効ピクセル表
す。
【0315】逆傾斜は、必要なビット数を減少させるた
めに、このユニットによってわずかに修正される。符号
簡約操作は、TC[13.15]からTC[2.15]ま
で値を減少させるよう実行される。
【0316】セグメント制御ユニット(PBCTL)
は、3つの機能を実行する。第1に、入力ユニットから
のXYデータをストローブし、作業レジスタに格納し、
上述の入力ユニットとハンドシェーク処理を行う。第2
に、4つのセグメントユニットを調整し、いつスパン処
理が完了するかを決定する。第3に、各セグメントによ
って区切られた最低位のピクセルを比較し、最低位のピ
クセルを上述のセグメントユニットに出力する。
【0317】ピクセル処理ユニット(PIXGENC操
作): ピクセル処理ユニットPIXGENC(図16
C)は、ポリゴンプリミテイブの一部が接するスパン内
にピクセルを生成する。X、Y、Z、A、R、Gおよび
Bの軸に対する値を生成する。
【0318】各ピクセルに対して、A軸の値も計算され
る。もし、透明化が可能なら、Aは計算されたT軸値に
よって乗じられる。もし、パタンが使用できる場合に
は、U軸およびV軸に対する値も計算する。面積計算
は、ポリゴンプリミテイブの一部にカバーされている実
領域を計算することによって、エイリアス除去処理を行
う。面積計算部には、2つの操作モードがあり、1つは
エイリアス除去がオンにスイッチされた場合であり、も
う一方はオンになっていない場合である。ピクセル処理
ユニットは、面積計算部と色補間部の2つの主要なユニ
ットを含む。
【0319】面積計算部は、(エイリアス除去がイネー
ブルである時,ポリゴン下の各ピクセルのように)非ゼ
ロ要素を含むと考えられる各ピクセルに対して、ポリゴ
ンとピクセル間の補間領域の面積を計算する。どのポリ
ゴン(点、線、三角形)も、互いに接続する多数の線セ
グメントに分けられる。このため、所定のピクセル内の
完全なポリゴンに対するカバー領域を計算する問題は、
所定の線セグメント上のピクセル内の領域を計算する小
さなタスクに分けることができる。この操作は、ポリゴ
ンを形成する非垂直のセグメントに対して行われる。ポ
リゴン上部境界を構成するセグメントに対して(それ
が、ポリゴンに交差する場合に、南から北に描かれる線
が、ポリゴンの内部領域を残すセグメントのような)、
その領域は負に見做され、それ以外は、正に見做され
る。領域の因子がすべてのセグメントに対して計算され
た後、因子を合計し、結果はピクセル内のポリゴンの面
積となる。
【0320】面積計算部に対する制御はいたって簡単で
ある。4つのセグメントスパンユニット(PCSEG)
がセグメントデータ4組を供給する。これらは常にゼロ
以外の面積が可能であるカレントのスパンの最低位のピ
クセルに対する値を供給することによって開始する。面
積計算部が、ピクセルを完了した場合、セグメントスパ
ンユニットに次のピクセルに移行する信号を送る。この
処理を繰り返し、面積計算が、すべてのセグメントが0
以下か無効かのいずれかのピクセルになるまで続け、こ
の際、スパンが完了したことを示す専用の出力トークン
を生成し、次のスパンが処理されるのを待つ。
【0321】面積計算部は、セグメントスパンユニット
(PCSEG)とα計算機ユニット(PCAC)の2つ
の主要なユニットを含む。これらは、次節で詳細の説明
を行う。
【0322】セグメントスパンユニットは、セグメント
ユニット(PBSEG)の出力を処理し、ピクセル切片
情報を面積計算部に供給する。ポリゴンは、4つまでの
セグメントから成り得るので、4つの同一のセグメント
スパンユニットが使用され、各々は、個々のセグメント
ユニットから入力を受取る。幾つかの数が供給され、元
のままの面積計算部(PCAC)に渡される。すなわ
ち、セグメントがカレントのスパンに対して有効である
かを示すビット、セグメントがポリゴンの上限および下
限を構成するか否かを示すビット、スパンに対する垂直
境界ボリュームを定義する2つの小数オフセット(PB
CSX0n、PBCSX1n)である。
【0323】いくつかの他の値が、セグメントスパンユ
ニットによって使用され、ピクセル切片を計算し、セグ
メントとスパン内の所定のピクセル間の関係を定義す
る。すなわち、そのセグメントが、垂直境界ボリューム
(PBCSX0n、PBCSX1n)に入力しまた存在
する断片位置と、セグメントが第1の(最低位の)水平
ピクセル境界を交差する断片位置と、それぞれセグメン
トと交差する第1および最後のピクセルを処理する前
に、面積計算部によって処理されるピクセル数を示す2
つのカウント値(PBCS0n、PBCS1n)であ
る。線の逆傾斜(PBCSIn)はまた、符号ビット付
きで供給される。これは、上方にピクセルからピクセル
に移動する時に、水平ピクセル切片値を調整するのに使
用される。その符号ビットは、面積計算部に渡される。
【0324】この情報で、ピクセル切片を計算し、各ピ
クセルに対するセグメント-ピクセル関係を定義するこ
とは簡単である。そのセグメント-ピクセル関係は、図
28Aに示される供給されたカウント値に基づいて定義
される。第1の切片は、常に、境界ボリュームを有する
下位の切片であり、最後の切片は、常に、境界ボリュー
ムを有する上位の切片である。いずれかが、セグメント
ユニット(PBSEG)でソートされるので、セグメン
トスパンユニット(PCSEG)は、それを考慮する必
要はない。もし、3つの切片があるなら(カウント値
が、1異なる)、第2の切片は、単に第1の水平ピクセ
ル境界交差点である。もし、4つの切片があるなら(カ
ウント値が、2異なる)、第3の切片は、第2の水平ピ
クセル境界交差点であり、逆傾斜を第1の水平ピクセル
境界交差点に加算することによって得られる。セグメン
ト-ピクセルカウンタは、ピクセル毎にデクリメントさ
れる。逆スロープの累積を継続することによって、水平
ピクセル交差点の数が得られ、そのため、どのセグメン
トも処理されることができる。
【0325】水平ピクセル境界切片の計算に関し、興味
深い状況が生じる。理論的には、切片がカレントのスパ
ン内にインプリシットに包含されているので、小数構成
要素のみを計算すれば良い。しかし、実際には、逆傾斜
値の値が不正確になることによって、水平ピクセル境界
切片が真の値からややずれて、カレントのスパンの外側
にわずかに飛び出ることもある。例えば、スパンを上げ
ると、値は0.95から0.97、0.99、1.01まで
変化する。しかし、もし、整数ビットのをキャリーがな
いなら、1.01値は0.01になる。このため、スパン
の右境界に非常に近いはずだった切片が、逆に、左の境
界に非常に近付いてしまい、その領域値は重大なエラー
を示す。
【0326】本実施例は、計算を通じて最下位整数ビッ
トのキャリーによってこの問題を解決する。この整数ビ
ットは、入力として供給されるカレントのスパンのX座
標の最下位整数ビットと比較される。もし、そのビット
が整合すれば、小数ビットは正確である。もし、ビット
が整合しない場合、その値はスパンの左または右にずれ
ていることになる。それがどちら側にあるかを判定する
には、最上位小数ビットを調べる。もし、それが0であ
れば、その値はスパンの右側にあり、その値は1.0に
クリップされる。それ以外の場合は、スパンの左側にあ
るので、値を0.0にクリップする。
【0327】α計算ユニット(PCAC)は、実際の面
積計算を実行する。それは、所定のピクセルに対する4
セットの数を受け取り、その1セットは、ポリゴンを構
成し得る4つまでのセグメントの各々に対するものであ
る。これらの数のセットは、4つの個々のPCSEGユ
ニットによって供給される。ステータスは符号化され、
ピクセルに対するセグメントの関係を示す。セグメント
は、ピクセルを含むスパンに対して無効と成り得る。何
故なら、セグメントは、ポリゴンに対して全く定義され
ず、垂直であるか、または、ピクセルを含むスパンの左
もしくは右に完全に位置するかのいずれかであるためで
ある。セグメントは、カレントのピクセル上に位置付け
られるので、その面積は0である。セグメントは、カレ
ントのピクセルを交差するか、またはその下に存在する
ので、領域値を計算しなければならない。ステータス復
号化に含まれるものには、セグメントがポリゴンの上限
または下限の境界を構成するかどうかを示すビットと、
セグメントの逆傾斜(セグメントが左と右のどちらかに
傾いているか)の符号を示す別のビットがある。セグメ
ントが、底部のピクセルに入る場合、および最上部に存
在する場合には、逆傾斜符号は、ピクセルのどの半分が
ポリゴン内にあるかを決定するのに必要とされる。
【0328】2つの小数Xオフセットは、PBSEGユ
ニットによって供給される。これらのオフセットは、図
28Bに示したように、垂直境界ボリュームを形成す
る。セグメントが、範囲において無限ではなく、カレン
トのスパン境界内で開始したり終了したりすることがあ
るので、このようなオフセットは必要である。
【0329】2つの小数切片オフセットは、PBSEG
ユニットによって供給される。これらのオフセットは、
どこにセグメントが入り、どこに、垂直方向にXオフセ
ットによって、また、水平方向にピクセル境界によって
囲まれている長方形ボリュームを出すかを示す。各切片
オフセットには、(左、下部、右、上部の)どの境界に
適用するかを示すコードが供給される。
【0330】面積計算は、正方形、台形、三角形の公式
を使用して実行される。例えば、ピクセル下に位置する
セグメントの場合、正方形公式を使用して、垂直方向に
Xオフセットによって、また、水平方向にピクセル境界
によって囲まれた長方形ボリュームの面積を計算する。
図29Aと図29Bは、場合と使われる公式の疑似コー
ドをリストにしたものである。
【0331】ここで、状況は、エイリアス除去をオフに
した時に非常に似ている。非ゼロ面積を有するピクセル
は、その領域下か、または、その領域と交差する、少な
くとも1つのセグメントをもち、また、全セグメントは
無効ではないか、その領域下にあるピクセルと言え、エ
イリアス除去無しの1.0の面積が割り当てられる。
【0332】色補間ユニット: 色補間ユニット(図3
0)は、上述の面積計算パイラインに類似しており、各
ピクセルに対する補間色値を正確に生成する。補間は、
以下の軸に対して行う。すなわち、Z、R、G、B、
T、UおよびVである。これら軸のすべては、同一に処
理されるので、"色"と見做される。
【0333】所定のピクセルに対し、Z、R、Gおよび
B軸は、ピクセル座標(XおよびY)とA値とともに、
ブレンダチップに対して出力される。もし、パターンニ
ングがイネーブルであるなら、UとVの値も出力され
る。もし、透明化がイネーブルであるなら、後者が出力
される前に、T値はAと乗算される。
【0334】調整された基本値が、入力ユニットによっ
て計算されるとすぐに、補間ユニットは、調整された基
本値と、X参照(X-delate)値と、Y参照(Y-delate)
値とがロードされる(図30参照)。その点に関して、
ポリゴン上(または画面上)の任意のピクセルに対する
色値は、調整値に対するXデルタ値とYデルタ値の正確
な数を、単に加減算することによって、計算される。バ
レルシフタを使用するとこの処理の速度は増す。各色軸
に対して使用される個々の色補間部があり、それらは、
図30に示されるように類似している。これらは全て、
並列動作であり、同一のステートマシンによって制御さ
れる。
【0335】最初に、ベースレジスタとデルタレジスタ
が、入力ユニットによってロードされる。それから、L
OAD信号が出され、累算器に調整された基本色値がロ
ードされる。もし、左端頂点がカレントのスパン内にな
い時、補間部は、適切なスパンに対し初期のXおよびY
のオフセットを実行する。Xの調整が、いつも始めに実
行される。STEPX信号が出されると、デルタXレジ
スタが選択される。適切なSHIFT値が適用され、累
算器のカレントの内容(基本値である)が、シフトされ
たデルタX値に加算される。その結果は累算器に残され
る。
【0336】カレントのスパンのピクセルに対する値
は、デルタYレジスタからACCUMULATORまで
の値を加算することによって生成される。次のスパンに
進む時になると、ATEPXが出され、2シフトされた
デルタX値がACCUMULATORに加算される。そ
れから、デルタXはもう一度加算され、右方向に対する
5つのスパンを正確な値に与える。その結果は、また完
全ではない。何故なら、前のスパンからの前のデルタY
成分は、まだ累積値であるからである。補間制御ユニッ
ト(PCCCTL)は、前のスパンの処理中に出力され
たピクセル数の監視を続け、また、カレントのスパンの
第1のY値と、前のスパンの第1のY値間の相対的差を
知る。これらの値の合計を使用して、何回、デルタY値
がACCUMULATORから減じられる必要があるか
を決定する。BARREL SHIFTERはインバー
タを含み、このインバータはPCCCTLによって制御
され、この減算動作を実行する。それから、補間部は、
第1のスパンに対して行ったのと同様な方法で、カレン
トのスパンに対する色値の計算を開始する。プリミテイ
ブの最後のスパンが処理されるまで、このように演算は
続く。
【0337】軸の補間部の幾つかは、クリップ/クラン
プ回路を含み、大きなデルタが引き起こすエラーによっ
て、にせの色値を計算することを防止するものもある。
これらの値は、累算器から出る時クリップされた後、ブ
レンダに伝送される。負のR、G、B、T値は、0にク
リップされる。255以上のR、G、B値は、255に
クリップされる。1.0以上のT値は、1.0にクリッ
プされ、また、Z値は、セットアップチップによって供
給される最小値および最大値(Zmin、Zmax)内
でクリップされる。
【0338】点画(stippling)の実行には、基本値、
デルタX値、デルタY値に基づく線形補間を実行する代
わりに、専用の色補間ユニットによって、ピクセルを左
から右に生成するように点画値をシフトし、正確な点画
値を"補間"する。この方法であれば、その他の色補正処
理とほとんど同様である。
【0339】乗算ユニット(PCMUL)は、2つの機
能を実行する。それは、すべてのAの計算する乗算器と
して働き、透明化がイネーブルの時には、計算されたT
値と計算されたA値と乗算する。
【0340】この乗算ユニットは、両方の機能によって
共用され、ゲートをセーブする。これに対するスループ
ットペナルティは極めてわずかである。
【0341】出力FIFO(PCF)は、ブレンダがビ
ジー信号を出すイベント中にバッファリングし、性能を
改善するために備えられる。それは、100ビット幅の
8ワード深さであり、個別のリード/ライトアドレスカ
ウンタを使用して、FIFOメモリをアドレス指定す
る。
【0342】出力ステートマシンユニット(PCOU
T)は、出力FIFOとブレンダに対するハンドシェー
ク線とを制御する。それは、低位パイプFIFOと出力
FIFOユニットからデータを入力する。
【0343】下位パイプFIFOは、より下位のパイプ
コマンドを格納し、このコマンドはスライサ/ダイサ自
体に用いるものではなく、ブレンダにパスするために必
要である。これらのコマンドは、入力と同じ順番で出力
され、そして、ドロー(draw)コマンドによって生成さ
れるピクセルは、適切な時間に到着しなければならな
い。
【0344】例えば、入力配列が[ロードブレンダ(L
oad−Blender)]、[フィル長方形(Fil
l−Recatngle)]、[ロードブレンダ(Lo
ad−Blender)]であれば、出力配列は[ロー
ドブレンダ(Load−Blender)]、[ピクセ
ル(Pixel)]、[ピクセル(Pixe
l)]...[ピクセル(Pixel)]、[ロードブ
レンダ(Load−Blender)]でなければなら
ない。ある他のシーケンスでは、非決定性のパイプライ
ン動作となる。
【0345】適切な出力シーケンスを確実するために
は、出力ステートマシンは、下位パイプコマンドとピク
セルデータの間の調整を行う。最初に、ステートマシン
は、下位パイプFIFOからのデータに優先権を与え
る。しかしながら、最終的には、専用コマンドトークン
は、FIFO内で検出され、ピクセルデータにスイッチ
するよう命令する。この時点から、優先権がピクセルデ
ータに与えられる。最終的には、専用のピクセルデータ
が検出され、下位パイプデータにスイッチバックするよ
うに命令する。このやり取りを継続する。
【0346】これらの専用トークンは、どのようにそれ
らが生成されるかによって、正確なシーケンスを維持す
る。入力ユニット68は、下位パイプコマンドをFIF
Oにロードするが、ドロー(draw)コマンドを受取り始
める時は、特殊なトークンを合成する。このため、[ロ
ードブレンダ(Load−Blender)]、[フィ
ル長方形(Fill−Recatngle)]、[ロー
ドブレンダ(Load−Blender)]に対し、下
位パイプFIFOは、[ロードブレンダ(Load−B
lender)]、[特殊トークン(Special−
Token)]、[ロードブレンダ(Load−Ble
nder)]をロードする。それから、出力ステートマ
シンは、第1のロードブレンダ(Load−Blend
er)コマンドを転送し、ピクセルデータを待つ。ピク
セル生成パイプラインは、しばらく、フィル長方形(F
ill−Rectangle)処理を実行する。最終的
には、ピクセルの生成を開始し、出力ステートマシン
は、ブレンダに対して転送する。フィル長方形(Fil
l−Rectangle)処理に対するすべてのピクセ
ルが生成される時、ピクセルジェネレータは、特殊な"
オブジェクトのエンド(End−of−Objec
t)"ピクセルを生成するが、これは実際にはピクセル
ではなく、下位パイプFIFOにスイッチバックするた
めの出力ステートマシンへの信号である。
【0347】本発明の他の態様およびへ修正は、上述の
技術から鑑みて当業者らによって容易に成されることは
明らかである。したがって、本発明は、上述の明細書お
よび添付図面と共に描かれている態様ならびに修正を含
む以下の請求の範囲によってのみ限定される。
【0348】以上説明したように、本実施例によれば、
エイリアス除去と透明性の処理を含むグラフィクスデー
タのレンダリングを高精度にかつ高速に行うことができ
る。
【0349】
【発明の効果】以上説明したように、本発明の画像レン
ダリング方法とその装置によれば、エイリアス除去と透
明性の処理を含むグラフィクスデータのレンダリングを
高精度にかつ高速に行うことができる。
【0350】
【図面の簡単な説明】
【図1】本実施例の基本三角形の用語を示す図である。
【図2】本実施例の基本三角形スライス操作を示す図で
ある。
【図3】本実施例の基本三角形ダイシング(さいの目分
割)操作を示す図である。
【図4】本実施例のシステムに使用する部分的にカバー
されたピクセルの面積計算を示す図である。
【図5】本実施例のシステムに使用する部分的にカバー
されたピクセルの複合面積計算を示す図である。
【図6】本実施例のシステムにおいて使用する画像パラ
メータに関する平面方程式の公式を示す図である。
【図7】本実施例の方法の利用に適したワークステーシ
ョングラフィックプロセッサを示す図である。
【図8】本実施例のレンダリングパイプラインの機能ブ
ロック図である。
【図9A】本実施例の画像生成ボード(IGB)の詳細
機能ブロック図である。
【図9B】本実施例の画像生成ボード(IGB)の詳細
機能ブロック図である。
【図10A】本実施例のPHIGS幾何ボード(PG
B)の詳細機能ブロック図である。
【図10B】本実施例のPHIGS幾何ボード(PG
B)の詳細機能ブロック図である。
【図11A】本実施例のフレームバッファメモリを示す
ブロック図である。
【図11B】本実施例のフレームバッファメモリを示す
ブロック図である。
【図12A】本実施例のブレンダASICを示す詳細機
能ブロック図である。
【図12BA】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12BB】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12BC】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12BD】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12CA】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12CB】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図12CC】本実施例のブレンダASICを示す詳細
機能ブロック図である。
【図13】本実施例の単純パイプライン制御の概念を示
す図である。
【図14】本実施例の完全パイプライン制御の概念を示
す図である。
【図15】本実施例のステートマシンで使われる2ホッ
トステート符号化パラメータのテーブルを示す図であ
る。
【図16A】本実施例のレンダリング(スライサー/ダ
イサー)ASICを示す詳細機能ブロック図である。
【図16B】本実施例のレンダリング(スライサー/ダ
イサー)ASICを示す詳細機能ブロック図である。
【図16C】本実施例のレンダリング(スライサー/ダ
イサー)ASICを示す詳細機能ブロック図である。
【図17】本実施例のレンダリングASICにおいて使
用されるX-on-next-Y公式を示す図である。
【図18】本実施例のレンダリングASICにおいて使
用されるX-on-next-Y公式を示す図である。
【図19】本実施例のレンダリングASICによって使
用される調整された基本色公式を示す図である。
【図20】本実施例のレンダリングASICによって使
用される長方形公式を示す図である。
【図21A】本実施例のフィル長方形(Fill Rectangle)
プロシージャとフィルイン次ピクセル(Fill-in Next Pi
xel)プロシージャを示す図である。
【図21B】本実施例のフィル長方形(Fill Rectangle)
プロシージャとフィルイン次ピクセル(Fill-in Next Pi
xel)プロシージャを示す図である。
【図21C】本実施例のフィル長方形(Fill Rectangle)
プロシージャとフィルイン次ピクセル(Fill-in Next Pi
xel)プロシージャを示す図である。
【図22A】図22は、図22A−図22Cから成り、
本実施例の点と線インターセプトプロシージャを示す図
である。
【図22B】図22は、図22A−図22Cから成り、
本実施例の点と線インターセプトプロシージャを示す図
である。
【図22C】図22は、図22A−図22Cから成り、
本実施例の点と線インターセプトプロシージャを示す図
である。
【図23A】本実施例の三角形インターセプトプロシー
ジャを示す図である。
【図23BA】本実施例の三角形インターセプトプロシ
ージャを示す図である。
【図23BB】本実施例の三角形インターセプトプロシ
ージャを示す図である。
【図24A】本実施例のピクセル生成ユニットのポリゴ
ン処理ユニット(PIXGENA)の特性を示す図であ
る。
【図24B】本実施例のピクセル生成ユニットのポリゴ
ン処理ユニット(PIXGENA)の特性を示す図であ
る。
【図24C】本実施例のピクセル生成ユニットのポリゴ
ン処理ユニット(PIXGENA)の特性を示す図であ
る。
【図24D】本実施例のピクセル生成ユニットのポリゴ
ン処理ユニット(PIXGENA)の特性を示す図であ
る。
【図25】本実施例のピクセル生成ユニットのスパン処
理ユニット(PIXGENBEN)のスパンカウンタユ
ニット(PBCNT)の特性を示す図である。
【図26A】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)の特性を示す図である。
【図26B】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)の特性を示す図である。
【図26C】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)の特性を示す図である。
【図26D】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)の特性を示す図である。
【図26E】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)の特性を示す図である。
【図27A】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)によって使用される計算プロシージ
ャを示す図である。
【図27B】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)によって使用される計算プロシージ
ャを示す図である。
【図27C】本実施例のピクセル生成ユニットのスパン
処理ユニット(PIXGENBEN)のセグメントユニ
ット(PBSEG)によって使用される計算プロシージ
ャを示す図である。
【図28A】本実施例のピクセル生成ユニットのピクセ
ル処理ユニット(PIXGENC)の面積計算要素にお
いて使用される計算プロシージャを示す図である。
【図28B】本実施例のピクセル生成ユニットのピクセ
ル処理ユニット(PIXGENC)の面積計算要素にお
いて使用される計算プロシージャを示す図である。
【図29A】本実施例のピクセル生成ユニットのピクセ
ル処理ユニット(PIXGENC)の面積計算要素によ
って使用される擬似コードを示す図である。
【図29B】本実施例のピクセル生成ユニットのピクセ
ル処理ユニット(PIXGENC)の面積計算要素によ
って使用される擬似コードを示す図である。
【図30】本実施例のピクセル生成ユニットのピクセル
処理ユニット(PIXGENC)の色補間要素の機能ブ
ロックを示す図である。
【図31】本実施例のセットアップASICの機能ブロ
ック図である。
【符号の説明】
20 ワークステーションプロセッサ(WP) 22 Megatecグラフィックアクセラレータ 24 ワークステーションインターフェースボード(W
IB) 26 グラフィクスインターフェースボード(GIB) 28 PHIGS幾何ボード(PGB) 30 画像生成ボード(IGB)
フロントページの続き (72)発明者 マニュエル レイ エンリケーズ アメリカ合衆国 カリフォルニア州 92056 オーシャンサイド, アベニダ アンダンテ 1552 (72)発明者 ジェームス ブイ. ヘンソン アメリカ合衆国 カリフォルニア州 92056 ポーウェイ, トビアソン ロー ド 13810 (72)発明者 カート ステリー アメリカ合衆国 カリフォルニア州 92075 ソラナ ビーチ, モラ ビスタ ウエイ 834

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 各ピクセルデータは複数の画像値を含
    み、画像表示装置上に前記ピクセルデータの配列として
    のグラフィクスデータをレンダリングするレンダリング
    装置であって、 グラフィクスデータに対応するプリミテイブポリゴンデ
    ータを作成するポリゴンジェネレータ手段であって、前
    記プリミテイブポリゴンデータは、複数の画像値を有す
    る少なくとも1つの頂点画像データを含み、 前記プリミテイブポリゴンデータの拡張とソートを行
    い、また、前記頂点画像データのペア間の傾斜を計算す
    る、前記ポリゴンジェネレータ手段に結合されたセット
    アップ手段と、 前記頂点画像データのペア間を補間し、前記ピクセル配
    列内の個々のピクセルに対する前記プリミテイブポリゴ
    ンデータの部分のマッピングを表すピクスリンクデータ
    を生成する、前記セットアップ手段に結合したレンダリ
    ング手段と、 複数の前記ピクスリンクデータを合成し、前記ピクセル
    配列中の前記ピクセルデータの各々に対する前記画像値
    を生成する、前記レンダリング手段に結合したブレンデ
    ィング手段と、 第1の複数の前記ピクスリンクデータと第2の複数の前
    記ピクスリンクデータを格納する、前記ブレンディング
    手段に結合したフレームバッファ手段と、 ビデオ表示信号を前記ピクセルデータに対応して生成す
    る、前記ブレンディグ手段に接続したミキサー手段とを
    備え、 前記ピクスリンクデータの各々は、水平位置(X)と、
    垂直位置(Y)と、視点からの距離(Z)と、赤(R)
    と、緑(G)と、青(B)と、ピクセル領域カバレッジ
    (A)を含み、 前記ピクセル画像は、前記画像表示装置でレンダリング
    されることを特徴とする画像レンダリング装置。
  2. 【請求項2】 表示装置上に、ピクセル画像配列として
    のグラフィクスデータをレンダリングする方法であっ
    て、 前記グラフィクスデータの複数の2次元断片を表すプリ
    ミテイブポリゴンデータを生成する工程と、 前記第1の頂点データを拡張して、前記画像値を複数の
    第2の頂点データの各々が備える第2のポリゴンデータ
    を形成する工程と、 第2の頂点データのペアを表現する複数の第2のポリゴ
    ンエッジの傾斜を計算する工程と、 前記第2のポリゴンエッジの各々に沿って、前記第2の
    頂点画像値を補間して、前記第2のポリゴン画像の各々
    に沿った位置毎に、前記画像値を定義する工程と、 前記第2のポリゴンデータを、前記ピクセル画像配列の
    水平境界にマッピングして、前記第2のポリゴンデータ
    をスライスし、また、複数の第3のポリゴンデータを生
    成する工程と、 前記第3のポリゴンデータを、前記ピクセル画像配列の
    垂直境界にマッピングして、前記第3のポリゴンデータ
    をダイシングし、各々が複数の前記画像値を有する各複
    数のピクスリンクデータを生成する工程と、 前記ピクセル画像配列のピクセル領域に対し、前記ピク
    スリンクデータの各々の面積を計算する工程と、 前記ピクスリンクデータを、前記ピクスリンクデータが
    視点(Z)の画像値からの前記距離によって順序付けさ
    れるようにメモリに格納する工程と、 前記ピクセル配列中の前記ピクセルの各々に対する前記
    ピクセルデータを生成する工程とを備え、 前記プリミテイブポリゴンデータは、水平位置(X)
    と、垂直位置(Y)と、視点からの距離(Z)と、赤
    (R)と、緑(G)と、青(B)と、透明度(T)とを
    含む複数の画像値を有する、少なくとも1つの第1の頂
    点データを含み、 前記ピクセルデータを生成する工程は、 前記ピクセルデータを、もし、対応するピクスリンク領
    域カバレッジ値Aが単一であるなら、前記画像値(Z)
    の最小値を有する前記対応するピクスリンクデータと等
    しいみなし、 単一でないなら、前記視点からの距離(Z)の相対値に
    比例する前記対応するピクスリンクデータの各々に対す
    る前記画像値と、前記対応するピクスリンクデータ内の
    前記領域カバレッジ(A)をブレンディングして、前記
    ピクセルデータの各々に対する画像値を生成する工程
    と、前記ピクセルデータを、メモリに格納する工程と、
    前記格納されたピクセルデータに対応するビデオ表示信
    号を生成する工程を備えることを特徴とするグラフィク
    スデータをレンダリングする方法。
  3. 【請求項3】 複数の画像値を含むピクセルデータの配
    列としてのグラフィクスデータを、画像表示装置上にレ
    ンダリングするレンダリング装置であって、 グラフィクスデータに対応するプリミテイブポリゴンデ
    ータを作成するポリゴンジェネレータ手段と、 前記プリミテイブポリゴンデータの拡張とソートを行
    い、また、前記プリミテイブポリゴンデータが備える頂
    点画像データのペア間の傾斜を計算するセットアップ手
    段と、 前記頂点画像データのペア間を補間し、前記ピクセル配
    列内の個々のピクセルに対する前記プリミテイブポリゴ
    ンデータの部分のマッピングを示すピクスリンクデータ
    を生成するレンダリング手段と、 複数の前記ピクスリンクデータを合成し、前記ピクセル
    配列中の前記ピクセルデータの各々に対する前記画像値
    を生成するブレンディング手段と、 第1の複数の前記ピクスリンクデータと第2の複数の前
    記ピクスリンクデータを格納するフレームバッファ手段
    と、 ビデオ表示信号を前記ピクセルデータに対応して生成す
    るミキサー手段と、 前記ビデオ表示信号に基づいて、前記画像表示装置上に
    画像を形成する画像形成手段とを備えることを特徴とす
    る画像レンダリング装置。
  4. 【請求項4】 前記プリミテイブポリゴンデータは、複
    数の画像値を有する少なくとも1つの頂点画像データを
    含むことを特徴とする請求項3に記載の画像レンダリン
    グ装置。
  5. 【請求項5】 前記ピクスリンクデータの各々は、水平
    位置(X)と、垂直位置(Y)と、視点からの距離
    (Z)と、赤(R)と、緑(G)と、青(B)と、ピク
    セル領域カバレッジ(A)を含むことを特徴とする請求
    項3に記載の画像レンダリング装置。
  6. 【請求項6】 複数の画像値を含むピクセルデータの配
    列としてのグラフィクスデータを、画像表示装置上にレ
    ンダリングするレンダリング方法であって、 グラフィクスデータに対応するプリミテイブポリゴンデ
    ータを作成するポリゴンジェネレータ工程と、 前記プリミテイブポリゴンデータの拡張とソートを行
    い、また、前記プリミテイブポリゴンデータが備える頂
    点画像データのペア間の傾斜を計算するセットアップ工
    程と、 前記頂点画像データのペア間を補間し、前記ピクセル配
    列内の個々のピクセルに対する前記プリミテイブポリゴ
    ンデータの部分のマッピングを示すピクスリンクデータ
    を生成するレンダリング工程と、 複数の前記ピクスリンクデータを合成し、前記ピクセル
    配列中の前記ピクセルデータの各々に対する前記画像値
    を生成するブレンディング工程と、 第1の複数の前記ピクスリンクデータと第2の複数の前
    記ピクスリンクデータをフレームバッファに格納するフ
    レームバッファ工程と、 ビデオ表示信号を前記ピクセルデータに対応して生成す
    るミキサー工程と、 前記ビデオ表示信号に基づいて、画像を形成する画像形
    成工程とを備えることを特徴とする画像レンダリング方
    法。
  7. 【請求項7】 前記プリミテイブポリゴンデータは、複
    数の画像値を有する少なくとも1つの頂点画像データを
    含むことを特徴とする請求項6に記載の画像レンダリン
    グ方法。
  8. 【請求項8】 前記ピクスリンクデータの各々は、水平
    位置(X)と、垂直位置(Y)と、視点からの距離
    (Z)と、赤(R)と、緑(G)と、青(B)と、ピク
    セル領域カバレッジ(A)を含むことを特徴とする請求
    項6に記載の画像レンダリング方法。
JP6117277A 1993-05-28 1994-05-30 画像レンダリング方法とその装置 Pending JPH07134776A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6918093A 1993-05-28 1993-05-28
US08/069180 1993-05-28

Publications (1)

Publication Number Publication Date
JPH07134776A true JPH07134776A (ja) 1995-05-23

Family

ID=22087249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6117277A Pending JPH07134776A (ja) 1993-05-28 1994-05-30 画像レンダリング方法とその装置

Country Status (3)

Country Link
US (1) US5872902A (ja)
JP (1) JPH07134776A (ja)
GB (1) GB2278524B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502909A (ja) * 2001-09-12 2005-01-27 マイクロニック レーザー システムズ アクチボラゲット 高精度リソグラフィ用グラフィックス・エンジン
JP2006011639A (ja) * 2004-06-23 2006-01-12 Canon Inc グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法
US7375850B2 (en) 2001-12-25 2008-05-20 Canon Kabushiki Kaisha Image output apparatus, method of controlling the image output apparatus, and image output system
JP2010020764A (ja) * 2008-07-03 2010-01-28 Nvidia Corp ハイブリッドマルチサンプル/スーパーサンプルアンチエイリアシング
JP2012198931A (ja) * 2006-09-29 2012-10-18 Imagination Technologies Ltd 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良
JP2019012535A (ja) * 2014-04-05 2019-01-24 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
KR20200102660A (ko) * 2019-02-22 2020-09-01 지멘스 메디컬 솔루션즈 유에스에이, 인크. 영상 처리 방법 및 영상 처리 시스템

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5767867A (en) * 1995-11-27 1998-06-16 Sun Microsystems, Inc. Method for alpha blending images utilizing a visual instruction set
JP3645024B2 (ja) * 1996-02-06 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 描画装置及び描画方法
US6115047A (en) * 1996-07-01 2000-09-05 Sun Microsystems, Inc. Method and apparatus for implementing efficient floating point Z-buffering
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US6130674A (en) * 1997-03-31 2000-10-10 Cirrus Logic, Inc. Dynamically selectable texture filter for computer graphics
US6366290B1 (en) * 1997-03-31 2002-04-02 Cirrus Logic, Inc. Dynamically selectable texture filter for a software graphics engine
GB9712684D0 (en) * 1997-06-18 1997-08-20 Philips Electronics Nv Fast processing of image primitives
JPH1166340A (ja) * 1997-08-20 1999-03-09 Sega Enterp Ltd 画像処理装置、画像処理方法及び画像処理プログラムを記録した記録媒体
US6201545B1 (en) * 1997-09-23 2001-03-13 Ati Technologies, Inc. Method and apparatus for generating sub pixel masks in a three dimensional graphic processing system
US6204859B1 (en) 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
US6128000A (en) * 1997-10-15 2000-10-03 Compaq Computer Corporation Full-scene antialiasing using improved supersampling techniques
EP0913795B1 (en) * 1997-10-28 2003-05-02 Matsushita Electric Industrial Co., Ltd. Image generation apparatus, image generation method, image generation program recording medium, image composition apparatus, image composition method, and image composition program recording medium
US6337686B2 (en) * 1998-01-07 2002-01-08 Ati Technologies Inc. Method and apparatus for line anti-aliasing
US6577312B2 (en) 1998-02-17 2003-06-10 Sun Microsystems, Inc. Graphics system configured to filter samples using a variable support filter
US6496186B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6489956B1 (en) * 1998-02-17 2002-12-03 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
US6525723B1 (en) * 1998-02-17 2003-02-25 Sun Microsystems, Inc. Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
US6483504B1 (en) 1998-02-17 2002-11-19 Sun Microsystems, Inc. Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US6473089B1 (en) 1998-03-02 2002-10-29 Ati Technologies, Inc. Method and apparatus for a video graphics circuit having parallel pixel processing
US6760025B1 (en) * 1998-07-07 2004-07-06 S3 Graphics Co., Ltd. Z-buffer based interpenetrating object detection for antialiazing
US6646639B1 (en) 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
JP2000048189A (ja) * 1998-07-30 2000-02-18 Fujitsu Ltd 画像処理装置
US6232975B1 (en) * 1998-08-19 2001-05-15 Autodesk, Inc. Reverse daylighting function for computer-generated images
US6188412B1 (en) * 1998-08-28 2001-02-13 Ati Technologies, Inc. Method and apparatus for performing setup operations in a video graphics system
US6407740B1 (en) * 1998-09-30 2002-06-18 Sun Microsystems, Inc. Addressable output buffer architecture
US6297799B1 (en) * 1998-11-12 2001-10-02 James Knittel Three-dimensional cursor for a real-time volume rendering system
AU2348900A (en) * 1998-11-30 2000-06-19 Quantum3D, Inc. Pixel offset antialiasing
US6433790B1 (en) * 1999-01-19 2002-08-13 Intel Corporation Methods and systems for rendering line and point features for display
US6906728B1 (en) * 1999-01-28 2005-06-14 Broadcom Corporation Method and system for providing edge antialiasing
US6721446B1 (en) * 1999-04-26 2004-04-13 Adobe Systems Incorporated Identifying intrinsic pixel colors in a region of uncertain pixels
JP3649947B2 (ja) * 1999-04-30 2005-05-18 富士通株式会社 画像描画装置、画像描画方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6636633B2 (en) 1999-05-03 2003-10-21 Intel Corporation Rendering of photorealistic computer graphics images
AU4502400A (en) * 1999-05-07 2000-11-21 Broadcom Corporation Method and system for efficiently using fewer blending units for antialiasing
US6377274B1 (en) * 1999-07-15 2002-04-23 Intel Corporation S-buffer anti-aliasing method
US6870545B1 (en) * 1999-07-26 2005-03-22 Microsoft Corporation Mixed but indistinguishable raster and vector image data types
US6429877B1 (en) * 1999-07-30 2002-08-06 Hewlett-Packard Company System and method for reducing the effects of aliasing in a computer graphics system
US6326976B1 (en) * 1999-08-06 2001-12-04 Tobias Huettner Method for determining the representation of a picture on a display and method for determining the color of a pixel displayed
US6795072B1 (en) * 1999-08-12 2004-09-21 Broadcom Corporation Method and system for rendering macropixels in a graphical image
JP3602037B2 (ja) * 1999-08-23 2004-12-15 株式会社フジエ 動画像データファイルの作成方法
US6577307B1 (en) * 1999-09-20 2003-06-10 Silicon Integrated Systems Corp. Anti-aliasing for three-dimensional image without sorting polygons in depth order
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6515671B1 (en) * 1999-12-06 2003-02-04 Nvidia Corporation Method, apparatus and article of manufacture for a vertex attribute buffer in a graphics processor
US6490696B1 (en) 1999-12-15 2002-12-03 Electronics For Imaging, Inc. System and method for printer output regression testing using display lists
US6441816B1 (en) * 1999-12-29 2002-08-27 Intel Corporation Method for modeling and rendering complex surfaces using local height maps
US6865301B1 (en) * 2000-02-28 2005-03-08 Adobe Systems Incorporated Reducing aliasing artifacts when shaping a digital image
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US7576730B2 (en) 2000-04-14 2009-08-18 Picsel (Research) Limited User interface systems and methods for viewing and manipulating digital documents
US6781600B2 (en) * 2000-04-14 2004-08-24 Picsel Technologies Limited Shape processor
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US6426755B1 (en) 2000-05-16 2002-07-30 Sun Microsystems, Inc. Graphics system using sample tags for blur
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US20050052459A1 (en) * 2000-06-07 2005-03-10 Lewis Michael C. Method and system for rendering macropixels in a graphical image
US6670955B1 (en) * 2000-07-19 2003-12-30 Ati International Srl Method and system for sort independent alpha blending of graphic fragments
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6747663B2 (en) 2000-08-24 2004-06-08 Sun Microsystems, Inc. Interpolating sample values from known triangle vertex values
US6831647B1 (en) * 2000-09-28 2004-12-14 Rockwell Automation Technologies, Inc. Raster engine with bounded video signature analyzer
US7215339B1 (en) 2000-09-28 2007-05-08 Rockwell Automation Technologies, Inc. Method and apparatus for video underflow detection in a raster engine
US7061507B1 (en) 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US6327207B1 (en) * 2001-04-09 2001-12-04 Lsi Logic Corporation Synchronizing data operations across a synchronization boundary between different clock domains using two-hot encoding
US7456838B1 (en) 2001-06-08 2008-11-25 Nvidia Corporation System and method for converting a vertex program to a binary format capable of being executed by a hardware graphics pipeline
US7006101B1 (en) 2001-06-08 2006-02-28 Nvidia Corporation Graphics API with branching capabilities
US7162716B2 (en) 2001-06-08 2007-01-09 Nvidia Corporation Software emulator for optimizing application-programmable vertex processing
CN100410725C (zh) * 2001-09-12 2008-08-13 麦克罗尼克激光系统公司 使用空间光调制器的改进方法和装置
US6618185B2 (en) 2001-11-28 2003-09-09 Micronic Laser Systems Ab Defective pixel compensation method
US7106490B2 (en) * 2001-12-14 2006-09-12 Micronic Laser Systems Ab Methods and systems for improved boundary contrast
US7079151B1 (en) 2002-02-08 2006-07-18 Adobe Systems Incorporated Compositing graphical objects
US20040083430A1 (en) * 2002-10-29 2004-04-29 Boonen Paul J. J. Method and apparatus to process portable document format data containing transparency
JP3829985B2 (ja) * 2002-10-31 2006-10-04 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
JP4066803B2 (ja) * 2002-12-18 2008-03-26 株式会社ニコン 画像処理装置、画像処理プログラム、画像処理方法および電子カメラ
KR20050086953A (ko) * 2003-01-15 2005-08-30 마이크로닉 레이저 시스템즈 에이비 결함 픽셀을 탐지하는 방법
US20040174379A1 (en) * 2003-03-03 2004-09-09 Collodi David J. Method and system for real-time anti-aliasing
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8768642B2 (en) 2003-09-15 2014-07-01 Nvidia Corporation System and method for remotely configuring semiconductor functional circuits
US7164430B2 (en) * 2003-09-25 2007-01-16 Via Technologies, Inc. Anti-aliasing line pixel coverage calculation using programmable shader
JP4183082B2 (ja) * 2003-09-26 2008-11-19 シャープ株式会社 3次元画像描画装置および3次元画像描画方法
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
DE102004027945A1 (de) * 2004-06-08 2005-12-29 "Stiftung Caesar" (Center Of Advanced European Studies And Research) Datenspeicherverfahren sowie Datenspeicherstruktur
US8723231B1 (en) * 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8744184B2 (en) * 2004-10-22 2014-06-03 Autodesk, Inc. Graphics processing method and system
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US7557817B2 (en) * 2005-08-23 2009-07-07 Seiko Epson Corporation Method and apparatus for overlaying reduced color resolution images
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8144166B2 (en) * 2006-08-01 2012-03-27 Microsoft Corporation Dynamic pixel snapping
US8497874B2 (en) * 2006-08-01 2013-07-30 Microsoft Corporation Pixel snapping for anti-aliased rendering
US8508552B2 (en) * 2006-09-08 2013-08-13 Microsoft Corporation Pixel snapping with relative guidelines
US20080062204A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Automated pixel snapping for anti-aliased rendering
US7605825B1 (en) * 2006-10-24 2009-10-20 Adobe Systems, Incorporated Fast zoom-adaptable anti-aliasing of lines using a graphics processing unit
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) * 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8081181B2 (en) * 2007-06-20 2011-12-20 Microsoft Corporation Prefix sum pass to linearize A-buffer storage
US8724483B2 (en) * 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US20110025683A1 (en) * 2008-04-04 2011-02-03 Clarion Co., Ltd. Map Display Device
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US20110063304A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US20110283059A1 (en) * 2010-05-11 2011-11-17 Progeniq Pte Ltd Techniques for accelerating computations using field programmable gate array processors
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9147264B2 (en) * 2011-02-23 2015-09-29 Nvidia Corporation Method and system for quantizing and squeezing base values of associated tiles in an image
AU2012258407A1 (en) * 2012-11-27 2014-06-12 Canon Kabushiki Kaisha Method, system and apparatus for determining area of a pixel covered by a scalable definition for a character
US10158858B2 (en) 2012-12-27 2018-12-18 Nvidia Corporation Method and system for index compression for fixed block size texture formats and for non-linear interpolation of index values along an edge in a tile
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US9819969B2 (en) 2013-11-26 2017-11-14 Nvidia Corporation Generalization of methods and systems for image compression while encoding at least one extra bit
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation
CN105389776B (zh) 2014-09-02 2019-05-03 辉达公司 图像缩放技术
US9542732B2 (en) * 2015-04-03 2017-01-10 Cognex Corporation Efficient image transformation
US10275863B2 (en) 2015-04-03 2019-04-30 Cognex Corporation Homography rectification
CN107607783B (zh) * 2017-09-01 2019-09-20 广州辰创科技发展有限公司 一种高效灵活的雷达频谱显示方法
US11631215B2 (en) * 2020-03-11 2023-04-18 Qualcomm Incorporated Methods and apparatus for edge compression anti-aliasing
CN116597065A (zh) * 2023-05-18 2023-08-15 青岛海洋科技中心 光线路径追踪并行加速方法

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718105A (en) * 1983-03-14 1988-01-05 Ana Tech Corporation Graphic vectorization system
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
US4679040A (en) * 1984-04-30 1987-07-07 The Singer Company Computer-generated image system to display translucent features with anti-aliasing
US4729098A (en) * 1985-06-05 1988-03-01 General Electric Company System and method employing nonlinear interpolation for the display of surface structures contained within the interior region of a solid body
US4710876A (en) * 1985-06-05 1987-12-01 General Electric Company System and method for the display of surface structures contained within the interior region of a solid body
US4719585A (en) * 1985-08-28 1988-01-12 General Electric Company Dividing cubes system and method for the display of surface structures contained within the interior region of a solid body
US4646251A (en) * 1985-10-03 1987-02-24 Evans & Sutherland Computer Corporation Computer graphics, parametric patch parallel subdivision processor
FR2594980A1 (fr) * 1986-02-21 1987-08-28 Gen Electric Processeur de visualisation pour un systeme de visualisation graphique
US4918625A (en) * 1986-12-19 1990-04-17 Cae-Link Corporation Method and apparatus for processing translucent objects
US4905164A (en) * 1986-12-19 1990-02-27 General Electric Company Method for modulating color for effecting color cell texture
US5070465A (en) * 1987-02-25 1991-12-03 Sony Corporation Video image transforming method and apparatus
US4843380A (en) * 1987-07-13 1989-06-27 Megatek Corporation Anti-aliasing raster scan display system
US5109481A (en) * 1987-07-24 1992-04-28 Hewlet-Packard Company Quadratic interpolation for shaded image generation
GB2207840B (en) * 1987-08-07 1991-09-25 Philips Electronic Associated Method of and apparatus for modifying data stored in a random access memory
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation
US4991122A (en) * 1987-10-07 1991-02-05 General Parametrics Corporation Weighted mapping of color value information onto a display screen
US4873515A (en) * 1987-10-16 1989-10-10 Evans & Sutherland Computer Corporation Computer graphics pixel processing system
US4930091A (en) * 1987-11-04 1990-05-29 Schlumberger Systems, Inc. Triangle classification setup method and apparatus for 3-D graphics display system
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US4885688A (en) * 1987-11-25 1989-12-05 General Electric Company Minimization of directed points generated in three-dimensional dividing cubes method
US4974176A (en) * 1987-12-18 1990-11-27 General Electric Company Microtexture for close-in detail
US5136664A (en) * 1988-02-23 1992-08-04 Bersack Bret B Pixel rendering
US5142617A (en) * 1988-10-27 1992-08-25 Tektronix, Inc. Method of shading a graphics image
JPH077456B2 (ja) * 1988-11-11 1995-01-30 大日本スクリーン製造株式会社 重合度による図形の認識装置
GB8828342D0 (en) * 1988-12-05 1989-01-05 Rediffusion Simulation Ltd Image generator
US5241656A (en) * 1989-02-06 1993-08-31 International Business Machines Corporation Depth buffer clipping for window management
US5036316A (en) * 1989-04-03 1991-07-30 Honeywell Inc. Method and apparatus for high speed linear shading in a raster graphics system
US5153937A (en) * 1989-09-22 1992-10-06 Ampex Corporation System for generating anti-aliased video signal
US5175809A (en) * 1989-09-22 1992-12-29 Ampex Corporation Pipeline architecture for generating video signal
US5265198A (en) * 1989-10-23 1993-11-23 International Business Machines Corporation Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system
US5339092A (en) * 1989-11-06 1994-08-16 Honeywell Inc Beam former for matrix display
US5227863A (en) * 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
US5159665A (en) * 1989-11-27 1992-10-27 Sun Microsystems, Inc. Graphics accelerator system
US5138699A (en) * 1990-02-13 1992-08-11 International Business Machines Corporation Hardware utilization of color interpolation capability in a color imaging system
US5185856A (en) * 1990-03-16 1993-02-09 Hewlett-Packard Company Arithmetic and logic processing unit for computer graphics system
US5123085A (en) * 1990-03-19 1992-06-16 Sun Microsystems, Inc. Method and apparatus for rendering anti-aliased polygons
US5179638A (en) * 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view
US5220646A (en) * 1990-04-30 1993-06-15 International Business Machines Corporation Single pass hidden line removal using z-buffers
DE69122557T2 (de) * 1990-06-29 1997-04-24 Philips Electronics Nv Bilderzeugung
US5142273A (en) * 1990-09-20 1992-08-25 Ampex Corporation System for generating color blended video signal
US5175805A (en) * 1990-10-30 1992-12-29 Sun Microsystems, Inc. Method and apparatus for sequencing composite operations of pixels
US5125038A (en) * 1991-01-22 1992-06-23 International Business Machine Corporation Face and edge trim method for an automatic mesh generation system
US5307450A (en) * 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
US5278949A (en) * 1991-03-12 1994-01-11 Hewlett-Packard Company Polygon renderer which determines the coordinates of polygon edges to sub-pixel resolution in the X,Y and Z coordinates directions
US5157736A (en) * 1991-04-19 1992-10-20 International Business Machines Corporation Apparatus and method for optical recognition of chemical graphics
GB2259432A (en) * 1991-09-06 1993-03-10 Canon Res Ct Europe Ltd Three dimensional graphics processing
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
US5345541A (en) * 1991-12-20 1994-09-06 Apple Computer, Inc. Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5274760A (en) * 1991-12-24 1993-12-28 International Business Machines Corporation Extendable multiple image-buffer for graphics systems
US5327509A (en) * 1992-04-27 1994-07-05 Star Technologies, Inc. Compressed image system for texture patterns
US5325485A (en) * 1992-10-30 1994-06-28 International Business Machines Corporation Method and apparatus for displaying primitives processed by a parallel processor system in a sequential order

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502909A (ja) * 2001-09-12 2005-01-27 マイクロニック レーザー システムズ アクチボラゲット 高精度リソグラフィ用グラフィックス・エンジン
US7375850B2 (en) 2001-12-25 2008-05-20 Canon Kabushiki Kaisha Image output apparatus, method of controlling the image output apparatus, and image output system
JP2006011639A (ja) * 2004-06-23 2006-01-12 Canon Inc グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法
JP2012198931A (ja) * 2006-09-29 2012-10-18 Imagination Technologies Ltd 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良
JP2010020764A (ja) * 2008-07-03 2010-01-28 Nvidia Corp ハイブリッドマルチサンプル/スーパーサンプルアンチエイリアシング
JP2019012535A (ja) * 2014-04-05 2019-01-24 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整
KR20200102660A (ko) * 2019-02-22 2020-09-01 지멘스 메디컬 솔루션즈 유에스에이, 인크. 영상 처리 방법 및 영상 처리 시스템

Also Published As

Publication number Publication date
GB2278524B (en) 1997-12-10
GB2278524A (en) 1994-11-30
US5872902A (en) 1999-02-16
GB9406392D0 (en) 1994-05-25

Similar Documents

Publication Publication Date Title
US5872902A (en) Method and apparatus for rendering of fractional pixel lists for anti-aliasing and transparency
US5990904A (en) Method and system for merging pixel fragments in a graphics rendering system
US5307450A (en) Z-subdivision for improved texture mapping
US6222550B1 (en) Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6111584A (en) Rendering system with mini-patch retrieval from local texture storage
US6597363B1 (en) Graphics processor with deferred shading
US6348919B1 (en) Graphics system with optimized use of unified local and frame buffers
US5764228A (en) Graphics pre-processing and rendering system
US5798770A (en) Graphics rendering system with reconfigurable pipeline sequence
EP0850462B1 (en) Method and system for rendering graphical objects to image chunks and combining image layers into a display image
US5345541A (en) Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5835096A (en) Rendering system using 3D texture-processing hardware for accelerated 2D rendering
US6326964B1 (en) Method for sorting 3D object geometry among image chunks for rendering in a layered graphics rendering system
US6906720B2 (en) Multipurpose memory system for use in a graphics system
US6108460A (en) Load balanced image generation
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
US6919895B1 (en) Texture caching arrangement for a computer graphics accelerator
US5757374A (en) Method and apparatus for performing texture mapping
US5877773A (en) Multi-pass clipping in a geometry accelerator
KR19980702804A (ko) 영상 생성 및 조작을 위한 하드웨어 아키텍처
JP2002183748A (ja) ボリュームデータセットのレンダリング方法およびシステム
US6496186B1 (en) Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US5973701A (en) Dynamic switching of texture mip-maps based on pixel depth value
US7310103B2 (en) Pipelined 2D viewport clip circuit
US20030160799A1 (en) Reconfigurable hardware filter for texture mapping and image processing

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20031216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20031219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040726

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041206