JPH1063866A - グラフィックスプロセッサ、画素グリッド内にポリゴンをレンダリングする方法およびコンピュータシステム - Google Patents

グラフィックスプロセッサ、画素グリッド内にポリゴンをレンダリングする方法およびコンピュータシステム

Info

Publication number
JPH1063866A
JPH1063866A JP9172330A JP17233097A JPH1063866A JP H1063866 A JPH1063866 A JP H1063866A JP 9172330 A JP9172330 A JP 9172330A JP 17233097 A JP17233097 A JP 17233097A JP H1063866 A JPH1063866 A JP H1063866A
Authority
JP
Japan
Prior art keywords
polygon
width
value
accumulator
counter
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.)
Withdrawn
Application number
JP9172330A
Other languages
English (en)
Inventor
Michael Kerry Larson
ケイ. ラーソン マイケル
Daniel P Wilde
ピー. ワイルド ダニエル
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.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cirrus Logic Inc filed Critical Cirrus Logic Inc
Publication of JPH1063866A publication Critical patent/JPH1063866A/ja
Withdrawn 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/80Shading

Landscapes

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

Abstract

(57)【要約】 【課題】 簡単なロジックをもつ高速補間を実現するシ
ステムを提供する。 【解決手段】 必要なステップおよびレジスタの個数を
最小化してポリゴンをレンダリングするグラフィックス
コントローラを含むグラフィックスシステムが提供され
る。このグラフィックスコントローラは、ホストからポ
リゴンの初期パラメータを受け取るレジスタファイルを
備えている。グラフィックスコントローラはまた、レジ
スタファイルからパラメータをロードし、これらのパラ
メータを用いて開始X値および幅値をそれぞれのスキャ
ンラインについて生成することによって、ポリゴンの
「稜線をたどる」ことなしに、ポリゴンを効率よくレン
ダリングすることを可能にする、ポリゴンエンジンも備
えている。ポリゴンエンジンは、直交スキャンラインの
本数と、各スキャンラインのX開始値と、各スキャンラ
インの幅とを規定するためのカウンタおよび一対のアキ
ュムレータを備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、広くはパーソナル
コンピュータ用のグラフィックスシステムに関する。具
体的には、本発明は、画素グリッド内にポリゴンをレン
ダリングする方法および装置に関する。さらに詳しく言
えば、本発明は、ポリゴンを効率よくレンダリングする
ための初期計算の回数を必要最小限とし、必要最小限の
レジスタ空間を用いることによって、画素グリッド内で
ポリゴンを効率よくしかも高速に補間するための改善さ
れた方法に関している。
【0002】
【従来の技術】ここのところ、高度なグラフィックスパ
ッケージが、高価なコンピュータ援用製図、設計および
シミュレーションシステムで用いられてきている。グラ
フィックスコントローラやディスプレイシステムの能力
が向上し、そのような能力が標準化されたグラフィック
ス言語と組み合わされることによって、現在では、ごく
ありきたりのアプリケーションでも複雑なグラフィック
ス機能が利用可能になっている。例えば、今日、ワード
プロセッサ、スプレッドシートおよびデスクトップパブ
リッシングパッケージには、比較的高度なグラフィック
ス機能が内蔵されている。また、3次元(3D)ディス
プレイも、ゲーム、アニメーション、ならびにマルチメ
ディア通信および描画パッケージに普及している。
【0003】PCで高度なグラフィックスが利用可能に
なった結果、さらに高度なグラフィックス能力への需要
が高まってきている。このような能力を獲得するために
は、グラフィックスシステムは、現在のソフトウェアア
プリケーションで要求されるより多くの量のグラフィッ
クスデータをより短い時間で処理可能とすべく、さらに
高度な各種機能を実行できるようにならなければならな
い。具体的に言えば、フルカラー、シェーディング、テ
クスチュアマッピングおよびトランペアレンシ(transp
arency)ブレンディングを用いて3次元オブジェクトを
描画するためのソフトウェアアルゴリズムおよびハード
ウェア実現方式の改善が絶えず求められてきている。
【0004】ラスタディスプレイシステムが開発された
ことによって、グラフィックスシステムの全コストが大
幅に削減され、その能力は飛躍的に向上した。ラスタデ
ィスプレイシステムでは、それぞれが画素のロウを含
む、複数の直交または水平スキャンラインのセットが、
全スクリーンエリアを表現する画素のアレイすなわちグ
リッドをなしている。スクリーンは、好ましくは、フリ
ッカを減らすために画素グリッド全体を比較的、高速で
スキャンできる陰極線管(CRT)、LCDディスプレ
イなどである。画素データは、好ましくは、複数のダイ
ナミックランダムアクセスメモリ(DRAM)から構成
され、さらに好ましくは複数のビデオRAM(VRA
M)から構成される、フレームバッファに格納される。
ここで、それぞれの画素は、所望の解像度に応じて1以
上のビットで表現される。典型的なディスプレイシステ
ムは、さまざまなスクリーン解像度で多数の色を用いて
スクリーン描画をおこなうことができる。これらの解像
度は、使用されるソフトウェアドライバおよびハードウ
ェア次第で、640画素×480画素、800×60
0、1024×768、1280×1024、あるいは
さらに大きな画素値の組み合わせに設定される。
【0005】典型的には、ビデオコントローラは、フレ
ームバッファ内の画素データをスキャンし、変換するこ
とによって、制御信号をスクリーンシステムに与える。
具体的には、ビデオコントローラは、画素値のそれぞれ
をシーケンシャルに(典型的には、上から下へと、また
は左から右へと)スキャンし、それらの画素データを、
スクリーン上の対応する画素の強度値(intensity valu
e)に変換する。CRTを用いるカラーグラフィックス
システムでは、3原色のそれぞれに対応する3本の別々
のビームが制御される。ここで、これらのビームのそれ
ぞれの強度は、それぞれの色に対応する画素値により決
定される。同様のシステムは、LCDディスプレイでも
用いられている。好ましい実現形態では、画素値はそれ
ぞれ24ビット(すなわち3バイト)を有している。そ
のうちの1バイトは、3原色(赤、緑および青)のそれ
ぞれの強度を識別するための専用のバイトである。
【0006】ハードウェアの領域においても、その他さ
まざまな点で改善がなされている。例えば、ホスト中央
処理ユニット(CPU)をグラフィックスプロセッサへ
とインタフェースするソフトウェアドライバを備えた、
グラフィックスプロセッサおよびグラフィックスアクセ
ラレータが現在利用可能である。概略的にいえば、ソフ
トウェアドライバは、スクリーン上にオブジェクトを描
画するための情報を受け取り、それらのオブジェクトに
関連づけられたいくつかの基本的パラメータを計算し、
それらのパラメータをグラフィックスプロセッサに与え
る。その後、ソフトウェアドライバは、グラフィックス
プロセッサへとコマンドを送り、そのオブジェクトをフ
レームバッファ内へと描画させる。グラフィックスプロ
セッサは、描画されるべきオブジェクトの基本的情報が
一連の初期パラメータおよび初期値または増分パラメー
タおよび増分値を含んでいる、補間技術を用いることが
できる。グラフィックスプロセッサは、第1の画素につ
いての初期パラメータをロードするか、または受け取っ
た後、オブジェクトが完成するまで、それらのパラメー
タをインクリメントし続けることによって、そのオブジ
ェクトを補間する。これらのパラメータには、スクリー
ン上の各画素を識別する、すなわちその位置を求めるた
めのx座標およびy座標が含まれている。
【0007】
【発明が解決しようとする課題】ラスタグラフィックス
では、解像度および速度が共に高くになるにもかかわら
ず、ポリゴン描画の際には、いくつかの固有の問題が依
然として存在している。例えば、ランダムに方向づけら
れた多数の三角形は、典型的には、1つの三角形を互い
に直交するように方向づけられたより小さい2つの三角
形に分割し、それら2つのより小さい三角形を別々に補
間することによって、「モザイク状に」される。このよ
うに互いに直交するように方向づけられた複数の三角形
は、複数の画素から構成される直交スキャンラインと一
直線上になる、「平らな」つまり完全に平行な(または
直交する)底辺または頂辺を含むものと制限されない限
り、ランダムに方向づけられた多数の三角形の1サブセ
ットをなすものにすぎない。ソフトウェアドライバは、
これら2つの別々の三角形を形成する1本の水平分割線
を求めた後、補間パラメータを計算し、これらのパラメ
ータを補間ロジックに与える。このプロシージャの結
果、ソフトウェアドライバは、2つの別々のコマンドを
補間ロジックに送る。補間ロジックは、これに応答し
て、2つの別々の三角形を補間することになる。しか
し、このように2つの別々の三角形を補間すると、オー
バーヘッドの面でも、また速度の面でもコスト高にな
る。なぜなら、ロジックを追加し、時間を余分にとるこ
とが必要になるからである。複数の補間器で2つの別々
のパスをおこなうと、処理の速度が遅くなる。なぜな
ら、これらの補間器には、第2の三角形についても再び
ロードをおこなわなければならないからである。加え
て、それぞれの三角形の稜線をたどるのに、2つの別々
の補間器が用いられることがある。その場合、一方の補
間器は、第1辺に用いられ、他方の補間器はこれに対向
する辺に用いられる。これにより、各直交スキャンライ
ンの始点と終点とが得られる。始点はカウンタにロード
され、比較器が、現在のスキャンライン上の各画素につ
いて、終点の値と、カウンタの内容とを比較する。この
比較器は、システムのコストを増大させ、全補間処理の
速度を遅くする。
【0008】ここで、図2に図示されている三角形40
を参照する。ソフトウェアドライバは、頂点情報(頂点
41、42および43それぞれのx座標およびy座標を
含む)を受け取り、ポリゴンの鉛直方向の全長にわたっ
て延びている主勾配45を識別する。三角形40のその
他2つの辺を、ここでは「対向勾配」と称する。このポ
リゴンは、主勾配から2つの対向勾配へと延びる、それ
ぞれが複数の画素から構成される複数の直交(ORTH
O)スキャンラインを用いて補間される。垂直パラメー
タすなわちyパラメータが、基準座標として用いられ
る。その結果、y画素値は、好ましくは、各スキャンラ
インについて1ずつインクリメントまたはデクリメント
される。主勾配の値が初期条件として計算され、主勾配
の直交成分(すなわちx座標)として用いられる。主勾
配値は、yパラメータに単位増分が与えられるたびの直
交パラメータすなわちxパラメータの変化を表す。よっ
て、主勾配値は、各スキャンラインについてx座標の始
点を規定する。
【0009】ソフトウェアドライバは、また、初期幅値
および増分幅値を求め、対向勾配の稜線をたどるのでは
なく、その幅を補間する。補間された幅値は、カウンタ
にロードされ、現在のスキャンラインにおける各画素毎
にデクリメントされる。幅カウンタがゼロになるか、ま
たはその最終カウントに達すると、カウンタは、そのラ
インが完成したことを示す最終カウント信号をアサート
する。その結果、現在のラインが完成したことを決定す
るのに、比較器のような余分なロジックは必要なくな
る。
【0010】図2に示されているように、三角形は、一
般に、2つの半分47および49に分割される。なお、
以下の説明では、簡単のために、三角形40は上から下
に描画されるものとする。ソフトウェアドライバにより
計算される初期条件の一部として、三角形40の第1の
半分47におけるグラフィックス始点の第1の初期幅
(WIDTH MAIN)が、第1の半分の幅勾配(Δ
WIDTH MAIN)と共に求められる。初期幅値
(WMAIN)は、第1のスキャンライン上に描画され
る画素の個数を規定し、第1の半分の幅勾配値(ΔWM
AIN)は、三角形40の第1の半分47における連続
する複数のスキャンラインそれぞれの幅の増分変化を規
定する。これらの値はいずれも補間器にロードされ、三
角形40の第1の半分47のシェーディングをおこな
う。
【0011】この主勾配法では、三角形40の第1の半
分47がシェーディングされた後、三角形40の最大の
幅(ライン48により図示されている)に対応する第2
の初期幅値(WIDTH OPP)が、第2の半分の幅
勾配値(ΔWIDTH OPP)と共に補間器にロード
される。その後、三角形40の第2の半分49が、第2
の初期幅値(WIDTH OPP)を用いてシェーディ
ングされることによって、第2の半分49の第1のスキ
ャンライン上で点灯すべき画素の個数を規定する。連続
する複数のスキャンラインそれぞれの幅は、第2の半分
の幅勾配値(ΔWIDTH OPP)から求められる。
三角形40の第1の半分47および第2の半分49につ
いて、それぞれの初期幅値(WIDTH MAINおよ
びWIDTH OPP)と、初期幅勾配値(ΔWIDT
H MAINおよびΔWIDTHOPP)とを格納する
ために、別々のレジスタ位置が宛てられる。ポリゴンの
第1の半分が完成した後、第2の半分のパラメータにア
クセスするために、これら別々のレジスタの切替をおこ
なうマルチプレクサロジックが設けられる。
【0012】上述した主勾配補間技術によればさまざま
な効果が得られるにもかかわらず、この技術では、スキ
ャンラインを補間するためには、複数のレジスタにおい
て、いくつかの初期条件を計算し、ロードすることが必
要になる。本発明は、計算すべき初期条件の個数を減ら
し、それに伴いグラフィックスシステムに必要とされる
レジスタの個数をも減らすことによって、この技術に改
善を施すものである。
【0013】本発明は、上記課題を解決するためになさ
れたものであり、その目的は、ロジックを簡単にし、高
速補間を実現するシステムを提供することである。
【0014】
【課題を解決するための手段】本発明によるホストプロ
セッサからポリゴンを規定するパラメータを受け取り、
連続する複数の直交スキャンラインによって該ポリゴン
をレンダリングする、グラフィックスプロセッサは、該
パラメータを格納する、レジスタファイルと、該複数の
直交スキャンラインのそれぞれについて開始X座標を求
める第1のアキュムレータ、該それぞれのスキャンライ
ンについて幅を求める第2のアキュムレータ、および該
複数のスキャンラインの本数を規定するカウンタを有す
る、ポリゴンエンジンと、該第1および第2のアキュム
レータおよび該カウンタについて初期値をロード、選択
し、該第1および第2のアキュムレータおよび該カウン
タをインクリメントする、ポリゴンステートマシンと、
を備えており、そのことにより上記目的が達成される。
【0015】ある実施形態では、第1のカウントまたは
第2のカウントを選択するための、前記カウンタに関連
づけられた第1のマルチプレクサをさらに備えている。
【0016】ある実施形態では、第1の幅勾配または第
2の幅勾配を選択するための、前記第2のアキュムレー
タに関連づけられた第2のマルチプレクサをさらに備え
ている。
【0017】ある実施形態では、前記ポリゴンステート
マシンが、前記第1および第2のマルチプレクサに選択
制御信号を供給する。
【0018】ある実施形態では、前記第1のアキュムレ
ータに、幅勾配値および初期x値がロードされる。
【0019】ある実施形態では、前記第2のアキュムレ
ータが、前記第1の幅勾配に対して第1の幅値を仮定す
る。
【0020】ある実施形態では、前記第2の幅勾配が前
記第2のマルチプレクサにより選択される時、前記第2
のアキュムレータが、現在の累算された値を該第2の幅
勾配の初期幅として用いる。
【0021】ある実施形態では、前記プロセッサが、ホ
ストインタフェースバスと、該ホストインタフェースバ
スをシステムバスに結合する、ホストインタフェースユ
ニットと、該ホストインタフェースバスに結合された、
前記ポリゴンエンジンと、該ポリゴンエンジンに結合さ
れた、RAMバスと、該RAMバスに結合され、フレー
ムバッファへのアクセスを制御する、メモリコントロー
ラと、を備えている。
【0022】ある実施形態では、前記ホストインタフェ
ースユニットが、前記システムバスのマスタシップをア
サート可能である。
【0023】本発明による画素グリッド内にポリゴンを
レンダリングする方法は、該ポリゴンを複数のセクショ
ンに分割するステップと、主勾配値、初期X値、該複数
のポリゴンセクションのそれぞれに対する垂直スキャン
ラインの本数、および該複数のポリゴンセクションのそ
れぞれに対する幅勾配値を含む、該ポリゴンの初期パラ
メータを規定するステップと、第1のカウンタ値を選択
して、カウンタへとロードするステップと、第1の幅勾
配値を選択して、幅アキュムレータへとロードするステ
ップと、該主勾配値および該初期X値をXアキュムレー
タへとロードするステップと、該カウンタにインクリメ
ント信号を供給することによって、該ポリゴンの第1の
セクションにおける複数のスキャンラインの本数をカウ
ントするステップと、該Xアキュムレータをインクリメ
ントすることによって、開始X座標を該複数のスキャン
ラインのそれぞれに与えるステップと、該幅アキュムレ
ータをインクリメントすることによって、幅値を該複数
のスキャンラインのそれぞれに与えるステップと、該第
1のカウント値がゼロになる時刻を決定し、該時刻に応
じて、第2のカウンタ値を選択して、該カウンタへとロ
ードし、第2の幅勾配値を選択して、該幅アキュムレー
タへとロードし、かつ、該幅アキュムレータにおける該
幅値を保持するステップと、を含んでおり、そのことに
より上記目的が達成される。
【0024】本発明によるコンピュータシステムは、シ
ステムバスと、該システムバスに結合された、中央処理
ユニットと、画素のグリッドを含む、ディスプレイユニ
ットと、該システムバスに直接、接続され、かつ該ディ
スプレイユニットにも結合されており、該画素グリッド
にポリゴンをレンダリングする、グラフィックスコント
ローラと、該グラフィックスコントローラに結合され
た、フレームバッファと、を備えているコンピュータシ
ステムであって、該グラフィックスコントローラが、該
画素グリッドに描画される該ポリゴンを規定するパラメ
ータを該中央処理ユニットから受け取る、レジスタファ
イルと、カウンタならびに第1および第2のアキュムレ
ータを備えたポリゴンエンジンであって、該カウンタが
該ポリゴンについて描画される複数のスキャンラインの
本数を示し、該第1および第2のアキュムレータが該複
数のスキャンラインそれぞれの開始点および幅を規定す
る、ポリゴンエンジンと、を備えており、そのことによ
り上記目的が達成される。
【0025】ある実施形態では、前記グラフィックスコ
ントローラが、システムバスマスタ能力を有している。
【0026】ある実施形態では、前記システムバスに結
合されたシステムメモリをさらに備えているコンピュー
タシステムであって、前記グラフィックスコントローラ
が、前記ポリゴンパラメータを該システムメモリからリ
ードし、前記レジスタファイルへと格納できる。
【0027】ある実施形態では、前記グラフィックスコ
ントローラが、ホストインタフェースユニットおよびR
AMDACを備えた、集積化されたグラフィックスプロ
セッサを備えている。
【0028】ある実施形態では、前記集積化されたグラ
フィックスプロセッサが、メモリコントローラを備えて
いる。
【0029】ある実施形態では、前記ポリゴンが、前記
中央処理ユニットにより2つのセクションに分割され、
前記カウンタが、該ポリゴンセクションのそれぞれにつ
いてスキャンラインの本数をカウントする。
【0030】ある実施形態では、前記2つのカウント値
のいずれか1つが、前記ポリゴンの前記2つのセクショ
ンのどちらがレンダリングされているかによって、前記
カウンタに初期値として選択的に供給される。
【0031】ある実施形態では、前記ポリゴンエンジン
が、前記カウンタに供給される前記カウント値を選択す
るための、該カウンタに関連づけられたマルチプレクサ
を備えている。
【0032】ある実施形態では、前記ポリゴンエンジン
が、前記ポリゴンの前記2つのセクションのどちらがレ
ンダリングされているかを示す出力信号を前記マルチプ
レクサに供給するステートマシンを備えている。
【0033】ある実施形態では、主勾配値が前記レジス
タファイルに格納される。
【0034】ある実施形態では、前記主勾配値が、初期
X値と共に入力として前記第1のアキュムレータに供給
され、該第1のアキュムレータが、前記連続する複数の
スキャンラインのそれぞれについて開始X座標を決定す
る。
【0035】ある実施形態では、第1および第2の幅勾
配が、入力として選択的に前記第2のアキュムレータに
供給され、該第2のアキュムレータが、前記第1のポリ
ゴンセクションに対して初期幅値を仮定することによっ
て、前記複数のスキャンラインそれぞれの幅を決定す
る。
【0036】ある実施形態では、前記第2のアキュムレ
ータが、前記第1のポリゴンセクションの最終幅値を、
前記第2のポリゴンセクションの初期幅値として用い
る。
【0037】以下に作用を説明する。
【0038】本発明の補間方法によれば、多数のランダ
ムに方向づけられた三角形(およびその他いくつかのポ
リゴン)を、必要なステップおよびレジスタの個数を最
小限にとどめて都合よく補間することが可能になる。グ
ラフィックスプロセッサまたはコントローラは、ホスト
プロセッサからレンダリングすべきグラフィックスのタ
イプを識別する情報を受け取る。もしポリゴンが描画さ
れるべきであるのなら、グラフィックスプロセッサは、
そのポリゴンの頂点および主勾配値、ならびにその三角
形の2つのセクションの幅勾配値を受け取る。ホストか
ら受け取られたデータは、レジスタファイルに格納され
る。ポリゴンは、三角形の主勾配から対向勾配に向かっ
て延びる、複数の画素から構成される複数の直交スキャ
ンラインを用いて補間される。画素のy座標値が、基準
座標として用いられる。よって、好ましくは、y座標値
が1ずつインクリメントまたはデクリメントされること
によって、連続するスキャンラインをそれぞれ生成す
る。
【0039】グラフィックスコントローラは、連続する
スキャンラインのそれぞれの直交成分(すなわちx座
標)の始点を求めるポリゴンエンジンを備えている。x
座標の始点は、主勾配値および初期x点(X1)から求
められる。ポリゴンエンジンはまた、増分幅値を求め、
対向勾配の稜線をたどるのではなく、その幅を補間す
る。補間された幅値は、幅アキュムレータにより幅勾配
値から求められる。レンダリングされるべき三角形のセ
クションを識別するために、yカウンタも設けられる。
yカウンタは、三角形の各セクションについてカウント
をおこない、それによって、それぞれの三角形のスキャ
ンラインの本数を示す。ポリゴンステートマシンは、y
カウントをモニタすることによって、カウントがゼロに
等しくなる時刻を求める。これに応答して、ポリゴンス
テートマシンは、信号を一対のマルチプレクサに与え、
幅アキュムレータおよびyカウンタに対する幅勾配およ
びカウント値を切り替える。
【0040】本発明では、三角形の第1の半分の初期幅
は定数値(例えばゼロ)であるものとするので、ある限
定された状況は別にして、三角形の第1の半分の初期幅
パラメータをロードする必要はなくなる。加えて、本発
明では、幅アキュムレータに連続的な幅カウントを維持
するので、ポリゴンの第2の半分(つまり下半分)に対
応する初期幅(WIDTH OPP)をロードする必要
もなくなる。その代わり、ポリゴンの第1の半分の最後
の幅カウントが、ポリゴンの第2の半分の初期幅値とし
て用いられる。対向幅値が必要なくなる結果、これらの
パラメータを格納するのに専用で用いられてきたレジス
タ空間も必要なくなる。
【0041】本発明によれば、初期計算の回数を最小化
して、ポリゴンを画素グリッド内に描画することができ
る。これらの計算には、(1)開始頂点(好ましくは、
上の頂点X1、Y1)の初期x、y座標と、(2)各スキ
ャンラインのx座標始点を規定する主勾配値(ΔMAI
N)と、(3)上半分のカウント値(COUNT0、三
角形の上半分の鉛直方向の長さ)と、(4)上の幅勾配
(WIDTH MAIN、三角形の上半分における連続
するスキャンラインそれぞれの幅の差)と、(5)下半
分のカウント(COUNT 1、三角形の下半分の鉛直
方向の長さ)と、(6)下の幅勾配(WIDTH OP
P、三角形の下半分における連続するスキャンラインそ
れぞれの幅の差)と、が含まれている。
【0042】本発明による補間方法によれば、ロジック
を簡単にし、高速補間を実現することができる。
【0043】
【発明の実施の形態】本願は、同一の譲受人に譲渡さ
れ、同時係属中である、「画素グリッドへのポリゴンの
補間レンダリング」と題された米国特許出願(出願番号
未定)に広くいえば関連している。この特許出願の教示
については、本願も参考として援用している。
【0044】本発明は、同一の譲受人に譲渡された米国
特許出願(出願番号未定)に開示されている補間技術を
改善したものである。この特許出願の教示については、
本願も参考として援用している。以下の説明は本発明に
より改善された点に焦点を合わせて記載されているの
で、補間システムについては、本発明には直接関係ない
細部は省略している。補間システムのより詳細な説明に
ついては、米国特許出願(出願番号未定)を参照のこ
と。
【0045】以下に述べる好ましい実施の形態の詳細な
説明を、添付の図面を参照しながら考慮すれば、本発明
をよりよく理解することができるであろう。
【0046】ここで図1を参照すると、ホストコンピュ
ータシステムのシステムバス25に結合されたグラフィ
ックスシステムの簡略ブロック図が図示されている。こ
こで、グラフィックスシステムは、本発明に基づいて実
施されるグラフィックスプロセッサまたはグラフィック
スコントローラ100を備えている。システムバス25
は、標準工業規格アーキテクチャ(ISA)バス、拡張
されたISA(EISA)バス、周辺機器相互接続(P
CI)バス、ビデオ電子規格協会(VESA)ローカル
バス、およびその他の規格化されたコンピュータシステ
ム用システムバスを含む、複数のそれぞれ異なるタイプ
のホストまたは入力/出力(I/O)バスのうちのいず
れか1つであればよい。グラフィックスプロセッサ10
0は、好ましくは、少なくとも33メガヘルツ(MH
z)のクロック速度をもつ32ビットグラフィックスプ
ロセッサである。グラフィックスプロセッサ100は、
好ましくは、システムバス25に直接、結合される。シ
ステムバス25は、ホストCPU10およびシステムメ
モリ20にも結合される。
【0047】図1に示すように、グラフィックスコント
ローラ100は、ディスプレイユニット50、フレーム
バッファ75およびBIOS ROM85にも接続され
ている。好ましい実施の形態では、フレームバッファ7
5は、RDRAMバッファのバンクとして実現されるラ
スタディスプレイの一部をなす。ここで、ディジタルデ
ータは、複数の絵素(以下の説明では、画素または画素
値と称する)から構成される矩形のアレイを備えてい
る。それぞれの画素は、8ビット値で規定されうる。こ
の値は、ディスプレイユニット50のスクリーン上の対
応する画素の単一の色の強度を具体的に示す。フルカラ
ーディスプレイの場合、3原色で24ビットの画素値を
実現するためには、3つのパスがなされるか、または、
3つのパラレルな論理スライスが実現される。ディスプ
レイユニット50は、適切なタイプの表示装置であれば
何でもよい。表示装置としては、デスクトップ、ワーク
ステーションあるいはサーバアプリケーション用の陰極
線管(CRT)あるいは携帯用コンピュータにふつう使
われている液晶ディスプレイ(LCD)が挙げられる。
【0048】RDRAMフレームバッファ75は、ホス
トコンピュータシステムのメインメモリ20に格納され
ているデータにアクセスする場合に比べて、より高速に
画素データにアクセスすることによって、パフォーマン
スの改善を実現する。グラフィックスプロセッサ100
は、アドレス、データおよび制御ライン(ここでは、ま
とめてRBUS118と称する)を介してフレームバッ
ファ75と通信する。
【0049】ホストコンピュータシステムとしては、一
般に、各種ソフトウェアプログラムを実行する中央処理
ユニット(CPU)10が挙げられる。CPU10によ
り実行されるソフトウェアプログラムとしては例えば、
ソフトウェアドライバがある。ソフトウェアドライバ
は、グラフィックスプロセッサ100によりレンダリン
グされるオブジェクトの主勾配および直交勾配、画素位
置の開始値および終了値、強度、濃度ならびに透明度を
計算し、ロードする。ソフトウェアドライバは、好まし
くは、例えばハードドライブあるいはフロッピーディス
クデバイスのような永久磁気記憶装置からシステムメモ
リ20へとロードされる。いったんロードされると、ソ
フトウェアドライバは、CPU10により実行される。
BIOSROM85は、可能なバス環境をサポートし、
かつ標準的なビデオモードの実現を可能にするように従
来の技術に従って動作する。好ましくは、BIOS R
OM85は、システム初期化のあいだにいったんリード
される。
【0050】なお、図1に図示されている特定の実施の
形態は、パーソナルコンピュータシステムに用いられる
グラフィックスシステムの可能な数多くの実現形態の一
例にすぎないことは理解されたい。また、図1は明瞭さ
を重視して簡略化されているので、多くの制御信号が省
略されている。好ましい実施の形態では、グラフィック
スプロセッサ100は、2Dおよび3Dグラフィック
ス、ならびに、コンピュータシステムのテキストおよび
ウィンドウ動作をハードウェア・サポートする。グラフ
ィックスプロセッサ100は、メインメモリ20とフレ
ームバッファ75との間でディジタルデータを転送し、
データを処理してフレームバッファ75に格納し、表示
装置50のディスプレイ上に最終的に表示されるように
する。
【0051】ここで図3を参照すると、グラフィックス
プロセッサ100の簡略化されたブロック図が示されて
いる。グラフィックスプロセッサ100は、好ましく
は、フレキシブルなマルチメディアディスプレイシステ
ムをサポートするのに必要なハードウェアをすべて備え
ている。よって、プロセッサ100は、好ましくは、集
積化されたランダムアクセスメモリディジタル・アナロ
グ変換器(RAMDAC)110、CRTコントローラ
120、VGAコア130、I/Oポート140、グラ
フィックスエンジン150およびその他の機能ユニット
160を備えている。その他の機能ユニット160とし
ては、例えば、クロック発生器、Vポートモジュール、
プログラム可能なフィギュアリングシンセサイザ(figu
ring synthesizer)および構成レジスタなどが挙げられ
る。
【0052】プロセッサ100は、好ましくは、システ
ムバス25に直接、接続されるホストインタフェース1
05を備えている。ホストインタフェース105は、好
ましくは、バスマスタデバイスとして機能可能であり、
ゼロウェイトステートバーストモードをサポートできる
ようにPCIにも対応可能である。ホストインタフェー
ス105は、好ましくは、グラフィックスコントローラ
100がシステムバス25上のトランザクションのター
ゲットであるかどうかを判定するアドレスデコーダを備
えている。ホストインタフェース105は、ホストイン
タフェースバス125に結合されており、好ましくはイ
ンタフェースバス125の制御を調停する。ホストイン
タフェースバス125は、各種機能ブロックおよびホス
トインタフェース105を結合するデータ、アドレスお
よび制御ラインを含んでいる。
【0053】VGAコア130は、ホストインタフェー
スバス125に結合されており、IBM VGA規格と
コンパチブルであるようにする。VGAコア130は、
VGAモードのあいだだけイネーブルされる。図3に示
すように、VGAコア130は、メモリバスを介してメ
モリコントローラ175に結合されている。CRTコン
トローラ120は、好ましくは、すべてのスクリーンリ
フレッシュ動作を操作し、モニタタイミング信号(HS
YNCおよびVSYNC)を発生する。CRTコントロ
ーラ120は、また、フレームバッファからのデータ取
り出しを調整し、データをRAMDAC110に与える
か、つまりスクリーンリフレッシュする。RAMDAC
110は、好ましくは、カラールックアップテーブル
と、モニタ50にアナログ信号を与えるトゥルーカラー
ディジタル・アナログ変換器とを備えている。入力/出
力ポート140は、好ましくは、初期化のあいだにBI
OSROM85へとアクセスするのに用いられる。その
後、入力/出力ポート140は、汎用I/Oポートとし
て機能する。さらに図3を参照すると、メモリコントロ
ーラ175は、バンド幅の広いRambusインタフェ
ースを通してのフレームバッファ75へのアクセスを総
指揮する。メモリコントローラ175は、各種機能ブロ
ックの間でメモリバンド幅の割り当てをおこなう。グラ
フィックスエンジン150は、好ましくは、16ビット
の小数点精度をもつハードウェアポリゴンおよびライン
描画エンジンを備えている。よって、レンダリングパラ
メータの値は、16ビットの整数値と16ビットの小数
値とから構成される16.16フォームをもつことにな
る。
【0054】グラフィックスエンジン150は、図4に
概略的に図示されており、レジスタファイル250と、
ポリゴンエンジン200とを有している。図3および図
4に示されているように、ポリゴンエンジン200は、
いずれかの向きに方向づけられたランダムな三角形、あ
るいは頂辺および底辺のうちの少なくとも1辺が平らで
ある四辺形をレンダリング可能である。ポリゴンエンジ
ンへの入力パラメータは、システムバス25からレジス
タファイル250へとロードされる。図7に示されてお
り、後にさらに詳しく開示されるように、レジスタファ
イル250は、X、Y、Zならびに赤(R)、緑(G)
および青(B)の初期値を含んでいる。レジスタファイ
ル250は、また、XおよびZの主稜線勾配値、ならび
に上および下の幅(幅0および幅1)も含んでいる。
赤、緑、青、Z、幅0および幅1の直交勾配値もまた、
レジスタファイル250に格納されている。好ましい実
施の形態では、グラフィックスエンジン200は、テク
スチュアマッピングならびに2Dレンダリングおよび3
Dレンダリングの両方を実現する。
【0055】概略的にいうと、グラフィックスプロセッ
サ100は、CPU10がシステムバス25を制御する
コプロセッサモード、あるいは、グラフィックスプロセ
ッサ100がシステムバス25を制御するプロセッサモ
ードのいずれかで動作する。グラフィックス動作をおこ
なうとき、CPU10またはグラフィックスプロセッサ
100は、データおよびインストラクションをレジスタ
ファイル250に与えて、実行させる。レンダリングさ
れるべきポリゴンの頂点に基づき、CPUソフトウェア
ドライバは、画素位置、カウント値、強度、濃度および
透明度についての初期パラメータおよび増分パラメータ
を含む基本的な幾何学的パラメータを計算する。これら
のパラメータ、および、それらに対応するインストラク
ションは、その後、レジスタファイル250へとロード
される。初期パラメータがレジスタファイル250にロ
ードされた後、ポリゴンエンジン(ポリエンジン)20
0は、フレームバッファ75で直交スパンラインを描画
し、ポリゴンを塗りつぶす。ポリエンジン200は、同
一平面上にランダムに方向づけられた多面体ポリゴンの
各表面を塗りつぶすことを目的として、画素位置、色の
強度、濃度および透明度もしくはアルファブレンディン
グを計算するように機能する。この補間処理は、ポリゴ
ンの全体が塗りつぶされ、描画されるまで続く。
【0056】どのようなポリゴンでも単一のコマンドで
描画できるようにするためには、いくつかの制約に従わ
なければならない。それらの制約に加えて、ポリゴンに
関するさらに2つの制約に従えば、初期幅情報(WID
TH MAINあるいはWIDTH OPP)なしでも
ポリゴンの描画は可能になる。第1の制約は、描画され
るべきすべてのポリゴンは、三角形の一番上の同一のy
座標に2つの頂点をもっていてはならない(つまり、三
角形は、頂辺が平らであってはならない)ということで
ある。とはいうものの、もしその平らな頂辺に対して初
期幅値(WIDTH MAIN)が指定されれば、本発
明では頂辺の平らな三角形も描画可能であることは理解
されたい。第2に、三角形の一番下の同一のy座標に2
つの頂点をもつ三角形は、幅勾配がただ1つの三角形で
あると解釈される。
【0057】図2を参照すると、三角形40は、三角形
40の鉛直方向の長さ全体にわたって延びる主勾配45
と、第1の対向勾配51と、第2の対向勾配53と、を
有するものとして規定される。ポリゴン40は、3Dフ
ィギュアのための濃度値をもっていてもよいが、そのよ
うなポリゴンも、好ましくは、ディスプレイ50上にそ
のポリゴンを描画することを目的として2Dグリッドへ
とマッピングされる。なお、図2の三角形40はその右
側に主勾配45をもってはいるものの、どのようなポリ
ゴンでも、その主勾配は、そのポリゴンの鉛直方向の長
さ全体にわたって延びてさえいれば、その右側にあって
も左側にあってもよいことは理解されたい。グラフィッ
クスプロセッサ100は、好ましくは、主勾配の上の頂
点に始まるそれぞれのポリゴンを塗りつぶすかシェーデ
ィングし、直交する(または平行な)複数のスパンライ
ンを描画する。それらのスパンラインはそれぞれ、主勾
配を始点とし、幅勾配値により決定される幅に達した点
を終点とする。これらのポリゴンは上から下に描画され
るのが好ましいが、直交スパンラインは、下から上に描
画されてもよい。
【0058】よって、図2では、ポリゴン40は、主勾
配45の一番上に座標X1、Y1をもち、W1と規定され
る幅をもつ頂点41を含んでいる。第1の直交スパンラ
インは、頂点41を始点として右から左に描画される。
三角形40は、頂辺が平らな三角形ではないので、本発
明では、初期幅はゼロであると仮定される。次の直交ス
パンラインは、y1画素ロウの下の次の画素ロウであ
り、このスパンラインは、主勾配45および対向勾配5
1上の互いに対応する点と点との間を結んで描画され
る。この処理は、直交ライン48が中点42(座標
2、y2をもつ)へと描画されるまで続く。その後、連
続する複数の直交スパンラインが、主勾配45から対向
勾配53へと描画される。このプロシージャは、最後の
直交スパンライン(すなわち点)が主勾配45の下側の
頂点43(座標x3、y3をもつ)において描画される時
に終了する。以上の説明では、2次元ポリゴンの描画に
ついてのみ述べたが、本発明は、濃度、強度およびアル
ファパラメータを与えるように利用することもできるこ
とは理解されたい。
【0059】ポリゴン(例えば、三角形40)を描画す
るグラフィックスサイクルの初期化の際に、ソフトウェ
アドライバは、パラメータx1、x2、x3、y1、y2
3を受け取り、これらのパラメータを、上の頂点41
と、ポリゴンのそれぞれの半分を描画するのに必要なス
キャンラインの本数(つまりカウント)と、主勾配45
とを規定する値に変換し、主勾配45および対向勾配5
1、53間の増分幅値を規定する幅勾配値に変換する。
【0060】上の頂点41は、描画されるべき初期画素
値を識別し、主勾配45は、連続する複数の直交スパン
ラインそれぞれについて描画される後続する初期画素の
それぞれを識別する。ここで、y座標またはパラメータ
は、好ましくは、次の直交スパンラインをアドレシング
するために1ずつインクリメントされる。カウント値
は、三角形のそれぞれの半分についてy座標がインクリ
メントされる回数を規定する。幅勾配パラメータは、1
スパンラインにつき描画される画素の個数を識別し、x
方向ビットは、スパンラインの方向を識別する。それぞ
れのポリゴンは、好ましくは、上述した直交スパンライ
ンを用いて描画されるので、ソフトウェアドライバによ
り計算される勾配値または増分値は、直交方向および鉛
直方向について決定される。
【0061】ソフトウェアドライバは、好ましくは、所
望の正確さを実現し、計算されたそれぞれのパラメータ
の整数値および小数値を与えるために、浮動小数点演算
または倍精度演算を用いる。整数値および小数値を実現
する方法およびそれに関連づけられたレジスタセットに
関しては、同一の譲受人に譲渡されている米国特許出願
(出願番号未定)に詳しく述べられている。
【0062】図2および図7を参照すると、ポリゴン4
0の鉛直方向のスパンは、頂点41および43のy値の
差、つまり、y1とy3との間の差としてソフトウェアド
ライバにより計算される。好ましい実施の形態では、鉛
直方向のスパンは、好ましくは、2つの部分に分けられ
る。これらの2つの部分は、第1の対向勾配51内に含
まれる鉛直方向の画素の個数に対応する主カウント値つ
まり上半分のカウント値(COUNT 0と表される)
と、第2の対向勾配53内に含まれる鉛直方向の画素の
個数に対応する対向カウント値つまり下半分のカウント
値(COUNT1と表される)とを含んでいる。よっ
て、上半分のカウント値(COUNT0)は、中点42
のyパラメータと、頂点41のyパラメータとの間の鉛
直方向のスパン、すなわち、y1〜y2である。COUN
T 0の整数部分のみが用いられ、レジスタファイル2
50内の適切な位置に格納される(図7を参照のこ
と)。結果として得られるCOUNT 0値は、レジス
タファイル250において上のカウントと規定され、上
の頂点41と中点42との間の直交スパンラインの本数
を表す。同様に、y2−y3を計算することによって、対
向カウント値も得られ、COUNT 1値が得られる。
COUNT 1値は、レジスタファイル25において下
のカウントと規定され、中点42と下の頂点43との間
の直交スパンラインの本数を表す。ここでも、整数部分
のみがCOUNT 1値には必要になる。このようにし
て、COUNT 0直交スパンラインは、上の頂点41
から中点42へと描画され、 COUNT 1直交スパ
ンラインは、中点42から下の頂点43へと描画され
る。COUNT 0値およびCOUNT 1値は、レジ
スタファイル250内で連結され、yカウント値として
格納される。
【0063】ソフトウェアドライバは、また、主勾配値
(ΔMAIN)も計算する。この値は、主勾配45に沿
ったxパラメータの増分変化を規定する。同様に、例え
ば濃度、強度およびアルファのようなその他のパラメー
タについても、同様の主勾配値が計算されうる。主勾配
値は、好ましくは、式(x1−x3)/(y1−y3)を用
いて計算される。なお、この値は、三角形40について
は負の値になる。なぜなら、xは減少していくからであ
る。垂直成分yは、直交スパンラインに対する主停止値
またはカウント値を含んでいるので、増分y値は(ポリ
ゴンが上から下にレンダリングされるのか、あるいは下
から上にレンダリングされるのかによって)値「1」ま
たは値「−1」のいずれかをもつように選択される。そ
の結果、次の直交スパンラインは、yのそれぞれのカウ
ントについてアクセスされる。
【0064】ソフトウェアドライバはまた、三角形40
の上側部分つまり上半分47および三角形40の下側部
分つまり下半分49の両方について増分幅値(つまり幅
勾配)も計算する。好ましい実施の形態では、第1のス
キャンラインについては、初期幅値ゼロが仮定される。
ただし、頂辺が平らなポリゴンの初期幅を表すために
は、これとは異なる初期幅を計算し、WIDTH MA
IN(W1)値としてレジスタファイル250へとロー
ドしてもよい。グラフィックスプロセッサ100は、描
画されるべき直交スパンラインそれぞれの長さを求める
ために、仮定された初期幅値(WIDTH MAIN)
および計算された増分幅値を用いる。第1のスキャンラ
インにおけるWIDTH MAINとしてある定数値を
仮定すれば、初期幅をロードし、計算することが不必要
になり、これによりレジスタスペースおよびプロセッサ
時間を節約できる。
【0065】幅勾配(ΔWIDTH)は、好ましくは、
yの各増分に対応する幅の変化として規定される。幅勾
配は、三角形40の上半分および下半分の両方につい
て、それぞれΔWIDTH MAINおよびΔWIDT
H OPPとして規定される。これらの幅勾配値は、そ
れぞれの直交スキャンラインの長さを規定するのに用い
られる。よって、初期幅(ゼロとする)は、第2の直交
スキャンラインの幅を求めるために、幅勾配値によりイ
ンクリメントされる。正しい幅勾配値(MAINまたは
OPP)は、図5を参照して後述するように、ポリゴン
エンジン200内のステートマシンにより選択され、決
定される。この処理は、三角形40の上半分47が描画
されるまで続く。好ましい実施の形態では、三角形40
の第1の半分47から得られた最終幅値は、好ましく
は、保持され、三角形40の第2の半分49の初期幅値
として用いられる。連続する複数のスキャンラインそれ
ぞれの幅は、三角形40の第2の半分49について計算
された幅勾配により規定される。その結果、レジスタフ
ァイル250内のWIDTH OPPパラメータには何
の値も必要なくなるので、このレジスタは必要なくな
る。
【0066】当業者には理解できるであろうが、勾配値
は、典型的には、変化の方向を示す符号ビットを含んで
いる。幅勾配値については、小数値は、好ましくは、正
確を重視して計算する時だけ用いられ、描画される画素
の実際の数を求める時には、整数部分のみが用いられ
る。また、ソフトウェアドライバは、それぞれのスキャ
ンラインが描画される方向を規定するx方向ビットも求
める。三角形40の場合、スキャンラインは、右側の主
勾配45から対向勾配51および53に向かって、ポリ
ゴン40の負のx方向で描かれる。補間は、好ましく
は、上の頂点41から中点42へと進み、三角形40の
上側部分つまり上半分47を描画する。それが終了した
時点で、補間は、三角形40の下側部分49へと進む。
【0067】図5および図7を参照すると、ポリゴンエ
ンジン200は、好ましくは、Yカウンタ320と、X
アキュムレータ340と、幅アキュムレータ360と、
ポリゴンステートマシン350とを備えている。望みと
あれば、その他のパラメータについて同様のアキュムレ
ータをさらに設けてもよい。ポリゴンステートマシン3
50は、好ましくは、Yカウンタ320、Xアキュムレ
ータ340および幅アキュムレータ360に対して、イ
ンクリメント(INC)信号、ロード(LD)信号およ
び対向/主信号(OPP/M)信号を与える。インクリ
メント(INC)信号は、カウンタ320にカウントを
おこなわせ、アキュムレータ340および360に計算
をおこなわせる。具体的には、インクリメント(IN
C)信号は、連続する複数のスキャンラインのそれぞれ
について、アキュムレータ340および360に、開始
X値および開始幅値をそれぞれ発生させる。ロード(L
D)信号は、カウンタ320およびアキュムレータ34
0、360に、いくつかの初期パラメータをロードさせ
る。対向/主信号(OPP/M)信号は、ポリゴンの上
のセクション(主)がレンダリングされているのか、下
のセクション(対向)がレンダリングされているのかに
よって、ロードすべき入力パラメータを選択するように
機能する。
【0068】ポリゴンステートマシン350は、好まし
くは、Yカウンタ320からyカウントがゼロに等しく
なる時刻を示す(よって、ポリゴンの1セクションのレ
ンダリングが終了したことを示す)出力信号を受け取
る。Yカウンタ320は、関連づけられたマルチプレク
サ315を備えている。マルチプレクサ315は、カウ
ンタ320のカウント値としてCOUNT 0値および
COUNT 1値のいずれかを選択する。マルチプレク
サ315によるカウントの選択は、ポリゴンステートマ
シン350から出力されるOPP/Mのステータスによ
り決定される。もし対向のステータスが示されれば、C
OUNT 1値が初期値としてカウンタ320に与えら
れ、もし主のステータスが示されれば、COUNT 0
値がカウンタ320に与えられる。マルチプレクサ31
5により選択されたカウント値は、ステートマシン35
0によりLD信号がアサートされる時にカウンタ320
へとロードされる。第2のデータ入力として、Yカウン
タ320は、カウントすべき方向を示す(ポリゴンが上
から下に描画されるのか、あるいは下から上に描画され
るのかを決める)定数値入力を受け取る。負の値(−
1)は、カウンタがカウントダウンすることを示す。カ
ウント値がカウンタ320にロードされた後、INC信
号が、カウンタ320に、ゼロに向かって1個の整数値
をカウントさせる。カウンタ320内のカウントがゼロ
に等しくなると、出力信号がステートマシン350に与
えられる。
【0069】さらに図5および図7を参照すると、Xア
キュムレータ340は、初期x値(X)と主勾配値(Δ
MAIN)とを入力として受け取る。X1値および主勾
配(ΔMAIN)値は、ロード(LD)信号がステート
マシン350によりアサートされる時にロードされる。
Xアキュムレータ340は、インクリメント(INC)
信号を受け取り、これに応答して、次のスパンラインの
開始X座標を計算する。この計算は、Xアキュムレータ
340で、ΔMAIN値を累算された値に加算すること
によっておこなわれる。
【0070】さらに図5および図7を参照すると、幅ア
キュムレータ360は、アキュムレータ360への入力
として適切な幅勾配値ΔWIDTH MAIN(ΔWI
DTH 0)またはΔWIDTH OPP(ΔWIDT
H 1)を選択する、関連づけられたマルチプレクサ3
65を備えている。マルチプレクサ365は、ステート
マシン350がOPPOSITE/MAIN出力ライン
のMAINのステータスをイネーブルする時には、ΔW
IDTH MAIN(ΔWIDTH 0)を選択する。
逆に、OPPOSITEのステータスがOPPOSIT
E/MAINライン上でアサートされる時には、ΔWI
DTH OPP(ΔWIDTH 1)が選択される。
【0071】幅アキュムレータ360は、選択された幅
勾配をロードし、ある状況では、初期幅値(WIDTH
MAIN)もロードする。好ましい実施の形態では、
WIDTH MAINは、例えばゼロのような定数値で
あると仮定される。もしゼロ以外の値が与えられれば、
頂辺が平らな三角形であることになる。インクリメント
信号に応答して、幅アキュムレータ360は、選択され
た幅勾配値を累算された幅値に加算し、スキャンライン
の幅を示す出力信号を供給する。
【0072】図5および図6を参照して、ポリゴンステ
ートマシン350の動作を以下に説明する。ポリゴンス
テートマシン350は、LD信号およびMAIN信号
(OPP/M=0)をアサートすることによって、ポリ
ゴンレンダリング操作を開始する。これに応答して、初
期主値(カウント0およびΔWIDTH 0)がマルチ
プレクサ315および365により選択され、初期値
(X1およびΔMAIN)と共にカウンタ320および
アキュムレータ340、360へとロードされる。
【0073】次に、インクリメント信号がステートマシ
ン350により発生され、COUNT 0をゼロまでカ
ウントさせる。増分が与えられるたびに、X値および幅
値が、ポリゴンの上半分の各スキャンラインについてア
キュムレータ340、360により発生される。COU
NT 0がゼロに達すると、COUNT 1値が検査さ
れる。もしCOUNT 1がゼロであるのなら、頂辺の
平らなポリゴンであることになるので、それ以上の操作
はおこなわれず、終了する。
【0074】もしCOUNT 1がゼロではないのな
ら、OPPOSITEのステータスがアサートされ(O
PP/M=1)、対向の値(COUNT 1およびΔW
IDTH 1)が選択されて、カウンタ320およびア
キュムレータ360へとロードされる。しかし、アキュ
ムレータ360内の現在の幅値は保持され、ポリゴンの
下半分の初期幅値として用いられる。COUNT 1値
は、次にインクリメントされ、X値および幅値は、増分
が与えられるたびに各スキャンラインに与えられる。C
OUNT 1がゼロに達すると、操作は終了する。
【0075】いったん以上の開示を十分に理解すれば、
当業者には、その他数多くの変更・改変が自明になるで
あろう。添付の請求の範囲は、このような変更・改変の
すべてを包含すると解釈されるように意図されているも
のである。
【0076】
【発明の効果】本発明によれば、ロジックを簡単にし、
高速補間を実現するシステムを提供することができる。
【図面の簡単な説明】
【図1】本発明の原理に基づき、コンピュータシステム
のシステムバスに接続されたグラフィックスコントロー
ラの簡略ブロック図である。
【図2】図1のグラフィックスコントローラによりレン
ダリングされる三角形の一例を示す図である。
【図3】図1のグラフィックスコントローラのブロック
図である。
【図4】図3のグラフィックスエンジンのブロック図で
ある。
【図5】図4のポリゴンエンジンの一部を示す模式図で
ある。
【図6】図5のポリゴンステートマシンの動作を説明す
る図である。
【図7】図4のレジスタファイルの構成例を示す表であ
る。
【符号の説明】
10 ホストCPU 20 システムメモリ 25 システムバス 50 ディスプレイ 75 フレームバッファ 85 BIOS ROM 100 グラフィックスコントローラ 118 RBUS
フロントページの続き (71)出願人 595158337 3100 West Warren Aven ue,Fremont,Californ ia 94538,U.S.A. (72)発明者 ダニエル ピー. ワイルド アメリカ合衆国 テキサス 78613, セ ダー パーク, ハナ ケイ レーン 2814

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 ホストプロセッサからポリゴンを規定す
    るパラメータを受け取り、連続する複数の直交スキャン
    ラインによって該ポリゴンをレンダリングする、グラフ
    ィックスプロセッサであって、 該パラメータを格納する、レジスタファイルと、 該複数の直交スキャンラインのそれぞれについて開始X
    座標を求める第1のアキュムレータ、該それぞれのスキ
    ャンラインについて幅を求める第2のアキュムレータ、
    および該複数のスキャンラインの本数を規定するカウン
    タを有する、ポリゴンエンジンと、 該第1および第2のアキュムレータおよび該カウンタに
    ついて初期値をロード、選択し、該第1および第2のア
    キュムレータおよび該カウンタをインクリメントする、
    ポリゴンステートマシンと、を備えている、グラフィッ
    クスプロセッサ。
  2. 【請求項2】 第1のカウントまたは第2のカウントを
    選択するための、前記カウンタに関連づけられた第1の
    マルチプレクサをさらに備えている、請求項1に記載の
    グラフィックスプロセッサ。
  3. 【請求項3】 第1の幅勾配または第2の幅勾配を選択
    するための、前記第2のアキュムレータに関連づけられ
    た第2のマルチプレクサをさらに備えている、請求項2
    に記載のグラフィックスプロセッサ。
  4. 【請求項4】 前記ポリゴンステートマシンが、前記第
    1および第2のマルチプレクサに選択制御信号を供給す
    る、請求項3に記載のグラフィックスプロセッサ。
  5. 【請求項5】 前記第1のアキュムレータに、幅勾配値
    および初期x値がロードされる、請求項4に記載のグラ
    フィックスプロセッサ。
  6. 【請求項6】 前記第2のアキュムレータが、前記第1
    の幅勾配に対して第1の幅値を仮定する、請求項4に記
    載のグラフィックスプロセッサ。
  7. 【請求項7】 前記第2の幅勾配が前記第2のマルチプ
    レクサにより選択される時、前記第2のアキュムレータ
    が、現在の累算された値を該第2の幅勾配の初期幅とし
    て用いる、請求項6に記載のグラフィックスプロセッ
    サ。
  8. 【請求項8】 前記プロセッサが、 ホストインタフェースバスと、 該ホストインタフェースバスをシステムバスに結合す
    る、ホストインタフェースユニットと、 該ホストインタフェースバスに結合された、前記ポリゴ
    ンエンジンと、 該ポリゴンエンジンに結合された、RAMバスと、 該RAMバスに結合され、フレームバッファへのアクセ
    スを制御する、メモリコントローラと、を備えている、
    請求項7に記載のグラフィックスプロセッサ。
  9. 【請求項9】 前記ホストインタフェースユニットが、
    前記システムバスのマスタシップをアサート可能であ
    る、請求項8に記載のグラフィックスプロセッサ。
  10. 【請求項10】 画素グリッド内にポリゴンをレンダリ
    ングする方法であって、 該ポリゴンを複数のセクションに分割するステップと、 主勾配値、初期X値、該複数のポリゴンセクションのそ
    れぞれに対する垂直スキャンラインの本数、および該複
    数のポリゴンセクションのそれぞれに対する幅勾配値を
    含む、該ポリゴンの初期パラメータを規定するステップ
    と、 第1のカウンタ値を選択して、カウンタへとロードする
    ステップと、 第1の幅勾配値を選択して、幅アキュムレータへとロー
    ドするステップと、 該主勾配値および該初期X値をXアキュムレータへとロ
    ードするステップと、 該カウンタにインクリメント信号を供給することによっ
    て、該ポリゴンの第1のセクションにおける複数のスキ
    ャンラインの本数をカウントするステップと、 該Xアキュムレータをインクリメントすることによっ
    て、開始X座標を該複数のスキャンラインのそれぞれに
    与えるステップと、 該幅アキュムレータをインクリメントすることによっ
    て、幅値を該複数のスキャンラインのそれぞれに与える
    ステップと、 該第1のカウント値がゼロになる時刻を決定し、該時刻
    に応じて、第2のカウンタ値を選択して、該カウンタへ
    とロードし、第2の幅勾配値を選択して、該幅アキュム
    レータへとロードし、かつ、該幅アキュムレータにおけ
    る該幅値を保持するステップと、を含む方法。
  11. 【請求項11】 システムバスと、 該システムバスに結合された、中央処理ユニットと、 画素のグリッドを含む、ディスプレイユニットと、 該システムバスに直接、接続され、かつ該ディスプレイ
    ユニットにも結合されており、該画素グリッドにポリゴ
    ンをレンダリングする、グラフィックスコントローラ
    と、 該グラフィックスコントローラに結合された、フレーム
    バッファと、を備えているコンピュータシステムであっ
    て、 該グラフィックスコントローラが、 該画素グリッドに描画される該ポリゴンを規定するパラ
    メータを該中央処理ユニットから受け取る、レジスタフ
    ァイルと、 カウンタならびに第1および第2のアキュムレータを備
    えたポリゴンエンジンであって、該カウンタが該ポリゴ
    ンについて描画される複数のスキャンラインの本数を示
    し、該第1および第2のアキュムレータが該複数のスキ
    ャンラインそれぞれの開始点および幅を規定する、ポリ
    ゴンエンジンと、を備えている、コンピュータシステ
    ム。
  12. 【請求項12】 前記グラフィックスコントローラが、
    システムバスマスタ能力を有している、請求項11に記
    載のコンピュータシステム。
  13. 【請求項13】 前記システムバスに結合されたシステ
    ムメモリをさらに備えているコンピュータシステムであ
    って、前記グラフィックスコントローラが、前記ポリゴ
    ンパラメータを該システムメモリからリードし、前記レ
    ジスタファイルへと格納できる、請求項12に記載のシ
    ステム。
  14. 【請求項14】 前記グラフィックスコントローラが、
    ホストインタフェースユニットおよびRAMDACを備
    えた、集積化されたグラフィックスプロセッサを備えて
    いる、請求項11に記載のコンピュータシステム。
  15. 【請求項15】 前記集積化されたグラフィックスプロ
    セッサが、メモリコントローラを備えている、請求項1
    4に記載のコンピュータシステム。
  16. 【請求項16】 前記ポリゴンが、前記中央処理ユニッ
    トにより2つのセクションに分割され、前記カウンタ
    が、該ポリゴンセクションのそれぞれについてスキャン
    ラインの本数をカウントする、請求項11に記載のコン
    ピュータシステム。
  17. 【請求項17】 前記2つのカウント値のいずれか1つ
    が、前記ポリゴンの前記2つのセクションのどちらがレ
    ンダリングされているかによって、前記カウンタに初期
    値として選択的に供給される、請求項16に記載のコン
    ピュータシステム。
  18. 【請求項18】 前記ポリゴンエンジンが、前記カウン
    タに供給される前記カウント値を選択するための、該カ
    ウンタに関連づけられたマルチプレクサを備えている、
    請求項17に記載のコンピュータシステム。
  19. 【請求項19】 前記ポリゴンエンジンが、前記ポリゴ
    ンの前記2つのセクションのどちらがレンダリングされ
    ているかを示す出力信号を前記マルチプレクサに供給す
    るステートマシンを備えている、請求項18に記載のコ
    ンピュータシステム。
  20. 【請求項20】 主勾配値が前記レジスタファイルに格
    納される、請求項16に記載のコンピュータシステム。
  21. 【請求項21】 前記主勾配値が、初期X値と共に入力
    として前記第1のアキュムレータに供給され、該第1の
    アキュムレータが、前記連続する複数のスキャンライン
    のそれぞれについて開始X座標を決定する、請求項20
    に記載のコンピュータシステム。
  22. 【請求項22】 第1および第2の幅勾配が、入力とし
    て選択的に前記第2のアキュムレータに供給され、該第
    2のアキュムレータが、前記第1のポリゴンセクション
    に対して初期幅値を仮定することによって、前記複数の
    スキャンラインそれぞれの幅を決定する、請求項21に
    記載のコンピュータシステム。
  23. 【請求項23】 前記第2のアキュムレータが、前記第
    1のポリゴンセクションの最終幅値を、前記第2のポリ
    ゴンセクションの初期幅値として用いる、請求項22に
    記載のコンピュータシステム。
JP9172330A 1996-06-28 1997-06-27 グラフィックスプロセッサ、画素グリッド内にポリゴンをレンダリングする方法およびコンピュータシステム Withdrawn JPH1063866A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/671,977 US5936635A (en) 1996-06-28 1996-06-28 System and method of rendering polygons into a pixel grid
US08/671,977 1996-06-28

Publications (1)

Publication Number Publication Date
JPH1063866A true JPH1063866A (ja) 1998-03-06

Family

ID=24696652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9172330A Withdrawn JPH1063866A (ja) 1996-06-28 1997-06-27 グラフィックスプロセッサ、画素グリッド内にポリゴンをレンダリングする方法およびコンピュータシステム

Country Status (4)

Country Link
US (1) US5936635A (ja)
EP (1) EP0817131A3 (ja)
JP (1) JPH1063866A (ja)
TW (1) TW365669B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917887B1 (ko) * 2007-06-11 2009-09-16 삼성전자주식회사 라인 가속 기능을 지원하는 그래픽 처리 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6247088B1 (en) * 1998-05-08 2001-06-12 Lexmark International, Inc. Bridgeless embedded PCI computer system using syncronous dynamic ram architecture

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4181953A (en) * 1978-02-17 1980-01-01 The Singer Company Face vertex correction for real-time simulation of a polygon face object system
IL72685A (en) * 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
US4583185A (en) * 1983-10-28 1986-04-15 General Electric Company Incremental terrain image generation
US4586038A (en) * 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
US4715005A (en) * 1984-08-08 1987-12-22 General Electric Company Terrain/seascape image generator with math model data base
US4821212A (en) * 1984-08-08 1989-04-11 General Electric Company Three dimensional texture generator for computed terrain images
US4855937A (en) * 1984-08-08 1989-08-08 General Electric Company Data block processing for fast image generation
US4692880A (en) * 1985-11-15 1987-09-08 General Electric Company Memory efficient cell texturing for advanced video object generator
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
IL79822A (en) * 1985-12-19 1990-03-19 Gen Electric Method of comprehensive distortion correction for a computer image generation system
US4862388A (en) * 1986-12-15 1989-08-29 General Electric Company Dynamic comprehensive distortion correction in a real time imaging system
US4905164A (en) * 1986-12-19 1990-02-27 General Electric Company Method for modulating color for effecting color cell texture
JPS63163683A (ja) * 1986-12-26 1988-07-07 Toshiba Corp 三次元表示装置
US4868771A (en) * 1987-03-30 1989-09-19 General Electric Company Computer image generation with topographical response
US5191642A (en) * 1987-04-09 1993-03-02 General Electric Company Method for efficiently allocating computer resource for real time image generation
US4825391A (en) * 1987-07-20 1989-04-25 General Electric Company Depth buffer priority processing for real time computer image generating systems
US4951230A (en) * 1987-10-26 1990-08-21 Tektronix, Inc. Method and apparatus for tiling an image
US4958305A (en) * 1987-11-04 1990-09-18 General Electric Company Polygon edge clipping
US4965745A (en) * 1987-12-18 1990-10-23 General Electric Company YIQ based color cell texture
US4974176A (en) * 1987-12-18 1990-11-27 General Electric Company Microtexture for close-in detail
US5142617A (en) * 1988-10-27 1992-08-25 Tektronix, Inc. Method of shading a graphics image
US5036316A (en) * 1989-04-03 1991-07-30 Honeywell Inc. Method and apparatus for high speed linear shading in a raster graphics system
US5060172A (en) * 1989-07-06 1991-10-22 Digital Equipment Corporation Method and apparatus for displaying smooth-shaded objects
US5367615A (en) * 1989-07-10 1994-11-22 General Electric Company Spatial augmentation of vertices and continuous level of detail transition for smoothly varying terrain polygon density
US5214753A (en) * 1989-07-31 1993-05-25 Shographics, Inc. Video system with parallel attribute interpolations
US5126726A (en) * 1989-12-27 1992-06-30 General Electric Company Picture element encoding
US5268996A (en) * 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources
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
US5420970A (en) * 1991-03-13 1995-05-30 Martin Marietta Corporation Method for determining computer image generation display pixels occupied by a circular feature
US5293467A (en) * 1991-04-03 1994-03-08 Buchner Gregory C Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system
US5187754A (en) * 1991-04-30 1993-02-16 General Electric Company Forming, with the aid of an overview image, a composite image from a mosaic of images
TW225595B (ja) * 1991-09-03 1994-06-21 Gen Electric
US5625768A (en) * 1994-05-23 1997-04-29 Cirrus Logic, Inc. Method and apparatus for correcting errors in pixel characteristics when interpolating polygons into a pixel grid
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917887B1 (ko) * 2007-06-11 2009-09-16 삼성전자주식회사 라인 가속 기능을 지원하는 그래픽 처리 방법 및 장치

Also Published As

Publication number Publication date
US5936635A (en) 1999-08-10
EP0817131A2 (en) 1998-01-07
EP0817131A3 (en) 1999-08-18
TW365669B (en) 1999-08-01

Similar Documents

Publication Publication Date Title
US6054993A (en) Chroma-keyed specular texture mapping in a graphics processor
US6731292B2 (en) System and method for controlling a number of outstanding data transactions within an integrated circuit
US5493637A (en) Video buffer recycling method and apparatus
JPH1091142A (ja) サイズ変更ビットブロック転送処理の一部として透過イネーブルビットの埋込みを行うシステム、装置および方法
US6731300B2 (en) Efficient anti-aliased dot rasterization
US6975317B2 (en) Method for reduction of possible renderable graphics primitive shapes for rasterization
US5973701A (en) Dynamic switching of texture mip-maps based on pixel depth value
US7310103B2 (en) Pipelined 2D viewport clip circuit
US6348917B1 (en) Dynamic switching of texture mip-maps based on depth
EP0644509A2 (en) Method and apparatus for filling polygons
US6784894B2 (en) Mapping time-sorted to direction-sorted triangle vertices
US20030160789A1 (en) Multiple scan line sample filtering
US6867778B2 (en) End point value correction when traversing an edge using a quantized slope value
US6259455B1 (en) Method and apparatus for applying specular highlighting with specular components included with texture maps
US6943791B2 (en) Z-slope test to optimize sample throughput
US6963342B2 (en) Arbitration scheme for efficient parallel processing
JPH08305625A (ja) 演算処理機能付き半導体メモリ及びそれを用いた処理装置
US7145570B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US6885375B2 (en) Stalling pipelines in large designs
JPH1063866A (ja) グラフィックスプロセッサ、画素グリッド内にポリゴンをレンダリングする方法およびコンピュータシステム
US6900803B2 (en) Method for rasterizing graphics for optimal tiling performance
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US20030164826A1 (en) Reading or writing a non-super sampled image into a super sampled buffer
US6895458B2 (en) Opcode to turn around a bi-directional bus
US6847372B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040604

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040907