JPH0916144A - 二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法 - Google Patents
二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法Info
- Publication number
- JPH0916144A JPH0916144A JP8147638A JP14763896A JPH0916144A JP H0916144 A JPH0916144 A JP H0916144A JP 8147638 A JP8147638 A JP 8147638A JP 14763896 A JP14763896 A JP 14763896A JP H0916144 A JPH0916144 A JP H0916144A
- Authority
- JP
- Japan
- Prior art keywords
- frame buffer
- span
- data
- value
- stepper
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/40—Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【課題】本発明の目的は、処理時間を向上させるため
に、二次元でインターリーブされる、多数のフレームバ
ッファコントローラを提供することである。 【解決手段】上記目的は、基本要素データを受け取り、
一連のスパンラインデータを生成する、エッジステッパ
と、前記一連のスパンラインデータを受け取り、前記一
連のうちの各スパンラインデータに基づいて、一連のサ
ブスパンデータを生成する、サブスパンステッパと、前
記一連のサブスパンデータの各々を受け取り、前記サブ
スパンデータに対応する画素データを生成する、スパン
ステッパとからなるフレームバッファコントローラによ
り達成される。
に、二次元でインターリーブされる、多数のフレームバ
ッファコントローラを提供することである。 【解決手段】上記目的は、基本要素データを受け取り、
一連のスパンラインデータを生成する、エッジステッパ
と、前記一連のスパンラインデータを受け取り、前記一
連のうちの各スパンラインデータに基づいて、一連のサ
ブスパンデータを生成する、サブスパンステッパと、前
記一連のサブスパンデータの各々を受け取り、前記サブ
スパンデータに対応する画素データを生成する、スパン
ステッパとからなるフレームバッファコントローラによ
り達成される。
Description
【0001】
【発明の属する技術分野】本発明は、一般に、コンピュ
ータグラフィックスシステムにおけるラスタ化システ
ム、及び方法に関し、更に詳細には、二次元でインター
リーブされるラスタ化のためのフレームバッファに関す
る。
ータグラフィックスシステムにおけるラスタ化システ
ム、及び方法に関し、更に詳細には、二次元でインター
リーブされるラスタ化のためのフレームバッファに関す
る。
【0002】
【従来の技術】コンピュータグラフィックスシステム
は、二次元表示画面上に、対象物の図的表現を表示する
ために、広く用いられる。現在のコンピュータグラフィ
ックスシステムは、非常に細かい表現を与えることが可
能であり、様々な用途に使用されている。
は、二次元表示画面上に、対象物の図的表現を表示する
ために、広く用いられる。現在のコンピュータグラフィ
ックスシステムは、非常に細かい表現を与えることが可
能であり、様々な用途に使用されている。
【0003】通常のコンピュータグラフィックスシステ
ムでは、表示画面上に表現すべき対象物が、複数の図形
基本要素に分解される。基本要素は、図形ピクチャの基
本的な構成要素であり、点、線、ベクトル、及び三角形
等の多角形を含む。通常、二次元表示画面上で、その画
面上に表現される、1つ以上の対象物の映像を表現す
る、図形基本要素を描画するために、ハードウエア/ソ
フトウエア方式が実施される。
ムでは、表示画面上に表現すべき対象物が、複数の図形
基本要素に分解される。基本要素は、図形ピクチャの基
本的な構成要素であり、点、線、ベクトル、及び三角形
等の多角形を含む。通常、二次元表示画面上で、その画
面上に表現される、1つ以上の対象物の映像を表現す
る、図形基本要素を描画するために、ハードウエア/ソ
フトウエア方式が実施される。
【0004】通常、描画すべき三次元対象物を規定する
図形基本要素は、ホストコンピュータから与えられ、ホ
ストコンピュータは、基本要素データに関連して、各基
本要素を規定する。例えば、基本要素が三角形である場
合、ホストコンピュータは、この基本要素を、その頂点
のx、y、z座標だけでなく、各頂点のR、G、B色値
にも関連して規定する。ラスタ化ハードウエアは、この
基本要素データを補間して、各基本要素を表現するため
に点灯される表示画面の画素、及び各画素に対するR、
G、B値を計算する。
図形基本要素は、ホストコンピュータから与えられ、ホ
ストコンピュータは、基本要素データに関連して、各基
本要素を規定する。例えば、基本要素が三角形である場
合、ホストコンピュータは、この基本要素を、その頂点
のx、y、z座標だけでなく、各頂点のR、G、B色値
にも関連して規定する。ラスタ化ハードウエアは、この
基本要素データを補間して、各基本要素を表現するため
に点灯される表示画面の画素、及び各画素に対するR、
G、B値を計算する。
【0005】図1は、典型的なラスタ化ハードウエアの
構成要素を示す。フレームバッファコントローラ1は、
エッジステッパ3、スパンステッパ5、及びメモリコン
トローラ7を含む。エッジステッパ3は、基本要素デー
タからの補間を通して、基本要素の各エッジに沿った画
素、及びそれに対応する色値を決定する。エッジステッ
パ3によって決定された画素は、この基本要素内の画素
ラインの端部での点を規定する。画素ラインは、スパン
と呼ばれる。スパンステッパ5は、画素ラインの各々に
対して、エッジステッパから画素データを受け取り、そ
の画素ライン内の各画素に対して、色値を決定する。画
素値、及び色値は、メモリコントローラ7に与えられ、
メモリコントローラ7は、この情報をビデオ用ランダム
・アクセス・メモリ(VRAM)9に書き込む。表示コ
ントローラ(図示せず)が、VRAMの内容に基づい
て、ディスプレイを駆動する。
構成要素を示す。フレームバッファコントローラ1は、
エッジステッパ3、スパンステッパ5、及びメモリコン
トローラ7を含む。エッジステッパ3は、基本要素デー
タからの補間を通して、基本要素の各エッジに沿った画
素、及びそれに対応する色値を決定する。エッジステッ
パ3によって決定された画素は、この基本要素内の画素
ラインの端部での点を規定する。画素ラインは、スパン
と呼ばれる。スパンステッパ5は、画素ラインの各々に
対して、エッジステッパから画素データを受け取り、そ
の画素ライン内の各画素に対して、色値を決定する。画
素値、及び色値は、メモリコントローラ7に与えられ、
メモリコントローラ7は、この情報をビデオ用ランダム
・アクセス・メモリ(VRAM)9に書き込む。表示コ
ントローラ(図示せず)が、VRAMの内容に基づい
て、ディスプレイを駆動する。
【0006】
【発明が解決しようとする課題】エッジステッパ3、及
びスパンステッパ5における計算処理は複雑であるた
め、この処理は低速となり得る。2つ以上のフレームバ
ッファコントローラを並列に用いることによって、処理
速度を増大することができる。図2は、2つの並列フレ
ームバッファコントローラ1、2を示す。フレームバッ
ファコントローラ1、2は各々、エッジステッパ3、
4、スパンステッパ5、6、及びメモリコントローラ
7、8を含む。メモリコントローラ7、8は、別個のV
RAM 9、10に接続されている。表示コントローラ
は、VRAM 9、10の両方に記憶された画素を組み
合わせて、最終的な表示を生成する。並列動作時には、
各フレームバッファコントローラは、画面の指定された
ラインに対する値(画素のスパン)を決定する。各フレ
ームバッファコントローラ1、2におけるエッジステッ
パ3、4は、未指定の画素ラインを飛び越す。図2は、
2つのフレームバッファコントローラを示すが、任意の
数が可能である。多数のフレームバッファコントローラ
を並列に使用すると、処理速度を増大することができる
が、各フレームバッファコントローラへのスパンライン
の割当ては、効率が低下する可能性がある。基本要素の
形状、及び配向に依存して、フレームバッファコントロ
ーラにおけるスパンラインに対する処理時間は、広範に
変動し得る。例えば、高さが小さく幅の広い三角形の基
本要素の場合、一方のフレームバッファコントローラ
が、この基本要素の基部での大きな部分をカバーする走
査線を有し、他方のフレームバッファコントローラは、
先端部での小さな部分しかカバーしない走査線を有す
る。基本要素は、各フレームバッファコントローラに同
時に与えられるため、システム全体に対する処理時間
は、何れかのフレームバッファコントローラのうちで、
最も長い処理時間に依存する。
びスパンステッパ5における計算処理は複雑であるた
め、この処理は低速となり得る。2つ以上のフレームバ
ッファコントローラを並列に用いることによって、処理
速度を増大することができる。図2は、2つの並列フレ
ームバッファコントローラ1、2を示す。フレームバッ
ファコントローラ1、2は各々、エッジステッパ3、
4、スパンステッパ5、6、及びメモリコントローラ
7、8を含む。メモリコントローラ7、8は、別個のV
RAM 9、10に接続されている。表示コントローラ
は、VRAM 9、10の両方に記憶された画素を組み
合わせて、最終的な表示を生成する。並列動作時には、
各フレームバッファコントローラは、画面の指定された
ラインに対する値(画素のスパン)を決定する。各フレ
ームバッファコントローラ1、2におけるエッジステッ
パ3、4は、未指定の画素ラインを飛び越す。図2は、
2つのフレームバッファコントローラを示すが、任意の
数が可能である。多数のフレームバッファコントローラ
を並列に使用すると、処理速度を増大することができる
が、各フレームバッファコントローラへのスパンライン
の割当ては、効率が低下する可能性がある。基本要素の
形状、及び配向に依存して、フレームバッファコントロ
ーラにおけるスパンラインに対する処理時間は、広範に
変動し得る。例えば、高さが小さく幅の広い三角形の基
本要素の場合、一方のフレームバッファコントローラ
が、この基本要素の基部での大きな部分をカバーする走
査線を有し、他方のフレームバッファコントローラは、
先端部での小さな部分しかカバーしない走査線を有す
る。基本要素は、各フレームバッファコントローラに同
時に与えられるため、システム全体に対する処理時間
は、何れかのフレームバッファコントローラのうちで、
最も長い処理時間に依存する。
【0007】代替として、フレームバッファコントロー
ラが、異なる基本要素を処理するように割り当てられる
場合がある。しかし、基本要素は、任意の順序で処理さ
れるため、画素データを正しい位置に並べ替え、重複す
る基本要素を調整するためには、大きなFIFOメモリ
が必要である。
ラが、異なる基本要素を処理するように割り当てられる
場合がある。しかし、基本要素は、任意の順序で処理さ
れるため、画素データを正しい位置に並べ替え、重複す
る基本要素を調整するためには、大きなFIFOメモリ
が必要である。
【0008】変動する処理時間に鑑みて、本発明の目的
は、処理時間を向上させるために、二次元でインターリ
ーブされる、多数のフレームバッファコントローラを提
供することである。
は、処理時間を向上させるために、二次元でインターリ
ーブされる、多数のフレームバッファコントローラを提
供することである。
【0009】
【課題を解決するための手段】本発明の1つの態様にお
いて、多数のフレームバッファコントローラの各々が、
表示中の各スパンラインの一部に割り当てられる。並列
処理の効率を更に向上させるために、あるフレームバッ
ファに割り当てられた、スパンラインの部分は、スパン
ラインに依存して変化させることができる。本発明の他
の態様において、表示は、タイル、又はブロックに分割
することができる。各タイル、又はブロックは、更に小
分割されるため、各フレームバッファは、基本要素デー
タを処理して、各タイル内の各スパンラインの一部に画
素を与える。
いて、多数のフレームバッファコントローラの各々が、
表示中の各スパンラインの一部に割り当てられる。並列
処理の効率を更に向上させるために、あるフレームバッ
ファに割り当てられた、スパンラインの部分は、スパン
ラインに依存して変化させることができる。本発明の他
の態様において、表示は、タイル、又はブロックに分割
することができる。各タイル、又はブロックは、更に小
分割されるため、各フレームバッファは、基本要素デー
タを処理して、各タイル内の各スパンラインの一部に画
素を与える。
【0010】本発明の他の態様において、各フレームバ
ッファコントローラは、2つのメモリコントローラを含
む。本発明のこの態様によれば、フレームバッファコン
トローラは、各メモリコントローラに、画素、又は画素
のグループを交互に与える。更に、各メモリコントロー
ラは、別個のVRAMに接続される。
ッファコントローラは、2つのメモリコントローラを含
む。本発明のこの態様によれば、フレームバッファコン
トローラは、各メモリコントローラに、画素、又は画素
のグループを交互に与える。更に、各メモリコントロー
ラは、別個のVRAMに接続される。
【0011】本発明の他の態様において、フレームバッ
ファは、エッジステッパとスパンステッパの間に、サブ
スパンステッパを含む。サブスパンステッパは、そのフ
レームバッファに割り当てられた、スパンの部分の各々
に対して、開始値、及び停止値を決定する。サブスパン
ステッパは又、スパンの各部分に対して、開始色値を決
定する。
ファは、エッジステッパとスパンステッパの間に、サブ
スパンステッパを含む。サブスパンステッパは、そのフ
レームバッファに割り当てられた、スパンの部分の各々
に対して、開始値、及び停止値を決定する。サブスパン
ステッパは又、スパンの各部分に対して、開始色値を決
定する。
【0012】本発明を更に良く理解するために、添付図
面に対して参照がなされる。
面に対して参照がなされる。
【0013】
I.システム概要 図3は、並列フレームバッファコントローラを含む、本
発明のグラフィックスシステムの1つの実施例のブロッ
ク図である。図示の実施態様は、基板及びチップの数、
それらの区分方法、バスの幅、及びデータ転送速度に関
して、単なる例にすぎないことを理解されたい。多数の
他の実施態様も用いることができる。図示のように、こ
のシステムは、フロントエンドボード11、テクスチャ
マッピングボード12、及びフレームバッファボード1
6を含む。フロントエンドボードは、52ビットバス1
6を介して、ホストコンピュータ15と通信する。フロ
ントエンドボードは、バス16を介して、ホストコンピ
ュータから描画すべき基本要素を受け取る。基本要素
は、例えばそれが三角形である場合には、頂点に対する
ような、その基本要素の部分の全てに対する、x、y、
z頂点座標データ、R、G、B色データ、及びテクスチ
ャS、T座標によって指定される。
発明のグラフィックスシステムの1つの実施例のブロッ
ク図である。図示の実施態様は、基板及びチップの数、
それらの区分方法、バスの幅、及びデータ転送速度に関
して、単なる例にすぎないことを理解されたい。多数の
他の実施態様も用いることができる。図示のように、こ
のシステムは、フロントエンドボード11、テクスチャ
マッピングボード12、及びフレームバッファボード1
6を含む。フロントエンドボードは、52ビットバス1
6を介して、ホストコンピュータ15と通信する。フロ
ントエンドボードは、バス16を介して、ホストコンピ
ュータから描画すべき基本要素を受け取る。基本要素
は、例えばそれが三角形である場合には、頂点に対する
ような、その基本要素の部分の全てに対する、x、y、
z頂点座標データ、R、G、B色データ、及びテクスチ
ャS、T座標によって指定される。
【0014】次に、三次元で基本要素を表現するデータ
が、フロントエンドボード11により、85ビットバス
18を介して、テクスチャマッピングボード12、及び
フレームバッファボード14に与えられる。テクスチャ
マッピングボードは、基本要素を表現することになる画
面表示画素を計算するために、受信した基本要素データ
を補間して、各基本画素に対して、対応する結果として
のテクスチャデータを決定する。その結果得られたテク
スチャデータは、図の明瞭化のため単一のバスとして、
図3に示す11ビットバス28を介して、フレームバッ
ファボードに与えられる。テクスチャマッピングを図3
に示すが、これは本発明には必須ではない。
が、フロントエンドボード11により、85ビットバス
18を介して、テクスチャマッピングボード12、及び
フレームバッファボード14に与えられる。テクスチャ
マッピングボードは、基本要素を表現することになる画
面表示画素を計算するために、受信した基本要素データ
を補間して、各基本画素に対して、対応する結果として
のテクスチャデータを決定する。その結果得られたテク
スチャデータは、図の明瞭化のため単一のバスとして、
図3に示す11ビットバス28を介して、フレームバッ
ファボードに与えられる。テクスチャマッピングを図3
に示すが、これは本発明には必須ではない。
【0015】フレームバッファボード14は又、フロン
トエンドボード11から受け取った基本要素データを補
間して、各基本要素を表現することになる、表示画面上
の画素を計算し、また各画素に対して対象物の色値を決
定する。次に、フレームバッファボードは、画素毎に基
づいて、対象物の色値を、テクスチャマッピングボード
から与えられるテクスチャデータと組み合わせて、各画
素に対して合成画像R、G、B値を生成する。各画素に
対するR、G、B色制御信号が、それぞれR、G、Bラ
イン29を介して与えられ、表示画面(図示せず)の画
素が制御されて、テクスチャマッピングされた基本要素
を表現する、表示画面上の合成画像が表示される。
トエンドボード11から受け取った基本要素データを補
間して、各基本要素を表現することになる、表示画面上
の画素を計算し、また各画素に対して対象物の色値を決
定する。次に、フレームバッファボードは、画素毎に基
づいて、対象物の色値を、テクスチャマッピングボード
から与えられるテクスチャデータと組み合わせて、各画
素に対して合成画像R、G、B値を生成する。各画素に
対するR、G、B色制御信号が、それぞれR、G、Bラ
イン29を介して与えられ、表示画面(図示せず)の画
素が制御されて、テクスチャマッピングされた基本要素
を表現する、表示画面上の合成画像が表示される。
【0016】フロントエンドボード11、テクスチャマ
ッピングボード12、及びフレームバッファボード14
は各々、パイプライン処理され、同時に多数の基本要素
を処理する。テクスチャマッピングボード、及びフレー
ムバッファボードが、フロントエンドボードにより以前
に与えられた、基本要素を処理する間、フロントエンド
ボードは、ボード12、及び14のパイプラインが満た
されるまで、新たな基本要素を処理、及び与え続ける。
ッピングボード12、及びフレームバッファボード14
は各々、パイプライン処理され、同時に多数の基本要素
を処理する。テクスチャマッピングボード、及びフレー
ムバッファボードが、フロントエンドボードにより以前
に与えられた、基本要素を処理する間、フロントエンド
ボードは、ボード12、及び14のパイプラインが満た
されるまで、新たな基本要素を処理、及び与え続ける。
【0017】フロントエンドボード11は、ディストリ
ビュータチップ30、3つの三次元(3−D)幾何形状
アクセレレータチップ32A、32B、及び32C、二
次元(2−D)幾何形状アクセレレータチップ34、及
びコンセントレータチップ36を含む。ディストリビュ
ータチップ30は、ホストコンピュータからバス16を
介して、x、y、z座標、及び色基本要素データを受け
取り、3−D幾何形状アクセレレータチップ32A、3
2B、及び32C間で、3−D基本要素データを均等に
分配する。このようにして、基本要素の3つのグループ
が同時に処理されるので、システム帯域幅が増大する。
データは、40ビットバス38Aを介して3−D幾何形
状アクセレレータ32A、及び32Bに、また40ビッ
トバス38Bを介してチップ32Cに与えられる。両方
のバス38A、及び38Bは、60MHzの速度でデー
タを転送し、2つの3−D幾何形状アクセレレータチッ
プ支援するのに、充分な帯域幅を提供する。2−D基本
要素データは、44ビットバス40を介して、40MH
zの速度で、2−D幾何形状アクセレレータチップ34
に与えられる。
ビュータチップ30、3つの三次元(3−D)幾何形状
アクセレレータチップ32A、32B、及び32C、二
次元(2−D)幾何形状アクセレレータチップ34、及
びコンセントレータチップ36を含む。ディストリビュ
ータチップ30は、ホストコンピュータからバス16を
介して、x、y、z座標、及び色基本要素データを受け
取り、3−D幾何形状アクセレレータチップ32A、3
2B、及び32C間で、3−D基本要素データを均等に
分配する。このようにして、基本要素の3つのグループ
が同時に処理されるので、システム帯域幅が増大する。
データは、40ビットバス38Aを介して3−D幾何形
状アクセレレータ32A、及び32Bに、また40ビッ
トバス38Bを介してチップ32Cに与えられる。両方
のバス38A、及び38Bは、60MHzの速度でデー
タを転送し、2つの3−D幾何形状アクセレレータチッ
プ支援するのに、充分な帯域幅を提供する。2−D基本
要素データは、44ビットバス40を介して、40MH
zの速度で、2−D幾何形状アクセレレータチップ34
に与えられる。
【0018】各3−D幾何形状アクセレレータチップ
は、受け取った基本要素を規定するx、y、z座標を、
対応する画面空間座標へと変換し、この画面空間座標に
対して、対象物のR、G、B値、及びテクスチャS、T
値を決定し、基本四角形を三角形に分解し、三角形平面
方程式を計算して、各三角形を規定する。各3−D幾何
形状アクセレレータチップは又、ビュークリッピング操
作を実行して、画面内に多数のウィンドウが表示される
場合、又は基本要素の一部が、表示画面上に表現される
ビューの量を越えて拡張する場合、結果られる画像の正
確な画面表示を保証する。3−D幾何形状アクセレレー
タチップ32A、32B、及び32Cからの出力データ
は、それぞれ44ビットバス42A、42B、及び42
Cを介して、60MHzの速度で、コンセントレータチ
ップ34に与えられる。二次元幾何形状アクセレレータ
チップ34は又、45MHzの速度で46ビットバス4
4を介して、コンセントレータチップ36に出力データ
を与える。コンセントレータチップ36は、3−D幾何
形状アクセレレータチップ32A−32Cから受け取っ
た、3−D基本要素の出力データを組み合わせ、ディス
トリビュータ30による分配の前に有していた元の順序
に、基本要素を順序付けし直し、組み合わせられた基本
要素出力データを、バス18を介して、テクスチャマッ
ピングボード、及びフレームバッファボードに与える。
は、受け取った基本要素を規定するx、y、z座標を、
対応する画面空間座標へと変換し、この画面空間座標に
対して、対象物のR、G、B値、及びテクスチャS、T
値を決定し、基本四角形を三角形に分解し、三角形平面
方程式を計算して、各三角形を規定する。各3−D幾何
形状アクセレレータチップは又、ビュークリッピング操
作を実行して、画面内に多数のウィンドウが表示される
場合、又は基本要素の一部が、表示画面上に表現される
ビューの量を越えて拡張する場合、結果られる画像の正
確な画面表示を保証する。3−D幾何形状アクセレレー
タチップ32A、32B、及び32Cからの出力データ
は、それぞれ44ビットバス42A、42B、及び42
Cを介して、60MHzの速度で、コンセントレータチ
ップ34に与えられる。二次元幾何形状アクセレレータ
チップ34は又、45MHzの速度で46ビットバス4
4を介して、コンセントレータチップ36に出力データ
を与える。コンセントレータチップ36は、3−D幾何
形状アクセレレータチップ32A−32Cから受け取っ
た、3−D基本要素の出力データを組み合わせ、ディス
トリビュータ30による分配の前に有していた元の順序
に、基本要素を順序付けし直し、組み合わせられた基本
要素出力データを、バス18を介して、テクスチャマッ
ピングボード、及びフレームバッファボードに与える。
【0019】テクスチャマッピングボード12は、テク
スチャマッピングチップ46、及び局部メモリ48を含
み、局部メモリ48は、好適には、キャッシュメモリと
して構成される。本発明の1つの好適な実施例では、こ
の局部メモリは、複数のSDRAM(同期式ダイナミッ
ク・ランダム・アクセス・メモリ)チップから形成され
る。局部メモリ48は、フレームバッファボードにおい
て、描画される基本要素に関連したテクスチャMIPマ
ップデータを格納する。テクスチャMIPマップデータ
は、ホストコンピュータ15のメインメモリ17からバ
ス40を介し、2−D幾何形状アクセレレータチップ3
4を通り、24ビットバス24を介してダウンロードさ
れる。
スチャマッピングチップ46、及び局部メモリ48を含
み、局部メモリ48は、好適には、キャッシュメモリと
して構成される。本発明の1つの好適な実施例では、こ
の局部メモリは、複数のSDRAM(同期式ダイナミッ
ク・ランダム・アクセス・メモリ)チップから形成され
る。局部メモリ48は、フレームバッファボードにおい
て、描画される基本要素に関連したテクスチャMIPマ
ップデータを格納する。テクスチャMIPマップデータ
は、ホストコンピュータ15のメインメモリ17からバ
ス40を介し、2−D幾何形状アクセレレータチップ3
4を通り、24ビットバス24を介してダウンロードさ
れる。
【0020】テクスチャマッピングチップ46は、バス
18を介して、表示画面上に描画すべき基本要素を表現
する、基本要素データを連続的に受け取る。上述したよ
うに、3−D幾何形状アクセレレータチップ32A−3
2Cから与えられる基本要素は、点、線、及び三角形を
含む。テクスチャマッピングボードは、点、又は線のテ
クスチャマッピングは実行せず、三角形基本要素のみを
処理する。三角形基本要素を表現するデータは、少なく
とも1つの頂点に対するx、y、z対象物画素座標と、
この少なくとも1つの頂点の対象物色R、G、B値と、
この少なくとも1つの頂点に対応するテクスチャマップ
の部分のS、T座標と、この三角形の平面方程式とを含
む。テクスチャマッピングチップ46は、対象物画素の
z座標、及び対象物色R、G、B値を無視する。チップ
46は、x、y座標を補間して、基本要素を表現する各
x、y画面表示画素に対応する、S、及びT座標を補間
する。各画素について、テクスチャマッピングチップ
は、キャッシュメモリから、テクスチャMIPマップの
それに対応する部分にアクセスして、その画素に対する
合成テクスチャデータを計算する。このデータは、多数
のテクセルの重み付き平均を含むことができる。
18を介して、表示画面上に描画すべき基本要素を表現
する、基本要素データを連続的に受け取る。上述したよ
うに、3−D幾何形状アクセレレータチップ32A−3
2Cから与えられる基本要素は、点、線、及び三角形を
含む。テクスチャマッピングボードは、点、又は線のテ
クスチャマッピングは実行せず、三角形基本要素のみを
処理する。三角形基本要素を表現するデータは、少なく
とも1つの頂点に対するx、y、z対象物画素座標と、
この少なくとも1つの頂点の対象物色R、G、B値と、
この少なくとも1つの頂点に対応するテクスチャマップ
の部分のS、T座標と、この三角形の平面方程式とを含
む。テクスチャマッピングチップ46は、対象物画素の
z座標、及び対象物色R、G、B値を無視する。チップ
46は、x、y座標を補間して、基本要素を表現する各
x、y画面表示画素に対応する、S、及びT座標を補間
する。各画素について、テクスチャマッピングチップ
は、キャッシュメモリから、テクスチャMIPマップの
それに対応する部分にアクセスして、その画素に対する
合成テクスチャデータを計算する。このデータは、多数
のテクセルの重み付き平均を含むことができる。
【0021】各画素に対する合成テクスチャデータは、
テクスチャマッピングチップ46により、5つのバス2
8を介して、フレームバッファボードに与えられる。5
つのバス28は、それぞれ、フレームバッファボードに
設けられた、5つのフレームバッファコントローラチッ
プ50A、50B、50C、50D、及び50Eに結合
されて、合成テクスチャデータを、並列のフレームバッ
ファコントローラチップに与える。フレームバッファコ
ントローラチップ50A−50Eは、それぞれ関連した
VRAM(ビデオ用ランダム・アクセス・メモリ)チッ
プ51A−51Eのグループに結合される。フレームバ
ッファボードは更に、4つのビデオフォーマットチップ
52A、52B、52C、52D、及びRAMDAC
(ランダム・アクセス・メモリ搭載デジタル/アナログ
変換器)54を含む。フレームバッファコントローラチ
ップは、表示画面の異なる、重複しないセグメントを制
御する。各フレームバッファコントローラチップは、フ
ロントエンドボードからバス18を介して、基本要素デ
ータを、また、テクスチャマッピングボードからバス2
8を介して、合成テクスチャマッピングデータを受け取
る。フレームバッファコントローラチップは、基本要素
データを補間して、この基本要素を表現するそれぞれの
セグメントにおいて、画面表示の画素座標を、また各画
素座標に対する対象物R、G、B色値を計算する。テク
スチャマッピングボードから、合成テクスチャデータが
与えられる、基本要素(すなわち三角形)に関して、フ
レームバッファコントローラチップが、画素毎に基づい
て、対象物色値、及び合成テクスチャデータを組み合わ
せて、表示画面上に表示すべき各画素に対して、最終的
なR、G、B値を生成する。
テクスチャマッピングチップ46により、5つのバス2
8を介して、フレームバッファボードに与えられる。5
つのバス28は、それぞれ、フレームバッファボードに
設けられた、5つのフレームバッファコントローラチッ
プ50A、50B、50C、50D、及び50Eに結合
されて、合成テクスチャデータを、並列のフレームバッ
ファコントローラチップに与える。フレームバッファコ
ントローラチップ50A−50Eは、それぞれ関連した
VRAM(ビデオ用ランダム・アクセス・メモリ)チッ
プ51A−51Eのグループに結合される。フレームバ
ッファボードは更に、4つのビデオフォーマットチップ
52A、52B、52C、52D、及びRAMDAC
(ランダム・アクセス・メモリ搭載デジタル/アナログ
変換器)54を含む。フレームバッファコントローラチ
ップは、表示画面の異なる、重複しないセグメントを制
御する。各フレームバッファコントローラチップは、フ
ロントエンドボードからバス18を介して、基本要素デ
ータを、また、テクスチャマッピングボードからバス2
8を介して、合成テクスチャマッピングデータを受け取
る。フレームバッファコントローラチップは、基本要素
データを補間して、この基本要素を表現するそれぞれの
セグメントにおいて、画面表示の画素座標を、また各画
素座標に対する対象物R、G、B色値を計算する。テク
スチャマッピングボードから、合成テクスチャデータが
与えられる、基本要素(すなわち三角形)に関して、フ
レームバッファコントローラチップが、画素毎に基づい
て、対象物色値、及び合成テクスチャデータを組み合わ
せて、表示画面上に表示すべき各画素に対して、最終的
なR、G、B値を生成する。
【0022】対象物、及びテクスチャ色値の組合せの仕
方は、各種の方法で制御することができる。例えば、置
換モードでは、対象物色値が、テクスチャ色値により単
純に置換可能であるため、テクスチャ色値が、画素を描
画する際に用いられる。代替として、変調モードでは、
対象物、及びテクスチャ色値が、相互に乗算されて、そ
の画素に対する最終R、G、B色値が、生成可能とな
る。更に、対応するテクスチャ色値が、対象物色値と組
み合せられるべき仕方を規定する比率を指定する、色制
御ワードが、各テクセルに対して格納可能である。合成
色制御ワードが、各画素に対応する合成テクセルデータ
に対して決定されて、バス28を介して、フレームバッ
ファコントローラチップに与えることが可能であるた
め、コントローラチップは、対応する合成制御ワードに
よって指定された比率を用いて、各画素に対して、最終
的なR、G、B値を決定することができる。
方は、各種の方法で制御することができる。例えば、置
換モードでは、対象物色値が、テクスチャ色値により単
純に置換可能であるため、テクスチャ色値が、画素を描
画する際に用いられる。代替として、変調モードでは、
対象物、及びテクスチャ色値が、相互に乗算されて、そ
の画素に対する最終R、G、B色値が、生成可能とな
る。更に、対応するテクスチャ色値が、対象物色値と組
み合せられるべき仕方を規定する比率を指定する、色制
御ワードが、各テクセルに対して格納可能である。合成
色制御ワードが、各画素に対応する合成テクセルデータ
に対して決定されて、バス28を介して、フレームバッ
ファコントローラチップに与えることが可能であるた
め、コントローラチップは、対応する合成制御ワードに
よって指定された比率を用いて、各画素に対して、最終
的なR、G、B値を決定することができる。
【0023】フレームバッファコントローラチップ50
A−50Eによって生成され、各画素に対するR、G、
B値を含む、最終画像ビデオデータが、対応するVRA
Mチップ51A−51Eに格納される。VRAMチップ
51A−51Eの各グループは、8個のVRAMチップ
を含み、したがって、フレームバッファボード上には、
40個のVRAMチップが配置される。ビデオフォーマ
ットチップ52A−52Dの各々が、10個のVRAM
チップの異なる組に接続されて、そこからデータを受け
取る。このビデオデータは、VRAMチップから直列に
シフト出力されて、それぞれ64ビットバス58A、5
8B、58C、及び58Dを介して、27MHzの速度
で、4個のビデオフォーマットチップ52A、52B、
52C、及び52Dに与えられる。ビデオフォーマット
チップは、ビデオデータを、RAMDACが処理できる
ように書式化して、書式化されたデータを、32ビット
バス60A、60B、60C、及び60Dを介して、3
3MHzの速度で、RAMDAC 54に与える。RA
MDAC 54は、次に、このデジタル色データをアナ
ログR、G、B色制御信号に変換して、各画素に対する
R、G、B制御信号を、R、G、B制御ライン29に沿
って、スクリーン表示装置(図示せず)に与える。
A−50Eによって生成され、各画素に対するR、G、
B値を含む、最終画像ビデオデータが、対応するVRA
Mチップ51A−51Eに格納される。VRAMチップ
51A−51Eの各グループは、8個のVRAMチップ
を含み、したがって、フレームバッファボード上には、
40個のVRAMチップが配置される。ビデオフォーマ
ットチップ52A−52Dの各々が、10個のVRAM
チップの異なる組に接続されて、そこからデータを受け
取る。このビデオデータは、VRAMチップから直列に
シフト出力されて、それぞれ64ビットバス58A、5
8B、58C、及び58Dを介して、27MHzの速度
で、4個のビデオフォーマットチップ52A、52B、
52C、及び52Dに与えられる。ビデオフォーマット
チップは、ビデオデータを、RAMDACが処理できる
ように書式化して、書式化されたデータを、32ビット
バス60A、60B、60C、及び60Dを介して、3
3MHzの速度で、RAMDAC 54に与える。RA
MDAC 54は、次に、このデジタル色データをアナ
ログR、G、B色制御信号に変換して、各画素に対する
R、G、B制御信号を、R、G、B制御ライン29に沿
って、スクリーン表示装置(図示せず)に与える。
【0024】本発明の1つの実施例では、テクスチャマ
ッピングボード12、及びフレームバッファボード14
上のハードウエアが、複製されているため、ある種の基
本要素の描画タスクが、多数の基本要素に関して並列に
実行され、それにより、システムの帯域幅を増大するこ
とが可能になる。本発明のかかる代替実施例の一例を図
4に示す。図4は、ある複製ハードウエアを有する、本
発明のコンピュータグラフィックスシステムのブロック
図である。図4のシステムは、4個の3−D幾何形状ア
クセレレータチップ32A、32B、32C、及び32
Dと、キャッシュメモリ48A、及び48Bとそれぞれ
関連した、2個のテクスチャマッピングチップ46A、
及び46Bと、各々が、関連したグループのVRAMチ
ップを備えた、10個のフレームバッファチップ50A
−50Jとを含む。図4のシステムの動作は、上述した
図3に示すシステムの動作と同様である。図4の実施例
におけるハードウエアの複製によって、ある種の基本要
素の描画動作が、多数の基本要素に関して並列に実行で
きるので、増大したシステム帯域幅が可能になる。
ッピングボード12、及びフレームバッファボード14
上のハードウエアが、複製されているため、ある種の基
本要素の描画タスクが、多数の基本要素に関して並列に
実行され、それにより、システムの帯域幅を増大するこ
とが可能になる。本発明のかかる代替実施例の一例を図
4に示す。図4は、ある複製ハードウエアを有する、本
発明のコンピュータグラフィックスシステムのブロック
図である。図4のシステムは、4個の3−D幾何形状ア
クセレレータチップ32A、32B、32C、及び32
Dと、キャッシュメモリ48A、及び48Bとそれぞれ
関連した、2個のテクスチャマッピングチップ46A、
及び46Bと、各々が、関連したグループのVRAMチ
ップを備えた、10個のフレームバッファチップ50A
−50Jとを含む。図4のシステムの動作は、上述した
図3に示すシステムの動作と同様である。図4の実施例
におけるハードウエアの複製によって、ある種の基本要
素の描画動作が、多数の基本要素に関して並列に実行で
きるので、増大したシステム帯域幅が可能になる。
【0025】II.ラスタ化概要 図5は、フレームバッファで実行される、基本要素に対
するラスタ化処理を示す。基本要素には、点、線、及び
三角形が含まれる。本発明のシステム全体によれば、基
本要素は三角形である。基本要素の情報は、3つの頂点
101、102、103によって与えられる。各頂点上
の情報は、x、y、z座標値、及びR、G、B色値を含
む。3つの頂点に対する頂点情報を用いて、基本要素に
対して、平面方程式が決定される。この平面方程式か
ら、色の階調度、及びz軸の勾配が決定されて、画素デ
ータを決定する際に用いられる。ラスタ化処理におい
て、三角形のエッジ110、120、130(e1、e
2、e3)が決定されて、最も長いyの値110を有す
るエッジも又決定される。ラスタ化処理において、次
に、各エッジに沿った画素が決定される。各エッジに沿
った画素の決定には、さまざまな方法を用いることがで
きる。ある方法では、かかる画素の決定は、画素の各
列、又はスパンラインに対して、エッジ110に沿って
頂点101、103の間で補間を行ない、エッジ110
に最も近い画素を決定することによって行なわれる。他
の実施例によれば、画素は、常に基本要素の内側にある
ように選択される。これは、x値、及びy値を補間し
て、各スパンラインにおける各エッジに対して、数学的
位置を決定することにより達成可能である。次に、画素
は、左のエッジに対するエッジ値より大きく、且つ右の
エッジに対するエッジ値より小さくなるように選択され
る。ある画素が、エッジの真上に位置する場合、それ
が、ある基本要素の内側と見なせるかどうかを判定する
には、特定の規則が必要である。エッジの内側の画素を
用いることによって、隣接する基本要素が処理される場
合に、上書きされる画素は何も存在しなくなる。
するラスタ化処理を示す。基本要素には、点、線、及び
三角形が含まれる。本発明のシステム全体によれば、基
本要素は三角形である。基本要素の情報は、3つの頂点
101、102、103によって与えられる。各頂点上
の情報は、x、y、z座標値、及びR、G、B色値を含
む。3つの頂点に対する頂点情報を用いて、基本要素に
対して、平面方程式が決定される。この平面方程式か
ら、色の階調度、及びz軸の勾配が決定されて、画素デ
ータを決定する際に用いられる。ラスタ化処理におい
て、三角形のエッジ110、120、130(e1、e
2、e3)が決定されて、最も長いyの値110を有す
るエッジも又決定される。ラスタ化処理において、次
に、各エッジに沿った画素が決定される。各エッジに沿
った画素の決定には、さまざまな方法を用いることがで
きる。ある方法では、かかる画素の決定は、画素の各
列、又はスパンラインに対して、エッジ110に沿って
頂点101、103の間で補間を行ない、エッジ110
に最も近い画素を決定することによって行なわれる。他
の実施例によれば、画素は、常に基本要素の内側にある
ように選択される。これは、x値、及びy値を補間し
て、各スパンラインにおける各エッジに対して、数学的
位置を決定することにより達成可能である。次に、画素
は、左のエッジに対するエッジ値より大きく、且つ右の
エッジに対するエッジ値より小さくなるように選択され
る。ある画素が、エッジの真上に位置する場合、それ
が、ある基本要素の内側と見なせるかどうかを判定する
には、特定の規則が必要である。エッジの内側の画素を
用いることによって、隣接する基本要素が処理される場
合に、上書きされる画素は何も存在しなくなる。
【0026】1つ以上の画素列をスパンラインと呼ぶ。
エッジ画素111、112に対するR、G、B色値は
又、頂点101、103における値の補間により決定さ
れる。同様に、画素121、122が、同じスパンライ
ンに沿った基本要素の対向エッジ120に沿って決定さ
れる。次に、各スパンラインに沿って、画素に対する色
値が、各エッジに沿った点に対する色値に基づいて決定
される。
エッジ画素111、112に対するR、G、B色値は
又、頂点101、103における値の補間により決定さ
れる。同様に、画素121、122が、同じスパンライ
ンに沿った基本要素の対向エッジ120に沿って決定さ
れる。次に、各スパンラインに沿って、画素に対する色
値が、各エッジに沿った点に対する色値に基づいて決定
される。
【0027】図6は、ラスタ化処理を更に詳細に示すグ
ラフ図である。図6に示すように、画面表示の画素が、
対応する色値を有する点の格子を形成する。基本要素の
エッジ線110、120は、必ずしも格子と整合しな
い。したがって、格子の各スパンライン上の基本要素の
内側の画素が決定される。例えば、画素102、111
−113は、エッジ110に対する最初の4本のスパン
ラインに対応する。画素102は、基本要素を規定する
頂点101に最も近い画素である。
ラフ図である。図6に示すように、画面表示の画素が、
対応する色値を有する点の格子を形成する。基本要素の
エッジ線110、120は、必ずしも格子と整合しな
い。したがって、格子の各スパンライン上の基本要素の
内側の画素が決定される。例えば、画素102、111
−113は、エッジ110に対する最初の4本のスパン
ラインに対応する。画素102は、基本要素を規定する
頂点101に最も近い画素である。
【0028】エッジ間の各スパンライン上の画素141
−143は、エッジに最も近い各スパンライン上の画素
112、113、122、123に基づいて決定され
る。
−143は、エッジに最も近い各スパンライン上の画素
112、113、122、123に基づいて決定され
る。
【0029】III.二次元でインターリーブされたフレー
ムバッファコントローラ 本発明によれば、基本要素をラスタ化するためのフレー
ムバッファコントローラは、二次元にインターリーブさ
れた、画素格子の部分を割り当てられる、多数のフレー
ムバッファコントローラを含む。図7に示すように、画
面表示200は、タイル210−213に分離されてい
る。本発明の1つの実施例によれば、各タイルは8画素
×80画素である。スパンライン220、230、24
0、250は各々、画面の幅を横切った各タイルの一部
分を包囲する。図3に示す実施例には、5個のフレーム
バッファコントローラが含まれる。したがって、タイル
内の各スパンラインは、5つの区画221−225に分
割される。各フレームバッファには、処理のために、そ
のタイル内の各スパンラインの一部分が割り当てられ
る。基本要素は、任意の位置、配向、及び寸法を有する
ことができるので、フレームバッファは、1つ以上のタ
イルの任意の部分をカバーできる。したがって、処理効
率を向上するために、フレームバッファコントローラに
は、各タイルを通して分散されたブロックを割り当てる
ことができる。コントローラ内の処理データの量は、い
くつかの基本要素にわたって均等化される。実際に、単
一の基本要素は、すべてのフレームバッファコントロー
ラを利用する可能性は低い。フレームバッファコントロ
ーラ内のFIFOメモリが、パイプライン処理に利用さ
れるため、フレームバッファコントローラ間の処理全体
は、ほぼ一定である。フレームバッファコントローラの
割り当ては、画面内の各タイルに適用可能である。図7
は、図3に示す実施例の5個のフレームバッファコント
ローラに対する割り当てを示す。
ムバッファコントローラ 本発明によれば、基本要素をラスタ化するためのフレー
ムバッファコントローラは、二次元にインターリーブさ
れた、画素格子の部分を割り当てられる、多数のフレー
ムバッファコントローラを含む。図7に示すように、画
面表示200は、タイル210−213に分離されてい
る。本発明の1つの実施例によれば、各タイルは8画素
×80画素である。スパンライン220、230、24
0、250は各々、画面の幅を横切った各タイルの一部
分を包囲する。図3に示す実施例には、5個のフレーム
バッファコントローラが含まれる。したがって、タイル
内の各スパンラインは、5つの区画221−225に分
割される。各フレームバッファには、処理のために、そ
のタイル内の各スパンラインの一部分が割り当てられ
る。基本要素は、任意の位置、配向、及び寸法を有する
ことができるので、フレームバッファは、1つ以上のタ
イルの任意の部分をカバーできる。したがって、処理効
率を向上するために、フレームバッファコントローラに
は、各タイルを通して分散されたブロックを割り当てる
ことができる。コントローラ内の処理データの量は、い
くつかの基本要素にわたって均等化される。実際に、単
一の基本要素は、すべてのフレームバッファコントロー
ラを利用する可能性は低い。フレームバッファコントロ
ーラ内のFIFOメモリが、パイプライン処理に利用さ
れるため、フレームバッファコントローラ間の処理全体
は、ほぼ一定である。フレームバッファコントローラの
割り当ては、画面内の各タイルに適用可能である。図7
は、図3に示す実施例の5個のフレームバッファコント
ローラに対する割り当てを示す。
【0030】図8は、図4に示すシステムの第2の実施
例に対応する、フレームバッファコントローラに対する
タイル割り当てを開示している。この実施例では、10
個のフレームバッファが、並列性と速度を増大させるた
めに、用いられている。この実施例では、各タイル30
0は、16画素×80画素であり、各々が2つの画素列
を有する、8本の走査線の部分をカバーする。各タイル
は、5つの行321−325に分割されている。各フレ
ームバッファコントローラには、タイルの1つおきのス
パンライン内のブロックが割り当てられるため、各フレ
ームバッファコントローラによって処理されるブロック
は、タイルを通して分散される。交互の列にブロックを
割り当てることによって、各エッジステッパの性能が向
上する。というのは、エッジステッパは、配置される割
当てブロックがない、ラインを飛び越すことができるた
めである。図8に、フレームバッファコントローラの割
り当てパターンの1つを示す。
例に対応する、フレームバッファコントローラに対する
タイル割り当てを開示している。この実施例では、10
個のフレームバッファが、並列性と速度を増大させるた
めに、用いられている。この実施例では、各タイル30
0は、16画素×80画素であり、各々が2つの画素列
を有する、8本の走査線の部分をカバーする。各タイル
は、5つの行321−325に分割されている。各フレ
ームバッファコントローラには、タイルの1つおきのス
パンライン内のブロックが割り当てられるため、各フレ
ームバッファコントローラによって処理されるブロック
は、タイルを通して分散される。交互の列にブロックを
割り当てることによって、各エッジステッパの性能が向
上する。というのは、エッジステッパは、配置される割
当てブロックがない、ラインを飛び越すことができるた
めである。図8に、フレームバッファコントローラの割
り当てパターンの1つを示す。
【0031】画面リフレッシュに対して帯域幅を増大さ
せるために、フレームバッファは、二次元にインターリ
ーブされている。スパンラインに沿って、メモリコント
ローラをインターリーブすることによって、メモリコン
トローラ当たりに必要とされる必要帯域幅は、(総帯域
幅)/(メモリコントローラの数)となる。また、大き
な多角形、大規模な充填領域、及びブロック転送の場
合、走査線に沿って画素を書き込むための性能は、スパ
ンライン上にインターリーブされた、フレームバッファ
コントローラのインターリーブに起因して改善される。
主としてy方向の小さな三角形、及びベクトルの処理の
性能は、フレームバッファをy方向にインターリーブす
ることによって改善される。
せるために、フレームバッファは、二次元にインターリ
ーブされている。スパンラインに沿って、メモリコント
ローラをインターリーブすることによって、メモリコン
トローラ当たりに必要とされる必要帯域幅は、(総帯域
幅)/(メモリコントローラの数)となる。また、大き
な多角形、大規模な充填領域、及びブロック転送の場
合、走査線に沿って画素を書き込むための性能は、スパ
ンライン上にインターリーブされた、フレームバッファ
コントローラのインターリーブに起因して改善される。
主としてy方向の小さな三角形、及びベクトルの処理の
性能は、フレームバッファをy方向にインターリーブす
ることによって改善される。
【0032】IV.フレームバッファの構成と動作 図10は、本発明による、1つのフレームバッファコン
トローラのブロック図である。フレームバッファコント
ローラは、フレームバッファコントローラチップ50A
として構成され、エッジステッパ500、サブスパンス
テッパ510、スパンステッパ520、及び2つのメモ
リコントローラ530、531を含む。メモリコントロ
ーラ530、531の各々は、次いで、VRAM 54
0、541に接続される。フレームバッファコントロー
ラに接続された2つのVRAM540、541は、図3
に示すように、フレームバッファコントローラチップ用
のVRAM 51Aを構築する。上述したように、各V
RAMは、いくつかのVRAMチップを含む。2つのメ
モリコントローラ530、531は、処理速度を増大さ
せるために用いられる。処理を高速にするために、メモ
リコントローラに与えられるデータは、フレームバッフ
ァコントローラによってインターリーブされる。フレー
ムバッファコントローラは、スパンラインの第1の画素
線、次にその第2の画素線上で、各メモリコントローラ
の各々に、データの2つの隣接する画素を交互に供給す
る。図9に示すように、フレームバッファコントローラ
からの各データブロックは、2画素×16画素である。
したがって、各データブロックに対して、最大で2×2
の画素サブブロックが、一度に1本の線、及び1画素ず
つ、交互にメモリコントローラに送られる。メモリコン
トローラに対する、2×2のサブブロック単位の画素の
割り当ては、zデータのアクセスに有利である。メモリ
コントローラは各々、zデータ用のキャッシュを含む。
zデータは、一般に2×2のブロック単位に構成されて
いる。zデータのあるブロックが、キャッシュへと読ま
れて、そのメモリコントローラに割り当てられた、後続
の画素とともに後で用いられる。もちろん、各メモリコ
ントローラに、画素を割り当てるために、他の手順も使
用可能である。
トローラのブロック図である。フレームバッファコント
ローラは、フレームバッファコントローラチップ50A
として構成され、エッジステッパ500、サブスパンス
テッパ510、スパンステッパ520、及び2つのメモ
リコントローラ530、531を含む。メモリコントロ
ーラ530、531の各々は、次いで、VRAM 54
0、541に接続される。フレームバッファコントロー
ラに接続された2つのVRAM540、541は、図3
に示すように、フレームバッファコントローラチップ用
のVRAM 51Aを構築する。上述したように、各V
RAMは、いくつかのVRAMチップを含む。2つのメ
モリコントローラ530、531は、処理速度を増大さ
せるために用いられる。処理を高速にするために、メモ
リコントローラに与えられるデータは、フレームバッフ
ァコントローラによってインターリーブされる。フレー
ムバッファコントローラは、スパンラインの第1の画素
線、次にその第2の画素線上で、各メモリコントローラ
の各々に、データの2つの隣接する画素を交互に供給す
る。図9に示すように、フレームバッファコントローラ
からの各データブロックは、2画素×16画素である。
したがって、各データブロックに対して、最大で2×2
の画素サブブロックが、一度に1本の線、及び1画素ず
つ、交互にメモリコントローラに送られる。メモリコン
トローラに対する、2×2のサブブロック単位の画素の
割り当ては、zデータのアクセスに有利である。メモリ
コントローラは各々、zデータ用のキャッシュを含む。
zデータは、一般に2×2のブロック単位に構成されて
いる。zデータのあるブロックが、キャッシュへと読ま
れて、そのメモリコントローラに割り当てられた、後続
の画素とともに後で用いられる。もちろん、各メモリコ
ントローラに、画素を割り当てるために、他の手順も使
用可能である。
【0033】エッジステッパ500、サブスパンステッ
パ510、及びスパンステッパ520は、到来する基本
要素データを、出力画素データに変換する。上述したよ
うに、基本要素データには、三角形の3つの頂点に対す
る値、及び同じ3つの頂点に対するR、G、B色値が含
まれる。エッジステッパ500は、図1に示すような慣
用的なフレームバッファのエッジステッパと同様に動作
する。補間を通して、エッジステッパ500は、基本要
素のエッジを規定する、各画素線上の画素を決定する。
図3に示す5個のフレームバッファコントローラのシス
テムの場合、各フレームバッファコントローラは、各ス
パンラインに対してデータを処理し、対応する各エッジ
ステッパは、非並列処理フレームバッファコントローラ
(図1)のエッジステッパと同様に動作する。図4の実
施例に示すように、10個のフレームバッファコントロ
ーラが用いられる場合、各フレームバッファコントロー
ラは、図8に示すように、交互のスパンライン上のデー
タを処理する。この場合、フレームバッファコントロー
ラのエッジステッパ500は、図2に示すように、慣用
的な並列処理フレームバッファコントローラのエッジス
テッパと同様に動作する。各エッジステッパ500は、
2画素の交互のスパンライン内のエッジに沿った点に対
して、画素データを与える。
パ510、及びスパンステッパ520は、到来する基本
要素データを、出力画素データに変換する。上述したよ
うに、基本要素データには、三角形の3つの頂点に対す
る値、及び同じ3つの頂点に対するR、G、B色値が含
まれる。エッジステッパ500は、図1に示すような慣
用的なフレームバッファのエッジステッパと同様に動作
する。補間を通して、エッジステッパ500は、基本要
素のエッジを規定する、各画素線上の画素を決定する。
図3に示す5個のフレームバッファコントローラのシス
テムの場合、各フレームバッファコントローラは、各ス
パンラインに対してデータを処理し、対応する各エッジ
ステッパは、非並列処理フレームバッファコントローラ
(図1)のエッジステッパと同様に動作する。図4の実
施例に示すように、10個のフレームバッファコントロ
ーラが用いられる場合、各フレームバッファコントロー
ラは、図8に示すように、交互のスパンライン上のデー
タを処理する。この場合、フレームバッファコントロー
ラのエッジステッパ500は、図2に示すように、慣用
的な並列処理フレームバッファコントローラのエッジス
テッパと同様に動作する。各エッジステッパ500は、
2画素の交互のスパンライン内のエッジに沿った点に対
して、画素データを与える。
【0034】エッジステッパ500は、サブスパンステ
ッパ510に、エッジ画素データを与える。エッジ画素
情報には、スパンラインのy値、各エッジのx値、第1
のエッジのR、G、B色値、及びスパンに対する色の階
調度が含まれる。サブスパンステッパ510は、スパン
ラインに沿った各タイル内のそのフレームバッファコン
トローラに割り当てられたブロックに対して、開始値、
停止値、及びジャンプ値を特定する。開始値、及び停止
値は、そのフレームバッファコントローラに割り当てら
れた、対応するブロックの基本要素内の画素値を指示す
る。図13は、サブスパンに対する開始値と停止値の間
の関係を示す。フレームバッファコントローラに割り当
てられた、スパンラインのあるブロックが、完全に基本
要素内にある場合(FB3)、開始値、及び停止値は、
そのブロックの境界である。基本要素のエッジが、フレ
ームバッファコントローラに割り当てられた、スパンラ
インのあるブロックを通過する場合(FB2、FB
4)、開始値、又は停止値は、そのブロック内のエッジ
の位置にも関係する。ジャンプ値は、あるブロックの始
点と開始エッジの間の距離を表わし、そのブロックの開
始位置での画素に対応する色を決定するのに用いること
ができる。
ッパ510に、エッジ画素データを与える。エッジ画素
情報には、スパンラインのy値、各エッジのx値、第1
のエッジのR、G、B色値、及びスパンに対する色の階
調度が含まれる。サブスパンステッパ510は、スパン
ラインに沿った各タイル内のそのフレームバッファコン
トローラに割り当てられたブロックに対して、開始値、
停止値、及びジャンプ値を特定する。開始値、及び停止
値は、そのフレームバッファコントローラに割り当てら
れた、対応するブロックの基本要素内の画素値を指示す
る。図13は、サブスパンに対する開始値と停止値の間
の関係を示す。フレームバッファコントローラに割り当
てられた、スパンラインのあるブロックが、完全に基本
要素内にある場合(FB3)、開始値、及び停止値は、
そのブロックの境界である。基本要素のエッジが、フレ
ームバッファコントローラに割り当てられた、スパンラ
インのあるブロックを通過する場合(FB2、FB
4)、開始値、又は停止値は、そのブロック内のエッジ
の位置にも関係する。ジャンプ値は、あるブロックの始
点と開始エッジの間の距離を表わし、そのブロックの開
始位置での画素に対応する色を決定するのに用いること
ができる。
【0035】開始値、停止値、及びジャンプ値は、画素
データを生成する、スパンステッパ520に与えられ
る。FIFOメモリ(図示せず)を、サブスパンステッ
パとスパンステッパの間に含めることもできる。このF
IFOメモリは、結果として基本要素のパイプライン処
理となり、これによって、フレームバッファコントロー
ラに対して、処理時間が均等化される。開始値、停止
値、及びジャンプ値に基づいて、スパンステッパ520
は、そのフレームバッファコントローラに割り当てられ
た、スパンラインのブロックの全てにおいて、画素の全
てを決定する。スパンステッパ520は、画素データを
メモリコントローラ530、531に、一度に1画素ず
つ出力する。
データを生成する、スパンステッパ520に与えられ
る。FIFOメモリ(図示せず)を、サブスパンステッ
パとスパンステッパの間に含めることもできる。このF
IFOメモリは、結果として基本要素のパイプライン処
理となり、これによって、フレームバッファコントロー
ラに対して、処理時間が均等化される。開始値、停止
値、及びジャンプ値に基づいて、スパンステッパ520
は、そのフレームバッファコントローラに割り当てられ
た、スパンラインのブロックの全てにおいて、画素の全
てを決定する。スパンステッパ520は、画素データを
メモリコントローラ530、531に、一度に1画素ず
つ出力する。
【0036】フレームバッファコントローラの動作が、
図11のブロックフロー図に示されている。ステップ6
02において、基本要素データが受け取られる。この基
本要素データに基づいて、ステップ604で、エッジe
1 、e2 、e3 が決定される。これらのエッジは、第1
のエッジe1 が、最も大きいy範囲に及ぶ基本要素のエ
ッジになるように決定される。ステップ606で、エッ
ジに沿ったステッピングを行なうために、座標データ、
及び色データが決定される。この座標データ、及び色デ
ータには、エッジe1 の一番上の頂点(図5の101)
のy値、エッジe1 の一番下の頂点(図5の103)の
y値、できるだけ一番上の頂点のx値、e1 のxの傾
斜、e2 、又はe3 に対するx値と傾斜、できるだけ一
番上の頂点のR、G、B色値、e1 に沿った色階調、及
び各スパンラインに対するスパン色階調が含まれる。e
1 に沿ってステッピングを行なうために、エッジステッ
パは、e1 のx値(ステップ612)、スパンラインに
依存した、e2 、又はe3 のx値(ステップ616)、
スパンラインのy値(ステップ602)、及びスパン開
始色(ステップ616)を反復的に決定する。y値は、
スパンラインを規定し、x値は、そのスパンラインにお
ける基本要素の開始値、及び停止値を規定し、色値は、
そのスパンラインに対する開始色を規定する。また、ス
パン色階調が決定される(ステップ627)。このスパ
ン色階調は、各ブロックの始点での色、及びブロック内
の各画素に対する色の決定に用いられる。各反復におい
て、y値が、その前のy値と比較され(ステップ62
1)、エッジステッピングを停止するかどうかが決定さ
れる(ステップ622)。
図11のブロックフロー図に示されている。ステップ6
02において、基本要素データが受け取られる。この基
本要素データに基づいて、ステップ604で、エッジe
1 、e2 、e3 が決定される。これらのエッジは、第1
のエッジe1 が、最も大きいy範囲に及ぶ基本要素のエ
ッジになるように決定される。ステップ606で、エッ
ジに沿ったステッピングを行なうために、座標データ、
及び色データが決定される。この座標データ、及び色デ
ータには、エッジe1 の一番上の頂点(図5の101)
のy値、エッジe1 の一番下の頂点(図5の103)の
y値、できるだけ一番上の頂点のx値、e1 のxの傾
斜、e2 、又はe3 に対するx値と傾斜、できるだけ一
番上の頂点のR、G、B色値、e1 に沿った色階調、及
び各スパンラインに対するスパン色階調が含まれる。e
1 に沿ってステッピングを行なうために、エッジステッ
パは、e1 のx値(ステップ612)、スパンラインに
依存した、e2 、又はe3 のx値(ステップ616)、
スパンラインのy値(ステップ602)、及びスパン開
始色(ステップ616)を反復的に決定する。y値は、
スパンラインを規定し、x値は、そのスパンラインにお
ける基本要素の開始値、及び停止値を規定し、色値は、
そのスパンラインに対する開始色を規定する。また、ス
パン色階調が決定される(ステップ627)。このスパ
ン色階調は、各ブロックの始点での色、及びブロック内
の各画素に対する色の決定に用いられる。各反復におい
て、y値が、その前のy値と比較され(ステップ62
1)、エッジステッピングを停止するかどうかが決定さ
れる(ステップ622)。
【0037】サブスパンステッパは、e1 、e2 、及び
e3 に対するx値を受け取り、そのフレームバッファコ
ントローラに割り当てられた、スパンラインの各ブロッ
クに対して、開始値、停止値、及びジャンプ値を生成す
る(ステップ700)。ジャンプ値が、スパン色階調に
より乗算され(ステップ640)、開始色633に加算
されて(ステップ642)、スパンラインの各ブロック
に対して、開始色値が与えられる。開始値、停止値、及
び開始色値は、スパンステッパに与えられ、スパンステ
ッパは、次に、初期の色、及びスパン色階調を用いて、
開始値と停止値の間の画素データを生成して、それらの
値と色を決定する。
e3 に対するx値を受け取り、そのフレームバッファコ
ントローラに割り当てられた、スパンラインの各ブロッ
クに対して、開始値、停止値、及びジャンプ値を生成す
る(ステップ700)。ジャンプ値が、スパン色階調に
より乗算され(ステップ640)、開始色633に加算
されて(ステップ642)、スパンラインの各ブロック
に対して、開始色値が与えられる。開始値、停止値、及
び開始色値は、スパンステッパに与えられ、スパンステ
ッパは、次に、初期の色、及びスパン色階調を用いて、
開始値と停止値の間の画素データを生成して、それらの
値と色を決定する。
【0038】サブスパン発生器の動作が、図12のブロ
ックフロー図に示されている。e1、e2 、及びe3 に
対するx値が、ステップ710で比較されて、そのスパ
ン内でのステッピングの方向が決定される。スパンステ
ッパは、常にe1 からe2 、又はe3 に向かってステッ
ピングを行なう。e1 に対するx値が、e2 、e3 に対
するx値より大きい場合、サブスパン開始値と停止値、
及びステッピング方向は、後方に調整される(ステップ
715)。e1 のx値は、そのスパンラインにおける基
本要素に対して、スパンライン開始位置711に、
e2 、e3 のx値は、スパンライン停止位置712にな
る。
ックフロー図に示されている。e1、e2 、及びe3 に
対するx値が、ステップ710で比較されて、そのスパ
ン内でのステッピングの方向が決定される。スパンステ
ッパは、常にe1 からe2 、又はe3 に向かってステッ
ピングを行なう。e1 に対するx値が、e2 、e3 に対
するx値より大きい場合、サブスパン開始値と停止値、
及びステッピング方向は、後方に調整される(ステップ
715)。e1 のx値は、そのスパンラインにおける基
本要素に対して、スパンライン開始位置711に、
e2 、e3 のx値は、スパンライン停止位置712にな
る。
【0039】次に、ステップ720で、このスパンライ
ン開始値が変調されて、そのスパンライン開始位置に対
して、タイル番号、ブロック、及びオフセットが決定さ
れる。このタイルは、スパンライン開始値が位置する、
スパンラインの列内のタイルである。ブロックは、スパ
ンライン開始値が位置する、タイル内の行221−22
5である。オフセット値は、スパンライン開始値が位置
する、ブロックの16画素内の画素位置である。実際に
は、開始位置は、デジタルの2進値である。したがっ
て、開始値の最下位4ビットは、オフセットとみなすこ
とができる。残りのビットは、4ビットだけ左にシフト
され、それにより、開始値が16(ブロックの幅)で割
られる。次に、MOD関数が、5のオペランド(タイル
内のブロックの数)を用いて、シフトされたビットに適
用される。このMOD関数は、演算結果と剰余を与え
る。この演算結果は、タイル番号を表わし、剰余は、ブ
ロック番号を表わす。
ン開始値が変調されて、そのスパンライン開始位置に対
して、タイル番号、ブロック、及びオフセットが決定さ
れる。このタイルは、スパンライン開始値が位置する、
スパンラインの列内のタイルである。ブロックは、スパ
ンライン開始値が位置する、タイル内の行221−22
5である。オフセット値は、スパンライン開始値が位置
する、ブロックの16画素内の画素位置である。実際に
は、開始位置は、デジタルの2進値である。したがっ
て、開始値の最下位4ビットは、オフセットとみなすこ
とができる。残りのビットは、4ビットだけ左にシフト
され、それにより、開始値が16(ブロックの幅)で割
られる。次に、MOD関数が、5のオペランド(タイル
内のブロックの数)を用いて、シフトされたビットに適
用される。このMOD関数は、演算結果と剰余を与え
る。この演算結果は、タイル番号を表わし、剰余は、ブ
ロック番号を表わす。
【0040】フレームバッファコントローラに割り当て
られた第1のブロックに対して、サブスパン開始値を決
定するために、ステップ725において、このブロック
が、(図7、及び図8のパターンにしたがって設定され
た)その走査線におけるフレームバッファコントローラ
に対する、割当てブロックと比較される。開始値のブロ
ックが、この割当てブロックより小さい場合、割当てブ
ロックは、完全に基本要素内にあり(図13のFB
1)、それは、次のステップに出力される。このブロッ
クが、割当てブロックより大きい場合、割当てブロック
は、基本要素の完全に外側にあり(図13のFB1)、
タイル番号が1だけ増分される(ステップ726)。こ
のブロックが、割当てブロックに等しい場合、エッジ
は、割当てブロック内にあり(図13のFB2)、オフ
セット値は、次のステップに送られる(ステップ72
4)。ステップ750において、第1のサブスパンの始
点が、調整されたタイル番号、割当てブロック、及びオ
フセットに基づいて決定される。80画素の幅のタイル
と、16画素の幅のフレームバッファ位置を有する、開
示の実施例では、開始値は次の式に等しくなる。
られた第1のブロックに対して、サブスパン開始値を決
定するために、ステップ725において、このブロック
が、(図7、及び図8のパターンにしたがって設定され
た)その走査線におけるフレームバッファコントローラ
に対する、割当てブロックと比較される。開始値のブロ
ックが、この割当てブロックより小さい場合、割当てブ
ロックは、完全に基本要素内にあり(図13のFB
1)、それは、次のステップに出力される。このブロッ
クが、割当てブロックより大きい場合、割当てブロック
は、基本要素の完全に外側にあり(図13のFB1)、
タイル番号が1だけ増分される(ステップ726)。こ
のブロックが、割当てブロックに等しい場合、エッジ
は、割当てブロック内にあり(図13のFB2)、オフ
セット値は、次のステップに送られる(ステップ72
4)。ステップ750において、第1のサブスパンの始
点が、調整されたタイル番号、割当てブロック、及びオ
フセットに基づいて決定される。80画素の幅のタイル
と、16画素の幅のフレームバッファ位置を有する、開
示の実施例では、開始値は次の式に等しくなる。
【0041】 タイル×80+ブロック×16+オフセット (1) このサブスパンに対する停止値は、開始値に15(ブロ
ックの幅)を加えることによって決定される。e1 が、
e2 、e3 より大きい場合(ステップ715)、停止値
は、開始値から15を引くことによって決定される。
ックの幅)を加えることによって決定される。e1 が、
e2 、e3 より大きい場合(ステップ715)、停止値
は、開始値から15を引くことによって決定される。
【0042】同じ処理を用いて、最後のサブスパンに対
する停止値が決定される(ステップ730、734、7
35、736、751)。スパン停止値が変調されて、
停止位置に対するタイル、ブロック、及びオフセットが
決定される。次に、このブロックが、割当てブロックと
比較されて、タイル値、及びオフセット値が、適宜調整
される。
する停止値が決定される(ステップ730、734、7
35、736、751)。スパン停止値が変調されて、
停止位置に対するタイル、ブロック、及びオフセットが
決定される。次に、このブロックが、割当てブロックと
比較されて、タイル値、及びオフセット値が、適宜調整
される。
【0043】スパンライン内の各サブスパンは、初期の
開始値(ステップ760)、及び停止値(ステップ76
5)に、80(タイルの幅)を反復的に加えることによ
って決定される。e1 が、e2 、e3 より大きい場合、
初期の開始値から80が減算されて、後方のステッピン
グが行なわれる。もちろん、エッジが、割当てブロック
を通過したために、オフセット値が、初期に用いられた
場合、このオフセット値は、サブスパンを決定するため
の、後続の反復においては無視されることになる。開始
値に対して、80を加算(あるいは減算)し、またオフ
セット値がある場合には、これを減算するのではなく、
後続のサブスパン開始値は、タイル番号を増分(あるい
は減分)し、オフセット値を0に設定して、式(1)に
従って、開始値を再計算することによって決定すること
もできる。
開始値(ステップ760)、及び停止値(ステップ76
5)に、80(タイルの幅)を反復的に加えることによ
って決定される。e1 が、e2 、e3 より大きい場合、
初期の開始値から80が減算されて、後方のステッピン
グが行なわれる。もちろん、エッジが、割当てブロック
を通過したために、オフセット値が、初期に用いられた
場合、このオフセット値は、サブスパンを決定するため
の、後続の反復においては無視されることになる。開始
値に対して、80を加算(あるいは減算)し、またオフ
セット値がある場合には、これを減算するのではなく、
後続のサブスパン開始値は、タイル番号を増分(あるい
は減分)し、オフセット値を0に設定して、式(1)に
従って、開始値を再計算することによって決定すること
もできる。
【0044】スパンライン内の最後のサブスパンを判定
するために、各反復におけるサブスパンの停止値が、最
後の停止値と比較される。ジャンプ値は、サブスパンの
開始値と、基本要素に対するスパンの始点における、初
期のx値との間の差として決定される(ステップ77
0)。
するために、各反復におけるサブスパンの停止値が、最
後の停止値と比較される。ジャンプ値は、サブスパンの
開始値と、基本要素に対するスパンの始点における、初
期のx値との間の差として決定される(ステップ77
0)。
【0045】図2、及び図3に示すように、本発明のグ
ラフィックスシステムは、テクスチャマッピング情報を
フレームバッファに送る。画素に対するR、G、B値、
及び文字値を含むテクセルデータが、テクスチャマッピ
ングボード12から、すべてのフレームバッファコント
ローラ50A−50Eに送られる。画素あたりのテクセ
ルデータが与えられるため、このテクセルデータは、エ
ッジステッパ500、サブスパンステッパ510、又は
スパンステッパ520を通過する必要はなく、画素デー
タと組み合わされて、メモリコントローラに供給するこ
とができる。上述したように、様々な方法を用いて、基
本要素の画素データ、及びテクセルデータの組み合わせ
が可能となる。
ラフィックスシステムは、テクスチャマッピング情報を
フレームバッファに送る。画素に対するR、G、B値、
及び文字値を含むテクセルデータが、テクスチャマッピ
ングボード12から、すべてのフレームバッファコント
ローラ50A−50Eに送られる。画素あたりのテクセ
ルデータが与えられるため、このテクセルデータは、エ
ッジステッパ500、サブスパンステッパ510、又は
スパンステッパ520を通過する必要はなく、画素デー
タと組み合わされて、メモリコントローラに供給するこ
とができる。上述したように、様々な方法を用いて、基
本要素の画素データ、及びテクセルデータの組み合わせ
が可能となる。
【0046】本明細書において図示、及び説明した回路
は、例として掲げたものにすぎない。この回路は、好適
には、例えばSynopsysから市販されている、論理合成ソ
フトウエアを用いた大規模専用集積回路で実施される。
この論理合成ソフトウエアは、Veralog 等の高水準言語
で書かれた回路記述を最適化し、これを論理ゲートに変
換する。この回路は、5ボルトで動作する1ミクロンF
ETを生成するCMOSプロセス、3.3ボルトで動作
する0.6ミクロン延伸ゲート長素子を生成するCMO
Sプロセス、又はデジタル回路を実施するための、他の
任意の適当なプロセスを用いて実施することができる。
この論理合成ソフトウエアへの入力は、構造的ではな
く、機能的なものであるため、この論理合成ソフトウエ
アによって生成される実際の回路は、本明細書に開示し
たものとは異なる場合がある。
は、例として掲げたものにすぎない。この回路は、好適
には、例えばSynopsysから市販されている、論理合成ソ
フトウエアを用いた大規模専用集積回路で実施される。
この論理合成ソフトウエアは、Veralog 等の高水準言語
で書かれた回路記述を最適化し、これを論理ゲートに変
換する。この回路は、5ボルトで動作する1ミクロンF
ETを生成するCMOSプロセス、3.3ボルトで動作
する0.6ミクロン延伸ゲート長素子を生成するCMO
Sプロセス、又はデジタル回路を実施するための、他の
任意の適当なプロセスを用いて実施することができる。
この論理合成ソフトウエアへの入力は、構造的ではな
く、機能的なものであるため、この論理合成ソフトウエ
アによって生成される実際の回路は、本明細書に開示し
たものとは異なる場合がある。
【0047】以上、本発明の少なくとも1つの例示的な
実施例を説明したが、様々な変更、修正、及び改良は、
当業者には容易に想到されるであろう。かかる変更、修
正、及び改良は、本発明の精神、及び範囲内にあること
が意図される。したがって、以上の説明は、例示に過ぎ
ず、限定として意図されるものではない。本発明は、特
許請求の範囲に規定されるようにしか、及びその同等物
にしか限定されない。
実施例を説明したが、様々な変更、修正、及び改良は、
当業者には容易に想到されるであろう。かかる変更、修
正、及び改良は、本発明の精神、及び範囲内にあること
が意図される。したがって、以上の説明は、例示に過ぎ
ず、限定として意図されるものではない。本発明は、特
許請求の範囲に規定されるようにしか、及びその同等物
にしか限定されない。
【0048】以下に、本発明の実施態様を列挙する。
【0049】1.フレームバッファコントローラにおい
て、基本要素データを受け取り、一連のスパンラインデ
ータを生成する、エッジステッパと、前記一連のスパン
ラインデータを受け取り、前記一連のうちの各スパンラ
インデータに基づいて、一連のサブスパンデータを生成
する、サブスパンステッパと、前記一連のサブスパンデ
ータの各々を受け取り、前記サブスパンデータに対応す
る画素データを生成する、スパンステッパと、からなる
フレームバッファコントローラ。
て、基本要素データを受け取り、一連のスパンラインデ
ータを生成する、エッジステッパと、前記一連のスパン
ラインデータを受け取り、前記一連のうちの各スパンラ
インデータに基づいて、一連のサブスパンデータを生成
する、サブスパンステッパと、前記一連のサブスパンデ
ータの各々を受け取り、前記サブスパンデータに対応す
る画素データを生成する、スパンステッパと、からなる
フレームバッファコントローラ。
【0050】2.前記サブスパンデータは、スパンライ
ンの部分に対する開始値、停止値、及び色開始値を含
み、前記サブスパンデータによって規定される、スパン
ラインの前記部分は、前記スパンラインに基づいて変化
する、前項1に記載のフレームバッファコントローラ。
ンの部分に対する開始値、停止値、及び色開始値を含
み、前記サブスパンデータによって規定される、スパン
ラインの前記部分は、前記スパンラインに基づいて変化
する、前項1に記載のフレームバッファコントローラ。
【0051】3.前記スパンラインの前記部分は、各ス
パンラインに対して予め決定される、前項3に記載のフ
レームバッファコントローラ。
パンラインに対して予め決定される、前項3に記載のフ
レームバッファコントローラ。
【0052】4.画素データを格納するための少なくと
も1つのメモリと、前記スパンステッパから前記画素デ
ータを受け取り、内部に画素データを格納する、少なく
とも1つのメモリコントローラと、から更になる、前項
1に記載のフレームバッファコントローラ。
も1つのメモリと、前記スパンステッパから前記画素デ
ータを受け取り、内部に画素データを格納する、少なく
とも1つのメモリコントローラと、から更になる、前項
1に記載のフレームバッファコントローラ。
【0053】5.コンピュータグラフィックスシステム
のためのフレームバッファシステムであって、コンピュ
ータグラフィックスシステムから、基本要素データを受
け取る、複数のフレームバッファコントローラからな
り、各フレームバッファコントローラは、基本要素のあ
るエッジのスパンラインに沿ってステッピングを行な
い、スパンラインに対応するスパンラインデータを生成
する、エッジステッパと、各スパンラインに対応するス
パンラインデータを受け取り、スパンラインデータに対
応するスパンラインの部分を表わす、一連のサブスパン
データを生成する、サブスパンステッパと、前記一連の
サブスパンデータを受け取り、前記サブスパンデータに
よって表わされる、前記スパンラインの前記部分におけ
る基本要素に対して、画素データを生成する、スパンス
テッパと、を含む、フレームバッファシステム。
のためのフレームバッファシステムであって、コンピュ
ータグラフィックスシステムから、基本要素データを受
け取る、複数のフレームバッファコントローラからな
り、各フレームバッファコントローラは、基本要素のあ
るエッジのスパンラインに沿ってステッピングを行な
い、スパンラインに対応するスパンラインデータを生成
する、エッジステッパと、各スパンラインに対応するス
パンラインデータを受け取り、スパンラインデータに対
応するスパンラインの部分を表わす、一連のサブスパン
データを生成する、サブスパンステッパと、前記一連の
サブスパンデータを受け取り、前記サブスパンデータに
よって表わされる、前記スパンラインの前記部分におけ
る基本要素に対して、画素データを生成する、スパンス
テッパと、を含む、フレームバッファシステム。
【0054】6.各フレームバッファコントローラのエ
ッジステッパは、所定のスパンラインに対応するスパン
ラインデータを生成する、前項5に記載のフレームバッ
ファシステム。
ッジステッパは、所定のスパンラインに対応するスパン
ラインデータを生成する、前項5に記載のフレームバッ
ファシステム。
【0055】7.前記画素データを格納するための、少
なくとも1つのメモリから更になり、各フレームバッフ
ァコントローラは、前記少なくとも1つのメモリに、画
素データを書き込むための少なくとも1つのメモリコン
トローラを含む、前項5に記載のフレームバッファシス
テム。
なくとも1つのメモリから更になり、各フレームバッフ
ァコントローラは、前記少なくとも1つのメモリに、画
素データを書き込むための少なくとも1つのメモリコン
トローラを含む、前項5に記載のフレームバッファシス
テム。
【0056】8.前記少なくとも1つのメモリは、前記
複数のフレームバッファコントローラに対応する複数の
メモリからなる、前項7に記載のフレームバッファシス
テム。
複数のフレームバッファコントローラに対応する複数の
メモリからなる、前項7に記載のフレームバッファシス
テム。
【0057】9.フレームバッファコントローラを動作
させる方法において、基本要素データを、基本要素内の
各スパンラインに対する、スパン開始値、及びスパン停
止値へと変換するステップと、前記スパン開始値とスパ
ン停止値の間の各スパンラインを、複数のサブスパン部
分に分割するステップと、各スパンラインにおいて、前
記サブスパン部分の少なくとも1つに対応する、画素デ
ータを生成するステップと、を含む方法。
させる方法において、基本要素データを、基本要素内の
各スパンラインに対する、スパン開始値、及びスパン停
止値へと変換するステップと、前記スパン開始値とスパ
ン停止値の間の各スパンラインを、複数のサブスパン部
分に分割するステップと、各スパンラインにおいて、前
記サブスパン部分の少なくとも1つに対応する、画素デ
ータを生成するステップと、を含む方法。
【0058】10.前記スパンラインに基づいて、前記
複数のサブスパン部分を決定するステップを更に含む、
前項9に記載の方法。
複数のサブスパン部分を決定するステップを更に含む、
前項9に記載の方法。
【0059】
【発明の効果】本発明は上述のように、各フレームバッ
ファコントローラが、到来する基本要素データを、出力
画素データに変換する、エッジステッパ、サブスパンス
テッパ、及びスパンステッパから構成され、多数のフレ
ームバッファコントローラの各々が、表示中の各スパン
ラインの一部に割り当てられて、あるフレームバッファ
に割り当てられた、スパンラインの部分は、スパンライ
ンに依存して変化可能であるので、並列処理の時間効率
を更に向上させることが可能になる、という効果があ
る。
ファコントローラが、到来する基本要素データを、出力
画素データに変換する、エッジステッパ、サブスパンス
テッパ、及びスパンステッパから構成され、多数のフレ
ームバッファコントローラの各々が、表示中の各スパン
ラインの一部に割り当てられて、あるフレームバッファ
に割り当てられた、スパンラインの部分は、スパンライ
ンに依存して変化可能であるので、並列処理の時間効率
を更に向上させることが可能になる、という効果があ
る。
【図1】慣用的なフレームバッファコントローラのブロ
ック図である。
ック図である。
【図2】慣用的な並列フレームバッファコントローラの
ブロック図である。
ブロック図である。
【図3】本発明のコンピュータグラフィックスシステム
全体の1つの実施例のブロック図である。
全体の1つの実施例のブロック図である。
【図4】本発明のコンピュータグラフィックスシステム
全体の他の実施例のブロック図である。
全体の他の実施例のブロック図である。
【図5】基本要素をラスタ化する図形表現である。
【図6】基本要素をラスタ化する他の図形表現である。
【図7】インターリーブされたフレームバッファコント
ローラを示す図である。
ローラを示す図である。
【図8】インターリーブされたフレームバッファコント
ローラを示す他の図である。
ローラを示す他の図である。
【図9】インターリーブされたメモリコントローラを示
す図である。
す図である。
【図10】本発明によるフレームバッファコントローラ
の1つの実施例のブロック図である。
の1つの実施例のブロック図である。
【図11】本発明のフレームバッファコントローラの動
作のブロックフロー図である。
作のブロックフロー図である。
【図12】本発明のサブスパンステッパの動作のブロッ
クフロー図である。
クフロー図である。
【図13】サブスパン開始値、停止値、およびジャンプ
値を示す図である。
値を示す図である。
50 フレームバッファコントローラ 500 エッジステッパ 510 サブスパンステッパ 520 スパンステッパ
Claims (1)
- 【請求項1】 フレームバッファコントローラにおい
て、 基本要素データを受け取り、一連のスパンラインデータ
を生成する、エッジステッパと、 前記一連のスパンラインデータを受け取り、前記一連の
うちの各スパンラインデータに基づいて、一連のサブス
パンデータを生成する、サブスパンステッパと、 前記一連のサブスパンデータの各々を受け取り、前記サ
ブスパンデータに対応する画素データを生成する、スパ
ンステッパと、からなるフレームバッファコントロー
ラ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US48864295A | 1995-06-08 | 1995-06-08 | |
| US488642 | 1995-06-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0916144A true JPH0916144A (ja) | 1997-01-17 |
Family
ID=23940519
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8147638A Pending JPH0916144A (ja) | 1995-06-08 | 1996-06-10 | 二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5982384A (ja) |
| JP (1) | JPH0916144A (ja) |
| DE (1) | DE19619288A1 (ja) |
| FR (1) | FR2735267B1 (ja) |
| GB (1) | GB2302002B (ja) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5793371A (en) | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
| US6215500B1 (en) | 1995-08-04 | 2001-04-10 | Sun Microsystems, Inc. | Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object |
| US6747644B1 (en) | 1995-08-04 | 2004-06-08 | Sun Microsystems, Inc. | Decompression of surface normals in three-dimensional graphics data |
| US6256041B1 (en) | 1995-08-04 | 2001-07-03 | Sun Microsystems, Inc. | Decompression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object |
| US6525722B1 (en) | 1995-08-04 | 2003-02-25 | Sun Microsystems, Inc. | Geometry compression for regular and irregular mesh structures |
| US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
| US5760783A (en) * | 1995-11-06 | 1998-06-02 | Silicon Graphics, Inc. | Method and system for providing texture using a selected portion of a texture map |
| JPH10334269A (ja) * | 1997-06-03 | 1998-12-18 | Sega Enterp Ltd | 画像処理装置、画像処理方法、及び画像処理プログラムを記録した記録媒体 |
| US7554510B1 (en) * | 1998-03-02 | 2009-06-30 | Ati Technologies Ulc | Method and apparatus for configuring multiple displays associated with a computing system |
| US6072505A (en) * | 1998-04-01 | 2000-06-06 | Real 3D, Inc. | Method and apparatus to efficiently interpolate polygon attributes in two dimensions at a prescribed clock rate |
| US6611272B1 (en) * | 1998-07-02 | 2003-08-26 | Microsoft Corporation | Method and apparatus for rasterizing in a hierarchical tile order |
| US7224364B1 (en) * | 1999-02-03 | 2007-05-29 | Ati International Srl | Optimal initial rasterization starting point |
| US6795072B1 (en) | 1999-08-12 | 2004-09-21 | Broadcom Corporation | Method and system for rendering macropixels in a graphical image |
| US6504542B1 (en) * | 1999-12-06 | 2003-01-07 | Nvidia Corporation | Method, apparatus and article of manufacture for area rasterization using sense points |
| US6801203B1 (en) * | 1999-12-22 | 2004-10-05 | Microsoft Corporation | Efficient graphics pipeline with a pixel cache and data pre-fetching |
| US6823525B1 (en) * | 2000-01-21 | 2004-11-23 | Ati Technologies Inc. | Method for displaying single monitor applications on multiple monitors driven by a personal computer |
| US20050052459A1 (en) * | 2000-06-07 | 2005-03-10 | Lewis Michael C. | Method and system for rendering macropixels in a graphical image |
| US6636218B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
| US6556203B1 (en) * | 2000-06-30 | 2003-04-29 | Intel Corporation | Tile-based digital differential analyzer rasterization |
| US6961803B1 (en) | 2001-08-08 | 2005-11-01 | Pasternak Solutions Llc | Sliced crossbar architecture with no inter-slice communication |
| DE60205856D1 (de) * | 2002-03-11 | 2005-10-06 | Sgs Thomson Microelectronics | Verfahren und Vorrichtung zur Auswertung, ob ein Bildpunkt innerhalb eines Dreiecks liegt |
| US7038697B2 (en) * | 2003-02-25 | 2006-05-02 | Microsoft Corporation | Color gradient paths |
| US7936362B2 (en) * | 2004-07-30 | 2011-05-03 | Hewlett-Packard Development Company L.P. | System and method for spreading a non-periodic signal for a spatial light modulator |
| US9009441B2 (en) | 2012-06-04 | 2015-04-14 | Qualcomm Incorporated | Memory channel selection in a multi-channel memory |
| US9299124B2 (en) | 2012-06-07 | 2016-03-29 | Qualcomm Incorporated | Padding for multi-channel memory |
| US10410081B2 (en) * | 2014-12-23 | 2019-09-10 | Intel Corporation | Method and apparatus for a high throughput rasterizer |
| US10269154B2 (en) * | 2015-12-21 | 2019-04-23 | Intel Corporation | Rasterization based on partial spans |
| US10482577B2 (en) | 2016-07-27 | 2019-11-19 | Adobe Inc. | Dynamic spread anti-aliasing |
| US10388060B2 (en) * | 2017-08-28 | 2019-08-20 | Futurewei Technologies, Inc. | System and method for multi-view rendering |
| US12131418B2 (en) | 2022-05-11 | 2024-10-29 | Adobe Inc. | Graphics processing unit instancing control |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB464907A (en) * | 1936-11-09 | 1937-04-27 | Clarke Chapman Ltd | An improvement relating to hoisting and like means |
| US5222204A (en) * | 1990-03-14 | 1993-06-22 | Hewlett-Packard Company | Pixel interpolation in perspective space |
| JP3071229B2 (ja) * | 1990-04-09 | 2000-07-31 | 株式会社リコー | 図形処理装置 |
| GB2245806A (en) * | 1990-06-29 | 1992-01-08 | Philips Electronic Associated | Generating an image |
| DE69122557T2 (de) * | 1990-06-29 | 1997-04-24 | Philips Electronics Nv | Bilderzeugung |
| US5293480A (en) * | 1990-08-06 | 1994-03-08 | At&T Bell Laboratories | High resolution graphics system architecture |
| GB2251773B (en) * | 1991-01-09 | 1995-01-18 | Du Pont Pixel Systems | Graphics accelerator system with line drawing and tracking operations |
| GB2251770B (en) * | 1991-01-09 | 1995-01-11 | Du Pont Pixel Systems | Graphics accelerator system with polygon traversal operation |
| JP2712912B2 (ja) * | 1991-08-23 | 1998-02-16 | 日本電気株式会社 | エッジリスト作成装置 |
| US5307449A (en) * | 1991-12-20 | 1994-04-26 | Apple Computer, Inc. | Method and apparatus for simultaneously rendering multiple scanlines |
| US5404448A (en) * | 1992-08-12 | 1995-04-04 | International Business Machines Corporation | Multi-pixel access memory system |
| US5446836A (en) * | 1992-10-30 | 1995-08-29 | Seiko Epson Corporation | Polygon rasterization |
| EP0631252B1 (en) * | 1993-06-23 | 2002-06-26 | Sun Microsystems, Inc. | Draw processor for a high performance three dimensional graphics accelerator |
| US5528738A (en) * | 1993-10-06 | 1996-06-18 | Silicon Graphics, Inc. | Method and apparatus for antialiasing raster scanned, polygonal shaped images |
| US5598517A (en) * | 1995-01-10 | 1997-01-28 | Evans & Sutherland Computer Corp. | Computer graphics pixel rendering system with multi-level scanning |
-
1996
- 1996-03-05 FR FR9602740A patent/FR2735267B1/fr not_active Expired - Fee Related
- 1996-05-13 DE DE19619288A patent/DE19619288A1/de not_active Withdrawn
- 1996-06-05 GB GB9611742A patent/GB2302002B/en not_active Expired - Fee Related
- 1996-06-10 JP JP8147638A patent/JPH0916144A/ja active Pending
- 1996-09-17 US US08/715,167 patent/US5982384A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5982384A (en) | 1999-11-09 |
| GB2302002A (en) | 1996-12-18 |
| GB9611742D0 (en) | 1996-08-07 |
| GB2302002B (en) | 2000-06-21 |
| FR2735267B1 (fr) | 1999-04-30 |
| DE19619288A1 (de) | 1996-12-12 |
| FR2735267A1 (fr) | 1996-12-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0916144A (ja) | 二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法 | |
| US5801711A (en) | Polyline and triangle strip data management techniques for enhancing performance of computer graphics system | |
| JP3007701B2 (ja) | 表示装置及びその動作方法 | |
| US4967392A (en) | Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines | |
| EP0447227B1 (en) | Method for Generating Addresses to Textured Graphics Primitives Stored in RIP Maps | |
| EP0464907B1 (en) | Generating an image | |
| US5719600A (en) | Gradient calculation system and method | |
| US6778177B1 (en) | Method for rasterizing a graphics basic component | |
| JP3278693B2 (ja) | 表示装置及びその動作方法 | |
| EP1025558B1 (en) | A method and apparatus for performing chroma key, transparency and fog operations | |
| US5847717A (en) | Data synchronization between a plurality of asynchronous data renderers | |
| US5877779A (en) | Method and apparatus for efficient rendering of three-dimensional scenes | |
| US5604852A (en) | Method and apparatus for displaying a parametric curve on a video display | |
| US5719598A (en) | Graphics processor for parallel processing a plurality of fields of view for multiple video displays | |
| JP3839871B2 (ja) | 三角形を表わす画素データを生成する装置 | |
| US5696944A (en) | Computer graphics system having double buffered vertex ram with granularity | |
| US5784075A (en) | Memory mapping techniques for enhancing performance of computer graphics system | |
| US5732248A (en) | Multistep vector generation for multiple frame buffer controllers | |
| US5704025A (en) | Computer graphics system having per pixel depth cueing | |
| JP3839870B2 (ja) | 四辺形を表わす画素データを生成する装置および方法 | |
| US7372461B2 (en) | Image processing apparatus and method of same | |
| JPH09120278A (ja) | コンピュータグラフィックスシステムにおけるラインスキャンコンバージョン装置とその方法 | |
| US8576219B2 (en) | Linear interpolation of triangles using digital differential analysis | |
| US7372466B2 (en) | Image processing apparatus and method of same | |
| US5611029A (en) | Run slice line draw engine with non-linear shading capabilities |