JP2637905B2 - 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム - Google Patents

垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム

Info

Publication number
JP2637905B2
JP2637905B2 JP5221062A JP22106293A JP2637905B2 JP 2637905 B2 JP2637905 B2 JP 2637905B2 JP 5221062 A JP5221062 A JP 5221062A JP 22106293 A JP22106293 A JP 22106293A JP 2637905 B2 JP2637905 B2 JP 2637905B2
Authority
JP
Japan
Prior art keywords
value
plane
edge
pixel
bit
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.)
Expired - Fee Related
Application number
JP5221062A
Other languages
English (en)
Other versions
JPH06195470A (ja
Inventor
ジェラルド・ポール・ポミクター、ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06195470A publication Critical patent/JPH06195470A/ja
Application granted granted Critical
Publication of JP2637905B2 publication Critical patent/JP2637905B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、グラフィック処理に関
するものであり、特に、垂直スパンを用いて非コンプレ
ックス・ポリゴンの輪郭を描いたりその内部を塗りつぶ
したりする技術に関するものである。
【0002】
【従来の技術】グラフィック処理において、ポリゴンや
画像を、簡単にぼやけることのないように描いたり、そ
の内部を塗りつぶしたりできることが重要である。従
来、ポリゴンを描き、その内部を塗りつぶすために、様
々な技術が実現されている。これらの技術としては、例
えば、Ordered Edge Listアルゴリズ
ムや、Bresenhamプロシージャーがあり、どち
らも、1982年出版のJ.D.Foley et a
l.による「Fundamentals of Int
eractive Computer Graphic
s」中で解説されている。現在では、水平走査方式を用
いてポリゴンの描画及び塗りつぶしをする、多くの技術
が知られている。他に、垂直走査方式を用いる技術があ
る。
【0003】水平走査方式を用いた塗りつぶし技術の一
例が、1988年8月9日発効の米国特許4、763、
119に開示されている。この米国特許4、763、1
19に開示されているグラフィック画像用の空間塗りつ
ぶし技術では、画像を構成する輪郭ラインを一連のライ
ン・セグメントで表し、そのうちの水平ライン・セグメ
ントを無視する。各ライン・セグメントの1水平ライン
あたり1画素を用いて表されるように選択した画素を、
ワーク・メモリに記憶する。ワーク・メモリ内では、各
水平ラインにつき、輪郭を表す画素が偶数個存在する。
ある領域内部の塗りつぶしは、ワーク・メモリ内の各水
平ライン沿いに走査し、奇の値を持つ画素を偶の値を持
つように反転させることで実現する。
【0004】1986年12月2日の米国特許4、62
6、838において、ラスター走査CRTに表示される
形状の内部を塗りつぶす装置が開示されている。この装
置は、塗りつぶしの開始ポイントと終了ポイントの情報
を記憶する1個のメモリを含む。リフレッシュ・メモリ
への塗りつぶしの色彩コードの書き込みは、この塗りつ
ぶし開始ポイントに応じて開始され、塗りつぶし終了ポ
イントに応じて終了するが、対象となる形状の輪郭を記
憶するメモリ上の位置では禁止されている。塗りつぶし
ていく方向は、CRTの水平ラスター走査に垂直な方向
である。
【0005】
【発明が解決しようとする課題】しかし、これまで知ら
れている描画及び塗りつぶし技術、とりわけほとんどハ
ードウェアにより実現されている技術の多くは、X W
indow EvenOdd fill規約(1990
年5月発行のO’Reilly and Associ
ates,Inc刊「X Protocol Refe
rence Manual for X Versio
n 11,Volume 0」に記載されている)を満
たしていない。この規約は、ここで参照することによ
り、本発明へ一体化する。さらに、ほとんどソフトウェ
アにより実現されている描画技術も幾つかあるが、複雑
なデータ構造を必要とし、使用勝手が悪く処理速度を上
げるのが難しい。グラフィック処理では、上記のX E
venOdd規約を満たすことが有利であり、適切な方
法でポリゴンを描画し塗りつぶすことが必要である。そ
れゆえ、ポリゴンの輪郭の描画とその内部塗りつぶしの
ために、垂直スパン・アーキテクチャを用いた描画・塗
りつぶし技術が必要とされている。
【0006】さらにいうならば、垂直スパン・アーキテ
クチャを用いることができ、従来方式より処理速度が速
く複雑でない描画・塗りつぶし技術が必要とされてい
る。また、垂直スパン・アーキテクチャを用いることが
でき、しかもX EvenOdd規約を満たす描画・塗
りつぶし技術が必要とされている。また、さらに、ポリ
ゴンのエッジ上の画素は、そのポリゴンの内部がその画
素の右側もしくは下側にくる場合にのみ描かれるよう
な、垂直スパン方式によるポリゴンの描画・塗りつぶし
方法及びシステムへの需要がある。複雑なデータ構造が
不要で、垂直スパン・アーキテクチャを採用したハード
ウェアでほぼ実現可能な、ポリゴンの描画・塗りつぶし
技術も必要とされている。
【0007】
【課題を解決するための手段】ポリゴン輪郭の描画方法
である本発明の原理によって、従来技術の欠点を乗り越
え、新たな利点を加えることができる。
【0008】グラフィック・プロセッサにおける、1個
以上のエッジがあるポリゴン輪郭の描画方法について解
説する。各エッジは1個以上の画素で表し、ポリゴンの
輪郭は、N個の垂直スパンで構成する。N個の垂直スパ
ンの各々には、始点と終点がある。本描画方法は次の2
ステップを含む;第1プレイン上で、N−1個の垂直ス
パンの各々について、その始点及び終点を表す画素に対
応する位置のビットを、第1の値に設定するステップ;
第2プレイン上で、ポリゴン輪郭の各斜線エッジ上に中
心が乗る画素に対応する位置のビットと、各エッジの始
点と終点に中心が乗る画素に対応する位置のビットと
を、第1の値に設定するステップ。第2プレイン上で第
1の値に設定されたビットの各々について、Y軸に関す
る方向を決定し、第2プレイン上で設定されたビットに
対応する第3プレイン上の位置のビットが設定される。
方向決定ステップにより、第2プレイン上でセットされ
たビットの方向が第1の方向であると示される場合に
は、第3プレイン上のビットは第1の値にセットされ
る。方向決定ステップにより、第2プレイン上でセット
されたビットの方向が第2の方向であると示される場合
には、第3プレイン上のビットは第2の値にセットされ
る。
【0009】ある実施例では、第1プレイン上で、ビッ
トは、第1プレイン用にあらかじめ定義された関係式に
従って、第1の値にセットされる。第2プレイン上で
は、ビットは、第2プレイン用にあらかじめ定義された
関係式に従って、第1の値にセットされる。また、第3
プレイン上では、ビットは、第3プレイン用にあらかじ
め定義された関係式に従って、第1の値にセットされ
る。
【0010】本発明の他の実施例では、ポリゴン輪郭を
表す画素を識別する。ポリゴン輪郭上の1つのエッジの
始点及び終点座標が定義され、その始点及び終点座標に
より定義されるエッジに最も近い画素が選択される。ま
た、選択した画素がそのエッジ上もしくは下側に位置す
るかどうかについて判定をする。選択した画素がエッジ
上もしくは下側に位置しない場合は、Y軸方向へ移動
(ステップして)して、そのエッジを表す別の画素を選
択し直す。以上のステップを、ポリゴン輪郭上の最後の
エッジの終点座標に到達するまで、繰り返す。
【0011】本発明の別の実施例では、描画した輪郭の
内部を塗りつぶす。ある例では、輪郭の内部塗りつぶし
のために、塗りつぶす範囲を決定する。この塗りつぶし
範囲が定義する領域には、複数の垂直走査線がある。各
走査線を垂直に走査することで、各走査線毎にアクティ
ブな画素の組を定義する。各組は、第1のアクティブな
画素と、第2のアクティブな画素で構成される。第1の
アクティブな画素と第2のアクティブ画素の間にある画
素は、非アクティブである。各垂直走査線毎に、各組の
第1のアクティブな画素と、アクティブな画素の組の間
にある非アクティブな画素とが、描画される。
【0012】さらに別の実施例では、ポリゴン輪郭の内
部塗りつぶしは、以下の手順を含む。塗りつぶしを開始
する位置の決定;第2プレイン上のその位置に第1の値
が記憶されているかどうかの判定;第2プレイン上のそ
の位置に第1の値が記憶されている場合に、描画する向
き(時計回りか反時計回りか)の決定;第3プレイン上
のその位置に第1の値が記憶されているかどうかの判
定;描画の向きが時計回りで、かつ第3プレイン上のそ
の位置に第1の値が記憶されている場合には、画素を塗
りつぶす;描画の向きが反時計回りで、かつ第3プレイ
ン上のその位置に第1の値が記憶されていない場合に
は、画素を塗りつぶす。
【0013】別の実施例では、ポリゴン輪郭の内部塗り
つぶしは、以下の手順を含む。塗りつぶしを開始する位
置の決定;塗りつぶし指示子の値が第1の値に等しいか
どうかの判定;塗りつぶし指示子の値が第1の値に等し
く、かつ第2プレイン上でその位置に第1の値が記憶さ
れていない場合に、画素を塗りつぶす。
【0014】本発明のもう1つの特徴として、グラフィ
ック・プロセッサ内で、1個以上のエッジを持つポリゴ
ンを描画するシステムを説明する。各エッジは1個以上
の画素で表され、ポリゴンの輪郭は、N個の垂直スパン
で構成する。N個の垂直スパンの各々には、始点と終点
がある。本描画システムは次の2つの手段を含む;第1
プレイン上で、N−1個の垂直スパンの各々について、
その始点及び終点を表す画素に対応する位置のビット
を、第1の値に設定する手段;第2プレイン上で、ポリ
ゴン輪郭の各斜線エッジ上に中心が乗る画素に対応する
位置のビットと、各エッジの始点と終点に中心が乗る画
素に対応する位置のビットとを、第1の値に設定する手
段。さらに、第2プレイン上で第1の値に設定されたビ
ットの各々について、Y軸に関する方向を決定し、第2
プレイン上で設定されたビットに対応する第3プレイン
上の位置のビットを設定する手段も含む。方向決定手段
により、第2プレイン上でセットされたビットの方向が
第1の方向であると示される場合には、第3プレイン上
のビットは第1の値にセットされる。方向決定手段によ
り、第2プレイン上でセットされたビットの方向が第2
の方向であると示される場合には、第3プレイン上のビ
ットは第2の値にセットされる。
【0015】別の実施例では、システムは、ポリゴン輪
郭を表す画素を識別する手段を含む。ある例では、シス
テムは、以下の手段を含む;ポリゴン輪郭上の1つのエ
ッジの始点及び終点座標を定義する手段;その始点及び
終点座標により定義されるエッジに最も近い画素を選択
する手段;また、選択した画素がそのエッジ上もしくは
下側に位置するかどうかについて判定をする手段;選択
した画素がエッジ上もしくは下側に位置しない場合は、
Y軸方向へ移動(ステップして)して、そのエッジを表
す別の画素を選択し直す手段。
【0016】別の実施例では、システムは、描画した輪
郭の内部を塗りつぶす手段を含む。ある例では、輪郭の
内部塗りつぶし用のシステムは、以下の手段を含む;塗
りつぶす範囲を決定する手段;第2プレイン上のその位
置に第1の値が記憶されているかどうかの判定をする手
段;第2プレイン上のその位置に第1の値が記憶されて
いる場合に、描画する向き(時計回りか反時計回りか)
の決定をする手段;第3プレイン上のその位置に第1の
値が記憶されているかどうかの判定をする手段;描画の
向きが時計回りで、かつ第3プレイン上のその位置に第
1の値が記憶されている場合には、画素を塗りつぶす手
段;描画の向きが反時計回りで、かつ第3プレイン上の
その位置に第1の値が記憶されていない場合には、画素
を塗りつぶす手段。
【0017】別の実施例では、ポリゴン輪郭の内部塗り
つぶし用のシステムは、以下の手段を含む;塗りつぶし
を開始する位置の決定する手段;塗りつぶし指示子の値
が第1の値に等しいかどうかの判定をする手段;塗りつ
ぶし指示子の値が第1の値に等しく、かつ第2プレイン
上でその位置に第1の値が記憶されていない場合に、画
素を塗りつぶす手段。
【0018】
【実施例】図1に、本発明を取り入れたシステム10を
示す。これは、ホスト・コンピュータ12と、システム
・バス16を介してホスト・コンピュータ12へ接続し
ているグラフィック・アダプタもしくはサブ・システム
14とを含む。ホスト・プロセッサ12は、例えばIn
ternational Buisiness Mac
hines RISC System/6000ワーク
ステーションのような、RISC方式のプロセッサで、
バス16としては、32ビット・データ・バスがあるM
icro Channelバスなどがよい(RISC
System/6000と、Micro Channe
lは、InternationalBuisiness
Machines Corporationの商標で
ある)。
【0019】図示した例では、グラフィック・サブシス
テム14には、バス・インタフェース20を介してバス
16へ接続している2次元グラフィック・プロセッサも
しくはラスタ・エンジン18が入っている。このグラフ
ィック・プロセッサ18は以下に解説するが、ディスプ
レイの画素の色彩情報を記憶するフレーム・バッファ2
2や、複数の制御ビット・プレイン24に接続されてい
る。上述したRISCSystem/6000のような
グラフィック・ワークステーションの典型的なディスプ
レイは、水平方向に1280、垂直方向に1024個の
画素を持つ。フレーム・バッファ22は、色彩情報用に
あらかじめ定めた個数のビット・プレイン(8及び24
が通常の個数)を含み、さらに、ウィンドウ情報やオー
バーレー情報等の記憶用のプレインを含むこともある。
【0020】フレーム・バッファ22の色彩情報を、垂
直方向走査ラインに沿って周期的に走査し、RAMDA
C28を通して、ディスプレイ・モニタ26の色彩(R
GB)入力へ入力する。この分野の従来の方式では、R
AMDAC28を構成するランダム・アクセス・メモリ
(RAM)は、フレーム・バッファ22からの色彩出力
によりアドレス指定され、その出力がディジタル・アナ
ログ変換器(DAC)をドライブして、各々のRGB色
彩要素を出力させる。RAMDAC28内のRAMは、
色彩パレットもしくは索引テーブルとして動作し、フレ
ーム・バッファ22の出力する色彩に、必要な変換を施
してモニタ26へ入力する色にする。図1に示すシステ
ムでは、ディスプレイ装置はモニタであるが、本発明
は、プリンタのような他のディスプレイ装置に対しても
適用できる。
【0021】グラフィック・プロセッサ18には、後述
する本発明の描画及び内部塗りつぶし用の論理が組み込
まれている。これは、1つの直線セグメントか、もしく
は終点の座標で表されるベクタのデータをホスト・プロ
セッサ12から受取り、そのデータをフレーム・バッフ
ァ22に記憶するのに適した形式へ変換することで「ラ
スタライズ」し、最終的には、モニタ26上に表示す
る。特に、このグラフィック・プロセッサ18は、本発
明の描画及び内部塗りつぶし技術により、画像の輪郭を
描画し、その輪郭内部を塗りつぶす。
【0022】図2に示す非コンプレックスなポリゴンの
輪郭30は、1個以上のエッジ32から構成され、各エ
ッジは、複数の画素34で表現されている。つまり、1
個以上の画素を用いてエッジ32のような現実の、もし
くは架空のエッジを識別している。図2に示したポリゴ
ンの輪郭は、非コンプレックスである、つまり自身の輪
郭の他の部分と交差しているところがない。本発明の方
式は、非コンプレックスなポリゴン輪郭を描画及び内部
し且つその内部を塗りつぶすためのものである。
【0023】図3に示すグラフィック・プロセッサ18
は、例として、ブレゼンハム(Bresenham)ベ
クタ・ジェネレータ36と、論理ユニット38を含んで
いる。ブレゼンハム・ベクタ・ジェネレータは、ブレゼ
ンハム・プロシージャを用いて、あるエッジ32を定義
する画素を表すアドレスを生成する。詳しくいえば、ク
ロック・サイクル毎に、1つの画素を表しているアドレ
ス1つが生成される。ブレゼンハム・プロシージャの一
例は、J.D.Foley et al.による「Fu
ndamentals of Interactive
Computer Graphics」(1982
年)に既述してあり、この内容はここで参照することに
より、本発明へ一体化される。上述したブレゼンハム・
プロシージャで生成されるアドレスは、理想のエッジに
最も近い画素のアドレスである。しかし、本発明に従っ
て、このブレゼンハム・プロシージャを修正して、直接
エッジ上に乗っているか、エッジの下側に位置するよう
な画素のアドレスを生成させるようにする。この方法に
ついては、以下で詳細に述べることにする。修正された
ブレゼンハム・ベクタ・ジェネレータの出力が入力され
る論理ユニット38には、本発明による描画技術を実行
するのに必要な論理が入っている。
【0024】一般に、論理ユニット38が含むのは例と
して、ベクタ論理ユニット40と、ポリゴン輪郭を描く
のに使われる 付加的な論理回路である。ベクタ論理ユ
ニット40は、標準組み合わせ論理回路を複数含んでい
るが、修正型ブレゼンハム・ベクタ・ジェネレータ36
の出力や、1個以上の他の信号を入力として受け取り、
それらから複数の出力を生成する。ユニット40の出力
であるY,X,FILL,EDGE,EVLD,YDI
Rの各々について、図5を参照しながら詳述する。ベク
タ論理ユニット40の出力の幾つかは、制御ビット・プ
レイン24へ入力されるビットの値を決定するために、
付加的回路を通る。ある例では、制御ビット・プレイン
24は、Y方向制御プレイン(YDIR)42、エッジ
制御プレイン(EDGE)44、フィル制御プレイン
(FILL)46を含む。各々のプレインについては、
以下で詳しく述べる。
【0025】図3に示した修正型ブレゼンハム・ベクタ
・ジェネレータの出力パラメータや信号は、VLIN
E、HLINE,PT1,LAST,XINC,SX,
SY,XGEY、ERR,DMAJ、X、Yであり、各
々については、以下で詳述する。
【0026】VLINEは、ポリゴン輪郭のあるエッジ
が垂直エッジかどうかを表す。この決定のために、始点
の(X,Y座標系における)座標(X1,Y1)の水平成
分X1と、終点の座標(X2,Y2)の水平成分X2を比較
する。X1とX2が等しいならば、そのエッジは垂直エッ
ジであり、この例では、VLINEは1にセットされ
る。X1がX2と等しくない場合は、VLINEは0にセ
ットされ、そのエッジが垂直エッジではないことを示
す。
【0027】同様に、HLINEは、あるエッジが水平
エッジであることを示す。そのエッジの始点座標
(X1,Y1)の垂直成分Y1と、終点の座標(X2
2)の垂直成分Y2を比較する。Y1とY2が等しいなら
ば、そのエッジは水平エッジであり、この例では、HL
INEは1にセットされる。Y1がY2と等しくない場合
は、YLINEは0にセットされる。
【0028】PT1は、エッジの最初の点を表し、始点
の座標(X1,Y1)から求められる。つまり、エッジの
始点座標を表すための画素が、そのエッジの第1の画素
となり、PT1は1にセットされる。それ以外の場合
は、PT1は0にセットされ、その時点のクロック・サ
イクルに生成されるアドレスが、エッジの第1画素を表
すものではないことを示す。
【0029】同様に、LASTは、あるエッジの最後の
点を示す。(X1,Y1)及び(X2,Y2)で指定される
1つのエッジに関しては、そのエッジの点(X2,Y2
を表すアドレスが生成されている時に、LASTが1に
セットされ、エッジの最後の点であることを示す。
【0030】SXは、あるエッジのX方向の符号であ
る。X方向の符号は、エッジの始点及び終点の水平成分
(X1,X2)の比較から定められる。X2がX1よりも大
きい場合は、そのエッジは、X軸の正の方向へ描かれ、
SXは0にセットされる。X2がX1よりも小さい場合
は、そのエッジは、X軸の負の方向へ描かれ、SXは1
にセットされる。
【0031】同様に、SYはエッジのY軸方向への符号
を表す。ある実施例では、軸方向は下の図のように取ら
れている。
【数1】
【0032】つまり、Y軸は下に向かって正となり、X
軸は水平に右に向かって正となる。故にY2がY1より大
きいと、Y軸方向に正となり、Y2がY1より小さいと、
逆に負となる。実施例の1つでは、Y軸方向が正の時
は、SYを0にセットし、Y軸方向が負の時は、SYを
1にセットする。
【0033】DMAJは、あるエッジのメジャー軸方向
への変化量を表す。この分野では、メジャー軸方向は、
X線軸方向への変化量と、Y軸方向への変化量とを較べ
て、変化量が大きい方の座標軸のことである。一例をあ
げると、エッジの始点座標(0、0)、終点座標(5、
2)ならば、DMAJは5である。X方向への変化量
(dX=5=X2−X1)が、Y方向への変化量(dY=
2=Y2−Y1)より大きいからである。
【0034】同様にDMINは、あるエッジのマイナー
軸方向への変化量を表す。図3では、DMINは出力と
して示されていないが、以下に示すように、ERRを計
算するのに使われる。マイナー軸方向とは、X線軸方向
への変化量(dX)と、Y軸方向への変化量(dY)と
を較べて、変化量が小さい方の座標軸のことである。M
DAJの解説と同じ例では、DMINは2になる。
【0035】ERRは、理想のエッジの位置と、そのエ
ッジに最も近い画素との差を表す。ERRの計算方法を
図4を参照して解説する。図4には、理想のエッジ32
と、複数の画素34とが示してある。エッジ32は、座
標(0、0)が始点で、(5、2)が終点である。最初
に、DMAJ,DMINの値が、上述の方法で計算され
る。この例では、DMAJ=5、DMIN=2である。
続いて、以下の式を用いて、エラー値ERRの初期値が
計算される。 ERR = 2×DMIN − DMAJ = 2×2 − 5 = −1
【0036】次に、理想のエッジを表す画素決めるに
は、メジャー軸方向(例えば、X軸方向)だけに移動す
ればよいのか、それとも、メジャー軸方向にもマイナー
軸方向にも(X及びY軸方向)移動しなければならない
のかを、ERRを用いて、クロック・サイクル毎に判定
する。例えば、始点座標(0、0)に関しては、この座
標に対するエラー値ERR(0、0)が決定される。E
RR(0、0)=ERR=−1であるので、X軸方向へ
のみインクリメントされる。言い替えれば、ERR<0
ならばメジャー軸方向へのみ移動すればよく、ERR≧
0ならばメジャー軸及びマイナー軸方向へ移動する。例
では、Xがインクリメントして、次の位置は(1、0)
となり、ERRはINC1だけインクリメントする。こ
こでINC1は、2×DMIN=4に等しい。
【0037】上の例を続けると、座標(1、0)におい
て、ERR(1,0)=ERR(0,0)+INC1=
3である。ERRは0より大きいので、両方の軸方向へ
移動して、(2、1)になる。ERRはINC2だけイ
ンクリメントされるが、ここで、INC2は2×(DM
IN−DMAJ)=−6である。
【0038】同様にして、座標(2、1)では、ERR
(2,1)=ERR(1,1)+(−6)=−3であ
る。ERRが負となったので、X軸方向へ移動して
(3、1)となる。座標(3、1)に関するERR
(3、1)はINC1だけインクリメントされるので、
ERR(3,1)=ERR(2,1)+4=1である。
この手続きを、終点座標(5、2)へ到達するまで、ク
ロック・サイクル毎に行う。
【0039】修正型ブレゼンハム・ジェネレータの他の
出力に話を戻す。XINCは、X軸方向へインクリメン
ト分があるかどうかを表す。このインクリメントが実行
されれば、XINCは1にセットされ、そうでない場合
は、0にセットされる。
【0040】Xは、エッジに最も近い画素の座標の水平
成分を指し示し、Yはその垂直成分を示す。これらの値
は、クロック・サイクル毎に決定される。
【0041】信号XGEYは、X軸方向への移動の変化
量が、Y軸方向への変化量より大きいか等しいという状
況を表す。例えば、エッジの始点が(4、2)で、終点
が(8、3)ならば、X軸方向の変化量(X2−X1=8
−4=4)は、Y軸方向の変化量(Y2−Y1=3−2=
1)より大きい。故に、この例では、XGEYを1にセ
ットする。X方向への変化量がY軸方向への変化量より
小さい場合は、XGEYを0にセットする。
【0042】また、ユニット40への入力LVECは、
ポリゴン輪郭の最後のエッジであることを表す。この分
野では、1個のポリゴン輪郭の終点に当たる場合は、グ
ラフィック・プロセッサ18へ、終点であることを表す
コマンドを送信する。同様に、FVECは、1個のポリ
ゴン輪郭の始点であることを表す。
【0043】上述した多数の信号がベクタ論理ユニット
40へ入力され、本発明の描画技術に使用される。本発
明の原理による、ポリゴン輪郭の描画技術の一実施例
を、図5を参照して、解説する。最初に、ステップ47
「ベクタ・ジェネレータからパラメータを受け取る」に
おいて、計算済みの信号VLINE,HLINE,PT
1,LAST,XINC,SX,SY,XGEY,ER
R,DMAJ,X,Yをベクタ・ジェネレータ36か
ら、ベクタ論理ユニット40へ受け渡す。さらに、信号
LVECが、ユニット40へ入力される。
【0044】その後、上述の変数のうちの1個以上を用
いて、Y軸方向のステップ(STEPY)を実行するか
どうかについて判定する。これがステップ48「STE
PYの計算」である。クロック・サイクル毎に、修正型
ブレゼンハム・ジェネレータは、ERRの値から、理想
のエッジに最も近い次の画素がどの方向になるかを示
す。しかし、本発明によれば、理想のエッジを表すもの
として選択される画素は、そのエッジの上に乗っている
か、その下側に位置する。ゆえに、STEPYが示すの
は、上述した画素の位置を満たすために、Y軸方向への
インクリメントが必要かどうかである。STEPYが1
にセットされれば、インクリメントが実行され、0にセ
ットされれば、インクリメントは実行されない。STE
PYの計算には、以下の式を用いる。STEPY= (〜XGEY & 〜SY & ((PGT0 & P
LTD) or (PGE−2D & PLT−
D))) or (〜XGEY & SY & ((PGT−D
& PLT0) or(PGTD & PLE2
D))) or (XGEY & SY & ((PGT0 &
PLTD) or (PGE−2D & PLT−
D))) or (XGEY & 〜SY & ((PGT−D
& PLT0) or(PGTD & PLE2
D))) XGEY及びSYについては前述の通りである。他の変
数を以下に説明する。 〜 ブール代数のNOT演算子。 & ブール代数のAND演算子。 or ブール代数のOR演算子。 PLT0 前回のエラー値が0より小さいかどうかを示
す。(前回のエラー値の設定方法は後述する。) PGT0 前回のエラー値が0より大きいかどうかを示
す。 PGTD 前回のエラー値がメジャー軸方向への変化量
より大きいかどうか(PE>DMAJ)示す。 PLTD 前回のエラー値がメジャー軸方向への変化量
より小さいかどうか(PE<DMAJ)示す。 PLT−D 前回のエラー値がメジャー軸方向への変化
量に−1をかけた値より小さいかどうか(PE<−DM
AJ)示す。 PLT−D 前回のエラー値がメジャー軸方向への変化
量に−1をかけた値より小さいかどうか(PE<−DM
AJ)示す。 PGE−2D 前回のエラー値がメジャー軸方向への変
化量に−2をかけた値より大きいかもしくは等しいどう
か(PE≧−2×DMAJ)示す。 PGT−D 前回のエラー値がメジャー軸方向への変化
量に−1をかけた値より大きいかどうか(PE>−DM
AJ)示す。 PLE2D 前回のエラー値がメジャー軸方向への変化
量に−2をかけた値より小さいかもしくは等しいどうか
(PE≧−2×DMAJ)示す。
【0045】次の条件のうち少なくとも1個が成り立て
ば、以上の式を用いて、Y軸方向に関するステップを行
う。 (a) Xの変化量がYの変化量より小さく、かつY方
向の符号が正であり、前回のエラー値が0より大きくメ
ジャー軸方向への変化量より小さい。 (b) Xの変化量がYの変化量より小さく、かつY方
向の符号が正であり、前回のエラー値がメジャー軸方向
への変化量に−2をかけた値より大きいか等しく、メジ
ャー軸方向への変化量に−1をかけた値より小さい。 (c) Xの変化量がYの変化量より小さく、かつY方
向の符号が負であり、前回のエラー値がメジャー軸方向
への変化量に−1をかけた値より大きく0より小さい。 (d) Xの変化量がYの変化量より小さく、かつY方
向の符号が負であり、前回のエラー値がメジャー軸方向
への変化量より大きく、メジャー軸方向への変化量に2
をかけた値より小さい。 (e) Xの変化量がYの変化量より大きいか等しく、
かつY方向の符号が負であり、前回のエラー値が0より
大きくメジャー軸方向への変化量より小さい。 (f) Xの変化量がYの変化量より大きいか等しく、
かつY方向の符号が負であり、前回のエラー値がメジャ
ー軸方向への変化量に−2をかけた値より大きいか等し
く、メジャー軸方向への変化量に−1をかけた値より小
さい。 (g) Xの変化量がYの変化量より大きいか等しく、
かつY方向の符号が正であり、前回のエラー値がメジャ
ー軸方向への変化量に−1をかけた値より大きく、0よ
り小さい。 (h) Xの変化量がYの変化量より大きいか等しく、
かつY方向の符号が正であり、前回のエラー値がメジャ
ー軸方向への変化量より大きく、メジャー軸方向への変
化量に2をかけた値より小さい。
【0046】STEPYの計算に続いて、本発明の描画
技術で用いる他の信号を幾つか計算する。詳しく述べる
と、信号BTWNの値は、ステップ49「BTWNを計
算する」において、以下のように計算される。 BTWN=XLAT & (ERR>−DMAJ) &
(ERR≧DMAJ);ここで、ERR及びDMAJ
は上述の通りである。XLATは、前回のクロック・サ
イクルでX軸方向へインクリメントがあったかどうか
(つまりXINC=1)を表す。もし前クロック・サイ
クルにおいて、Xがインクリメントされていれば、XL
ATは1にセットされ、そうでなければ、0にセットさ
れる。
【0047】上述の式を用いて、エッジが2つの画素の
各々の中心に乗っているか、もしくはその間を通ってい
るかどうかを判定する。もし、あるエッジが2つの画素
の各中心の間にあれば、BTWNは1にセットされる。
特に、前クロック・サイクルにおいて、X方向へインク
リメントがあり、かつエラー値がメジャー軸方向への変
化量に−1をかけた値より大きく、かつメジャー軸方向
への変化量より大きいか等しい場合には、エッジは、2
個の画素の各々の中心に乗るかその間を通っている。
【0048】BTWNの計算後、さらに、ステップ「F
ILLを計算する」において、信号FILLを以下の式
で計算する。 FILL= (BTWN or XGEY or PT
1) and 〜VLINE and 〜RIGHT 信号BTWN,XGEY,PT1,VLINEについて
は、既に詳述した。また、信号RIGHTは、画素がポ
リゴンのエッジの最も右側にある画素であることを示す
もので、次の式から計算される。 RIGHT = (SX & PT1) or (〜S
X & LAST) RIGHTの計算式によると、問題にしている画素がエ
ッジの最初の点で、しかもそのエッジのX成分が負の値
(例SX=1)である場合、もしくは、画素がエッジの
最後の画素で、しかもエッジのX成分が正の値の場合、
RIGHTは1にセットされ、その画素がポリゴンのエ
ッジの最も右側の画素であることを示す。
【0049】以下の条件が1つでも満たされれば、エッ
ジの各画素について、塗りつぶし指示子FILLがバイ
ナリ1にセットされる。 (a) エッジ34は2つの画素の上に乗るかその間に
あり、かつエッジ34は垂直エッジではなく、かつ画素
がそのエッジの最も右側の画素ではない場合。 (b) Xの変化量がYの変化量より大きいか等しく、
かつエッジ34は垂直エッジではなく、かつ画素がその
エッジの最も右側の画素ではない場合。 (c) 画素がエッジの最初の点を表し、かつエッジ3
4は垂直エッジではなく、かつ画素がそのエッジの最も
右側の画素ではない場合。
【0050】STEPY、BTWN、FILLの計算に
続いて、ベクタ・ジェネレータ38から受け取った処理
中の画素が、描画中のポリゴン輪郭の最後のエッジに属
する最後の画素であるかどうかの判定を、判定ステップ
51「最後のエッジの最後の画素か?」で行う。この画
素が、描画すべき最後のエッジの最後の画素であれば、
前回のエッジを最後のエッジに、そして現在処理中のエ
ッジを最初のエッジとする。これがステップ52 「P
REVIOU=LAST;CURRENT=FIRS
T」である。ベクタ論理ユニット40の内部において、
前回の水平エッジPHと呼ばれる信号が、HLINEと
して計算された値にセットされ、HLINEはFHの値
にセットされる。FHは、最初のエッジが水平であるこ
とを表す。ある実施例では、グラフィック・プロセッサ
18が、ポリゴンの最初のエッジであることを指示し、
HLINEがそのエッジに対して計算された後で、FH
がセットされる。FHは、最初のエッジに関するHLI
NEの値にセットされる。同様に、前回の垂直エッジP
Vという信号は、VLINEとして計算された値にセッ
トされ、VLINEはFVと同じ値にセットされる。F
Vは、最初のエッジが垂直であるかどうかを表す。FV
が最初のエッジのVLINEの値にセットされるという
点を除いては、FHの場合と全く同じ方法である。
【0051】さらに、「前回」と「最後」、及び「現
在」と「最初」を取り替えるために、前回のエッジのX
方向成分の符号を表す信号PSXがSXと同じ値に、そ
して、前回のエッジのY方向成分の符号を表す信号PS
YがSYと同じ値にセットされる。それから、SX及び
SYは、各々、信号FSX及びFSYと同じ値にセット
される。FSXは、最初のエッジのX方向成分の符号
を、FSYは、最初のエッジのY方向成分の符号を表
す。FH及びFVと同様に、これらの変数は、最初のエ
ッジが定義されるときにセットされる。「前回」と「最
後」、及び「現在」と「最初」を取り替えるための変数
の設定に続いて(もしくは、問題とする画素が最後のエ
ッジの最後の画素でなかった場合にも)、処理はステッ
プ54「X及びY方向への変化量を決定する」へ移る。
【0052】X軸方向に関する符号の変化(XDC)を
計算するためには、以下の式を用いる。 XDC = 〜VLINE & 〜PV (SX XO
R PSX). この式(各信号については既述の通り。XORは、ブー
ル代数のXOR演算子)を用いると、例えば、エッジが
垂直エッジでしかも(もしくは)前回のエッジが垂直エ
ッジの場合は、X軸方向に関する変化はない。また、現
在および前回のX軸方向成分の符号が共に正、もしくは
共に負の場合は、X軸方向に関する変化がない。このよ
うな場合は、XDCが0にセットされる。一方、現在及
び前回のエッジが垂直エッジではなく、かつ、現在のエ
ッジのX軸方向成分の符号が、前回のエッジのそれと異
なる場合(つまり一方が正で他方が負)は、XDCは1
にセットされ、X軸方向成分の符号が変化したことを示
す。
【0053】X軸方向成分の符号の変化が起こったかど
うかの判定と同様にして、Y軸方向に関する符号の変化
(YDC)の有無について判定する。これを計算するた
めには、以下の式を用いる。 YDC = 〜HLINE & 〜PH (SY XO
R PSY). (各信号については既述の通り)XDCの場合と同様
に、Y軸方向成分の符号に変化があれば、YDCは1に
セットされ、変化がない場合は、YDCは0にセットさ
れる。例を挙げると、現在のエッジが水平エッジで、か
つ(もしくは)前回のエッジが水平エッジだった場合
は、Y軸方向に関する変化はない。また、現在および前
回のY軸方向成分の符号が共に正、もしくは共に負の場
合は、Y軸方向に関する変化がない。一方、現在及び前
回のエッジが水平エッジではなく、かつ、現在のエッジ
のY軸方向成分の符号が、前回のエッジのそれと異なる
場合(つまり一方が正で他方が負)は、YDCは1にセ
ットされる。
【0054】一実施例では、X軸もしくはY軸方向に関
して変化があるかどうか計算した後、描画される画素が
ポリゴンの中のあるエッジを表すかどうかについて判定
をする。これが、ステップ56「EDGEを計算する」
である。詳しくは、問題とする画素がポリゴンのあるエ
ッジを表す場合(以下で詳述する)は、信号EDGEが
1にセットされ、画素がポリゴンのあるエッジを表さな
い場合は、0にセットされる。
【0055】この判定のために、以下の式を用いる。 EDGE = CENTER & 〜(HLINE &
〜(PT1 orLLV)) & 〜(VLINE
& 〜(PT1 or LAST)). この式中のHLINE、VLINE、PT1、LAST
については、既述の通りである。また、LLVは、ポリ
ゴン輪郭の最後のエッジの最後の点であることを示し、
CENTERは、描画される画素の中心がポリゴン輪郭
のあるエッジ上に乗っているかどうかを示す。CENT
ERは、以下の式を用いて計算する。 CENTER = (PE = DMAJ) or
(PE = −DMAJ). 詳しくは、前回のエラー値が、メジャー軸方向への変化
量かそれに−1を欠けた値に等しい場合は、CENTE
Rは1にセットされる。それ以外は、0にセットされ
る。
【0056】画素の中心がエッジ上にあり、かつ現在の
エッジが水平線ではなく、かつ垂直線ではない場合(つ
まりエッジが斜線の場合)、上のEDGEの式から、画
素はあるエッジを表すことになる。また、画素の中心が
エッジの始点もしくは終点上にある場合も、その画素は
エッジを表している。画素の中心がエッジ上にあり、か
つ現在のエッジが水平で、かつ画素がエッジの最初の画
素であるかポリゴン輪郭の最後の画素であり、かつ現在
のエッジが垂直で、かつ画素が現在のエッジの最初もし
くは最後の画素である場合は、その画素はそのエッジを
表す。また、現在のエッジが水平なエッジで、かつ画素
が輪郭の最初もしくは最後の画素である場合は、その画
素はエッジを表さない。また、現在のエッジが垂直で、
かつ画素がそのエッジの最初もしくは最後の画素でない
場合は、その画素はエッジを表さない。
【0057】また、さらに、ステップ58「EVLDを
計算する」で、エッジ・バリッド信号を計算する。この
信号は、描画技術において、後に、ある画素をエッジ制
御プレイン44上に描画するべきかどうかの判定をする
のに用いる。エッジ・バリッド信号(EVLD)は、次
の関数を用いて計算する。 EVLD = 〜((PT1 or LLV) and
XDC andYDC). EVLDの式に含まれる変数の各々については、既述の
通りであり、ここでは説明しない。
【0058】上の式を用いると、画素がエッジの最初の
点もしくはポリゴン輪郭の最後のエッジの最後の点であ
り、かつX軸方向にもY軸方向にも変化があった場合、
エッジ・バリッド信号は0にセットされ、信号が有効で
ないことを示す。また、例えば、X軸方向とY軸方向に
変化がない場合は、PT1もしくはLLVの値に拘ら
ず、エッジ・バリッド信号は1にセットされ、有効信号
であることを示す。また、PT1とLLVの値が0で、
画素がエッジの最初の点でなくかつポリゴン輪郭の最後
の点でないことを示している場合は、EVLDは1にセ
ットされる。
【0059】EDGE及びEVLDの計算に続いて、信
号YDIRが、ステップ60「YDIRを計算する」に
おいて計算される。(この分野の技術者には自明のこと
だが、EDGE、EVLD、YDIRを計算する順序は
入れ換えることができる)YDIRは以下に示すとお
り、ある画素のY軸方向成分の符号を判定するのに用い
られる。エッジがY軸の正の方向を向いていればYDI
Rは0にセットされ、エッジがY軸の負の方向を向いて
いれば、YDIRは1にセットされる。複数の線の交点
にあたる画素(つまり、エッジの始点及び終点)に関し
ては、ブール関数を用いて、交点に当たる画素のYDI
Rが0か1かを判定する。いかなる点に関するYDIR
の値も以下の、あらかじめ定めた関係式から定める。 YDIR = (〜PT1 & 〜LLV & SY) or ((PT1 or LLV) & ((〜H2 & 〜V2 & ((SV & PSY) or (PSY & SX))) or (HLINE & (〜SX or (SX & PSY))) or (PH & 〜PSX & SY) or (VLINE and 〜H2 & ((PSX & PSY) or (〜PSX & SY))) or (PV & 〜H2 & ((PSY & SX) or (〜SX & SY))))). ほとんどの変数については既述の通りであるが、H2及
びV2については、その限りではない。H2は、現在も
しくは前回のエッジが水平であるかどうかを表すもの
で、PHとHLINEの値のORを取ることで求められ
る。同様にV2は、現在もしくは前回のエッジが、垂直
かどうかを表すもので、PVとVLINEのORを取る
ことで求められる。
【0060】YDIRの式の理解の手助けとして、図6
〜8を参照する。図6は、色々なエッジの終点に関し
て、上の式から得られた結果を示している。図6におい
て、1はY軸の負方向を、0はY軸の正方向を、−はド
ント・ケア状態を意味する。図6の中の一例(参照番号
55)では、エッジは、接合点あるいは終点57から負
の方向へ向かっているので、YDIRは1にセットされ
る。他の例(参照番号59)では、エッジは、終点57
から正の方向へ向いているのでYDIRは0にセットさ
れる。ドント・ケア状態に対しては、YDIRは1にな
ることも0になることもある。
【0061】同様に、図7では、水平なエッジがある場
合の、YDIRの式から得られた結果を、図8では、垂
直エッジについて計算した場合の結果を示してある。
【0062】図5に話を戻す。YDIRの計算に続い
て、ステップ62「ラッチ」において、XINCの値を
信号XLATに、またERRの値を信号PEにラッチす
ることにより、次のクロック・サイクルにおいて、前ク
ロック・サイクルに起きた事が示されるようにする。
【0063】次に、判断ステップ64「STEPY=1
?」において、Y軸方向に関するステップがあるかどう
か判定する。Y軸に関するステップがなければ、つぎに
制御ビット・プレイン24の記憶位置X,Yが更新され
る(X,Yはベクタ論理ユニット40の出力)。詳しく
は、ステップ66「フィル・プレインの記憶位置X,Y
のビットをセットする」において、フィル・プレイン4
6の記憶位置X,Yが、以下のフィル・プレイン関係式
から求められる値にセットされる。 FILL PLANE (X,Y) = FILL P
LANE (X,Y) XOR FILL この式を用いると、フィル・プレイン46の記憶位置
X,Yは、既にX,Yに記憶されていた値(フィル・プ
レインの全記憶位置の初期値は0である)と、既に求め
られていたFILLの値との排他的ORを取った値にセ
ットされる。ある実施例では、ポリゴン輪郭の垂直スパ
ンの始点もしくは終点(ただし最も右側の垂直スパンを
除く)を表す画素にあたる記憶位置が(例えば1に)セ
ットされる。
【0064】同様に、ステップ68「エッジ・プレイン
の記憶位置X,Yのビットをセットする」において、エ
ッジ・プレイン44の記憶位置X,Yが、以下のエッジ
・プレイン関係式から求められる値にセットされる。 EDGE PLANE (X,Y) = (EDGE
PLANE (X,Y) OR EDGE) AND
EVLD. エッジ・プレインの記憶位置X,Yに記憶されるべき値
は、既に求められていたEDGEの値と、現在エッジ・
プレインのX,Yに記憶されている値とのORを取り、
その結果と既に求められていたEVLDの値のANDを
取った値である。
【0065】さらに、ステップ70「YDIRプレイン
の記憶位置X,Yのビットをセットする」において、Y
DIRプレインの記憶位置X,Yが、上述の通りに計算
されたYDIRの値にセットされる。
【0066】制御プレインの記憶位置X,Yのビットが
セットされると、ステップ72「エッジの次の点」に進
み、以上の手続きを、エッジの次の点に関して繰り返
す。
【0067】判断ステップ64に話を戻すが、STEP
Yが1であり、Y軸に関するステップがあることを示し
ていれば、制御プレイン24の記憶位置X,Y+1がセ
ットされる。詳しくは、以下の式を用いて、フィル・プ
レイン46、エッジ・プレイン44、YDIRプレイン
42の記憶位置X,Yのビットがセットされる。 FILL PLANE (X,Y+1) = FILL
PLANE (X,Y+1) XOR FILL EDGE PLANE (X,Y+1) = (EDG
E PLANE (X,Y+1) OR EDGE)
AND EVLD. YDIR (X,Y+1) = YDIR これらの式は、記憶位置X,Yに関する式と同じもので
あり、X,YをX,Y+1で置き換えてある。各制御プ
レイン24の記憶位置X,Y+1のビットのセットに続
き、手続きの流れは、ステップ72「エッジの次の点」
へと進む。
【0068】フィル・プレイン46、エッジ・プレイン
44、YDIRプレイン42上でセットされる記憶位置
の一例を、図9〜11に示した。各図において、画素は
正方形79で表され、ポリゴン輪郭は、11個の水平画
素(1〜B)と7個の垂直画素(2〜8)で表されてい
る。フィル・プレイン上で1にセットされる位置につい
ては、図9では「F]を記してある。同様に、エッジ・
プレイン上で1にセットされる位置に関しては「E」を
記し、YDIRプレイン上の位置に関しては、「1」か
「0」を記してある。図10及び図11に示したよう
に、YDIRプレイン上で(0もしくは1に)セットさ
れた位置は、エッジ・プレイン上で1(つまりE)にセ
ットされた位置に対応している。
【0069】ここまで詳述したのが、本発明の描画技術
である。この描画技術の論理を実現する、一実施例のハ
ードウェアを、図12及び図13のブロック図を用いて
解説する。図12及び図13の読み易さのために、いく
つかの接続を描き込まず、入力線の名前を繰り返し記す
に止めている。例えば、マルチプレクサ102(図1
2)の出力はHLINEである。しかし、102からユ
ニット100(図13)へは信号線が引かれていない。
かわりに、入力信号線にHLINEとラベルしてある。
これは、図の理解を容易にするためである。
【0070】図12に示されるように、修正型ブレゼン
ハム・ベクタ・ジェネレータ36は、例として、初期化
ユニット80およびステッピング・ユニット82を含ん
でいる。各ユニットは、多数の信号の値を決定するため
に、複数の標準組み合わせ論理回路(ORゲート、AN
Dゲート、インバータ、コンパレータ等)で構成されて
いる。
【0071】初期化ユニット80は、入力として始点座
標(X1,Y1)と終点座標(X2,Y2)を受取り、既に
解説したX1、Y1、XGEY、SY、SX、dX、d
Y、INC1、INC2、ERR、DMAJ、XDC、
YDCと、以下で解説するENDPTとを出力する。
【0072】ENDPTはあるエッジの終点を表す。X
がメジャー軸の場合、ENDPTはX2と同じ値にセッ
トされ、それ以外の場合は、Y2の値にセットされる。
【0073】ステッピング・ユニット82は、X1
1、XGEY、SY、SX、ENDPT、INC1、
INC2、ERRを入力として受け取り、既に解説した
X、Y、ERR、PT1、LAST、XINCを生成す
る。これらの出力は、以下で説明するように、1個以上
の論理回路へ入力される。
【0074】ある実施例では、Yは、Y計算ユニット8
4への入力である。このユニットは、以下に説明する
が、STEPY計算ユニット88からY計算ユニットへ
入力されるSTEPYに基づいて、Yインクリメント
する。
【0075】また、ERRとXINCは、ラッチ86へ
の入力信号である。ラッチ86は、クロック・サイクル
毎に、ERR及びXINCの値をそれぞれ信号PE及び
XLATにラッチする。これにより、ERR及びXIN
Cの値が次のクロック・サイクルまで保存され、前クロ
ック・サイクルで起きた事を示すことができる。ラッチ
86の出力であるPEは、STEPY計算ユニット88
へ入力される。このユニット88へは、信号XGEY、
DMAJ、SYも入力される。PE、XGEY、DMA
J、SYを用いてSTEPYが計算される。この信号
は、エッジの上もしくは下側にある画素を得るのに、Y
軸方向にインクリメントされるかどうかを表す。
【0076】ラッチ86の2番目の出力XLATはBT
WN計算ユニット90へ入力される。このユニット90
へは、ERR及びDMAJも入力される。BTWN,D
MAJ,ERRを用いて、エッジが2個の画素の各中心
の間を通るかどうかを判定する。また、BTWNは、F
ILL計算ユニット92へ入力され、フィル制御プレイ
ンが塗りつぶされるべきかどうかを決定する。制御プレ
イン上で塗りつぶされる位置は、既述の通り、理想のエ
ッジ上もしくはその下側の最も近い画素に当てはまる。
ゆえに、BTWNの値は、そのエッジが2個の画素の各
中心の間を通るかどうかを示すので、役に立つ。
【0077】FILL計算ユニット92へは、信号VL
INE、PT1、XGEY、RIGHTも入力される。
VLINEは、初期化ユニット80からYの変化分dY
を入力として受け取るマルチプレクサ94の出力であ
る。Yの変化が0ならば、エッジは垂直である。図5の
流れ図を参照して説明したように、VLINE、PT
1、XGEY、RIGHTを用いてFILLが計算され
る。
【0078】RIGHTはRIGHT計算ユニット96
の出力である。このユニットは、ステッピング・ユニッ
ト82の出力PT1及びLASTと、初期化ユニット8
0の出力SXとを入力として受け取る。
【0079】ラッチ86の出力PEはCENTER計算
ユニット98へも入力される。このユニットの出力(C
ENTER)は、EDGE計算ユニット100へ渡され
る。ユニット100は、既述のようにEDGEの値を決
定するための論理回路を含んでいる。
【0080】EDGE計算ユニット100は、CENT
ERの他に、ステッピング・ユニット82の出力PT1
及びLAST、グラフィック・プロセッサ18の出力L
VEC、マルチプレクサ94の出力VLINE、マルチ
プレクサ102の出力HLINEを入力として受け取
る。図13に示すとおり、マルチプレクサ102への入
力はdYである。dYが0であれば、HLINEは1に
なる。
【0081】また、図13に示すとおり、EVLD計算
ユニット104は、入力として、PT1、LVEC(L
AST AND LVEC = LLV)、XDC、Y
DCを受け取る。ユニット104では、ORゲート、A
NDゲート、インバータ等を含む論理回路を用いて、出
力EVLDが生成される。
【0082】YDIR計算ユニット106を用いてYD
IRの値が求められる。ユニット106は、入力として
ラッチ108からの出力であるFV、FH、FSX、F
SY、ラッチ110からの出力であるPV,PH,PS
X,PSY、マルチプレクサ102及び94からの出力
であるVLINE及びHLINE、ステッピング・ユニ
ット82からの出力であるPT1、LAST、LVEC
を受け取る。既に説明済みのこれらの信号を用いて、エ
ッジ・プレイン上でセットされる各位置に関して、その
位置に当たる画素のY軸方向が求められる。
【0083】ラッチ108は、入力として、VLIN
E、HLINE、初期化ユニット80の出力であるS
X、SYを受け取る。FVECとPT1のANDを取っ
た値が1の場合は、VLINE、HLINE、SX、S
Yの値はラッチされる。この場合、VLINEはFV
へ、HLINEはFHへ、SXはFSXへ、FYはFS
Yへラッチされる。
【0084】ラッチ110への入力であるVLINE、
HLINE、SX、SYは、PT1が1の場合はラッチ
される。PT1が1の時、VLINEはPVへ、HLI
NEはPHへ、SXはPSXへSYはPSYへラッチさ
れる。
【0085】各制御プレイン(フィル制御プレイン4
6、エッジ制御プレイン44、Y軸方向制御プレイン4
2)を既述の通りに埋めた後、制御プレイン上に表され
たポリゴン輪郭の内部を、本発明の原理により塗りつぶ
す。ポリゴン輪郭の内部塗りつぶし技術について、図1
4を参照して詳述する。
【0086】図14を参照する。ステップ120「開
始」でポリゴン輪郭の内部の塗りつぶしが開始される
と、ステップ122「X=XMIN;END_X=XM
AX;END_Y=YMAX.]において、まず、複数
の信号が初期化される。例えば、信号Xは、ポリゴンの
最も小さいX座標を表すXMINと同じ値にセットされ
る。各々の始点及び終点座標が論理回路124(図1
5、コンパレータを含む)に入力され、各水平成分(X
成分)をXMINの値(XMINの初期値は、ポリゴン
輪郭の最初の水平成分にセットされている)と比較さ
れ、その水平成分のがXMINより小さい場合には、X
MINの値が水平成分の値としてセットされる。Xの値
の設定の他に、END_Xが、ポリゴン輪郭の最大のX
座標を表すXMAXの値にセットされる。XMAXは、
XMINと同様にして計算される。つまり、コンパレー
タ124は、入力される各水平成分をXMAXの値(X
MAXの初期値はポリゴン輪郭の最初の水平成分にセッ
トされている)と比較し、その水平線分がXMAXより
大きい場合は、XMAXの値がその水平成分の値として
セットされる。同様に信号END_Yは、ポリゴン輪郭
の最大のY座標を表すYMAXの値にセットされる。Y
MAXの計算は、X座標のかわりにY座標(垂直成分)
を比較する以外は、XMAXの計算方法と同じである。
【0087】さらに、ステップ126「FILL_ST
ATE=OFF;Y=YMIN;」において、フラグF
ILL_STATEがOFF(例えば0にセットされ
る)に初期化され、信号YはYMINの値にセットされ
る。YMINの計算は、垂直成分を比較する点以外は、
XMINの計算と同じである。ある1つのポリゴンの最
小のY成分がYMINである。XMIN、XMAX、Y
MIN、YMAXを用いて、ポリゴン輪郭の塗りつぶし
範囲を識別する。
【0088】図14において、次には、判断ステップ1
28「フィル・プレイン上で(X,Y)=ON?」にお
いて、フィル・プレイン46上の位置X,Yの値を1
(ON状態)にセットするかどうかの判定をする。輪郭
上の最も高い部分(つまり位置X,Yは、既にXMI
N、YMINにセットされている)の値が1にセットさ
れる場合は、ステップ130「FILL_STATE
を反転する」においてFILL_STATEフラグは
反転され(例として1にセットされる)、処理の制御
は、判断ステップ132へ渡される。
【0089】ステップ128に話を戻す。フィル・プレ
インの位置X,Yにおける値がOFF(0にセットされ
る)の場合、処理の制御は判断ステップ132「エッジ
・プレイン上で(X,Y)=ON?」に渡される。エッ
ジ・プレイン上の位置X,Yの値が0の場合、判断ステ
ップ134「FILL_STATE=ON?」におい
て、FILL_STATEフラグが1にセットされてい
るかどうかという、別の審査がなされる。FILL_S
TATEフラグが1であれば、ステップ136「画素を
塗りつぶす」において、位置X,Yの画素を塗りつぶ
す。その後、ステップ138「Y=Y+1」で、Yが1
だけインクリメントされ、判断ステップ140「Y>E
ND_Y?]で、ポリゴンの最大点に到達したかどうか
判定する。Yの値がEND_Yより大きくないならば、
ポリゴンの最大点にはまだ到達していないので、手続き
の制御はステップ128「フィル・プレイン上で(X,
Y)=ON?」に移る。
【0090】判断ステップ140に話を戻す。YがEN
D_Yより大きい場合、その垂直スパンは終了し、、ス
テップ142「X=X+1」において、Xの値を1だけ
インクリメントする。Xのインクリメント後、判断ステ
ップ「X>END_X?」において、スパンされるべき
垂直スパンがまだ残っているかどうかを判定する。Xが
END_Xより大きいならば、全ての垂直スパンはスパ
ンされており、ポリゴン輪郭は塗りつぶされているので
ステップ146「END」へ進む。XがEND_Xに等
しいかそれより小さい場合は、処理の流れは、ステップ
126へ移る。
【0091】判断ステップ134に話を戻す。FILL
_STATEフラグが0の場合は、ステップ148「画
素を塗りつぶさない」へ移り、ディスプレイ装置上の位
置X,Yの画素は塗りつぶされない(X,Yの位置の値
は0)。
【0092】判断ステップ132に話を戻す。エッジ・
プレイン上の位置X,Yの値が1の場合、YDIRプレ
イン上の位置X,Yの値と信号ORIENT(後述)と
の排他的ORの結果が1になり、方向がポリゴン輪郭の
向きに対して正しいことを示しているかどうか(方向が
時計回りか反時計回りか)を、判断ステップ150「Y
DIR(X,Y) XOR ORIENT = TRU
E?」で判定する。この排他的ORの結果が0になれ
ば、ステップ148「画素を塗りつぶさない」へ進み、
その画素は塗りつぶされない。また、排他的ORの結果
が1ならば、ステップ136「画素を塗りつぶす」に進
み、画素が塗りつぶされる。この後、処理の流れは、ス
テップ148もしくはステップ136から、既述の通
り、先へ進む。
【0093】上述の判断で用いられる信号ORIENT
は、ポリゴン輪郭が時計回りに描画されるか反時計回り
に描画されるかを示す。これは、例えば、回路124に
より判定される。判定には、以下の式を用いる。
【0094】
【数2】
【0095】ここで(X,Y)は、あるエッジの始点で
あり、(dX,dY)はそれぞれX及びYのエッジに沿
った変化分である。この式は、交差積を用いてポリゴン
輪郭の面積を計算する。また、その結果の符号に基づい
て、ポリゴンの描画される向き(時計回りか反時計回り
か)について判定をする。
【0096】上述の式を用いて、図16に示した四角形
の面積を計算する例を示す:第1のエッジは始点が0、
4で、終点が4、4である(・は積を表す)。 A1 = X・dY − Y・dX A1 = 0・0 − 4・4 A1 = −16 第2のエッジは、始点が4、4で、終点が4、2であ
る。 A2 = X・dY − Y・dX A2 = 4・−2 − 4・0 A2 = −8 第3のエッジは、始点が4、2で、終点が0、2であ
る。 A3 = X・dY − Y・dX A3 = 4・0 − 2・−4 A3 = 8 第4のエッジは、始点が0、2で、終点が0、4であ
る。 A4 = X・dY − Y・dX A4 = 0・2 − 2・0 A4 = 0 これら4つの結果の合計(A1+A2+A3+A4)は−1
6(−16+(−8)+8+0=−16)であり、その
絶対値はポリゴン輪郭の内部面積の2倍に等しい。ま
た、計算結果の符号が負であるので、ポリゴンの描画方
向は反時計回り(ORIENT=1)である。符号が正
ならば、ポリゴンの描画方向は時計回り(ORIENT
=0)になる。
【0097】図17を参照して、本発明の塗りつぶし技
術用ハードウェアの一実施例を説明する。スパン座標ジ
ェネレータ152を用いて、X,Y座標を生成する。標
準論理回路を含むスパン座標ジェネレータ152は、入
力としてXMAX,XMIN,YMAX、YMINを受
け取り、それらから、X及びYを生成する。続いてこの
X及びYが制御プレインユニット154へ入力される。
詳しくは、制御プレイン・ユニット154中のフィル・
プレイン46の位置X,Yの値と、前回のFILL_S
TATEを示すラッチ156(ラッチ156は、0に初
期化される)の出力との排他的OR(参照番号155)
を取る。XOR155の出力は、ラッチ156へ入力さ
れ、XOR155の値が次のクロック・サイクルで使用
できるようにしている。
【0098】また、XOR155の出力は、ANDゲー
ト158へ入力される。ANDゲート158へは、エッ
ジ・プレイン上の位置X,Yの値の反転値も入力され
る。つまり、エッジ・プレイン上の位置X,Yの値が0
ならば、ANDゲート158の出力は、XOR155の
出力値になる。ANDゲート158の出力は、ORゲー
ト160へ渡される。
【0099】ORゲート160へは、ANDゲート16
2の出力も入力される。ANDゲート162には、エッ
ジ・プレイン上の位置X,Yの値と、XOR164の出
力とが入力される。XOR164は、入力として、既述
のORIENTの値と、YDIRプレイン上の位置X,
Yの値とを受け取る。ORゲート160の出力は、次の
条件のいずれかが成り立つ場合、1になり、位置X,Y
の画素が塗りつぶされることを示す: (a) エッジ制御プレイン及びYDIRプレイン上の
位置X,Yのビットが1で、かつ描画方向が時計回りの
場合。 (b) エッジ制御プレイン上の位置X,Yのビットが
1で、かつYDIRプレイン上の位置X,Yのビットが
0で、かつ描画方向が反時計回りの場合。 (c) エッジ制御プレイン上の位置X,Yのビットが
0で、かつFILL_STATEの指示子が1である場
合。
【0100】図18に、本発明の方式により塗りつぶさ
れたポリゴン輪郭の例を示す。図に示すとおり、X W
indow EvenOdd規約に応じて、エッジ上も
しくはエッジの下側、もしくはエッジの右側の画素のみ
が塗りつぶされている。本発明の原理により、最も右側
の画素と、各垂直スパンの最後の画素とは、塗りつぶさ
れていない。
【0101】本発明による、上述のポリゴン輪郭内部の
塗りつぶし技術を用いると、ポリゴン輪郭を垂直スパン
を用いて塗りつぶす。フィル制御ビットが1で、FIL
L_STATEフラグが1であるような垂直スパンの各
画素について、塗りつぶしが開始される。フィル制御プ
レイン46上で1にセットされた別の画素にぶつかるま
では、その垂直スパン上の各画素について塗りつぶしを
続ける。プレイン46上で(同一の垂直スパン上で)値
が1である別の位置に到達すると、塗りつぶしを中止
し、値が1である画素は塗りつぶされない。また、FI
LL_STATEフラグは0にセットされる。
【0102】本発明による、上述の描画及び塗りつぶし
技術を用いると、ポリゴン輪郭を、X EvenOdd
規約に従って描画し塗りつぶす。塗りつぶしは、ハード
ウェアで実現する垂直スパン方式によりなされる。
【0103】ここでは幾つかの好ましい実施例について
説明したが、本発明の範囲内で、さらに様々な修正、付
加、置換等が可能であることは、関連分野の技術者にと
って自明のことであろう。
【0104】
【発明の効果】本発明により、垂直スパン・アーキテク
チャを用いることができ、しかもXEvenOdd規約
を満たす描画・塗りつぶし技術がハードウェアで実現さ
れる。
【図面の簡単な説明】
【図1】本発明の描画及び内部塗りつぶし技術を組み込
んだコンピュータ・グラフィック・システムの実施例の
ブロック図である。
【図2】ポリゴン輪郭の例。
【図3】図1に示した、本発明の描画及び内部塗りつぶ
し技術で使用されるグラフィック・プロセッサのハード
ウェアのブロック図である。
【図4】本発明で用いられるブレゼンハム・エラー値の
例である。
【図5】本発明のポリゴン輪郭描画技術の論理の流れ図
の一例である。
【図6】本発明の原理により定めた、エッジの終点にお
けるY方向のいろいろな例である。
【図7】エッジが水平の場合、本発明の原理により定め
た、終点におけるY方向のいろいろな例である。
【図8】エッジが垂直の場合、本発明の原理により定め
た、終点におけるY方向のいろいろな例である。
【図9】本発明の原理により、フィル制御プレイン上で
塗りつぶされる位置の例を示している。
【図10】本発明の原理により、エッジ制御プレイン上
で塗りつぶされる位置の例を示している。
【図11】本発明の原理により、YDIRプレイン上で
塗りつぶされる位置の例を示している。
【図12】図5に示したポリゴン描画技術で使用される
ハードウェアの実施例の1つのブロック図である。
【図13】図5に示したポリゴン描画技術で使用される
ハードウェアの実施例の1つのブロック図である。
【図14】本発明による塗りつぶし技術の例の論理の流
れ図である。
【図15】本発明により、塗りつぶし範囲と描画の向き
とを決定するのに使用されるハードウェア回路の例であ
る。
【図16】本発明による描画の向きの決定を説明するた
めの、ポリゴン輪郭の例である。
【図17】本発明による塗りつぶし技術に用いるハード
ウェアの一例である。
【図18】本発明の技術とX EvenOdd規約を用
いて塗りつぶされたポリゴン輪郭である。
【符号の説明】
12 ホスト・プロセッサ 14 グラフィック・アダプタ 16 システム・バス 18 グラフィック・プロセッサ 20 バス・インタフェース 22 フレーム・バッファ 24 制御プレイン 26 ディスプレイ・モニタ 30 ポリゴン輪郭 32 エッジ 34 画素 36 修正型ブレゼンハム・ベクタ・ジェネレータ 38 論理ユニット 40 ベクタ論理ユニット 42 YDIR制御プレイン 44 エッジ制御プレイン 46 フィル制御プレイン 80 初期化ユニット 82 ステッピング・ユニット 84 Y計算ユニット 86、108、110 ラッチ 88 STEPY計算ユニット 90 BTWN計算ユニット 92 FILL計算ユニット 94、102 マルチプレクサ 96 RIGHT計算ユニット 98 CENTER計算ユニット 100 EDGE計算ユニット 104 EVLD計算ユニット 106 YDIR計算ユニット 152 スパン座標ジェネレータ 154 制御プレインユニット 155、164 XORゲート 156 ラッチ 158、162 ANDゲート 160 ORゲート

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】それぞれ1個以上の画素で表される1個以
    上のエッジで構成されると共に、N個の垂直スパンを有
    し且つ該N個の垂直スパンの各々に始点および終点があ
    るポリゴン輪郭を、グラフィック・プロセッサにおいて
    描画する方法であって、 第1プレイン上で、N−1個の垂直スパンの各々の始点
    及び終点を表す画素に対応する位置のビットを、第1の
    値に設定するステップと、 第2プレイン上で、前記ポリゴン輪郭の各斜線エッジ上
    に中心が乗るような画素に対応する位置のビットと、
    記1個以上のエッジの各々の始点上に中心が乗るような
    画素に対応する位置のビットとを前記第1の値に設定す
    るステップと、 前記第2プレイン上で前記第1の値に設定されたビット
    の各々について、Y軸に関する方向を決定するステップ
    と、 第3プレイン上で、前記第2プレイン上で設定されたビ
    ットに対応する位置のビットを設定するにあたり、前記
    方向決定ステップで前記第2プレイン上の設定されたビ
    ットの方向が第1の方向であることが示された場合には
    ビットを前記第1の値に設定し、前記方向決定ステップ
    で前記第2プレイン上の設定されたビットの方向が第2
    の方向であることが示された場合にはビットを第2の値
    に設定するステップとを有する、 描画方法。
  2. 【請求項2】描画された前記ポリゴン輪郭の内部を塗り
    つぶすために(a) 塗りつぶしを開始する位置を決定するステップ
    (b) 前記第1の値が前記第2プレイン上の前記の位
    置に記憶されているかどうかを判定するステップと(c) 前記第1の値が前記第2プレイン上の前記の位
    置に記憶されている場合、描画の向きが時計回りである
    か反時計回りであるかを判定するステップと(d) 前記第1の値が前記第3プレイン上の前記の位
    置に記憶されているか どうかを判定するステップと(e) 前記描画の向きが時計回りで、かつ前記第1の
    値が前記第3プレインの前記の位置に記憶されている場
    合、前記画素を塗りつぶすステップと(f) 前記描画の向きが反時計回りで、かつ前記第1
    の値が前記第3プレインの前記の位置に記憶されていな
    い場合、前記画素を塗りつぶすステップとをさらに含
    、 請求項1に記載の描画方法。
  3. 【請求項3】描画された前記ポリゴン輪郭の内部を塗り
    つぶすために(a) 塗りつぶしを開始する位置を決定するステップ
    (b) 塗りつぶし指示子が第1の値に等しいかどうか
    を判定するステップと(c) 前記塗りつぶし指示子が前記第1の値に等し
    く、かつ該第1の値が前記第2プレイン上の前記の位置
    に記憶されていない場合、前記の画素を塗りつぶすステ
    ップとをさらに含む 、 請求項に記載の描画方法。
  4. 【請求項4】それぞれ1個以上の画素で表される1個以
    上のエッジで構成されると共に、N個の垂直スパンを有
    し且つ該N個の垂直スパンの各々に始点および終点があ
    るポリゴン輪郭を、グラフィック・プロセッサにおいて
    描画するシステムであって第1プレイン上で、N−1個の垂直スパンの各々の始点
    及び終点を表す画素に対応する位置のビットを、第1の
    値に設定する手段と第2プレイン上で、前記ポリゴン輪郭の各斜線エッジ上
    に中心が乗るような画素に対応する位置のビットと、前
    記1個以上のエッジの各々の始点上に中心が乗るような
    画素に対応する位置のビットとを前記第1の値に設定す
    る手段と前記第2プレイン上で前記第1の値に設定されたビット
    の各々について、Y軸に関する方向を決定する手段と第3プレイン上で、前記第2プレイン上で設定されたビ
    ットに対応する位置の ビットを設定するにあたり、前記
    方向決定手段で前記第2プレイン上の設定されたビット
    の方向が第1の方向であることが示された場合にはビッ
    トを前記第1の値に設定し、前記方向決定手段で前記第
    2プレイン上の設定されたビットの方向が第2の方向で
    あることが示された場合にはビットを第2の値に設定す
    る手段とを有する描画システム
  5. 【請求項5】描画された前記ポリゴン輪郭の内部を塗り
    つぶすために塗りつぶしを開始する位置を決定する手段と前記第1の値が前記第2プレイン上の前記の位置に記憶
    されているかどうかを判定する手段と前記第1の値が前記第2プレイン上の前記の位置に記憶
    されている場合、描画の向きが時計回りであるか反時計
    回りであるかを判定する手段と前記第1の値が前記第3プレイン上の前記の位置に記憶
    されているかどうかを判定する手段と前記描画の向きが時計回りで、かつ前記第1の値が前記
    第3プレインの前記の位置に記憶されている場合、前記
    画素を塗りつぶす手段と前記描画の向きが反時計回りで、かつ前記第1の値が前
    記第3プレインの前記の位置に記憶されていない場合、
    前記画素を塗りつぶす手段とをさらに含む請求項4に記載のシステム
  6. 【請求項6】描画された前記ポリゴン輪郭の内部を塗り
    つぶすために塗りつぶしを開始する位置を決定する手段と塗りつぶし指示子が第1の値に等しいかどうかを判定す
    る手段と前記塗りつぶし指示子が前記第1の値に等しく、かつ該
    第1の値が前記第2プレイン上の前記の位置に記憶され
    ていない場合、前記の画素を塗りつぶす手段とをさらに
    含む請求項4に記載のシステム
JP5221062A 1992-10-16 1993-09-06 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム Expired - Fee Related JP2637905B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/962,441 US5371843A (en) 1992-10-16 1992-10-16 Method and system for filling non-complex polygons using vertical spans
US962441 1997-10-31

Publications (2)

Publication Number Publication Date
JPH06195470A JPH06195470A (ja) 1994-07-15
JP2637905B2 true JP2637905B2 (ja) 1997-08-06

Family

ID=25505877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5221062A Expired - Fee Related JP2637905B2 (ja) 1992-10-16 1993-09-06 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム

Country Status (2)

Country Link
US (1) US5371843A (ja)
JP (1) JP2637905B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2625612B2 (ja) * 1992-07-20 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 画像処理方法および画像処理装置
US5657436A (en) * 1995-06-08 1997-08-12 Hewlett-Packard Company Preprocessing apparatus and method for line scan conversion in a computer graphics system
DE69630261T2 (de) * 1995-06-30 2004-08-05 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481594A (en) * 1982-01-18 1984-11-06 Honeywell Information Systems Inc. Method and apparatus for filling polygons displayed by a raster graphic system
JPS5971093A (ja) * 1982-10-18 1984-04-21 株式会社日立製作所 塗潰し図形発生装置
US4586036A (en) * 1983-02-28 1986-04-29 Advanced Computer Concepts, Inc. Graphics display systems
JPS61249175A (ja) * 1985-04-24 1986-11-06 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 図形処理装置
JPS62192878A (ja) * 1986-02-20 1987-08-24 Nippon Gakki Seizo Kk 多角形の塗りつぶし方法
US4815009A (en) * 1987-04-21 1989-03-21 Xerox Corporation Algorithm for filling an image outline
US4962468A (en) * 1987-12-09 1990-10-09 International Business Machines Corporation System and method for utilizing fast polygon fill routines in a graphics display system
US5028848A (en) * 1988-06-27 1991-07-02 Hewlett-Packard Company Tile vector to raster conversion method
US5016189A (en) * 1988-07-06 1991-05-14 Ricoh Company, Ltd. Area filling device
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
JPH06195470A (ja) 1994-07-15
US5371843A (en) 1994-12-06

Similar Documents

Publication Publication Date Title
US4975976A (en) Image transformation method and device
EP0356103B1 (en) Scan-conversion process and processor
JPH0535913B2 (ja)
US5193145A (en) Method and apparatus for producing a visually improved image in a computer system
JP3675488B2 (ja) 線形補間を用いて非同次2次遠近テクスチャマッピング座標を決定する回路
EP0568358B1 (en) Method and apparatus for filling an image
JPH0916806A (ja) 立体画像処理装置
JP3332165B2 (ja) 画像処理装置
US6496160B1 (en) Stroke to raster converter system
JPH0927045A (ja) 画像処理装置
JP2637905B2 (ja) 垂直スパンを用いてポリゴン輪郭を描画する方法及びシステム
KR100305461B1 (ko) 그래픽처리장치
JP2763481B2 (ja) 画像合成装置及び画像合成方法
US5670981A (en) Method for mapping a source pixel image to a destination pixel space
JPH07105404A (ja) 立体画像処理装置及びその処理方法
JP3344675B2 (ja) 立体画像処理装置
JP3129717B2 (ja) 画像処理装置および画像処理方法
JP3493745B2 (ja) 図形描画装置
JP2748798B2 (ja) 3次元画像生成装置
US5305431A (en) Method and system for rendering polygons on a raster display
JP2610825B2 (ja) 図形処理装置
JPH06231261A (ja) 折線近似によりパラメトリックトリミング曲線を表示する方法およびグラフィック表示システム
JPH0350686A (ja) 図形処理方式
JPH06348859A (ja) 立体画像処理装置
JP2794446B2 (ja) エレメント別に文字を構成したアウトラインフォントの塗りつぶし方法および装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees