JPH04220781A - 画像を表す複数の多角形を処理する装置及び方法 - Google Patents

画像を表す複数の多角形を処理する装置及び方法

Info

Publication number
JPH04220781A
JPH04220781A JP3046638A JP4663891A JPH04220781A JP H04220781 A JPH04220781 A JP H04220781A JP 3046638 A JP3046638 A JP 3046638A JP 4663891 A JP4663891 A JP 4663891A JP H04220781 A JPH04220781 A JP H04220781A
Authority
JP
Japan
Prior art keywords
polygon
edge
vertex
input
value
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.)
Granted
Application number
JP3046638A
Other languages
English (en)
Other versions
JP3029878B2 (ja
Inventor
Bradley W Cain
ブラッドリー・ダブリュ・カイン
Randall D Briggs
ランドル・ディ・ブリッグス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH04220781A publication Critical patent/JPH04220781A/ja
Application granted granted Critical
Publication of JP3029878B2 publication Critical patent/JP3029878B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【発明の分野】本発明は、図形変形エンジンに関するも
のであり、更に詳細には、画像を表わす入力多角形を台
形に分解するプロセスおよび装置であって、ラスタ走査
変換システムにより一層効率良く行うことができるもの
に関する。
【0002】
【従来技術の説明】従来技術のラスタ図形システムは一
般に明確な二つの部分を備えている。光景の幾何学的説
明をユーザの観点に従って変形し、明らかにする図形変
形エンジン、および変形した光景を表示画面に画く描写
器、である。周知のように、光景の幾何学的説明は任意
の数の辺を有する複数の多角形の組合せから成ることが
ある。換言すれば、表示すべき三次元画像が明暗の異な
る多角形から成る表面として記述されている。ここに使
用するように「多角形」とは頂点V〔1〕・・・・V〔
N〕の順序良く整列した集合体を言う。ただしNは多角
形の頂点の数である。これら頂点は、多角形のN個の辺
を規定するが、これらの辺は端点がそれぞれの頂点V〔
1〕・・・・V〔N〕で作られる線分E〔1〕・・・・
E〔N〕である。たとえば、線分E〔1〕は端点V〔1
〕およびV〔2〕を所持することができるが、線分E〔
2〕は端点V〔2〕及びV〔3〕を所持することができ
る。このような多角形は図形変形エンジンにより、各多
角形の頂点の座標(X、Y、Z)のような情報の他に各
頂点に対する明暗情報および画素レベルの描写計算すべ
てについて図形変形エンジンで処理される指令を含む一
連の図形プリミティブとして識別される。
【0003】光景をこのように幾何学的に表現すること
により、画素画像データを表示画面にするのに必要な図
形変形エンジンによる処理が大幅に容易になる。図形変
形エンジンは一般に、図形文脈の管理、マトリックス変
形の計算、スプライン市松模様照明モデル(splin
e tessellation andlightin
g model)の計算を含むこのようなデータに関す
る多数の任務を実行する。変形エンジンはベクトルおよ
び多角形描写ハードウェアを制御することもできる。し
かし、このような計算は一般に極めて複雑且つ時間のか
かるものであり、非常に多くの処理能力を必要とし、そ
の結果処理の困難さが従来のラスタ図形システムにより
画像を描写できる速さの主な制約になることが屡々であ
った。
【0004】
【発明が解決しようとする課題】上述の問題点を解決す
る最も普通の提案は図形変形エンジンの処理能力を増す
ことであった。たとえば、複数の変形エンジンを並列に
設けてそれぞれの各多角形の処理を並列に行うことがで
きるようにする。しかし、このようなシステムは極めて
複雑で且つ経費がかかり、やはり多角形を効率良く処理
しない。その結果、図形原線情報はこれまで甚だ制限さ
れてきた。したがって、図形変形エンジンの処理効率を
向上させて多数の簡単な多角形から成る複雑な三次元画
像をも対話式の速さで描写することができるようにする
手段を設けることが望ましい。
【0005】したがって、当業界では、伝統的な図形変
形エンジンの性能を、入力多角形を真に対話式の速さで
処理することができるように高めるプロセスおよび装置
の必要性が長い間感じられている。当業界ではまた三角
形および四辺形のような簡単な多角形の描写を加速して
図形パイプラインについて一層高速且つ容易な走査変換
を達成するようにすることができるシステムの必要性が
長い間感じられている。本発明はこれら必要性を満たす
ように計画されたものである。
【0006】
【課題を解決するための手段】当業界での上述の長い間
感じられていた必要性は、図形変形エンジンの多角形処
理作業の多くを処理効率を向上するように処理する手段
を設けることによる本発明により満たされる。特に、三
角形および四辺形のような簡単な入力多角形を走査変換
システムで高速で容易に描写することができる台形に分
解するプロセスおよび装置が提供されている。ほとんど
の多角形データベースは三角形および四辺形を主として
含んでいるので、本発明の台形化回路は通常、大部分の
多角形を図形システムで分解し、これにより全体の処理
性能を50%も増すことができる。
【0007】本発明によれば、表示装置に表示すべき画
像を表わす、各々が画像の再生中表示装置により描写さ
れる所定数以下の辺を有する複数の多角形、を処理する
装置が提供される。本発明によるこのような装置は好適
には、表示すべき画像の各入力多角形について辺データ
を提供する手段、および所定数以下の辺を有する各入力
多角形を、各々がその中の正確に二つの辺が表示装置の
一つの座標方向に平行でない3辺または4辺を有する閉
じた四辺形である少なくとも一つの台形に分解する台形
化手段から構成されている。各入力多角形の各台形に対
する辺データは表示装置に出力されて描写を容易にする
。好適には、辺データ提供手段は所定数を超える辺を有
するそれら入力多角形を処理してすべての入力多角形を
処理することができるようにする手段を備えている。
【0008】本発明の好適実施例では、台形化手段は、
各入力多角形についての辺データを格納するRAM、各
入力多角形の各辺の端点を決定する手段、および端点を
各端点の座標値に従って座標方向に垂直な方向に順序良
く整列させる手段、から構成されている。このような実
施例の台形化手段は、各入力多角形の辺の順序良く整列
された端点を格納し、各端点が座標方向に垂直な方向の
どの端点を表わしているかを示すフラグを格納するスタ
ックレジスタをも備えることができる。
【0009】本発の他の好適実施例では、処理手段は各
入力多角形のそれぞれの各辺の各端点の座標方向に垂直
な方向の座標値を決定し、各辺についてのこれらの値を
スタックレジスタに格納することができる。
【0010】本発明の装置はこのようにして入力多角形
の各台形を形成する。その台形は、入力多角形の辺の開
始端点から座標方向に垂直な方向に、座標方向に垂直な
方向で入力多角形の辺の最初に出会う端点にまで展開し
ている。その場合に、開始端点のフラグは、開始端点が
辺の座標方向に垂直な方向に対して最少座標値を備えて
いることを示しており、さらに、また、最初に出会う端
点のフラグは、最初に出会う端点が座標方向に垂直な方
向で入力多角形の辺の最大座標値を備えていることを示
している。したがって出力台形の辺は座標方向に平行な
方向に、入力多角形の第1の辺から第2の辺まで延びて
おり、座標方向に平行な辺は開始端点および最初に出会
う端点を通過する。好適には、開始端点および最初に出
会う端点は順序良く整列されたスタックレジスタから座
標方向に垂直な方向に異なる座標値を有するそれぞれの
エントリとして取出される。
【0011】本発明は、表示装置に表示すべき画像を表
わす、各々が所定数以下の辺を有する複数の多角形を関
連辺データと共に処理する方法をも備えている。本発明
によるこのような方法は好適には下記諸段階から構成さ
れている。
【0012】表示すべき画像の各入力多角形に対する辺
データを提供する段階、所定数以下の辺を有する各入力
多角形を少なくとも一つの台形であって、その内の2つ
以下の辺が表示装置の座標方向に平行でない、3辺また
は4辺を備えた閉じた四辺形である台形に分解する段階
、各入力多角形の各台形に対する辺データを表示装置に
出力する段階。
【0013】好適実施例によれば、多角形分解段階は、
各入力多角形に対する辺データを格納する段階、各入力
多角形の各辺の端点を決定する段階、および端点を各端
点の座標値に従って座標方向に垂直な方向に順序良く整
列させる段階、から構成される。多角形分解段階は、各
入力多角形の辺の順序良く整列された端点を格納する段
階、および各端点が座標方向に垂直な方向にどの端点を
表わしているかを示すフラグを格納する段階を備えるこ
ともできる。他に、多角形分解段階は、各入力多角形の
それぞれの各辺の各端点の座標方向に垂直な方向の座標
値を決定する段階、および各辺に対するこれらの値を格
納する段階を備えることもできる。
【0014】本発明の好適な方法はまた、描写した多角
形が座標方向に垂直な方向に、開始端点のフラグが開始
端点が辺に対する座標方向に垂直な方向に最小座標値を
有していることを示している、入力多角形の辺の開始端
点から、最初に出会う端点のフラグが最初に出会う端点
が座標方向に垂直な方向に入力多角形の辺に対する最大
座標値を有していることを示している、座標方向に垂直
な方向に入力多角形の辺の端点が最初に出会う端点まで
拡がっており、座標方向に平行な方向に、入力多角形の
第1の辺から第2の辺まで拡がっており、座標方向に平
行なこれらの辺は開始端点および第1に出会端点を通過
する。このうよな描写は、開始端点、座標方向に垂直な
方向の、開始端点を最初に出会う端点との間の座標値の
差を指定するデータ、および入力多角形の第1および第
2の辺を指定する辺データと共に台形描画指令を使用し
て行うことができる。
【0015】本発明の他の好適実施例によれば、表示装
置に表示すべき画像を表わす、各々が所定数以下の辺を
有する複数の多角形を関連辺データを用いて処理する方
法であって、所定数以下の辺を有する各入力多角形のそ
れぞれの頂点を読込む段階、各入力多角形の各辺の走査
方向に垂直な座標方向の最大および最小の座標値を決定
する段階、各入力多角形を、各々がその中で表示装置の
座標方向に平行でない辺が二つより多くない3辺または
四辺を有する閉じた四辺形である、少なくとも一つの台
形に分解する段階、および各入力多角形の各台形の辺デ
ータを表示装置に出力する段階、から成る方法が提供さ
れる。
【0016】好適には、このような方法の多角形分解段
階は、頂点を区分して頂点の座標値を座標方向に整列さ
せる段階、区分した各頂点について、入力多角形のその
関連する辺に対する走査方向に垂直な座標方向にその頂
点が最大座標値を有しているか最小座標値を有している
かを決定する段階、最大座標値を有する頂点に出会うま
で入力多角形の区分した頂点のそれぞれの辺に対する辺
データを読み込む段階、入力辺に対する最小座標値を有
する頂点からその関連する辺の方向に対して最大座標値
を有する頂点まで走査方向に垂直な方向に拡がっている
台形を作る段階、および入力多角形の新しい辺を読込ん
で辺を最大座標値を有する頂点を置き換える段階、とを
含んでいる。
【0017】入力多角形の新しい辺は好適には入力多角
形のすべての点が読込まれて対応する台形が作られるま
で読み込む。
【0018】したがって本発明によるプロセスおよび装
置は、走査変換システムに与えられる台形が従来技術の
図形表示装置の走査変換システムにより屡々受取られる
典型的な多辺多角形よりはるかに容易に描写することが
できるのでかなり処理を高めることができる。本発明の
下記詳細説明から更に他の利益が明らかになろう。
【0019】
【実施例】ここに開示され、特許請求している主題事項
の発明者は当業間の長い間感ぜられていた上述の必要性
を、小さな入力多角形を走査変換装置により容易に描写
することができる台形に分解する台形化回路を開発する
ことにより満たした。次の説明から明らかであるように
、本発明の台形化回路(今後「トラッパ」と呼ぶ)は、
システム全体の性能を上げるために入力多角形を処理す
る図形変形エンジンのサブシステムとして動作する。特
に、小さな入力多角形を台形に分解することにより、こ
のサブシステム(今後「多角形プロセッサ」と呼ぶ)は
図形変形エンジンを簡単な多角形を分解しなければなら
ないことから解放する。その上、多角形データベースの
ほとんどは、三角形および四辺形のような主として簡単
な多角形を備えてるので、トラッパは一般に図形変形エ
ンジンで処理されたほとんどの多角形を分解し、これに
よりかなりな性能の向上が少い費用で行われる。
【0020】本発明の現在のところ好適な模範的実施例
によるこれらおよび他の有利な特徴を有するプロセスお
よび装置について今度は図1〜図6を参照して説明する
ことにする。当業者にはここに示す説明が例示目的だけ
のためのもので、どのようにしても本発明の範囲を限定
しようとするものではないことを認めるであろう。本発
明の範囲に関するあらゆる疑問は付記した特許請求の範
囲を参照することにより氷解することができる。
【0021】図1はホストインタフェース104を経由
して図形サブシステムと接続されているホスト処理シス
テム102を示す。図示のように、図形サブシステムは
一般にその出力が図形描写回路108に供給される図形
変形エンジン106を備えている。図形描写回路108
の出力はフレームバッファ110に加えられ、その出力
はラスタ表示装置112により受取られ、たとえばCR
T画面に出力される。以下に詳細に説明するように、本
発明は特に、変形エンジン106および入力画像を表わ
す一定の多角形の台形に細分して一層効率良く画像描写
を行うことができる手法を目指している。
【0022】本発明による変形エンジン106を図2に
更に詳細に示す。図示のように、変形エンジンは典型的
には描写すべき画像を表わす入力多角形を入力先入れ先
出しバッファ(入力FIFO)202を経由して受取る
。受取られた多角形は次に、変形プロセッサとして使用
されるようプログラムされる汎用プロセッサとすること
ができる変性プロセッサ204により入力FIFO20
2から順次読取られる。変形プロセッサ204の出力は
次に多角形プロセッサ208に入力される前に他のFI
FOに入力されるが、この多角形プロセッサ208も当
業者には明らかなように特別にプログラムされる汎用プ
ロセッサでもよい。多角形プロセッサ208は典型的に
は辺斜面計算およびサブ画素調節におよび指令を下流ハ
ードウェアに供給することに責任がある。しかし、本発
明によれば、多角形プロセッサ208により行われる処
理は、所定数以下の辺を有する簡単な入力多角形を表示
画面の座標方向に平行な一つまたは二つの辺を有する台
形に分解する台形化回路(トラッパ)210を追加する
ことによりかなり簡単になる。以下に更に詳細に説明す
るように、トラッパ210は四つ以下の辺を有する簡単
な多角形を台形に細分するが、当業者は本発明の手法を
処理の簡易性および速度をそれ以上失うことなく更に複
雑な多角形に使用することができることを認めるであろ
う。所定数より多い辺を有する多角形は変形プロセッサ
204および/または多角形プロセッサ208でやはり
処理される。得られる台形を次に描写のために出力FI
FO212を経由して下流ハードウェアに送る。
【0023】トラッパ210は、多角形プロセッサ20
8のハードウェアの費用を減らすように且つトラッパ2
10と多角形プロセッサ208とを結合するのに余分な
ハードウェアを必要としないように多角形プロセッサ2
08のハードウェアの一部であるCMOSゲートアレイ
として設計することができる。トラッパ210はここで
「台形化」と言うプロセスを通して受取る辺データから
台形を作る。ここで使用するように、「台形化」とは入
力多角形を表示装置の座標軸に平行な1辺または2辺を
有する一つ以上の台形領域に細分するプロセスを意味す
る(台形の上辺または下辺のいずれかが退化していると
き、すなわち、三角形の場合のように、一点であるとき
、1辺だけが座標軸に平行である)。その他に、ここで
記す実施例の場合、トラッパ210は二つ、三つ、また
は四つの頂点を有する入力多角形およびYで凸になって
いる入力多角形についてのみ台形化を行う。Yの凸性は
多角形の性質であり、これにより多角形はどんな走査線
においても2を超える辺数を有することは決してなく、
互いに交差する非水平辺を有する台形の処理を必ずしも
妨げない。これら要求事項を満たしていないどんな入力
多角形もトラッパ210によって処理されることはなく
、代りに多角形プロセッサ208および/または変性プ
ロセッサ204により完全に処理され、結果はトラッパ
220を通して真直ぐ出力に簡単に伝えられる。これら
要求事項の重要性はトラッパ210の以下の詳細な説明
から一層明らかになるであろう。
【0024】図3はトラッパ210の現在のところ好適
な実施例のブロック図を概略的に示している。図3に示
すように、多角形プロセッサ208の出力は、台形を作
っている最中でも、またはその出力ポートが丁度押さえ
られているときでも辺データをトラッパに書き込むこと
ができるようにするFIFO302に入力される。この
目的でFIFO302を非常に深くする必要はなく、典
型的には32語の深さであり、これは四辺形の極端な場
合をあふれ無しに取扱うのに丁度充分である。FIFO
302から書込まれた辺データは次に辺RAM304に
格納される。ただし、多角形が二つ、三つ、または四つ
の頂点を有しないかまたはY凸でない上述の場合には、
FIFO302からの辺データを直接トラッパ210を
通して出力に伝えることができる。
【0025】図5および図6を参照して以下に詳細に説
明するアルゴリズムによれば、トラッパ210は多角形
プロセッサ208および制御器306により制御されて
、入力多角形の辺の斜面の他にそれぞれの辺の端点をも
決定することにより、辺RAM304に格納されている
入力多角形の辺を処理する。やはり以下に説明するよう
に、辺の端点のY座標値(走査線に垂直な方向の)はY
区分器308により区分けされるが、この区分器の実施
例は、本出願と同じ譲受入れに譲渡され、ここに引用に
より組入れてある、1990年2月9日出願の米国特許
出願第478126号に見ることができる。得られる台
形の区分されたYデータは更に処理するためYスタック
310に格納される。たとえば、出力台形の特定の辺を
画くYの開始値はYスタック310に格納され、これに
よりYの開始値およびYの終点値の台形の走査線の数を
決定するのに使用することができる。トラッパ210に
より出力されたどの語が下流ハードウェアにより指令と
して解釈されるかを決定する指令タグビット、および下
流ハードウェアにタグ付き語が目的を実行するための論
理ブロックの一部として考えるべき最後のものであるこ
とを示す終了タグビットを発生する指令語レジスタ31
2を設けることもできる。したがって、トラッパが台形
に画くよう指令されると、指令タグビットが設定され、
一方終了タグビットはクリアされる。指令に続く他のす
べてのデータは両ビットをクリアさせる。タグビットの
他に辺RAM304からの辺データおよびYスタック3
10からのY開始値および走査線値は組合せてマルチプ
レクサ314により指令/データパケットとして下流ハ
ードウェアに出力することができる。
【0026】トラッパ210は多角形に関する必要なす
べてのデータを多角形を台形に分解する前に受取らなけ
ればならない。このデータにはY区分器308に格納さ
れている各辺についての最小および最大のY値の他に辺
RAM304に格納されている各辺に関する属性がある
。このデータを受取ると、台形発生指令が多角形プロセ
ッサ208によりトラッパ210に書込まれ、すべての
データが存在することおよび台形の作成を進めることが
できることをトラッパに知らせる。以下に説明するよう
に、トラッパ210は入力多角形の各辺に対する最小の
Y値および最大のY値を区分し、これらを順次比較して
台形の終りが何時見つかったかを判定する。トラッパ2
10はこのように動作し、台形データを出力し、トラッ
パ210が台形を作るのに忙しい間はその入力FIFO
302に前に説明したように次の多角形に対するデータ
と共に書込むことができる。トラッパが作業するのに適
していない多角形は多角形プロセッサ208および/ま
たは変形プロセッサ204により分解され、得られるデ
ータは単にトラッパ210を通してマルチプレクサ31
4により指令/データ出力パケットに組合わされるため
に伝えられるだけである。
【0027】多角形プロセッサ208により実施されて
必要な入力データを供給すると共にトラッパ210によ
り実施されて台形を作るアルゴリズムの詳細を今度は図
4〜図6を参照して説明することにする。
【0028】図4は頂点A(Xa、Ya、Za)、B(
Xb、Yb、Zb)、C(Xc、Yc、Zc)、および
D(Xd、Yd、Zd)により規定される試料入力多角
形の実施を示す。図4に示すように、トラッパ210は
頂点A、B、CおよびDにより規定される多角形を頂点
A、B、およびEを有する三角形、頂点B、E、C、お
よびFを有する台形、および頂点C、D、およびFを有
する他の三角形にそれぞれ細分する。トラッパ210が
図4のこの台形化を行う手法について今度は図5および
図6の流れ図を参照して説明することにする。
【0029】上に注記したように、特定の入力多角形を
記述する辺データは多角形プロセッサ208からFIF
O302に出力され、そのデータは辺RAM304に格
納される。図5および図6に使用するように、多角形プ
ロセッサ208により受取られる頂点データは変数「頂
点カウント」により規定されるそれぞれの頂点(数にし
て三つか四つ)のアレイから構成されていると仮定する
。頂点のアレイを図5および図6では頂点〔I〕と称し
ている。 ただしIはアレイのN番目の要素へのアクセスを頂点〔
N〕と示すようにアレイを指す指標であり、アレイの最
初の要素は指標I=1を備えているがこれは頂点アレイ
から頂点を読出すごとに増加する。その他に、頂点アレ
イ内の各頂点はそのX、Y、およびZ座標により識別さ
れ、頂点アレイ内の第2の頂点のX座標フィールドへの
アクセスは頂点〔2〕.Xのような例により示される。 また、図5のアルゴリズムでは、一対の変数が頂点1お
よび頂点2として規定される。これら各頂点変数は頂点
アレイ内の頂点セルの値を取ることができ、頂点1.X
または頂点1.Yのように頂点フィールドにアクセスす
るのに使用することができる。
【0030】入力多角形の辺の端点を多角形プロセッサ
208により決定する動作を今度は図5について説明す
ることにする。説明は図4に示す多角形の台形化の場合
に向けることにするが、当業者はこのプロセスを上に示
した判定基準を満たす他のどんな入力多角形にも容易に
適用することができることを認めるであろう。
【0031】最初に、入力多角形の頂点のアレイをFI
FO206から多角形プロセッサ208に読込む。たと
えば、図4に示す多角形の場合については、頂点をシー
ケンスA、B、D、およびCに読込むことができ、これ
により隣接頂点が多角形の同じ辺の端点を規定する。多
角形プロセッサ208は次に段階500で始動し、段階
502で頂点アレイ指標Iを1に等しく設定して頂点ア
レイの第1のエントリ(頂点A)にアクセスする。次に
Iが段階504で頂点カウント(4)と比較される。I
が頂点カウントより大きければ、すべての頂点が読込ま
れ、多角形が段階506で以下に図6で記したように台
形に細分される。こうして処理は段階508で終る。し
かし、Iが頂点カウントにより大きくなければ、変数頂
点1は段階510で頂点アレイの最初の要素の値に設定
されるが、これは示した例では頂点Aである。段階51
2で指標は頂点カウントと等しくないから、変数頂点2
は段階514で頂点アレイの第2の要素、すなわち、頂
点B、の値に割当てられる。他方、Iが段階512で頂
点カウントに等しければ、頂点アレイの第1の頂点(頂
点A)が段階516で頂点2に割当てられる。多角形プ
ロセッサ208は次に段階518で変数頂点1(頂点A
)に割当てられた頂点のY値が変数頂点2(頂点B)に
割当てられた頂点のY値より大きいかチェックされる。 頂点AのY値が頂点BのY値より大きければ、変数頂点
1および頂点2の値が段階520で交換される。しかし
、図4の多角形に対しては頂点BのY値が頂点AのY値
より大きいから、処理は直接、変数ytopおよびyb
otを計算する段階522に進む。
【0032】ytopは入力多角形の辺について画くべ
き最初の画素の整数Y値であるが、ybotは辺につい
て画くべき最後の画素の整数Y値より1大きい整数Y値
に対応するもので、これにより辺を画くとき「off 
by one」誤差が除去される。図4の例の場合には
、頂点1は頂点Aを表わし、頂点2は頂点Bを表わして
いるから、ytopは実質上Yaに対応し、ybotは
実質上Ybに対応する。 図4に示すように、これらは辺ABの端点である。同様
に、変数xtopは辺について画くべき最初の画素のX
値に対応し、一方変数ztopは辺について画くべき最
初の画素のZ値に対応する。したがって、画くべき最初
の画素は座標(xtop、ytop、ztop)を有し
ており、ここでytopは整数であり、他の値は必らず
しも整数ではない。
【0033】段階522でybotおよびytopを求
めてから、多角形プロセッサ208は段階524でyb
otがytop以下であるかチェックし、もしそうであ
れば、処理は段階526に進み、Iを増してループを繰
返す。しかし、ybotのY値がytopのY値より大
きければ、多角形プロセッサ208は段階528に進み
、xtopおよびxslopeの値を辺RAM304に
格納されているデータを使用して次のように計算する。
【0034】
【数1】
【0035】同様に、段階530でztopおよびzs
lopeを辺RAM304にあるデータを使用して次の
ように計算する。
【0036】
【数2】
【0037】次に、段階532でこれら変数の値を辺R
AM304に書込む。段階534でytopの値をYス
タック310に書込み、MINフラグを設定してこの値
がytopであることを示し、同様に、段階536でy
botの値をYスタック310に書込み、MAXフラグ
を設定してこの値がybotであることを示す。換言す
れば、ytopの値は辺ABの上端として識別されるが
、ybotの値は辺ABの下端として識別される。処理
は次に段階526に進み、I値を増してループを繰返す
【0038】処理はこの仕方ですべての頂点が頂点アレ
イから読込まれてしまうまで進行する。処理は次に段階
504ですべての頂点が読込まれてしまったことを判断
し、多角形プロセッサ208が図6に関して後に説明す
るように入力多角形を台形に分解するよう指令する。こ
のようにして、それぞれA、B、D、およびCの入力頂
点アレイを有する図4の多角形の場合、Yスタック31
0には処理が段階506に進んだとき下記のものが入っ
ていることになる。
【0039】Y値    フラグ    辺Ya   
 MIN    AB Yb    MAX    AB Yb    MIN    BD Yd    MAX    BD Yc    MIN    CD Yd    MAX    CD Ya    MIN    AC Yc    MAX    AC Yスタック310が今述べた図5のアルゴリズムに従っ
て作られてしまうと、入力多角形は、今度説明するよう
に、図6に示すアルゴリズムに従って台形に細分される
【0040】上に注記したとおり、Yスタック310に
は入力多角形の各辺に対する最大および最小のY値につ
いての情報を持つ語のアレイが入っている。この目的で
、Yスタック310の各語は好適に、整数Y値を識別す
るフィールド、格納されている値が辺に対するMIN 
 Y値であるかMAX  Y値であるかを指定するMI
NまたはMAXフラグ、およびYスタック310のその
エントタリに関連する辺を表わす辺フィールド、を備え
ている。この仕方で、各値がその対応する辺と共に識別
される。Yスタック310の中にある各語にはここでは
ystackポインタを介してアクセスすることができ
る。ystackポインタは、Y整数値、MINまたは
MAXフラグ、または辺フィールドを表わすYスタック
310の各語のフィールドを指す。
【0041】図6に示すように、トラッパ210は段階
600で上述のYスタック値を用いて始動し、辺ポイン
タレジスタ辺Aおよび辺Bを段階602で「空」に設定
し、辺ポインタがどの辺をも指していないこと示す。当
業者には明らかであるように、これら辺ポインタは代り
にそれを格納されている、レジスタがポインタを備えて
いないことを示す値を所持することができる。辺ポイン
タは、現在の台形を規定する辺の辺RAM304の中の
トラックを保持するのに使用され、以下に説明するよう
に、Yスタック310を横断するにつれて入力多角形の
辺の一つを表わす値がロードされ、アンロードされる。 また、新辺Aおよび新辺Bと呼ばれる二つの「新しい辺
」フラグを使用して真および偽の値を取り、辺ポインタ
レジスタに入っている辺が新しい辺であるが現存する辺
であるかを示すことができる。これらフラグは、幾つか
の辺は共有され、したがって、台形を出力するとき二度
読取る必要がないという事実を活用するのに使用される
。このことは以下の説明から明らかになろう。
【0042】辺Aおよび辺Bの値が段階602で空に設
定されてから、図5に関して説明した処理の期間中Yス
タック310に格納されている値は段階604で区分さ
れる。上に述べたように、このプロセスは、Y区分器3
08により行われるが、この区分器は前記関連出願に記
述されている形式の高速区分装置を備えることができる
。特に、Yスタック310はYの最小値からYの最大値
までスタック310にある語の数値フィールドの上昇順
に区分される。二つ以上のエントリが同じ数値フィール
ドを備えていれば、MAXに等しいフラグを有するエン
トリがMINに設定されたフラグを有するエントリの前
に到来する。それはデータは次の辺の始めの前に一つの
辺の終りを示すことが必要だからである。
【0043】たとえば、図4に示す多角形の隣接する二
つの辺ABおよびBDについて、Yd>Yb>Yaであ
る。各辺はYスタック内で二つのエントリを所持してお
り、一つはMINフラグを一つはMAXフラグを有して
いる。その他、辺ABの  MAXエントリは辺BDに
対するMINエントリの数値フィールドに等しい数値フ
ィールドを備えていなければならない。その上、MIN
エントリがその数値フィールドにMAXエントリに対す
る数値フィールド内の値以上の値を備えているように一
つの辺に対して1対のエントリが決して存在してはなら
ない。したがって、図4に示す入力多角形のYスタック
310が段階604でY区分器308により区分される
と、Yスタック310は下記のものをこの順序に備えて
いる。
【0044】Y値    フラグ    辺Ya   
 MIN    AB Ya    MIN    AC Yb    MAX    AB Yb    MIN    BD Yc    MAX    AC Yc    MIN    CD Yd    MAX    BD Yd    MAX    CD Yスタック310が段階604で区分されると、Yスタ
ックポインタが段階606で最初のYスタックエントリ
に割当てられ、Yスタックポインタの数値フィールド内
のエントリが段階608で最初の出力台形に対するY開
始値として割当てられる。トラッパ210は次に段階6
10でMINフラグがYスタックポインタにより指され
ている語に対して設定されているかチェックし、これが
上に示した区分されたYスタック310の最初のエント
リに対する場合であるから、処理は段階612に進み、
辺レジスタ辺Aが空であるか否か判定する。これは図6
の流れ図を通過する最初の場合であるから、段階618
でYスタックの最初のエントリの辺フィールドにある辺
ABが辺レジスタ辺Aに読込まれ、新辺Aが真に設定さ
れ、処理が段階632に進む、しかし、辺レジスタ辺A
が、ループの次の繰返しの期間中のように、区分された
辺数値を既に所持していれば、処理は段階612から段
階614に進み、辺レジスタ辺Bが空であるか否か判定
される。どの辺レジスタも空でなければ、段階616で
エラー信号が発生する。辺レジスタ辺Bが空であれば、
段階620で入力辺の値が辺レジスタ辺Bで区分され、
新辺Bが真に設定され、処理が段階632に進む。
【0045】トラッパは段階632でYスタックポイン
タがスタック310の最後のエントリにあるかチェック
し、もしそうであれば、処理は段階634で終了する。 そうでない場合には、Yスタックポインタが段階636
で次のYスタックエントリまで進む。トラッパは次の段
階638で、段階608で設定されたY開始の値が進ん
だYスタックポインタ値により指されている数値フィー
ルド内の値に等しいかチェックする。与えられた試料に
対して二つ共Yaに等しいから、処理は段階608に逆
に進み、辺ACを段階620で辺レジスタ辺Bに読込む
【0046】しかし、段階638で、Y開始値が現在進
んだYスタックポインタ値に対応しないと判定されれば
、トラッパ210は他の辺を読込む必要はなく、処理は
段階640に進み、ここでトラッパ210は辺レジスタ
辺Aかまたは辺レジスタ辺Bかが空であるかチェックす
る。辺レジスタの一方または両方が空であれば、段階6
42でエラー信号が指示される。二つの辺がそれぞれの
辺レジスタに存在すると、段階644で図4に示す領域
ABEに対してY開始値Yaを使用して台形描画指令が
発生する。新辺A及び新辺Bのフラグが段階646で偽
に設定されてから処理は段階608に戻って次の台形に
台する次のY開始値を読込む。
【0047】ループの次の繰返しの期間中、最後のys
tackポインタフラグがMAXフラグであったから、
段階610で処理は段階622に進み、Yスタックポイ
ンタの辺フィルードに辺レジスタ辺Aに格納されている
ものと同じ辺が入っているか判定する。辺レジスタ辺A
及びYスタック310の第3のエントリには共に辺AB
が入っているから、辺レジスタ辺Aは段階628で空に
設定される。換言すれば、図4の多角形に対して頂点B
には頂点Cより先に到達しているから、辺レジスタ辺A
は空に設定され、次の辺を辺レジスタ辺Aに読込むこと
ができるようになる。同様に、段階624で次の辺が辺
レジスタ辺Bの中にあるものと同じであると判定されれ
ば、辺レジスタ辺B段階630で空に設定される。しか
し、次の辺がいずれの辺レジスタに入っているものとも
対応しなけば、段階626でエラー信号が発生する。
【0048】読込むべき次の辺は辺BDであり、辺BD
はYbに最小Y値が、Ydに最大Y値がある。辺BDは
空の辺レジスタ(辺A)に格納されている。処理はこの
仕方でトラッパ210が段階632でYスタック310
のすべてのエントリが処理されてしまい、処理を段階6
34で終了することができると判定するまで進行する。
【0049】上に注記したように、台形描画指令が段階
644で発生し、辺レジスタ辺Aおよび辺Bにある辺数
値、Y開始値、および台形の端までの走査線の数と共に
出力される。特に、台形描画指令は台形が従う指令、お
よびこの指令に続いて開始台形Y値、開始台形Y値から
出発する台形の走査線の数、開始X値、Yの各段階に対
するXの変化の割合、開始Z値、およびYの各段階に対
するZの変化の割合を含むデータを出力することにより
形成することができる。このデータは次に適切な値を辺
RAM304またはYスタック310のいずれか該当す
るものから読出すことにより台形の他の辺に対して出力
される。次に台形描画指令は下流の描写回路に送られ、
入力画像の各多角形を適切に描写できるようにする。
【0050】トラッパ210により発生される台形描画
指令は、適切な台形頂点に対応するデータを備えている
あらかじめ指定した頂点の数を示す幾つかのフィールド
を備えることができる。したがって、頂点フィールドは
、二つ以上が同じ頂点に対応するに違いないので、四つ
の異なる頂点を指す必要はない。この一例は台形の上辺
の長さが0、すなわち、図4に示す三角形ABEの場合
のように、三角形を描写すべきときに発生する。他に、
入力多角形の二つの連続して描写される台形が屡々一辺
を共有しているから、台形を表示するとき共通辺に対す
る斜面情報を伝達する必要はない。代りに、伝達された
データ内のビットは台形が一つ以上の先の台形と一辺を
共有することを示すべきである。たとえば、フラグ新辺
Aおよび新辺Bをこの目的に使用することができる。
【0051】
【発明の効果】ここに説明するような本発明の台形化ユ
ニットは、入力多角形をはるかに効率良く処理すること
ができるという点で従来の変形エンジンにより性能がか
なり向上している。システム全体の性能は本発明の分解
技法により50%も向上することができる。それは走査
変換システムを、完全な多角形について動作しなければ
ならないものよりはるかに高速に且つ簡単にすることが
できるからである。その他に、この性能の向上は比効的
低い費用で達成される。その上、多角形データベースの
ほとんどは主として三角形および四辺形を備えているの
で、本発明は通常、システムによりほとんどの多角形を
分解する。
【0052】本発明の一つの模範的実施例について上に
詳細に説明してきたが、当業者は、本発明の新規な教示
および長所から実質的に逸脱することなく模範的実施例
に多数の他の修正を加えることが可能であることを容易
に認めるであろう。たとえば、入力多角形の頂点を読込
む順序を変えることができ、ソフトウェアを対応して変
更することができる。その他、当業者は、図5のアルゴ
リズムでY値を使用するのではなく、台形を同じアルゴ
リズムを使用してX軸の代りにY軸と平行になるように
構成することができる。これにはすべての「X」値を「
Y」値にし、「Y」値を「X」値にするだけでよい。 このような場合には、トラッパは「X」スタックを備え
ることになり、「xtop」および「xbot」の整数
値などを見出すことが必要になる。その上、透視図デー
タWのような、各頂点に関連する他のデータを、辺RA
M304にWデータに対応する余分なビットの読込むよ
う適格に指令することにより、現在のシステムに取入れ
ることができる。更に、多角形プロセッサ208および
トラッパ210について説明した別々の制御回路を一つ
の処理ユニットに組合せてトラッパを多角形プロセッサ
と関連して動作させるようにすることができる。したが
って、このような修正をすべて次の特許請求の範囲に規
定するように本発明の範囲を包含させるつもりである。
【図面の簡単な説明】
【図1】本発明を組み込んだ変形エンジンを含む図形処
理サブシステムとホストシステムの概念的ブロック図で
ある。
【図2】本発明に基づく台形化回路を含む変形エンジン
の概略図である。
【図3】本発明に基づく台形化回路の一実施例の概略図
である。
【図4】本発明に基づき台形に分割された入力台形を示
している。
【図5】本発明に基づく入力多角形の各セグメントの端
点を決定するためのアルゴリズムである。
【図6】本発明に基づいて入力多角形を台形に分割する
ためのアルゴリズムである。
【符号の説明】 202…入力FIFO 204…図形変形プロセッサ、 206…FIFO 208…多角形プロセッサ 210…台形化回路 212…出力FIFO

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】表示装置上に表示すべき画像を表す複数の
    多角形であって、それぞれが関連する辺データを備えた
    所定数以下の辺を有する多角形を処理するための装置で
    あって:表示すべき画像の各入力多角形に関して前記辺
    データを提供するための手段と;前記所定数以下の辺を
    有する各入力多角形を、少なくとも1つの台形であって
    、少なくとも2つ以下の辺が前記表示装置の1つの座標
    方向に平行でない3乃至4つの辺を有する閉じた四辺形
    である台形に分解するための台形化手段と;各入力多角
    形の各台形に関する辺データを前記表示装置に出力する
    ための手段と;から成ることを特徴とする装置。
JP3046638A 1990-03-14 1991-03-12 画像を表す複数の多角形を処理する装置及び方法 Expired - Lifetime JP3029878B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/493,185 US5133049A (en) 1990-03-14 1990-03-14 Accelerated decomposition of small polygons into trapezoids
US493185 1990-03-14

Publications (2)

Publication Number Publication Date
JPH04220781A true JPH04220781A (ja) 1992-08-11
JP3029878B2 JP3029878B2 (ja) 2000-04-10

Family

ID=23959237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3046638A Expired - Lifetime JP3029878B2 (ja) 1990-03-14 1991-03-12 画像を表す複数の多角形を処理する装置及び方法

Country Status (2)

Country Link
US (1) US5133049A (ja)
JP (1) JP3029878B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195177A (en) * 1989-09-08 1993-03-16 Matsushita Electric Industrial Co., Ltd. Clipping processor
KR100232931B1 (ko) * 1989-12-21 1999-12-01 이데이 노부유끼 컴퓨터 그래픽용 쉐이딩 방법 및 시스템
US5129051A (en) * 1990-03-16 1992-07-07 Hewlett-Packard Company Decomposition of arbitrary polygons into trapezoids
US5502802A (en) * 1990-07-27 1996-03-26 Ricoh Company, Ltd. Polygonal image-drawing processor
JP2712912B2 (ja) * 1991-08-23 1998-02-16 日本電気株式会社 エッジリスト作成装置
US5500928A (en) * 1993-03-01 1996-03-19 Xionics Document Technologies, Inc. Digital printing system and process using adaptive compression
DE69421495D1 (de) * 1993-03-19 1999-12-09 Fujitsu Ltd Verfahren und vorrichtung zum aufteilen von trapezen
US5528737A (en) * 1993-12-14 1996-06-18 Silicon Graphics, Inc. Processor-based method for rasterizing polygons at an arbitrary precision
US5644691A (en) * 1994-10-14 1997-07-01 Compaq Computer Corporation Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition
US5771045A (en) * 1995-10-23 1998-06-23 Hewlett-Packard Company Method for polygon decomposition
US6704010B1 (en) * 2000-09-05 2004-03-09 Nvidia Corporation System, method and article of manufacture for rendering triangular patches using hardware equipped for handling quadrilateral patches
JP4100945B2 (ja) * 2002-03-27 2008-06-11 富士通株式会社 図形描画装置
US6954211B2 (en) * 2003-06-30 2005-10-11 Microsoft Corporation Hardware-accelerated anti-aliased graphics

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725831A (en) * 1984-04-27 1988-02-16 Xtar Corporation High-speed video graphics system and method for generating solid polygons on a raster display
US4791582A (en) * 1985-09-27 1988-12-13 Daikin Industries, Ltd. Polygon-filling apparatus used in a scanning display unit and method of filling the same
US5020002A (en) * 1988-12-20 1991-05-28 Sun Microsystems, Inc. Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system

Also Published As

Publication number Publication date
JP3029878B2 (ja) 2000-04-10
US5133049A (en) 1992-07-21

Similar Documents

Publication Publication Date Title
US4888712A (en) Guardband clipping method and apparatus for 3-D graphics display system
US4609917A (en) Three-dimensional display system
US4475104A (en) Three-dimensional display system
US4967392A (en) Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
US5129051A (en) Decomposition of arbitrary polygons into trapezoids
US5613050A (en) Method and apparatus for reducing illumination calculations through efficient visibility determination
US6762756B2 (en) Graphics processor, system and method for generating screen pixels in raster order utilizing a single interpolator
US8144158B2 (en) Display system having floating point rasterization and floating point framebuffering
EP1269417B1 (en) Tiled graphics architecture
US4855938A (en) Hidden line removal method with modified depth buffer
EP0715276A2 (en) Method and apparatus for mapping texture
US6750867B1 (en) Image processing apparatus
US6052128A (en) Method and apparatus for clipping convex polygons on single instruction multiple data computers
JP2001357410A (ja) 別々に生成された3次元イメージを合成するグラフィックス・システム
JPH04220781A (ja) 画像を表す複数の多角形を処理する装置及び方法
JPH03241480A (ja) 並列多角形/画素描出用エンジン
US5745667A (en) 3d graphics apparatus using texture images with displacement information
US4930091A (en) Triangle classification setup method and apparatus for 3-D graphics display system
JPH0660173A (ja) 画像を縮小する方法および装置
US20030122820A1 (en) Object culling in zone rendering
US7142224B2 (en) Polygon drawing apparatus and method, and storage medium for implementing the same method
EP3876205B1 (en) Image generation system and method
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
JPH02245886A (ja) 図形描画方法及び図形処理装置
KR20000068191A (ko) 영상 프리미티브의 고속 처리

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090204

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100204

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100204

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110204

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120204

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120204

Year of fee payment: 12