JPH03139782A - 凹ポリゴン描出方法及びプロセツサ - Google Patents

凹ポリゴン描出方法及びプロセツサ

Info

Publication number
JPH03139782A
JPH03139782A JP2266604A JP26660490A JPH03139782A JP H03139782 A JPH03139782 A JP H03139782A JP 2266604 A JP2266604 A JP 2266604A JP 26660490 A JP26660490 A JP 26660490A JP H03139782 A JPH03139782 A JP H03139782A
Authority
JP
Japan
Prior art keywords
buffer
polygon
edge
pixels
mask
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
JP2266604A
Other languages
English (en)
Other versions
JPH0760465B2 (ja
Inventor
Jorge Gonzalez-Lopez
ジヨージ・ゴンザレス・ロペス
Spencer Houghton Robert
ロバート・スペンサー・ホートン
Thomas P Lanzoni
トーマス・ポール・ランゾニイ
Jr William L Luken
ウイリアム・ルイス・ルーケン、ジユニア
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 JPH03139782A publication Critical patent/JPH03139782A/ja
Publication of JPH0760465B2 publication Critical patent/JPH0760465B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] 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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は総括的にコンピュータ・グラフィックス表示シ
ステムに関し、詳細にいえば、表示モニタに表示すべき
複数のラインの各々に対る、個々のピクセルを記憶る、
ためのフレーム・バッファを含むグラフィックス表示手
段に対して、凹(。oncave)ポリゴン、セルフ・
インターセフティング・ポリゴン及び多角形孔を存る、
ポリゴンの1つを描くための改善された方法及びプロセ
ッサに関る、。
B、従来の技術及びその課題 周知のように、コンピュータ・グラフィックス表示シス
テムは、ラスク操作ディスプレイ装置上にグラフィック
・イメージを生成し、表示る、コンピュータ・システム
である。このようなグラフィック・イメージはシステム
のメモリに記憶さ8 れているディジタル・データから導かれる。データは通
常、2次元または3次元座標系の点の形で記憶されてお
り、点は三角形などのポリゴンの頂点に対応している。
ポリゴンは最終的な表示オブジェクトである大きなオブ
ジェクトの「建築ブロック」を形成る、。頂点データに
はパラメータ値、すなわち輝度、あるいは表面色、表面
反射率、透明度、光源、法線ベクトルなどの輝度の計算
を可能とる、その他の値も記憶されている。
所与のオブジェクトについて、このデータは「ディスプ
レイ・リスト」と呼ばれる命令のリストの形で記憶され
る。このようなディスプレイ・リストを、ラスク走査デ
ィスプレイ装置上の実際のイメージに変換る、ために、
メモリからリストを読み取り、データを処理し、次いで
生のピクセル・データをフレーム・バッファに書き込む
ディスプレイ・プロセッサを設ける。ラスク操作時に、
リアル・タイムで、フレーム・バッファが読み取られ、
結果として得られるデータ・ストリームは・アナログ・
ビデオ信号に変換され、このビデオ信号はディスプレイ
装置に送られる。
本発明はこのようなコンピュータ・グラフィックス・シ
ステムのディスプレイ・プロセッサ部に設けられる機能
に関る、。詳細にいえば、本発明は表示された三角形の
すべてのピクセル値に対る、第3のパラメータ値に対応
る、データを、ピクセルの位置、及び第3のパラメータ
に関連した他のデータに基づいて生成る、ことに関る、
。たとえば、いわゆるシェーディング問題においては、
所与の三角形のシェーディング情報が、三角形の頂点の
光度の形でディスプレイ・プロセッサに与えられる。あ
るいは、ディスプレイ・プロセッサに、オブジェクト表
面、表面の向き、及び指定の光モデルのパラメータを与
えることもできる。ディスプレイ・プロセッサはこの場
合、三角形に関連る、各ピクセルについて、与えられた
値に基づいて光度の値を計算しなければならない。
シェードの付けられるポリゴンが凹ポリゴン、セルフ・
インターセフティング・ポリゴンまたは多角形孔を有る
、ポリゴン(以下、「凹ポリゴン」と総称る、)を包含
している、シェーディング問題の特別な場合が存在る、
。凹ポリゴンのシェーディングの問題は2つの主要な方
法、すなわち(1)ポリゴンの凸形部分への分解、及び
(2)走査線アルゴリズムの使用で処理されていた。
第1の手法において、分解されたポリゴンを定義る、各
凸形部分には、独立してシェードが付けられる。この手
法はrTrianHulating a Simple
PolygonJ N L R,Garey et a
l、)InformationProcessing 
1etters)(June 1978) )pp、 
175−179に記載されている。他の例がrSurf
 aceTriangulation for Pic
ture ProductionJ N byB、 V
ordenweberllEEE CG&A (Nov
ember、 1983)pp、 45−51 に記載
されている。この手法の主な欠点は、特に分解プロシー
ジャにおいて、付加的な頂点が導入されない場合に、処
理時間の増加によってシステム・パフォーマンスが低下
る、ことである。付加的な頂点の生成を認めた場合、頂
点の数に対る、線形時間挙動が得られる。しかしながら
、処理はこれでも時間のかかるものである。この別21 の手法の例は、rA Linear−Time A1g
orithn+ forTriangulating 
Simple PolygonsJ s by R,E
Tarjan and C,J、  Van Wyk、
  PROCEighteenthAnnual  A
CM Symposium on Theory of
 Computing(1986) pp、 380−
388で検討されている。また、オリジナルのポリゴン
のエツジが2つまたは3つの部分に分割される場合には
、付加的な頂点の導入は避けなければならない。丸めの
誤差によって、部分の線方程式は、オリジナルのエツジ
の方程式とは異なってくる。このことはアプリケーショ
ンがこれを描くことを選択した場合に、オリジナルのポ
リゴンのエツジと合致る、線の可視性に問題を引き起こ
す。
走査線アルゴリズムを使用る、、凹ポリゴンにシェード
を付ける第2の手法は、rFundamentalso
f Interactive Computer Gr
aphicsJ z by J、 D。
Foley and A、 Van Damlat p
p、 456−460 (1985)で説明されている
。この手法の主な欠点は、エツジ・リストの分類、及び
シェードの付けられるポリゴンの各スパンに対る、勾配
(dZ/dX1d22− R/dX、dG/dX1dB/dX)の計算に付加的な
時間が必要なことである。
本発明は従来の凹ポリゴン処理手法に付随る、上述のパ
フォーマンスの問題を解決る、ようになされており、凸
ポリゴンを処理る、ためにすでに標準となっている多く
のハードウェアをを利に使用る、、凹ポリゴンの描出(
すなわち、塗りつぶしやシェーディング)手法を提供る
、。
C0課題を解決る、ための手段 簡単にいえば、ディスプレイ・モニタに表示すべき複数
の線の各々に対る、個々のピクセルを記憶る、ためのフ
レーム・バッファを含む、ディスプレイ・プロセッサ及
びディスプレイ装置を有る、コンピュータ・グラフィッ
クス・ディスプレイ・システムにおいて、本発明は広い
意味で、フレーム・バッファ内の凹ポリゴンを描出る、
方法を提供る、。フレーム・バッファは通常、複数個の
アドレス可能なM×Nの構成(constituent
)  ピクセル・ブロックに編成され、本方法は複数個
のアドレス可能なM×Nの構成ピクセルで構成されたマ
スク・バッファを使用る、。本方法はポリゴンの境界に
対応る、マスク・バッファ内のピクセルをマツプし、ポ
リゴンの境界に対応る、フレーム・バッファ内のピクセ
ルを描くステップと、ポリゴンの内部に対応る、マスク
・バッファ内のピクセルをマスクる、とともに、ポリゴ
ンの境界に対応る、マスクされたピクセルをマスク・バ
ッファ内に保存る、ステップと、ポリゴンの内部に対応
る、フレーム・バッファ内のピクセルを、マスク・バッ
ファ内のマスクされたポリゴン内部のピクセルを参照し
て描くステップからなる。
特定な実施例において、ディスプレイ・プロセッサは個
々のピクセルのZ値を記憶る、ためのデプス・バッファ
を含んでおり、このバッファは複数個のアドレス可能な
M×Nの構成ピクセル・ブロックで構成されている。本
方法はさらに、ポリゴンの境界に対応る、ピクセルにお
ける該当る、Z値を、デプス・バッファに記憶る、ステ
ップと、前記ポリゴンの内部に対応る、ピクセルにおけ
るデプス・バッファ内の2値を、マスク・バッファ内の
マスクされたポリゴンの内部のピクセルを参照して記憶
る、ステップを含んでいる。
さらに、本方法はポリゴンを一連の三角形に分割(te
ssellate)  L/、分解されたポリゴンを定
義る、三角形の各々の向きを判定し、各三角形の内部に
対応る、マスク・バッファ内のピクセルを処理して、同
じ向きの隣接した三角形の内部ピクセルをマスクる、と
ともに、異なる向きの隣接した三角形の内部ピクセルを
三角形の重畳領域内でマスクしないようにる、ことを含
むことが好ましい。
概要を述べたマスキング、描出、及び記憶の各ステップ
を実現る、詳細なアルゴリズムが提供される。
他の実施例において、本発明は上述の方法を実現る、デ
ィスプレイ・プロセッサからなる。プロセッサはコント
ローラ、コントローラから信号を受け取るように接続さ
れたエツジ/トライアングル生成手段、生成手段から信
号を受け取るよケに接続された第1組合せ論理手段、複
数個のM×Nの構成ピクセルで構成されたマスク・バッ
ファ、25− 第1組合せ論理手段からのピクセル値及び生成手段から
のアドレス信号を受け取るように接続され、プロセッサ
によって使用されて、マスク・バッファ内にポリゴンの
境界及びポリゴンの内部のマスクラ形成る、マスク・バ
ッファ、ならびに生成手段からのアドレス信号及びマス
ク・バッファからのピクセル値を受け取るように接続さ
れた第2組合せ論理手段とを含んでいる。信号及びピク
セル値の入力に応じて、第2組合せ論理手段は処理され
る各X1Yアドレスに対し、エツジ信号及び塗りつぶし
信号の一方を発生る、。エツジ信号はポリゴンの境界ピ
クセルに対応しており、塗りつぶし信号はポリゴンの内
部ピクセルに対応している。
信号はフレーム・バッファに送られる。
D、実施例 簡単に上述したように、本発明はポリゴンの座標、及び
その頂点にこれらの対応る、輝度(すなわち、主に、た
とえば赤緑青(RGB)系を使用した、カラー)を与え
たポリゴンを描出る、(すなわち、塗りつぶしまたはシ
ェーディングを行な26 う)改善された方法及びプロセッサを提供る、。
本発明は特に、凹ポリゴンの処理を特徴とる、特に断ら
ない限り、本明細書で使用る、「凹ポリゴン」とは、セ
ルフ・インターセフティング・ポリゴン及び多角形孔を
有る、ポリゴンを含むものである。本発明のすべての実
施例において、ポリゴンの境界及び内部のカラーは異な
ることができる。さらに、拡張された実施例においては
、ポリゴンの境界を記述る、線は、たとえば、点線、破
線などの形式とる、ことができる。
まず、第1図には、総括的にIOで示されているマスク
・グラフィック、ディスプレイ・システムのいくつかの
主要構成部品が示されている。システム10はホスト・
インターフェース12、システム・メモリ14、システ
ム制御プロセッサ16、ディスプレイ・プロセッサ18
、I10デバイス2012つのフレーム・バッファ22
a及び22b1ならびにモニタ24を含んでいる。これ
らの構成部品の各々は、IBM5080などの市販コン
ピュータ・グラフィックス・ディスプレイ・システムの
要素によって実現できる。簡単にいうと、メモリ14、
プロセッサ16及び18、ならびに■10デバイス20
はシステム・バス13を介して互いに通信を行ない、ま
たシリアル・ホスト・インターフェース12を介してホ
スト・コンピュータ(図示せず)と通信を行なう。シス
テム制御プロセッサ16は、グラフィックス・システム
10のマスク・コントローラを有している汎用プロセッ
サである。プロセッサ16は接続されたすべてのグラフ
ィックスI10デバイス20にサービスを行ない、関連
る、処理をディスプレイ・プロセッサ18と整合させ、
かつインターフェース12を介してホスト・コンピュー
タとインターフェースる、。ディスプレイ・プロセッサ
18はシステム・メモリ14に常駐る、ディスプレイ・
プログラムのグラフィックス命令を実行る、ものであり
、主としてディスプレイ・モニタ24に現れるイメージ
の生成にかかわっている。ディスプレイ・プロセッサ1
8は部分的に、モニタ24に表示されるオブジェクトを
表すポリゴンやポリラインなどの幾何学的プリミティブ
を作成る、機能を果たす。ディスプレイ・プロセッサは
システム・バス13を介して、メモリ14から基本プリ
ミティブを読み取り、フレーム・バッファ・バス15に
よって、フレーム・バッファーA  22a及びフレー
ム・バッファーB  22b内に希望る、画素を生成る
、。フレーム・バッファは通常2重になっており、これ
によって一方に描画プロセッサによって書き込みを行な
いながら、他方をモニタによって表示る、ことが可能と
なる。本発明を構成る、方法及びシステムは主として、
システム10のディスプレイ・プロセッサ18内で実現
される。
標準的なハードワイヤード・トライアングル・ジェネレ
ータを使用してポリゴンを塗りつぶすように構成された
本発明の第1の基本実施例を、第2図に示す。(本実施
例に関連して使用る、場合、「凹ポリゴン」という用語
の定義は、多角形孔を存る、ポリゴンを除くものとみな
される。)本実施例の利点は、ポリゴンのシェーディン
グ(後述)に使用されるものと同じトライアングル・ジ
ェネ29− レータを使用る、ことであり、したがって、シェーディ
ング及び塗りつぶし両方の機能を、同一のハードウェア
に統合る、ことができる。図示のように、プロセッサ1
8はコントローラ301エツジ/トライアングル・ジェ
ネレータ32、第1組合せ論理回路34、第2組合せ論
理回路36、及びマスク・バッファ38を含んでいる。
コントローラ30はμプロセッサであって、システム・
メモリに記憶されている命令リストの読取り解釈を行な
い、幾何学的変換を計算し、かつクリッピング、ライテ
ィング及びデプス・キューイングなどの他の操作を行な
う。エツジ/トライアングル・ジェネレータ32はコン
トローラ30によって設定された操作モードに応じて、
エツジ・ジェネレータまたはトライアングル・ジェネレ
ータのいずれかとして機能る、。3つの操作信号、すな
わち現在の信号がポリゴンの有効なピクセルからなって
いることをrVALIDJ  (エツジまたはトライア
ングル生成モードのいずれか)、ポリゴンを部分的に定
義る、三角形(以下の説明参照)の向きの信号を0 出す「○RI ENTJ 、及びジェネレータ32がエ
ツジ生成モードにあるときに活動状態となるrEDGE
Jが、ジェネレータ32から出力される。エツジ生成モ
ードにおいて、ジェネレータ32はポリゴンの2つの頂
点を接続る、ベクトルの点のアドレスのシーケンスを生
成る、。このモードにおいて、信号VALIDはアドレ
ス線31がエツジ・ピクセルの実際のアドレスを含んで
いることを示す。また、エツジ生成モードにおいて、信
号EDGEは活動状態であり、信号ORIENTは非活
動状態である。
トライアングル生成モードにおいて、ジェネレータ32
は三角形の頂点のX及びY座標を受け取り、三角形を定
義る、ピクセルのアドレスのシーケンスを生成る、。(
4つ以上の辺を宵る、ポリゴンの頂点を処理る、場合、
周知技術においては、頂点は一般に系統的な順序で、−
度に3つの頂点を組合せて処理されるので、システムは
複雑なポリゴンではなく、単純な三角形を処理る、こと
になる。)トライアングル生成モードにおいて、信号V
ALIDはアドレス線31が、三角形のピクセルの実際
のアドレスを含むことを示す。信号EDGEはトライア
ングル生成モードになったときると非活動状態となり、
信号ORI ENTは現在の三角形の向きを示す。OR
IENT信号は次のように定義される。
ViVj X ViVk ≧OO)場合、ORIENT
 = ’+’  (1)Vivj X ViVk < 
0 (D場合、ORIENT = ’−’  (2)V
iVjは頂点Viから頂点Vjへのベクトルであり、V
 i V kは頂点ViからVkへのベクトルであり、
×はクロス乗積演算である。ORIENTは所与の三角
形に対る、定数である。
上述のように、コントローラ30はシステム・メモリに
記憶されている命令リスト内のポリゴン塗りつぶしコマ
ンドを解釈し、トライアングル・ジェネレータ32に、
ポリゴンの頂点のXおよびYの座標を供給る、。Pl、
P21.、、、PNをN辺のポリゴンの頂点とした場合
、コントローラ30はエツジ・モードになったときに、
ポリゴンの辺(PL−P2、P2−P31.、、、P(
N−1)−PN)を描くよう命令る、。トライアングル
・モードになったときに、コントローラ30は次のよう
に、ポリゴンを一連の三角形に分割る、。第1の三角形
はPi、P2及びP3によって与えられ、第2の三角形
はPL、P3及びP4によって与えられ、最後の三角形
はPL、PN−1及びPNによって与えられる。コント
ローラ30はジェネレータ32に、三角形ごとに該当る
、頂点のデータをロードる、。
マスク・バッファ38はそれぞれが2ビットの深さのM
×Nの位置で構成されたバッファ・メモリからなる。M
×Nの位置はM×Nの典型的なモニタ・サイズに対応る
、ように選択される。2ビ、ット平面によって、各Xl
Y位置は4つの信号の1つを記憶る、ことができる。信
号はこの説明において、「+」、「−」、「e」、及び
rOJというラベルが付けられる。バッファ38は組合
せ論理回路34によって更新され、各X1Yアドレスは
ジェネレータ32から線31を介して受け取られる。
=33 組合せ論理回路36はシステム・フレーム・ノくラフy
22&及び22bに対して、信号rEDGE−PXJ及
びrF I LL  PXJを出力る、。活動EDGE
  PX信号は現在の点が工・ソジ・ポイントであるこ
とを示す。このエツジ・ポイントに対応しているX、Y
アドレス(線31を介した)は、エツジのカラーととも
にフレーム・バッファに書き込まれる。活動信号FIL
L  PXは線31上のX、Yアドレスによって与えら
れる対応る、位置を、フレーム・バッファ内で、内部カ
ラーで塗りつぶさなければならないことを示す。フレー
ム・バッファへのアドレス線上の信号は、マスク・ツク
・ソファへのアクセス時間を考慮して遅延る、ことが好
ましい。これは当技術分野において、ラッチ回路33を
使用る、ことによって容易に達成される。
塗りつぶすべき各ポリゴンに対し、本方法はX1Y座標
を通る3本のパス及びポリゴンを表す輝度を必要とる、
。ただし、マスク・バッファ38はまずクリアされる。
すなわち、バッファの各ピクセルは最初のポリゴンの処
理に進む前に、値「0」 34− にセットされる。最初のパスにおいて、トライアングル
・ジェネレータ32はエツジ生成モードで作動し、(1
)各ポリゴン・エツジの点のアドレス・シーケンスを生
成し、(2)VALIDエッジ・アドレスに対応る、位
置に値reJを書き込むことによって、マスク・バッフ
138内のポリゴンのエツジをマスクる、。第2のパス
において、分割されたポリゴンの各三角形について、ジ
ェネレータ32は(1)三角形の点のアドレス・シーケ
ンスを生成し、(2)各有効アドレスにあるマスク・バ
ッファ38に第1表による新しいバッファ値をロードる
、ことによって、ポリゴンの内部に対応る、バッファ3
8内のピクセルをマスクる、。
第1表 真理値表1は第1の組合せ論理回路34に常駐る、もの
で、当分野の技術者によって簡単に実現できる。
データ構造を通過る、第3のパスにおいて、ポリゴンを
表す各三角形について、トライアングル・ジェネレータ
Jt(1)三角形の点のアドレス・シーケンスを生成し
、(2)アドレスX1Yがを効であり、この位置におけ
るマスク・バッファ38の内容が“e“であれば、信号
EDGE  PXを断言し、(3)アドレスX、Yが有
効であり、この位置におけるマスク・バッファ38の内
容が1+1またはl −1であれば、FILL  PX
を活動化し、(4)アドレスX1YがvALIDであレ
バ、マスク・バッファ38を再初期設定る、。EDGE
  PX及びFILL  PX信号を断言る、論理は回
路36で実現される。マスク・バッファ38の再初期設
定は、組合せ論理回路34によって行なわれる。
第3図は凹ポリゴン40の例を示すが、この図において
、ポリゴン40は頂点PL1、P2、P3、P4、P5
によって定義される。ポリゴン40の分割によって形成
される結果として生じる三角形を第4A図−第4C図、
ならびにORIENTのそれぞれに対応る、値で示す。
第5A図−第5c図は、ジェネレータ32が上述の処理
の第2のパスにおいて各三角形PIP2P3、PIP3
P4及びPIP4P5を処理した後の、マスク・バッフ
ァ38の内容を示す。
本発明の他の拡張された実施例を、第6図及び7 − 第7図に示す。この実施例において、ディスプレイ・プ
ロセッサ181は座標及びその頂点における輝度を与え
られたポリゴンにシェードを付けるように作動る、。ま
た、ポリゴンの境界をたとえば、点線や破線などのスタ
イルにる、ことができる。この実施例は補間関数が面で
表される場合に、最良の作動を行なう。また処理対象の
幾何学的プリミティブを、単一のポリゴン・コマンドに
よっていくつかのサブポリゴンまたはサブエリアで構成
る、こともできる。単一のコマンドによってグループ化
されたすべてのサブエリアは、本発明にしたがって三角
形ごとにまとめて処理される。
第6図において、ディスプレイ・プロセッサ18′はシ
ステム・パス13を介して、ディスプレイ・システムと
通信を行なう。プロセッサ18゜はコントローラ50、
X−Yジェネレータ52インタボレータ54、ライン・
スタイル・ジェネレータ56、マスク及びデプス・バッ
ファならびにこれらに関連した組合せ論理回路58、な
らびにデイレイ回路60を含んでいる。マスク・バッフ
ァ及 38− びユニット58内のこれをサポートる、論理回路を除き
、これらの構成要素の各々はコンピュータ・グラフィッ
クス・システムの市販の要素で構成る、ことができる。
第2図に示した実施例のコントローラ30と同様に、コ
ントローラ50はシステム・メモリに記憶された命令リ
ストを読み取り、解釈し、必要な幾何学的変換、及びク
リッピング、ライティング、デプス・キューイングなど
の他の操作を計算る、。命令リストの一部として、各頂
点に関連した境界フラグが通常与えられる。たとえば、
第1のフラグはポリゴン境界の実エツジまたはスタイル
・エツジからなる「リアル・エツジ」を定義し、第2の
フラグは境界エツジ(以下、「レギュラー・エツジ」と
呼ぶ)が内部カラーを受け取るものであることの信号を
出し、第3のフラグはフロントまたはバックZ軸りリッ
ピング面のそれぞれに対る、ポリゴンのクリッピングに
よって生成された、フェイクZフロント・エツジまたは
フェイクZバック・エツジを定義る、ことができる。(
フェイクX及びYエツジはクリッピング処理において、
「レギュラー・エツジ」と識別される。)これらのフラ
グを以下で詳述る、処理のいくつかの態様で使用る、と
有利である。
コントローラ50はX−Yジェネレータ52、インター
ポレータ54、ライン・スタイル・ジェネレータ56、
ならびにマスク・バッファ及びデプス・バッファ・ユニ
ット58の論理回路で構成されたレンダリング・パイプ
ラインと通信る、。
各ポリゴン・プリミティブ及びその各頂点に対して、位
置(X、Y、Z)、内部カラー(たとえば、RlG、B
)及びエツジ・カラー(RlG、B)を、レンダリング
・パイプラインに利用できる。
ジェネレータ52は取りつる2つの操作モード、すなわ
ち(1)ベクトル生成モード及び(2)トライアングル
生成モードに対応る、X及びY座標のシーケンスを生成
る、。ベクトル生成モードにおいて、ジェネレータ52
はベクトルの2つの端点の座標を与えられて、周知のプ
レゼンナムのアルゴリズムなどのベクトル生成アルゴリ
ズムを実現る、。このアルゴリズムはスクリーン・スペ
ース内にX1Y座標のシーケンスをもたらすが、これは
幾何学的直線を最もよく近似る、ものである。
最初及び最後に生成された点、すなわち端点は常に幾何
学的直線上にある。しかしながら、中間点は2つの端点
が定義る、特定の線によっては、幾何学的直線上にある
ことも、ないこともある。以下で詳述る、ように、本発
明で好ましく実現されるベクトル・ジェネレータは、正
確に幾何学的直線上にあるのは、生成されたシーケンス
のどの点かを検出し、これによってコントローラ50の
命令による2つの「サブモード」、すなわち(1)正規
生成モード、及び(2)オン・ジェオメトリクック・ラ
イン生成モードが可能となる。後者のモードは正確に幾
何学的直線上にある点のみを生成る、。
トライアングル生成モードにおいて、X−Yジェネレー
タ52を、たとえば、当分野の技術者が構成し、3つの
所与の頂点によって定義される三角形の内部または正確
にエツジ上にあるすべての点を生成る、ことができる(
それゆえ、以下で説明1− る、処理で、オン・ジェオメトリカル・ライン・ベクト
ル生成サブモードが必要となる)。あるいは、このプロ
セスをベクトル生成モードにおいて、三角形のエツジに
対応る、点を生成できる限り、より典型的な、精度の低
いトライアングル生成手法で実現る、こともできる(以
下で、詳述る、)。
トライアングル生成モードにおいて、ジェネレータ52
は2進変数ORI ENTを計算る、が、これはこの場
合も、三角形の向きを示し、方程式(1)及び(2)に
よって定義される。ORIENTO値を、たとえば、X
−Yジェネレータ52内の適当な状況レジスタによって
、コントローラ50が利用できる。X−Yジェネレータ
52は制御信号をインターポレータ54へ、また検証信
号(VALID)をライン・スタイル・ジェネレータ5
6へもたらす。ジェネレータ52から出力され、コント
ローラ50によって制御される信号0PERは制御信号
を、ライン・スタイル選択活動化、デプス・バッファの
制御などのレンダリング・パイプラインの論理のさまざ
まな部分に配布る、。
42 インターポレータ54も2つの作動モード、すなわちベ
クトル・モードとトライアングル・モードを有している
。インターポレータ54は周知の態様で、端点における
対応る、値から、ベクトルの点に対る、2ならびにR,
G及び(原色)の補間された値を生成る、か(ベクトル
生成モードの場合)、頂点の対応る、値から三角形の点
の補間された値を生成る、かる、(トライアングル生成
モードの場合)。ベクトル・モードにおいて、インター
ポレータ54はrIncremental Linea
rInterpolationJ 、D、 Field
、 ACM Transactionson Grap
hics)Volume 4. No、 L  (Ja
nuary 1985)という記事に記載されている方
法を実現る、ことができる。トライアングル・モードに
おいては、米国特許明細書第480511E3号に開示
されているような方法が適当である。両方のモードにお
いて、インターポレータ54はX−Yジェネレータ52
の制御のもとで、ジェネレータと同期して作動し、補間
された各点のX、YlZlR,G。
及びBの値がフレーム・バッファで同時に利用できるよ
うになる。これは部分的に、R,G、Bデイレイ回路6
0によって達成される。
ライン・スタイル・ジェネレータ56は、X−Yジェネ
レータ52がベクトル生成モードのときに作動る、。ジ
ェネレータ56は信号rGAPJを発生し、現在のピク
セルが線の活動セグメントに属しているか、またはセグ
メント間のギャップに属しているかを示す。すなわち、
スタイル化された線が存在していると想定る、。ライン
・スタイル・ジェネレータ56の適当な実施形態は、周
知の文献から入手できる。
マスク・バッファ及ヒデプス・バッファ・ユニット58
は、マスク・バッファと組み合わされたデプス・バッフ
ァで周知のZバッファ・アルゴリズムを実施して、凹ポ
リゴンのシェーディングを可能とる、。この組合せは2
バッファ作動を拡張る、ものであって、本発明の中心を
なすものである。
デプス・バッファはM×Nのメモリであり、通常はビッ
ト深さが16ないし32ビットであって、コノ内部にZ
 (X、Y)値がZバッファ・アルゴリズムと同様な態
様で記憶される。MとNは通常、画面の寸法である。マ
スク・バッファもデプス・バッファと同じサイズのメモ
リであるが、ビット深さはたとえば2ビットに過ぎない
ものである。
バッファは両方ともX−Yジェネレータ52からのX及
びY座標出力によってアドレスされる。
第7図はマスク・バッファ及びデプス・バッファ回路5
8を、より詳細に示すものである。X、 Y座標はデプ
ス・バッファ62及びマスク・バッファ64の両方に供
給され、処理中あピクセル位置を識別る、。位置X、Y
における2の値はインターポレータ54から、比較器6
8に供給され、この比較器は新しい値を、位置X、Yに
おけるデプス・バッファ62の内容と比較し、たとえば
、右側の座標系について、Z (X、Y)≧Z  OL
Dであるかどうかを判定る、。トランスペアレント・ラ
ッチθ6をタイミングを取るために使用して、ZOLD
を遅延させる。比較器68からの出力ZCOM P  
OU T % ナラヒニ信号GAP、VALID及びマ
スク・バッファ64の対応る、位置X。
 45− Yの内容(MB  0LD)を使用して、第1組合せ論
理回路70を介して信号PIXEL  VALID及び
z UPDATEを生成る、。PIXEL  VALI
Dを使用して、フレーム・バッファ(第1図)に、現在
のピクセルがを効であるから、受け入れるべきであると
の信号を出す。Z  UPDATEは新しいZの値Z 
(X、Y)を、この位置におけるデプス・バッファの古
い内容と置き換えるべきであることを示す。この信号を
マルチプレクサ72に供給し、Z (X、Y)とZ  
OLDの間のこの選択を指示る、。
同様な態様で、位置X、Yにおけるマスク・バッファ6
4の内容(MB  0LD)()ランスペアレント・ラ
ッチ65を介した)、ならびに信号VALID、GAP
及びZCOMP  OUTを第2組合せ論理回路74で
使用して、位置X、Yにおけるマスク・バッファ64の
内容と置き換えることを目的としたマスク・バッファ値
を生成る、。
マスク・バッファ64の性質については、以下で詳述る
、。信号0PERは組合せ論理回路7o及 46− び74に対る、制御信号であって、シェーディング・ア
ルゴリズムの演算を可能とし、かつそのさまざまなステ
ップを識別る、(後述)。
本発明のこの実施例によれば、2ビット・プレーン・マ
スク・バッファ64は、各位置における4種類の値のう
ちの1つを記憶る、ことを可能とる、。これらのマスク
値には、次のようなラベルが付けられる。
!01:初期状態。クリアされたピクセル+i″:内部
ピクセル f g l :エッジ・ギャップ・ピクセル!e′=エ
ッジ・セグメント・ピクセル組合せ論理回路74は2つ
の入力値、すなわちマスク・バッファの内容(すなわち
、MB  0LD)とアルゴリズムによって指定される
何らかの他の値の間の論理演算(以下のアルゴリズムの
説明においては、“■“と記号化る、)を実施る、。
真理値表2は、MB  OLDと置き換えるためにマス
ク・バッファ64に記憶される値を明らかにる、もので
ある。
第2表 第2表を調べれば、1■“演算が相互的なものであり、
また信号が入力のいずれかに現れた場合に、値W e 
lが出力に現れることから、これが高い優先順位を有し
ていることがわかろう。値1 g 1はこの点で同様な
ものであるが、この信号が“e“よりも低い優先順位を
有していることが異なっている(すなわち le?  
l■″ “g′二’e’である)。これが意味る、とこ
ろは、エッジ・セグメント・ピクセルにはエッジ・ギャ
ップ信号よりも高い優先順位が与えられるということだ
けである。°■°演算は本質的に値“0°及び°i。
に関る、排他的論理和演算である。以下の説明から明ら
かなように、マスク・バッファ64における“■“演算
はあらゆる内部ピクセルに対る、ポリゴン境界ピクセル
を、またエツジ・ギヤ・ツブ・ピクセルに対る、エッジ
・セグメント・ピクセルを保存る、ようになされている
。偶数回書き込まれた内部ピクセルはI O+のマスク
された値をもたらし、これは最終的なピクチュアの凹面
または孔を排除る、のに有利なものである。本発明の実
施例の1つの実施アルゴリズムを、以下で検討る、。
この場合も、該当る、処理ステップがジェネレータ52
からの0PER信号によって識別される。
アルゴリズムは暫定条件として、マスク・バッファの各
ピクセルが値「0」に初期設定され、かつデプス・バッ
ファの各ピクセルが最も遠いZ値に対応した値に初期設
定されるものと想定る、。各ステップはレンダリング・
パイプラインを通る別々9− なパスを含んでいる。
ステップ1 このステップの目的はマスク・バッファ内のポリゴンの
境界をまずマスクして、これが以降の処理で保存される
ようにる、ことである。この場合も、エツジをスタイル
化る、ことができる。「リアル・エツジ」、「レギュラ
ー・エツジ」、及び「Zフェイク・エッジ」のフラグが
まず、処理される境界エツジのタイプを識別る、。「セ
グメント」ピクセルが、エツジ・カラーによって描かれ
る。「リアル・エツジ」のエツジ「ギャップ」ピクセル
はフレーム・バッファ内に描かれず、後で内部カラーが
割り当てられる。「レギュラー・エツジ」ピクセルは同
様にして処理される。X−Yジェネレータ52及びイン
ターポレータ54はベクトル・モードにセットされ、ポ
リゴンのエツジを生成る、。ポリゴンのエツジの各ピク
セルに対し、マスク・バッファ、デプス・バッファ、及
びフレーム・バッファの操作は、次のようにライン・ス
タイル・ジェネレータ56の出力によって決定され0 る。
ライン・スタイル・ギャップ・ピクセル:マスク・バッ
ファ: If  ZCOMP  0UT=”真”(/ニド、tば
、Z (X、Y)≧ZB  0LD)Then   M
B   <=’g’   閣  MB   0D デプス・バッファ: I f (ZCOMP  0UT=”真9“及びMBO
LD   ”e’) Then   DB   <=   Z   (X、Y
)フレーム・バッファ: 変更なし。
ライン・スタイル・セグメント・ピクセル:マスク・バ
ッファ: I f (ZCOMP  0UT=”真!またはMB 
 0LD=’g’) Then  MB  <=  ’e’ デプス・バッファ= I f (ZCOMP  0UT=”真”またはMB 
  0LD= “ g’) Then   DB   < =   Z   (X、
Y)フレーム・バッファ: I f (ZCOMP  0UT=”真” * タハM
B  0LD= ’ g) Then  FB  <=  R,G、Bこの場合も、
閣演算は第2表で定義されている。
上記のアルゴリズムは標準のブーリアン演算であって、
当分野の技術者が実行できるものである。デプス・バッ
ファ及びフレーム・バッファの処理は組合せ論理回路7
0で実施され、マスク・バッファの処理は組合せ論理回
路74に常駐している。上記のアルゴリズムから、処理
対象の点がエッジ・ギャップ・ピクセルからなっており
、Zの値が、たとえば、X、Yに記憶されているデプス
・バッファの値以上であれば、マスク・バッファが以前
の点の処理からの値101をすでに保持していない限り
、マスク・バッファには値“g′が割り当てら杵ること
がわかる。また、エッジ・セグメント・ピクセルとエッ
ジ・ギャップ・ピクセルがマスク・バッファに描かれ、
可視のZ (X、Y)値がデプス・バッファに割り当て
られ、Z (X、Y)が可視のエッジ・セグメント・ピ
クセルである(すなわち、ZCOMP  0UT=’!
’)と、デプス・バッファが示している場合には、この
点におけるカラーR1G、Bがフレーム・バッファに割
り当てられることに留意されたい。
ステップ2 このステップの目的はマスク・バッファ内のポリゴンの
内部をマスクる、ことである。これを達成る、ため、X
−Yジェネレータとインターポレータを、トライアング
ル生成モードにセットる、。
Pl、P21.、、PNがポリゴンの頂点であり、Ql
、Q21.、、QMがポリゴン内の孔の頂点であれば(
すなわち、存在している場合)、コントローラはX−Y
ジェネレータとインターポレータに、三角形PIP2P
3、PIP3P410.。
Pi (PN−1)PNを生成る、よう命令る、。
同様に、処理されるポリゴンが孔を含んでいるのであれ
ば、三角形QIQ2Q3、QIQ3Q43− 1.、、Ql (QM−1)QMが生成される。上述の
ように、第3図及び第4A図−第4C図は、3つの三角
形に分割された凹ポリゴンの例を示している。三角形1
.2.3がまず生成され、次いで、三角形1.3.4が
生成され、最後に、三角形1.4.5が生成される。第
1と第2の三角形が生成された後、マスク・バッファは
凸ポリゴン1.2.3.4に対応る、マスクを含む(第
5B図)。最後の三角形が生成されると、向きが反対の
隣接る、三角形の重畳領域1.4.5が、閣演算で暗黙
の排他的論理和関数によって、この凸ポリゴンから差し
引かれる(第5C図)。ステップ1で使用される値“e
“及び“g“が優先権を有しているので、エツジ1.5
及び5.4は差し引かれない(第2表参照)。
この実施例において、隣接る、三角形に共通の点に、特
に注意を払わなければならない。たとえば、第3図の内
部線1.3に沿った共通の点を、閣演算によるこれらの
ピクセルの最初の排他的論理和除去とかかわりなく、保
存しなければならな4− い。あるいは、線1.4に共通なこれらのピクセルは凹
ポリゴンの外部のものであるから、これらのピクセルを
保存してはならない。この問題の解は、隣接る、2つの
三角形の向き(すなわち、ORIENTO値)が同じ場
合に、共通点を再度生成る、ことである。これは線1.
3の場合であって、線1.4の場合ではない。上述のよ
うに、トライアングル生成モードで作動る、X−Yジェ
ネレータが、幾何学的三角形の内部または正確に境界上
にある点のみを作成る、のが好ましいので、共通の点が
整数のX及びY座標を有る、幾何学的(真の直線)のも
のでなければならないということになる。これを達成る
、ために、コントローラはX−Yジェネレータに、同じ
向きの隣接る、三角形に対して、ベクトル・モードのオ
ン・ジェオメトリカル・ライン・サブモード(後述)で
共通の点を生成る、よう命令る、。
このステップの両方の場合、すなわちトライアングル生
成モード及びベクトル生成モードにおいて、マスク・バ
ッファ、デプス・バッファ及びフレーム・バッファの作
動は次のようになる。
マスク・バッファ: MB   <=Ti?   閣  MB   OLDデ
プス・バッファ: 変更なし。
フレーム・バッファ: 変更なし。
デプス・バッファ及びフレーム・バッファに書き込みが
行なわれないのであるから、Z、R,G。
及びBの値がこのステップでは必要なく、このステップ
がマスク・バッファ内にポリゴンの適正なアウトライン
を生成る、だけであることに留意されたい。
オン・ジェオメトリック・ライン・サブモードのための
回路の実施形態の1つを、第8図に示し、かつ第3表で
定義る、。従来、ベクトル・ジェネレータは画面の座標
(X、Y)のシーケンスを生成し、これは2つの所与の
端点をつなぐ幾何学的直線を最もよく近似る、ものであ
る。プレゼンハム・アルゴリズムにおいて、幾何学的直
線に関して生成された各ピクセルの位置誤差は0.5ユ
ニツト以下である。誤差は生成されたベクトルの端点に
おいて、またおそらくは若干の中間点におl、Sでゼロ
である。しかしながら、本発明で使用る、マスク生成手
法では、必要なものは、誤差がゼロのこれらの点だけで
ある。第8図はこのようなゼロ誤差デテクタを実現る、
新規の論理回路からなっている。破線80内の論理回路
は、周知のプレゼンハムのベクトル・ジェネレータに存
在しているものである。
下記の設定手順は外部のマイクロプロセッサまたはハー
ドウェア論理回路によって実現され、点Pi (Xi、
Yl)からP?2 (X2.Y2)へのベクトルを描く
第1: DX及びDYは次のように計算される。。
DX=ABS (X2−Xl) DY=ABS (Y2−Yl) ただし、ABS=絶対値 第2= 操作の0CTANTは下記の論理式によって決定される
DX≧DY X2≧XI X2≧XI 3ビットの信号0CTANTはこれら3つの式の結果に
よって断言される。
第3: レジスタINCP、lNCN1及びDI(第8図)には
、0CTANT信号を導くために第1及び第2ステツプ
で数値を求めた論理式の関数として、第3表によって与
えられる値がロードされる。
第4: レジスタD2(第8図)をクリアる、。
第5: Xカウンタ及びYカウンタに、Xl及びYlをそれぞれ
ロードる、。
 57− 58− 第6: 信号MOREを次のように操作のモードにしたがって断
言る、。
MODE=o :  rオン・ジェオメトリック・ライ
ン」点を生成る、。
MODE=1:  ベクトルのすべての点を生成る、。
上記の手順の各々が4番目及び6番目の操作を除き、通
常のプレゼンハム・アルゴリズムに必要なことに留意さ
れたい。
第3表 (*=SIGN  D1=Oの場合のみ、増分または減
分) 第8図において、作動時に、レジスタDI≦Oであれば
(すなわち、レジスタD1の符号ビット、信号5IGN
  D1=1またLL負)、値I NCN81が加算器
ADD−182及びAD、D−284のそれぞれによっ
て、レジスタD177及びD279に加えられる。それ
以外の場合には、値INCP  83がレジスタD17
7及びD279に加えられる。組合せ論理回路86はD
lの符号ビット(すなわち、信号5IGN  Di)及
び第3表に示す信号0CTANT (XINC及びYI
NC欄)の関数としてXカウンタ88及びXカウンタ9
0を増分または減分る、。増分または減分が5IGN 
 D1=O(すなわち、D1≧0)の場合にのみ生じる
ことを、表の項目のアスタリスクが意味していることに
留意されたい。回路86は発生されたピクセルが有効な
場合に、VALID信号を断定る、。
D2=Oの状態はNOR回路92によって検出され、M
ODEがゼロテあれば、VALIDはOR回路94及び
AND回路96を通過して、ピクセルの有効化をもたら
す(信号PIXEL  VALID)。D279の内容
が0でない場合、ピクセルはこれが生成されていること
にかかわりなく、有効とはされない。MODEが1の場
合(正規モード)、PIXEL vALIDは有効とな
1− る。
上記のオン・ジェオメトリック・ライン・サブモード処
理の他の手法は、第2図に関連して本明細書で説明した
ような手法を実現る、ことである。
たとえば、3ビットの平面をマスク・バッファとして使
用した場合、信号°i“を上述の“十′及び′−°の内
部信号に分割る、ことができる。第1表の論理を実施る
、ことによって、内部線を再生成る、必要がなくなる。
しかしながら、このような手法の欠点は、付加的なビッ
ト平面に関連して、余分なコストがかかることである。
本実施例のポリゴン処理ステップに戻ると、マスク・バ
ッファ内でポリゴンの内部をマスクした後、コントロー
ラはステップ3に進む。
ステップ3 このステップの目的はマスク・バッファを参照して、あ
るいはマスク・バッファの制御のもとてポリゴンの内部
の点を描くことである。たとえば、第3図の三角形1.
4.5に対応る、点が生成されるが、これらをマスク・
バッファによってフレー62− ム・バッファに書き込むことは認められない。フレーム
・バッファに書き込まれた内部の点に関る、マスク・バ
ッファは、同時にクリアされる。X−Yジェネレータ及
びインターポレータはトライアングル・モードにセット
され、ポリゴンの内部の点のZ値と輝度を生成して、ス
テップ2に関連して上述したものと同様な態様で、デプ
ス・バッファに記憶し、フレーム・バッファへの描出を
行ナウ。
このステップにおけるバッファの作動は、次のように説
明できる。
マスク・バッファ: I f (MB  0LD) =’ i ’)Then
  MB  <=’0” デプス・バッファ: I f (Z  COMP  0UT=’°真“及びM
B  0LD=’i’) Then  DB  <=  Z (X、Y)フレーム
・バッファ: I f (ZCOMP  0UT=“真“°及びMBO
LD=“i′) Then  FB  <=  Z (X、Y)において
R,G、B ステップ4 このステップの機能は、この場合もマスク・バッファの
制御のもとで、スタイル化されたポリゴンの境界のギャ
ップ点(すなわち、値!g lを有る、点)を、この場
合も、マスク・バッファの制御のもとで描くことである
。X−Yジェネレータ及びインターポレータはベクトル
・モードにセットされ、ポリゴン・エツジ・ポイントを
生成る、。
バッファの作動は、次のように表される。
マスク・バッファ: 変更なし デプス・バッファ: 変更なし フレーム−バッファ: I f (ZCOMP  0UT=”真”及びMBOL
D= ’  g “) Then  FB  <= (X、Y)においてR9G
、  B ステップ5 このステップの目的はポリゴンの処理に引き続き、マス
ク・バッファをクリアる、ことである。
X−Yジェネレータはベクトル・モードにセ・シトされ
、ステップ3でマスク・バッファからクリアされたポリ
ゴン境界、内部点を生成る、。このステップにおけるバ
ッファの作動は次のとおりである。
マスク・バッファ: MB   <=’O’ デプス・バッファ及びフレーム・バ、ソファ:変更なし 処理対象の凹ポリゴンが「リアル・工、ソジ」のみを有
しており、エツジ・ギヤ・ツブがない場合、上記のアル
ゴリズムは次のように表すことができる。
ステップ1 ポリゴンの境界はマスクされ、マスク・バッファ、デプ
ス・バッファ及びフレーム・バッファの作動は次のよう
になる。
5− マスク・バッファ: If (ZCOMP  0UT)=”真“°)Then
  MB   <=   ’e’   −MBLD デプス・バッファ: If (ZCOMP  0UT)=”真“)Then 
 DB  <=  Z (X、Y)フレーム・バッファ
: If (ZCOMP  0UT)=’“真°°)The
n  FB  <= (X、Y)においてR9G、 B ステップ2 このステップの目的はマスク・バッファ内部のポリゴン
の内側をマスクる、ことである。マスク・バッファ、デ
プス・バッファ及びフレーム・バッファの作動は次のと
おりである。
マスク・バッファ: MB  <=’i’−MB  OLD デプス・バッファ及びフレーム・バッファ:変更なし  66− ステップ3 このステップの目的は、マスク・バッファを参照して、
あるいはマスク・バッファの制御のもとてポリゴンの内
部の点を描くことである。バッファの作動は次のとおり
である。
マスク・バッファ: I f (MB  0LD=’ i ”)Then  
MB  <=’O” デプス・バッファ: I f (ZCOMP  0UT=”真”及ヒMBOL
D=’i’) Then  DB  <=  Z (X、Y)フレーム
・バッファ: I f (ZCOMP  0UT=11真”及びMBO
LD=“i“) Then  FB  <= (X、Y)においてR2O
,B ステップ4 定義により、このステップの機能は適用されない。
ステップ5 最後のステップはポリゴンの処理に引き続きマスク・バ
ッファをクリアる、ことである。バッファの作動は次の
とおりである。
マスク・バッファ= MB  <=’O’ デプス・バッファ及びフレーム・バッファ:変更なし この実施例において、論理演算°閣°は第4表に記載る
、ように定義される。
第4表 本発明の方法及びプロセッサを実施る、際に、フロント
またはバックのZ軸りリッピング面に対してクリップさ
れたポリゴンを描くには、特に注意を払わなければなら
ない。たとえば、第9図は2つのサブエリア、すなわち
1.2.3.4及びlL12.13.14を有る、ポリ
ゴン・プリミティブを示す。後者のサブエリアは前者の
サブエリアにある孔を定義る、。上述のアルゴリズム6
9− は第1のサブエリア(エツジ及び内部の点)、ならびに
第2のサブエリア(エツジ及び内部の点)を生成る、。
この処理に固有なEX−OR関数は、第2のサブエリア
の内部の点を除去し、孔をもたらす。しかしながら、E
X−OR演算が境界点に適用されないので、第2のサブ
エリアのエツジの点(すなわち、孔の境界)は除去され
ない。
クリッピング・ボックスのフロント及びバックのZ軸面
に対してポリゴン・プリミティブをクリップる、と、第
10図に示すような構造を得ることができる。図示のよ
うに、2つの新しいサブエリア、すなわちサブエリア1
.2°、3° 4、及び11.12”  13’  1
4が生成される。エツジ21.31及び12° 13゛
をZフェイク・エッジと呼ぶ。上述のようにポリゴンの
マスクを生成した場合、これらのZフェイク・エッジに
問題が生じる。詳細にいえば、セグメント121131
は孔に対応しているのであるから、ポリゴンの境界とし
てマスクしてはならない。しかしながら、画面座標の量
子化により(すなわち、X及70− びYが整数であるため)、エツジ2°、3 ’ カエッ
ジ12’  13°に正確に重ならないことがある。
結果として、この処理に固有なEX−OR演算は、いく
つかの点においてうまくいかないことがある。
この問題はXフェイクまたはYフェイク・エッジ(すな
わち、Y軸またはY軸のクリッピング面に対る、クリッ
ピングによって生じたエツジ)には存在しないが、これ
はこれらのセグメントがそれぞれ垂直または水平であり
、かつEX−OR演算が失敗る、ことがないからである
この問題に鑑み、上記の方法と共同る、ソフトウェアで
実現された解決策が考案されており、この組合せの詳細
を第13図−第17図を参照して以下に詳述る、。ただ
し、この付加的な処理手法の概要をまず説明る、。
マスク生成プロセスのステップ1において、Zフェイク
・エッジ(クリッピング・ステージにおいて識別された
)は生成されるのではなく、リストに保管されている(
すなわち、フェイク・エッジを定義る、2つの端点によ
って)。バックのZ軸りリッピング面に対る、ポリゴン
のクリッピングによって作成されたフェイク・エッジの
もの、及びフロントの2軸りリッピング面に対る、ポリ
ゴンのクリッピングによって生じるZフェイク・エッジ
のものという、2つのこのようなリストが維持される。
Zフェイク・エッジの勾配の向きが垂直よりも、水平に
近い場合には、各非エンプティ・リストはXによって分
類される。それ以外の場合には、Yによって分類される
。当分野の技術者には、Z軸りリッピング面とのポリゴ
ン面の交点の勾配を、たとえばポリゴン法線のX及びY
成分を検査る、ことによって、容易に得ることができる
ことが認識されよう。第5表は分類(ソート)の前後に
おける、第10図に示したZフェイク・エッジの頂点リ
ストを示す。
第5表 マスク生成プロセスのステップ1を完了る、ために、分
離された第1の点から第2の点へのセグメント、次いで
第3の点から第4の点へのセグメントなどを生成る、こ
とによって、Zフェイク・エッジをマスクる、。これが
達成されたら、マスク・バッファはクリップされたポリ
ゴンの真の境界を含む(すなわち、第10図の線12“
 13゜などのセグメントは除かれる)。
マスク生成プロセスのステップ2において、内部の点が
生成される。ただし、各サブエリアの定義は変更され、
考察の対Wの特定のZフェイク頂点の間にある他のサブ
エリアのあらゆる頂点を含むようになっている。たとえ
ば、新しいサブエリ3− ア1がL2’  12’  13’、3”  4として
再定義される。頂点12“及び13°がポリゴンの頂点
のリストに人為的に追加されたことがわかる。第2のサ
ブエリアは依然として11.12”  13’  14
である。この処理の結果として、変更された第1サブエ
リアのエツジ12“131は第2のサブエリアの同じエ
ツジと一致し、したがって、上記の処理に固有なEX−
OR演算はマスクから第2のサブエリア・エツジを消去
る、。
しかしながら、場合によっては、完全なキャンセルが行
なわれないこともある。このような特別な場合には、マ
スクを分類されたリストの2番目から3番目の点へ向か
うベクトル、4番目から5番目へ向かうベクトルなどに
ついてクリアる、ことが必要となる。例においては、セ
グメント12“ 13°が生成され、対応る、マスク・
バッファ位置がクリアされる。この活動の必要性を、以
下で説明る、。
第11図は第10図のクリップされたポリゴン4− を示すものであり、X及びYの量子化によるフェイク・
エッジによる位置誤差が、検討のために誇張されている
。また、クリッピング・ステージが次の順序で、サブエ
リアの頂点をもたらすと想定している。
サブエリア1:2′ 1.4.31 サブエリア2:11.12’  13’  14第2の
サブエリアの順序は、この説明には無関係である。マス
ク生成プロセスの第1のステップにおいて、エツジ2“
 1.1.4及び4.3゜はポリゴンの境界エツジとし
てマスクされる。次いで、エツジ11.12’;13’
  14及び14.11が生成される。Zフエイク頂点
リストが分類され、セグメント2.12’及び13.3
゜が生成される。ステップ2において、三角形2“1.
4(第12図(a));2“ 4.3“(第12図(b
))及び2“、3゛ 13°(第12図(c))が生成
される。点Pa1Pb及びPcがこの時点でマスクされ
ることに留意されたい。
次に、三角形2° 13’  12“が生成され、EX
−OR関数がこの三角形をクリアる、。三角形2’  
12’  13’(すなわち、点P a N Pb1及
びPc)とポリゴンの残余部分との間のセグメント12
’  13’上の共通点が、EX−OP演算の結果とし
てクリアされる(第12(d)図)。ポリゴン11.1
2’  13° 14が生成され、これは上記の説明に
従い、マスクからの孔11.12° 13° 14をキ
ャンセルる、。
しかしながら、点pa1Pb1及びPc(クリアされた
)はこのプロセスによって間違ってマスクされる(第1
2図(e))。それゆえ、セグメント12° 13“に
対応したマスク・バッファの点を特にクリアしなければ
ならない。
略述したZフェイク・エッジ処理と組み合わせた上述の
処理ステップ1−5の詳細な実施形態の1つを、第13
図−第17図の流れ図に示す。
第13図はステップ1の流れ図を示しており、このステ
ップの主たる目的はマスク・バッファ内のポリゴン・プ
リミティブの境界をマスクし、これを以降の処理のため
に保存る、ことである。この場合も、ポリゴン・プリミ
ティブはいくつかの個別のサブエリアからなっていても
かまわない。
「開始J 100に入った後、コントローラはポリゴン
の最後のサブエリアがステップ1によって処理されたか
どうか、「最後のサブエリアが処理されたか」を照会る
、。処理が終わっていない場合、コントローラは命令1
04「最初の頂点データを得る」に進み、その後照会1
06「サブエリアの最後の頂点か」に進む。処理が開始
したばかりなので、答えは「ノー」であり、流れは10
8「次の頂点データを得る」になる。処理対象のサブエ
リアの最後の頂点が存在していれば、コントローラには
照会106から、照会102に戻るよう命令が与えられ
る。
命令108により、コントローラは命令104で得られ
た最初の頂点データと、命令108で得られた次の頂点
データとの間のベクトルが、サブエリアの「レギュラー
・エツジ」であるかどうかを判断る、。上述のように、
境界フラグがデータ・リストの一部として与えられ、各
頂点を「リアル・7フー エツジ」、「レギュラー・エツジ」または[フェイクZ
フロント・エツジまたはフェイクZバック・エツジ」に
あるものとして定義る、。「レギュラー・エツジ」はポ
リゴン・プリミティブのすべての内部点すなわちギャッ
プ・ピクセルに対応る、。「イエス」の場合、コントロ
ーラはコマンド112「ベクトルを生成る、」に進み、
信号゛g“をレギュラー・エツジに沿ってマスク・バッ
ファに対してマスクる、。この場合も、カラーは“g。
に対る、ステップ1におけるフレーム・バッファには送
られない。その後、コマンド112の流れは照会106
に戻る。
照会110に対る、答えが「ノー」である場合には、コ
ントローラは照会114「エツジはリアル・エツジか」
に進み、ベクトルがポリゴン・プリミティブのリアル・
エツジを定義しているかどうか(すなわち、実線か飾り
線か)を判定る、。
「イエス」の場合には、コントローラはコマンド116
「ベクトルを生成る、」においてベクトルを生成し、上
山のアルゴリズム及びカラーR,G。
78 Bにしたがって、すなわち、エッジ・セグメントの場合
には、フレーム・バッファにしたがって、マスク・バッ
ファ内の該当る、信号T e lまたは“g“をマスク
る、。照会114に対る、答えが「ノー」である場合に
は、コントローラは照会118「エツジはZフェイクか
」に進む。この場合も、「ノー」であれば、コントロー
ラは照会106へ戻る。
エツジがフェイクZエツジからなっている場合には、照
会118によって、コントローラは照会120「フロン
トZフェイクか」に進み、フェイクZエツジがフロント
Z軸クリッピング境界またはバックZ軸クリッピング境
界に沿っているかどうかを判断る、。エツジがバックZ
軸クリッピング境界に対応している場合には、流れは命
令122「エツジ頂点を、2フ工イク頂点リスト(バッ
ク)に保管る、」に進む。逆に、Zフェイク・エッジが
フロント・エツジからなっている場合には、コントロー
ラはZフェイク・エッジ頂点を別のりスト124に記憶
る、。「エツジ頂点を、Zフェイク頂点リスト(フロン
ト)に保管る、」。命令122または124を処理した
後、コントローラは照会106に戻る。
照会102に対る、答えが「イエス」である場合には、
コントローラは照会126rZフエイク・バック・エツ
ジか」に進む。この命令はコントローラに、頂点が命令
122で作成されたZフエイク頂点リスト(バック)に
記憶されているかどうかを判断る、よう命令る、。「イ
エス」の場合には、コントローラは2フエイク・バック
頂点のリストを分類し、128「zフェイク頂点リスト
(バ、ツク)を分類る、」、分類されたリストからベク
トルPL−P2、P3−P4131.を生成る、、13
0「ベクトルP 1−P2、P3−Pd11.。
を生成る、」。フェイクZエツジに内部カラーが割り当
てられているので、マスク・バッファは生成されたベク
トルに対る、°g“信号を受け取るが、フレーム・バッ
ファには何も書き込まれない。
命令130の後、あるいは照会126に対る、答え場「
ノー」である場合、コントローラは照会132「Zフェ
イク・フロント・エッジか」に送られる。「ノー」の場
合、コントローラは本描出処理のステップ2に進む。
「イエス」の場合には、流れは命令134rZフ工イク
頂点リスト(フロント)」へ進み、その後命令136「
ベクトルPL−P2、P3−Pd2.、、を生成る、」
に進む。命令134及び136は、これらがコントロー
ラにフロント2軸クリッピング面に沿った非重畳フェイ
クZエツジを分類生成し、これらのエツジをマスク・バ
ッファ内の信号1 g +によってマスクる、よう命令
る、点で、命令138及び130のそれぞれに対応して
いる。この場合も、フレーム・バッファへの描出は遅延
る、。命令136が完了る、と、コントローラは処理対
象のポリゴン・プリミティブに対る、ステップ1を完了
し、ステップ2へ進む。
ステップ2の目的は、マスク・バッファ内のポリゴンの
内部をマスクる、ことである。まず、コントローラには
、最後のサブエリアが処理されたかどうか、138「最
後のサブエリアが処理され81− たか」を判断る、よう命令が与えられる。ステップ2の
処理が始まったばかりなので、答えは「ノー」であり、
コントローラはサブエリアの最初の頂点データを獲得し
、140「サブエリアの最初の頂点データを得る」、そ
の後サブエリアの最後の頂点が処理されたかどうかを照
会る、、142「最後の頂点が処理されたか」。「ノー
」の場合、コントローラは獲得した頂点データがフェイ
ク2エツジの頂点に対応しているかどうかを照会る、、
「エツジは2フエイクか」。「ノー」の場合、コントロ
ーラはサブルーチンALPHIに入る、146 rAL
PHlを呼び出す」。
第14B図に略示したALPH1はコントローラに、Z
フェイク・エッジのない三角形を生成る、よう命令る、
。サブルーチンには170で入り、コントローラはまず
、検討対象の頂点が処理対象のサブエリアの第2に頂点
からなっているかどうかを判定る、、172r処理対象
のサブエリアの2番目の頂点か」。「ノー」の場合、コ
ントローラは2番目の頂点を獲得し、174r2番目の
項2− 点データを得る」、次いで照会142で、第14A図に
示した処理に戻る、186゜ サブエリアの2番目の頂点が獲得されている場合、照会
172によって、コントローラは3番目の頂点を獲得し
、176「次の頂点データを得る」、その後3つの頂点
を使用して三角形を生成る、、178「三角形を生成る
、」。三角形を生成した後、コントローラは生成された
三角形が処理対象のサブエリアの最初の三角形であるか
どうかを判定し、「イエス」の場合には、第14A図の
メインステップ2の処理に戻る、186゜反対に、コマ
ンド178で作成された三角形がサブエリアの最初のも
のでない場合には、コントローラは以前の三角形の向き
が、現在の三角形の向きと同じであるかどうかを判定る
、、182「以前の三角形と同じ向きか」。「ノー」の
場合、流れはステップ2のメイン・プロセスに戻る、1
8e0「イエス」の場合には、コントローラは現在の三
角形及び以前の三角形のすべての共通の点を修正る、が
、以前の三角形は第8図に関連して詳述した処理アルゴ
リズムに固有な排他的論理和関数によって消去されたも
のである。命令184の後、照会142においてステッ
プ2のメイン処理への復帰が行なわれる、186゜ 照会144に戻ると、答えが「イエース」の場合、コン
トローラは頂点がZフェイク・フロント・エッジまたは
Zフェイク・バック・エッジに対応しているかどうか判
定る、、148rZフエイク・エツジのタイプは」。エ
ツジがZフェイク・バック・エッジである場合には、サ
ブルーチンALPH2Bが呼び出される、150 rA
LPH2Bを呼び出す」。あるいは、エツジがZフェイ
ク・フロント・エッジである場合には、サブルーチンA
LPH2Fが呼び出される、152 rALPH2Fを
呼び出す」。サブルーチンALP82B及びALPH2
Fは、これらがステップlのコマンド122及び124
でコンパイルされた異なるリストにアクセスる、ことを
除けば、同じものである。ALPH2BはZフェイク頂
点リスト(バック)に保管されているエツジ頂点にアク
セスし、ALP82FはZフェイク頂点リスト(フロン
ト)に保管されているエツジ頂点にアクセスる、。AL
PH2B/ALPH2Fサブルーチンの概要を、第14
C図に示す。
188でサブルーチンに入ってから、コントローラは重
畳Zフェイク・エッジが存在しているかどうかを確認る
、、190「重畳Zフェイク・エッジかjo 「ノーj
の場合、コントローラはサブエリアの最後のエツジが処
理されたかどうかを照会る、、192「サブエリアの最
後のエツジか」。
再度「ノー」の場合には、サブルーチンALPH1が入
力される、194 rALPH1を呼び出す」。ALP
HIサブルーチンの処理後、照会142において、ステ
ップ2のメイン処理フローへの復帰が行なわれる、19
6゜プロセッサには同様に、照会192に対る、答えが
「イエス」の場合に、照会142に戻るよう命令が与え
られる、196゜ 重畳Zフェイク・エッジが存在している場合には、コン
トローラは重畳Zフェイク・エッジが処5− 理すべき最後のエツジであるかどうかを判断る、、19
8「サブエリアの最後のエツジか」。「ノー」の場合、
次の頂点データが獲得され、200「次の頂点データを
得る」、その後コントローラは命令202へ進む。命令
202において、コントローラは上述の2フエイク処理
を実施る、。詳細にいえば、他の対応る、Zフェイク・
エッジのN個の頂点が、現在のエツジ頂点の間に挿入さ
れ、結果として生じるN+1個の三角形が生成され、Z
フェイク・エッジに沿ったあらゆる共通点に対して修正
が行なわれる、202「他のZフェイク・エッジの頂点
(N個)を、現在のエツジ頂点の間に挿入し、N+1個
の三角形を生成し、共通点の修正を行なう」。重畳Zフ
ェイク・エッジがサブエリアの最後のエツジに沿って整
合している場合には、照会198によって、コントロー
ラは次の頂点データを獲得し、206「次の頂点データ
を得る」、その後命令208「他のZフェイク・エッジ
の頂点(N個)を、現在のエツジ頂点の間に挿入し、N
個の三角形を生成し、共通点の修正を行なう」。
86− 命令208は命令202と同様であるが、Zフェイク重
畳エツジが、処理すべきサブエリアの最後のエツジでな
い場合に、N個の三角形のみが生成される点が異なって
いる。命令202または208の後、コントローラはス
テップ2のメイン処理ループへ戻る、196゜ 最後の頂点が処理されると、コントローラは照会142
から照会154「エツジは2フエイクか」に進む。最後
の頂点がフェイクZエツジに沿っていない場合には、コ
ントローラは照会138に戻る。照会154に対る、答
えが「イエス」の場合には、コントローラは処理対象の
Zフェイク・エッジのタイプを判断る、、156「Zフ
ェイク・エッジのタイプは」。Zフェイク・エッジがバ
ックZ軸りリッピング面に沿っている場合には、コント
ローラはサブルーチンALPH2Bを呼び出す、158
 rALPH2Bを呼び出す」。それ以外の場合には、
コントローラはサブルーチンALPH2Fを呼び出す、
160 rALPH2Fを呼び出す」。命令158また
は命令160の処理後、コントローラは照会138に戻
る。
照会138に戻ると、答えが「イエス」の場合、コント
ローラはサブエリアが、バックZ軸クリ、ツピング面に
沿ったフェイクZエツジを含んでいるかどうかを判断る
、、162「zフェイク・バック・エッジか」。答えが
「イエス」の場合、コントローラはベクトルを生成し、
Zフェイク・バック・エッジに沿ったマスクをクリアる
、、164「ベクトルPi−P2、P3−P4100.
を生成る、」命令164の後、コントローラは進行し、
何らかのZフェイク・フロント・エッジが存在している
かどうかを判断る、、166「Zフェイク・フロント・
エッジか」。照会162に対る、答えが「ノー」の場合
、流れは照会166に進む。フロントZフェイク・エッ
ジが存在る、ものと想定る、と、コントローラはベクト
ルを生成し、フロントZフェイク・エッジのマスクをク
リアる、、168「ベクトルP 1−P2、P3−P4
1.、。
を生成る、」。命令168の後、あるいは照会166に
対る、答えが「ノー」の場合には、コントローラは処理
アルゴリズムのステップ3に送られる。
メイン・ステップ3の処理の1実施例を、第15A図に
示す。このステップの目的は、ポリゴンの内部をフレー
ム・バッファに描くことである。
ステップ2から、コントローラはまず、最後のサブエリ
アが処理されたかどうかを判断る、、210「最後のサ
ブエリアが処理されたか」。イエスであれば、コントロ
ーラはステップ4に送られる。
反対に、照会210に対る、答えが「ノー」の場合、コ
ントローラはサブエリアの最初の頂点データを獲得し、
212「サブエリアの最初の頂点データを得る」、サブ
エリアの最後の頂点が処理されているかどうかを照会る
、、216「最後の頂点が処理されたか」。「ノー」の
場・合、獲得された頂点データにZフェイク・エッジと
フラグが付けられたかどうか照会される、218「エツ
ジはZフェイクか」。「ノー」の場合、コントローラは
サブルーチンBETAIに入る、220「BETAlを
呼び出す」。
 89− 第15B図に示すBETAIはコントローラに、Zフェ
イク・エッジのない三角形を生成る、よう命令る、。2
36で、サブルーチンに入す、コントローラはまず、検
討対象の頂点が処理対象のサブエリアの2番目の頂点を
含んでいるかどうかを判断る、、238「処理対象のサ
ブエリアの2番目の頂点か」。「ノー」の場合、コント
ローラは2番目の頂点を獲得し、24Or2番目の頂点
データを得る」、照会216で第15A図の処理ルーチ
ンに戻る、246゜ サブエリアの2番目の頂点が獲得されている場合には、
照会238により、コントローラは3番目の頂点データ
を獲得し、242「次の頂点データを得る」、3つの頂
点を使用して、三角形を生成る、、244r三角形を生
成る、」。三角形の生成後、照会216で、第15A図
のメイン・ルーチン処理に戻る、246゜ 照会218に戻ると、答えが「イエス」の場合、コント
ローラは頂点が、Zフェイク・フロント・エッジまたは
Zフェイク・バック・エッジに対応0 しているかどうかを判断る、、222 rZフェイク・
エッジのタイプは」。エツジがZフェイク・バック・エ
ッジの場合には、コントローラはサブルーチンBETA
2Bを呼び出す、224 rBETA2Bを呼び出す」
。反対に、エツジがZフェイク・フロント・エッジを含
んでいる場合には、サブルーチンBETA2Fが呼び出
される、228 rBETA2Fを呼び出す」。サブル
ーチンBETA2B及びBETA2Fはこれらがステッ
プ1のコマンド122及び124でコンパイルされた異
なる2つのリストをアクセスる、ことを除けば、同一の
ものである。BETA2BはZフェイク頂点リスト(バ
ック)で保管されているエツジ頂点にアクセスし、BE
TA2FはZフェイク頂点リスト(フロント)で保管さ
れているエツジ頂点にアクセスる、。BETA2B/B
ETA2Fサブルーチンの概要を第15C図に示す。
248でサブルー チンに入った後、コントローラは重
畳Zフェイク・エッジが存在しているかどうかを確認る
、、25Or重畳したZフェイク・エッジか」。「ノー
」の場合、コントローラはサブエリアの最後のエツジが
処理されているがどうかを照会し、252「サブエリア
の最後のエツジか」、再度「ノー」であれば、サブルー
チンBETA1に入る、254rBETA1を呼び出す
」。
BETAIサブルーチンの処理の後、コントローラは照
会216で、ステップ3のメイン処理フローに戻る、2
56゜照会2!52に対る、答えが「イエス」の場合に
は、プロセッサは同様に照会216に戻る、256゜ 重畳Zフェイク・エッジが存在している場合には、コン
トローラはZフェイク・エッジが、処理すべき最後のエ
ツジであるかどうかを判断る、、258「サブエリアの
最後のエツジが」。「ノー」の場合、次の頂点データが
獲得され、26o「次の頂点データを得る」、コントロ
ーラは命令262「他のZフェイク・エッジの頂点(N
個)を、現在のエツジ頂点の間に挿入し、N千1個の三
角形を生成る、」へ進む。重畳Zフェイク・エッジがサ
ブエリアの最後のエツジと整合している場合には、照会
258により、コントローラは次の頂点データを獲得し
、2f34r次の頂点データを得る」、その後命令26
6「他のZフェイク・エッジの頂点(N個)を、現在の
エツジ頂点の間に挿入し、N個の三角形を生成る、」へ
進む。命令262及び266は共通点を修正る、必要が
ないことを除けば、命令202及び208のそれぞれと
同一である。命令262または266の後、コントロー
ラはステップ3のメイン処理ループへ戻る、256゜ 照会216に対る、答えが「イエス」の場合には、コン
トローラは頂点が、Zフェイク・エッジに対応している
かどうかを判断し、228「エツジは2フエイクか」、
再度「イエス」の場合、Zフェイク・エッジのタイプを
識別る、、230「Zフェイク・エッジのタイプは」。
Zフェイク・エッジがZ軸りリッピング面に沿っている
場合には、サブルーチンBETA2Bが呼び出される、
232 rBETA2Bを呼び出す」。それ以外の場合
には、サブルーチンBETA2Fが呼び出さ3− れる、234 rBETA2Fを呼び出す」。サブルー
チンBETA2BまたはBETA2Fの処理の後、コン
トローラは照会210に戻る。また、頂点がZフェイク
・エッジに沿っていない場合には、コントローラは照会
228から照会210へ直接戻る。
ステップ3から、コントローラはステップ4でスタイル
化されたポリゴン境界のギャップ・ポイントを描くよう
に命令される。ステップ4の処理の1実施例を第16図
に示す。図示のように、コントローラはまず、最後のサ
ブエリアが処理されているかどうかを判断る、、270
「最後のサブエリアを処理したか」。「ノー」の場合、
最初の頂点が獲得され、272「最初の頂点データを得
る」、その後獲得された頂点データがサブエリアの最後
の頂点に対応しているのかどうかの照会が行なわれる、
274rサブエリアの最後の頂点か」。「イエスJの場
合、コントローラは照会270へ戻る。反対に、サブエ
リアの最後の頂点が処理されていない場合には、コント
ローラは次の 94− 頂点を獲得し、275「次の頂点データを得る」、2つ
の頂点によって定義されたエツジが「レギュラー・エツ
ジ」なのかどうかを照会る、、276「エツジはレギュ
ラー・エツジか」。「イエス」の場合、上述のアルゴリ
ズムにしたがって、エツジのすべてのピクセルに内部カ
ラーが割り当てられる、278「ベクトルを生成る、」
。照会276に対る、答えが「ノー」の場合、コントロ
ーラはエツジが「リアル・エツジ」であるかどうかを判
断し、280「エツジは「リアル・エツジ」か」、「イ
エス」の場合には、エツジがスタイル化されているかど
うかを判断る、、282「エツジはスタイル化された線
か」。「イエス」の場合には、ベクトルが生成され、2
78「ベクトルを生成る、」、アルゴリズムにしたがっ
てギャップ・ピクセルが描かれる。エツジがスタイル化
された線でない場合には、エツジがすでにステップ1で
描かれているので、ベクトルは生成されない。照会28
0または282に対る、答えが「ノー」の場合、コント
ローラは照会274に戻り、さらに処理される。同様に
、ベクトル生成コマンド278によって、プロセッサは
274に戻る。
最後のサブエリアが処理されると、照会270によって
、コントローラはZフェイク・バック・エッジがあるか
どうかを判断る、、284 rZフェイク・バック・エ
ッジか」。「イエス」の場合、ベクトルP1−P2、P
3−P4100.が生成されるので、内部カラーをこれ
に割り当てることができる、286「ベクトルPi−P
2、P3−P4100.を生成る、」。命令286の後
、あるいは照会284に対る、答えが「ノー」の場合、
コントローラは進行し、何らかのZフェイク・フロント
・エッジがあるかどうかを判断る、、288「Zフェイ
ク・エッジか」。「イエス」の場合、対応る、ベクトル
P1−P2、P3−P410.。
が生成される、290「ベクトルPL−P2、P3−P
4100.を生成る、」。命令290の後、コントロー
ラはステップ5へ送られる。同様に、ポリゴン・プリミ
ティブに対してZフェイク・フロント・エッジが存在し
ない場合には、コントローラはステップ5へ送られる。
ステップ5の目的は最後のサブエリアの処理に引き続き
、マスク・バッファに残っているあらゆるエツジを消去
る、ことである。ステップ5の概要を第17図に示す。
図示のように、コントローラはまず、最後のサブエリア
が処理されているかどうかを判断る、、292「最後の
サブエリアが処理されたか」。「ノー」の場合、最初の
頂点が獲得される、294「最初の頂点を得る」。次い
で、コントローラはサブエリアの最後の頂点が処理さて
いるかどうかを判断し、296「サブエリアの最後の頂
点か」、「イエス」の場合には、照会292に戻る。最
後の頂点が処理されていない場合には、コントローラは
次の頂点データを獲得し、298「次の頂点データを得
る」、2つの頂点によって定義されたエツジがレギュラ
ー・エツジであるかどうかを判断る、、300「エツジ
はレギュラー・エツジか」。「イエス」の場合には、ベ
クトルが生成され、エツジを消去る、、302「ベクト
ルを生成る、」。エツジがレギュラー・97− エツジでない場合には、コントローラはエツジが「リア
ル・エツジ」であるかどうかを判断し、304「エツジ
は「リアル・エツジ」か」、再度「イエス」の場合には
、ベクトルを生成して、工・ソジを消去る、、302「
ベクトルを生成る、」。
命令302の後、コントローラは照会296に戻る。照
会304に対る、答えが「ノー」の場合には、コントロ
ーラは直接296に戻る。
最後のサブエリアが処理された後、コントローラはZフ
ェイク・バック・エッジがあるかどうかを判断し、30
6「Zフェイク・バック・エッジか」、「イエス」の場
合には、ベクトルを生成して、エツジを消去る、、30
8「ベクトルP1−P2、P3−P4100.を生成る
、」。命令308から、あるいは答えが「ノー」の場合
には、直接命令306から、コントローラはZフェイク
・フロント・エッジがあるかどうかを判断し、310r
Zフエイク・フロント・エツジか」、「イエス」の場合
には、ベクトルを生成し、エツジを消去る、、312「
ベクトルPL−P2、P3−P−98= 41.、、を生成る、」。バック及びフロントZフェイ
ク・エッジを消去した後、ステップ5の処理は終了る、
、314゜ 上記したところから、本発明が本明細書に記載した目的
を完全に溝たしていることがわかろう。
セルフ・インターセフティング・ポリゴン及び多角形孔
を有る、ポリゴンを含む凹ポリゴンを効率的に処理る、
、コンピュータ・グラフィックス・ディスプレイ・シス
テム用の方法及びプロセッサが提供される。また、上述
の方法及びプロセッサは、典型的なコンピュータ・グラ
フィックス・ディスプレイ・システムのさまざまな既存
のハードウェア構成要素を使用して実現される。
E0発明の効果 本発明により、周知の手法に比較して、凹ポリゴン処理
時間が大幅に短縮される。さらに、実施例の説明から明
らかなように、本発明は既存のディスプレイ・システム
・ハードウェアの多くの要素、たとえば、凸ポリゴンを
処理る、のに必要な要素を使用して実現される。
【図面の簡単な説明】
第1図は、本発明を組み込んだコンピュータ・グラフィ
ックス・システムの全体ブロック図である。 第2図は、本発明のディスプレイ・プロセッサの1実施
例のブロック図である。 第3図は、本発明にしたがって処理される凹ポリゴンの
図である。 第4A図ないし第4C図は、3つの三角形に分割された
第3図の凹ポリゴンと、三角形のそれぞれの向きを示す
図である。 第5A図ないし第5C図は、隣接る、三角形を処理る、
ための本発明の総和方法の図である。 第6図は、本発明のディスプレイ・プロセッサの他の実
施例のブロック図である。 第7図は、第6図に示したマスク及びデプス・バッファ
のブロック図である。 第8図は、第6図に示したX−Yジェネレータのオン・
ジェオメトリック・ライン・サブモード処理を実現る、
論理回路のブロック図である。 第9図は、本発明にしたがって処理される多角形孔を有
る、ポリゴンの図である。 第10図は、第9図の多角形孔を有る、ポリゴンを、Z
軸りリッピング面に対してクリッピングしたことによっ
て生じる新しいポリゴンの図である。 第11図は、説明のために誇張した、Zフエイク・エツ
ジの位置誤差のある第10図のクリップされたポリゴン
の図である。 第12A図ないし第12E図は、本発明のZフエイク・
エツジ処理手法による各種の段階における、第11図の
誇張されたクリップされたポリゴンの図である。 第13図は、本発明の第1の処理ステップの流れ図であ
る。 第14A図ないし第14C図は、本発明の第2の処理ス
テップの流れ図である。 第15A図ないし100図は、本発明の第3の処理ステ
ップの流れ図である。 第16図は、本発明の第4の処理ステップの流−101
− れ図である。 第17図は、本発明の第5の処理ステップの流れ図であ
る。

Claims (22)

    【特許請求の範囲】
  1. (1)ディスプレイ・プロセッサと、ディスプレイ・モ
    ニタに表示される複数の線の各々についての個々のピク
    セルを記憶するためのフレーム・バッファを含むディス
    プレイ手段とを有しており、該フレーム・バッファが複
    数個のアドレス可能なM×Nの構成ピクセル・ブロック
    に編成されているコンピュータ・グラフィックス・ディ
    スプレイ・システムにおける、複数個のアドレス可能な
    M×Nの構成ピクセルに編成されたマスク・バッファを
    使用する、前記フレーム・バッファに凹ポリゴンを描く
    方法において、 (a)前記ポリゴンの境界に対応する前記マスクバッフ
    ァ内のピクセルをマスクし、前記ポリゴンの境界に対応
    するピクセルを前記フレーム・バッファに描き、 (b)前記ポリゴンの内側に対応する前記マスクバッフ
    ァ内のピクセルをマスクするとともに、前記ポリゴン境
    界に対応するマスクされたピクセルを前記マスク・バッ
    ファに保存し、 (c)前記マスク・バッファ内のマスクされたポリゴン
    内部ピクセルを参照して、前記フレーム・バッファに前
    記ポリゴンの内側に対応するピクセルを描くステップか
    らなる、 前記方法。
  2. (2)前記方法が各々が同一のポリゴンの頂点から始ま
    る頂点のセットによって各々が表される一連の三角形に
    ポリゴンを分割することをさらに含んでおり、 前記内部ピクセル・マスキング・ステップ(b)が、 前記三角形の各々の向きを判断し、 三角形の各々の内側に対応する前記マスク・バッファ内
    のピクセルを処理し、同一の向きの隣接する三角形の内
    部ピクセルがマスクされるとともに、異なる向きの隣接
    する三角形の内部ピクセルが三角形の重畳領域内でマス
    クされないようにすることを含んでいる、 請求項1記載の方法。
  3. (3)前記ディスプレイ・プロセッサが個々のピクセル
    のZ値を記憶するためのデプス・バッファを含んでおり
    、該デプス・バッファが複数個のアドレス可能なM×N
    の構成ピクセル・ブロックに編成されており、前記方法
    が、 前記ステップ(a)において、ピクセルのZ値を前記ポ
    リゴンの境界に対応するものについて前記デプス・バッ
    ファに記憶し、 前記ステップ(c)において、ピクセルのZ値を、前記
    マスク・バッファ内のマスクされたポリゴン内部ピクセ
    ルを参照して、前記ポリゴンの内側に対応するものにつ
    いて前記デプス・バッファに記憶することをさらに含ん
    でいる、請求項1記載の方法。
  4. (4)前記方法が各々が同一のポリゴンの頂点から始ま
    る頂点のセットによって各々が表される一連の三角形に
    ポリゴンを分割することをさらに含んでおり、 前記内部ピクセル・マスキング・ステップ(b)が、 前記三角形の各々の向きを判断し、 各三角形の各々の内側に対応する前記マスク・バッファ
    内のピクセルを処理し、同一の向きの隣接する三角形の
    内部ピクセルがマスクされるとともに、異なる向きの隣
    接する三角形の内部ピクセルが三角形の重畳領域内でマ
    スクされないようにすることを含んでいる、請求項3記
    載の方法。
  5. (5)マスク・バッファにおける前記の境界ピクセル・
    マスキング、フレーム・バッファにおける前記の境界ピ
    クセルの描出、及びデプス・バッファにおける前記の境
    界ピクセルZ値記憶が実質的に同時に行なわれる、請求
    項4記載の方法。
  6. (6)前記ポリゴンが複数の多角形サブエリアによって
    定義され、前記ステップ(a)−(c)の各々が前記サ
    ブエリアのすべてを処理する、請求項5記載の方法。
  7. (7)前記ポリゴンがZフェイク・バック・エッジまた
    はZフェイク・フロント・エッジの1つを備えた少なく
    とも1つのサブエリアを有するクリップされたポリゴン
    からなっており、前記境界マスキング・ステップ(a)
    が、 第1のリストがZフェイク・バック・エッジの頂点を含
    んでおり、第2のリストがZフェイク・フロント・エッ
    ジの頂点を含んでいる2つのリストの一方に、ポリゴン
    の各Zフェイク・エッジを定義する頂点を保管し、 前記Zフェイク・エッジの勾配が垂直勾配よりも水平勾
    配に近い場合には、X軸の頂点値に基づいて、また前記
    Zフェイク・エッジの勾配が水平勾配よりも垂直勾配に
    近い場合には、Y軸の頂点値に基づいて、各非エンプテ
    ィの第1及び第2のリストを分類し、 各非エンプティ・リストに対し、分類された頂点の1番
    目から2番目への、分類された頂点の3番目から4番目
    への、以下同様に、分類された頂点のN−1番目からN
    番目へのエッジ・セグメントを生成することによって(
    ただし、Nは分類されたZフェイク頂点の数に等しい)
    、前記マスク・バッファ内のZフェイク・エッジをマス
    クすることを含んでいる、 請求項6記載の方法。
  8. (8)各サブエリアに対する前記内部マスキング・ステ
    ップ(b)と前記内部描出ステップ(c)が、各Zフェ
    イク・バック・エッジ及び各Zフェイク・フロント・エ
    ッジに、前記エッジに沿っており、前記サブエリアのZ
    フェイク・エッジ定義頂点の間に置かれた他のサブエリ
    アのあらゆる頂点を加えることによって、前記サブエリ
    アの定義を変更するステップを含んでいる、請求項7記
    載の方法。
  9. (9)前記フレーム・バッファに前記凹ポリゴンを描い
    た後、前記マスク・バッファをクリアするステップをさ
    らに包含している、請求項8記載の方法。
  10. (10)前記凹ポリゴンが多角形孔を有するポリゴンか
    らなっており、前記方法が、 各々が同一のポリゴンの頂点から始まる頂点のセットに
    よって多角形孔を定義する三角形の各々が表される一連
    の三角形に多角形孔を分割することをさらに含んでおり
    、 前記内部ピクセル・マスキング・ステップ(b)が、 前記凹ポリゴン定義三角形及び前記多角形孔定義三角形
    の各々の内側に対応し、重畳するポリゴン三角形及び多
    角形孔定義三角形内のピクセルがマスクされないように
    することを含んでいる、 請求項4記載の方法。
  11. (11)フレーム・バッファにおける内部ピクセル描出
    及びデプス・バッファにおける前記Z値記憶がほぼ同時
    に行なわれる、請求項5記載の方法。
  12. (12)ディスプレイ・プロセッサと、ディスプレイ・
    モニタに表示される複数の線の各々についての個々のピ
    クセルを記憶するためのフレーム・バッファ及び個々の
    ピクセルについてのZ値を記憶するためのデプス・バッ
    ファを含むディスプレイ手段とを有しており、該フレー
    ム・バッファ及び該デプス・バッファの各々が複数個の
    アドレス可能なM×Nの構成ピクセル・ブロックで構成
    されているコンピュータ・グラフィックス、ディスプレ
    イ・システムにおける、複数個のアドレス可能なM×N
    の構成ピクセルで構成されたマスク・バッファを使用す
    る、エッジ・ギャップ及びエッジ・セグメントによって
    定義されるスタイル化された境界のある、あるいは該境
    界のない凹ポリゴンをシェーディングする方法において
    、 (a)前記ポリゴンの境界を定義するエッジ・ギャップ
    及びエッジ・セグメントに対応する前記マスク・バッフ
    ァ内のピクセルをマスクし、(b)Z値をポリゴンの境
    界を定義するエッジ・ギャップ及びエッジ・セグメント
    に対応するものについて前記デプス・バッファ内に記憶
    し、該デプス・バッファの記憶が前記マスク・バッファ
    の内容を参照して行なわれ、 (c)ピクセルを前記ポリゴンの境界のエッジ・セグメ
    ントに対応するものについて前記フレーム・バッファに
    描き、該フレーム・バッファ描出が前記マスク・バッフ
    ァの内容を参照して行なわれ、 (d)前記ステップ(a)−(c)を実質的に同時に行
    ない、 (e)前記ポリゴンの内側に対応する前記マスク・バッ
    ファ内のピクセルをマスクするとともに、前記ポリゴン
    の境界のエッジ・ギャップ及びエッジ・セグメントに対
    応する前記マスク・バッファにマスクされたピクセルを
    保存し、 (f)同時に、前記デプス・バッファにZ値を記憶し、
    前記マスク・バッファの内容を参照して、ピクセルを前
    記ポリゴンの内側の点に対応するものについて前記フレ
    ーム・バッファに描き、(g)ピクセルを前記ポリゴン
    の境界のエッジ・ギャップに対応するものについて前記
    フレーム・バッファに描き、該フレーム・バッファ内の
    ギャップ・ピクセルの描出が、前記マスク・バッファの
    内容を参照して行なわれるステップからなる、 前記方法。
  13. (13)前記方法が各々が同一のポリゴンの頂点から始
    まる頂点のセットによって各々が表される一連の三角形
    にポリゴンを分割することをさらに含んでおり、 前記内部ピクセル・マスキング・ステップ(e)が、 前記三角形の各々の向きを判断し、 各三角形の各々の内側に対応する前記マスク・バッファ
    内のピクセルを処理し、同一の向きの隣接する三角形の
    内部ピクセルがマスクされるとともに、異なる向きの隣
    接する三角形の内部ピクセルが三角形の重畳領域内でマ
    スクされないようにすることを含んでいる、請求項12
    記載の方法。
  14. (14)前記フレーム・バッファ内の前記ポリゴンの描
    出に引き続いて、前記マスク・バッファ内のピクセルを
    クリアすることをさらに含んでいる、請求項13記載の
    方法。
  15. (15)ディスプレイ・モニタに表示される複数の線の
    各々に対する個々のピクセルを記憶するためのフレーム
    ・バッファを含むディスプレイ手段とを有しており、該
    フレーム・バッファが複数個のアドレス可能なM×Nの
    構成ピクセル・ブロックで構成されている、コンピュー
    タ・グラフィックス・ディスプレイ・システム用のディ
    スプレイ・プロセッサであって、前記フレーム・バッフ
    ァに凹ポリゴンを描くことのできるディスプレイ・プロ
    セッサにおいて、 コントローラと、 該コントローラから信号を受け取るように接続されたエ
    ッジ/トライアングル生成手段と、該生成手段から信号
    を受け取るように接続された第1組合せ論理手段と、 複数個のM×Nの構成ピクセルで構成されたマスク・バ
    ッファと、該マスク・バッファが前記第1組合せ論理手
    段からのピクセル値及び前記生成手段からのアドレス信
    号を受け取るように接続されており、前記第1組合せ論
    理手段からの前記ピクセル値及び前記生成手段からの前
    記アドレス信号を、前記プロセッサが使用して、前記ポ
    リゴンの境界のマスク及び前記マスク・バッファ内の前
    記ポリゴンの内側のマスクを作成し、 前記生成手段からのアドレス信号及び前記マスク・バッ
    ファからのピクセル値を受け取るように接続された第2
    組合せ論理手段とからなり、該第2組合せ論理手段が前
    記フレーム・バッファに対して、処理される各X、Yア
    ドレスに対するエッジ信号及び塗りつぶし信号の一方を
    出力し、前記エッジ信号が前記ポリゴンの境界ピクセル
    に対応しており、前記塗りつぶし信号が前記ポリゴンの
    内部ピクセルに対応している、前記ディスプレイ・プロ
    セッサ。
  16. (16)前記エッジ/トライアングル生成手段が、各々
    が同一のポリゴンの頂点から始まる頂点のセットによっ
    て各々が表される一連の三角形にポリゴンを分割する手
    段と、 前記三角形の各々の向きを判断する手段と を含んでおり、 前記第1組合せ論理手段が、 各三角形の内側に対応する前記マスク・バッファ内のピ
    クセルを処理して、同じ向きの隣接する三角形の内部ピ
    クセルをマスクするとともに、異なる向きの隣接する三
    角形の内部ピクセルを三角形の重畳領域内でマスクしな
    いようにする手段を含んでいる、 請求項15記載のディスプレイ・プロセッサ。
  17. (17)前記三角形の各々の向きを判断する前記手段が ViVj×ViVk≧0の場合、ORIENT=’+’
    Vivj×ViVk<0の場合、ORIENT=’−’
    (ただし、ViVjは頂点Viから頂点Vjへのベクト
    ルであり、ViVkは頂点ViからVkへのベクトルで
    あり、×はクロス乗積演算である)と定義される信号O
    RIENTを生じる、請求項16記載のディスプレイ・
    プロセッサ。
  18. (18)前記エッジ/トライアングル生成手段がポリゴ
    ンのエッジ上のすべての点のアドレス・シーケンスを生
    成する手段を含んでおり、前記第1組合せ論理手段が有
    効なX、Yエッジ・アドレスに対応するマスク・バッフ
    ァ内のこれらの位置に、エッジ値’e’を書き込み、該
    アドレスを前記生成手段から受け取る、請求項17記載
    のディスプレイ・プロセッサ。
  19. (19)前記三角形の内側に対応する前記マスク・バッ
    ファ内のピクセルを処理するための手段が、下記の表を
    実現する、請求項18記載のディスプレイ・プロセッサ
    。 ただし、 ’+’=反時計方向の三角形の向きの塗りつぶしピクセ
    ル ’−’=時計方向の三角形の塗りつぶしピクセル ’0’=クリアされたピクセル ’e’=エッジ・ピクセル MBOLD=X、Yアドレスにおける古いマスク・バッ
    ファ値 MBNEW=X、Yアドレスにおける新しいマスク・バ
    ッファ値
  20. (20)前記第2組合せ論理手段が、有効なX、Yアド
    レス信号を前記生成手段から受け取り、かつ該X、Yア
    ドレスにおける前記マスク・バッファの内容が’+’ま
    たは’−’である場合に、前記塗りつぶし信号を断言し
    、また有効なX、Yアドレス信号を前記生成手段から受
    け取り、かつ該X、Yアドレスにおける前記マスク・バ
    ッファの内容が’e’である場合に、前記エッジ信号を
    断言する、請求項19記載のディスプレイ・プロセッサ
  21. (21)ディスプレイ・モニタに表示される複数の線の
    各々に対する個々のピクセルを記憶するためのフレーム
    ・バッファを含むディスプレイ手段とを有しており、該
    フレーム・バッファが複数個のアドレス可能なM×Nの
    構成ピクセル・ブロックで構成されている、コンピュー
    タ・グラフィックス・ディスプレイ・システム用のディ
    スプレイ・プロセッサであって、前記フレーム・バッフ
    ァに凹ポリゴンを描くことのできるディスプレイ・プロ
    セッサにおいて、 コントローラと、 エッジ生成モード及びトライアングル生成モードを有す
    るX−Yジェネレータと、 前記コントローラ及び前記X−Yジェネレータから信号
    を受け取り、各X、Yアドレスに対するZの補間された
    値及び輝度を出力するように構成された補間手段と、 各々のピクセルの深さが2ビットである複数個のアドレ
    ス可能なM×Nのピクセルを有するマスク・バッファ、
    ならびに複数個のアドレス可能なM×Nの構成ピクセル
    ・ブロックで構成されたデプス・バッファを含むマスク
    ・バッファ及びデプス・バッファ手段とからなり、該バ
    ッファ手段が前記ポリゴンの境界及び内側に対応する各
    X、Yアドレスに対するZの補間された値を、フレーム
    ・バッファに出力し、 前記マスク・バッファ及びデプス・バッファ手段が前記
    マスク・バッファ内の前記ポリゴンの正確なマスクを生
    成するための組合せ論理手段を含んでおり、前記マスク
    ・バッファを使用して、前記フレーム・バッファへの描
    出、ならびに各X、Yアドレスに対するZの補間された
    値の前記デプス・バッファ内への記憶を制御する、 前記ディスプレイ・プロセッサ。
  22. (22)前記X−Yジェネレータと前記マスク・バッフ
    ァ及びデプス・バッファ手段の間に配置されたライン・
    スタイル・ジェネレータをさらに含んでおり、該ライン
    ・スタイル・ジェネレータが前記デプス・バッファ手段
    に対して、スタイル化されたポリゴン境界を表すエッジ
    ・ギャップ・ピクセル及びエッジ・セグメント・ピクセ
    ルを定義する、請求項21記載のディスプレイ・プロセ
    ッサ。
JP2266604A 1989-10-23 1990-10-05 凹ポリゴン描出方法及びプロセツサ Expired - Lifetime JPH0760465B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42588889A 1989-10-23 1989-10-23
US425888 1989-10-23

Publications (2)

Publication Number Publication Date
JPH03139782A true JPH03139782A (ja) 1991-06-13
JPH0760465B2 JPH0760465B2 (ja) 1995-06-28

Family

ID=23688457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2266604A Expired - Lifetime JPH0760465B2 (ja) 1989-10-23 1990-10-05 凹ポリゴン描出方法及びプロセツサ

Country Status (3)

Country Link
US (1) US5303340A (ja)
EP (1) EP0425189A3 (ja)
JP (1) JPH0760465B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502802A (en) * 1990-07-27 1996-03-26 Ricoh Company, Ltd. Polygonal image-drawing processor
US5446836A (en) * 1992-10-30 1995-08-29 Seiko Epson Corporation Polygon rasterization
US5619627A (en) * 1994-05-03 1997-04-08 Loral Aerospace Corp. Multiple-level occulting using a mask buffer
TW304254B (ja) 1994-07-08 1997-05-01 Hitachi Ltd
JP3239975B2 (ja) * 1994-11-29 2001-12-17 富士通株式会社 多角形描画装置
US6173075B1 (en) * 1995-08-30 2001-01-09 Usanimation, Inc. Drawing pixmap to vector conversion
US6247019B1 (en) 1998-03-17 2001-06-12 Prc Public Sector, Inc. Object-based geographic information system (GIS)
US6504543B1 (en) * 1999-01-06 2003-01-07 Matsushita Electric Industrial Co., Ltd. Polygon drawing method and polygon drawing apparatus
CA2309378C (en) * 1999-05-25 2005-09-27 Nippon Telegraph And Telephone Corporation Image filling method, apparatus and computer readable medium for reducing filling process in producing animation
US6407736B1 (en) 1999-06-18 2002-06-18 Interval Research Corporation Deferred scanline conversion architecture
JP4541533B2 (ja) * 2000-11-24 2010-09-08 パナソニック株式会社 描画装置
JP4387611B2 (ja) * 2001-06-07 2009-12-16 富士通マイクロエレクトロニクス株式会社 描画装置及び描画方法
JPWO2004055697A1 (ja) * 2002-12-13 2006-04-20 富士通株式会社 処理方法、処理装置及びコンピュータプログラム
GB2400780B (en) * 2003-04-17 2006-07-12 Research In Motion Ltd System and method of converting edge record based graphics to polygon based graphics
US7436414B2 (en) * 2004-11-12 2008-10-14 Valve Corporation Method for accelerated determination of occlusion between polygons
TWI319166B (en) * 2006-03-06 2010-01-01 Via Tech Inc Method and related apparatus for graphic processing
CN102110306B (zh) * 2009-12-23 2016-09-21 富士通株式会社 用于对凹多边形进行三角化的方法和系统
US8976188B1 (en) 2012-04-20 2015-03-10 Google Inc. Optimized data communication system and method for an image rendering system
CN103337084B (zh) * 2013-06-05 2015-11-18 东南大学 一种基于人工地物特征的地物图斑自动生成方法
US9721363B2 (en) 2014-05-19 2017-08-01 Google Inc. Encoding polygon data for fast retrieval and rendering
RU2608870C2 (ru) 2014-10-30 2017-01-25 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и электронное устройство (варианты) определения расположения точки относительно первого многоугольника в многомерном пространстве
US10410081B2 (en) * 2014-12-23 2019-09-10 Intel Corporation Method and apparatus for a high throughput rasterizer

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6299870A (ja) * 1985-10-25 1987-05-09 Toshiba Corp 画像処理装置
US4819185A (en) * 1986-01-17 1989-04-04 International Business Machines Corporation Method and apparatus for drawing wide lines in a raster graphics display system
JPS62192878A (ja) * 1986-02-20 1987-08-24 Nippon Gakki Seizo Kk 多角形の塗りつぶし方法
US4901251A (en) * 1986-04-03 1990-02-13 Advanced Micro Devices, Inc. Apparatus and methodology for automated filling of complex polygons
US4805116A (en) * 1986-04-23 1989-02-14 International Business Machines Corporation Interpolated display characteristic value generator
US4815009A (en) * 1987-04-21 1989-03-21 Xerox Corporation Algorithm for filling an image outline
US4979130A (en) * 1987-10-19 1990-12-18 Industrial Technology Research Institute Method of creating hollow multistroke characters
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

Also Published As

Publication number Publication date
EP0425189A2 (en) 1991-05-02
JPH0760465B2 (ja) 1995-06-28
EP0425189A3 (en) 1993-01-07
US5303340A (en) 1994-04-12

Similar Documents

Publication Publication Date Title
JPH03139782A (ja) 凹ポリゴン描出方法及びプロセツサ
US5357599A (en) Method and apparatus for rendering polygons
JP3344597B2 (ja) グラフィック画像をテッセレーション化する方法および装置
US5214753A (en) Video system with parallel attribute interpolations
US5249264A (en) Image display method and apparatus
US5377313A (en) Computer graphics display method and system with shadow generation
JP5188628B2 (ja) 3dオブジェクトの3dモデルをレンダリングするための方法及びシステム
EP0358493A2 (en) Graphics system
EP0606685A1 (en) Method and apparatus for reducing illumination calculations through efficient visibility determination
JPH05307610A (ja) テクスチャマッピング方法およびその装置
US5003497A (en) Method for three-dimensional clip checking for computer graphics
JPH0687267B2 (ja) ワイヤ・フレーム・グラフィック表示生成方法及び装置ならびに隠線除去システム
JPH04289984A (ja) ビット平面マスキングを用いた消去表面表示システムおよびその方法
US6791569B1 (en) Antialiasing method using barycentric coordinates applied to lines
US5265198A (en) Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system
JP3839871B2 (ja) 三角形を表わす画素データを生成する装置
US7834879B2 (en) Drawing apparatus for displaying image data about a plurality of objects including semitransparent object and opaque object on computer display screen
EP0441490A2 (en) Apparatus and method of encoding control data in a computer graphics system
JP2883523B2 (ja) 画像合成装置及び画像合成方法
JPH06215143A (ja) グラフィックス・オブジェクト表現方法と装置
JP3839870B2 (ja) 四辺形を表わす画素データを生成する装置および方法
EP0369965B1 (en) Image display apparatus
KR100328593B1 (ko) 3-d 그래픽용 고속 클립핑 방법
Ertl Computer graphics—principles and practice
EP0288629A1 (en) Gouraud shading on graphics display apparatus