JPH0760465B2 - 凹ポリゴン描出方法及びプロセツサ - Google Patents
凹ポリゴン描出方法及びプロセツサInfo
- Publication number
- JPH0760465B2 JPH0760465B2 JP2266604A JP26660490A JPH0760465B2 JP H0760465 B2 JPH0760465 B2 JP H0760465B2 JP 2266604 A JP2266604 A JP 2266604A JP 26660490 A JP26660490 A JP 26660490A JP H0760465 B2 JPH0760465 B2 JP H0760465B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- polygon
- mark
- pixels
- edge
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は総括的にコンピュータ・グラフィックス表示シ
ステムに関し、詳細にいえば、表示モニタに表示すべき
複数のラインの各々に対する個々のピクセルを記憶する
ためのフレーム・バッファを含むグラフィックス表示手
段に対して、凹(concave)ポリゴン、セルフ・インタ
ーセクティング・ポリゴン及び多角形孔を有するポリゴ
ンの1つを描くための改善された方法及びプロセッサに
関する。
ステムに関し、詳細にいえば、表示モニタに表示すべき
複数のラインの各々に対する個々のピクセルを記憶する
ためのフレーム・バッファを含むグラフィックス表示手
段に対して、凹(concave)ポリゴン、セルフ・インタ
ーセクティング・ポリゴン及び多角形孔を有するポリゴ
ンの1つを描くための改善された方法及びプロセッサに
関する。
B.従来の技術及びその課題 周知のように、コンピュータ・グラフィックス表示シス
テムは、ラスタ操作ディスプレイ装置上にグラフィック
・イメージを生成し、表示するコンピュータ・システム
である。このようなグラフィック・イメージはシステム
のメモリに記憶されているディジタル・データから導か
れる。データは通常、2次元または3次元座標系の点の
形で記憶されており、点は三角形などのポリゴンの頂点
に対応している。ポリゴンは最終的な表示オブジェクト
である大きなオブジェクトの「建築ブロック」を形成す
る。頂点データにはパラメータ値、すなわち輝度、ある
いは表面色、表面反射率、透明度、光源、法線ベクトル
などの輝度の計算を可能とするその他の値も記憶されて
いる。
テムは、ラスタ操作ディスプレイ装置上にグラフィック
・イメージを生成し、表示するコンピュータ・システム
である。このようなグラフィック・イメージはシステム
のメモリに記憶されているディジタル・データから導か
れる。データは通常、2次元または3次元座標系の点の
形で記憶されており、点は三角形などのポリゴンの頂点
に対応している。ポリゴンは最終的な表示オブジェクト
である大きなオブジェクトの「建築ブロック」を形成す
る。頂点データにはパラメータ値、すなわち輝度、ある
いは表面色、表面反射率、透明度、光源、法線ベクトル
などの輝度の計算を可能とするその他の値も記憶されて
いる。
所与のオブジェクトについて、このデータは「ディスプ
レイ・リスト」と呼ばれる命令のリストの形で記憶され
る。このようなディスプレイ・リストを、ラスタ走査デ
ィスプレイ装置上の実際のイメージに変換するために、
メモリからリストを読み取り、データを処理し、次いで
生のピクセル・データをフレーム・バッファに書き込む
ディスプレイ・プロセッサを設ける。ラスタ操作時に、
リアル・タイムで、フレーム・バッファが読み取られ、
結果として得られるデータ・ストリームはアナログ・ビ
デオ信号に変換され、このビデオ信号はディスプレイ装
置に送られる。
レイ・リスト」と呼ばれる命令のリストの形で記憶され
る。このようなディスプレイ・リストを、ラスタ走査デ
ィスプレイ装置上の実際のイメージに変換するために、
メモリからリストを読み取り、データを処理し、次いで
生のピクセル・データをフレーム・バッファに書き込む
ディスプレイ・プロセッサを設ける。ラスタ操作時に、
リアル・タイムで、フレーム・バッファが読み取られ、
結果として得られるデータ・ストリームはアナログ・ビ
デオ信号に変換され、このビデオ信号はディスプレイ装
置に送られる。
本発明はこのようなコンピュータ・グラフィックス・シ
ステムのディスプレイ・プロセッサ部に設けられる機能
に関する。詳細にいえば、本発明は表示された三角形の
すべてのピクセル値に対する第3のパラメータ値に対応
するデータを、ピクセルの位置、及び第3のパラメータ
に関連した他のデータに基づいて生成することに関す
る。たとえば、いわゆるシェーディング問題において
は、所与の三角形のシェーディング情報が、三角形の頂
点の光度の形でディスプレイ・プロセッサに与えられ
る。あるいは、ディスプレイ・プロセッサに、オブジェ
クト表面、表面の向き、及び指定の光モデルのパラメー
タを与えることもできる。ディスプレイ・プロセッサは
この場合、三角形に関連する各ピクセルについて、与え
られた値に基づいて光度の値を計算しなければならな
い。
ステムのディスプレイ・プロセッサ部に設けられる機能
に関する。詳細にいえば、本発明は表示された三角形の
すべてのピクセル値に対する第3のパラメータ値に対応
するデータを、ピクセルの位置、及び第3のパラメータ
に関連した他のデータに基づいて生成することに関す
る。たとえば、いわゆるシェーディング問題において
は、所与の三角形のシェーディング情報が、三角形の頂
点の光度の形でディスプレイ・プロセッサに与えられ
る。あるいは、ディスプレイ・プロセッサに、オブジェ
クト表面、表面の向き、及び指定の光モデルのパラメー
タを与えることもできる。ディスプレイ・プロセッサは
この場合、三角形に関連する各ピクセルについて、与え
られた値に基づいて光度の値を計算しなければならな
い。
シェードの付けられるポリゴンが凹ポリゴン、セルフ・
インターセクティング・ポリゴンまたは多角形孔を有す
るポリゴン(以下、「凹ポリゴン」と総称する)を包含
している、シェーディング問題の特別な場合が存在す
る。凹ポリゴンのシェーディングの問題は2つの主要な
方法、すなわち(1)ポリゴンの凸形部分への分解、及
び(2)走査線アルゴリズムの使用で処理されていた。
インターセクティング・ポリゴンまたは多角形孔を有す
るポリゴン(以下、「凹ポリゴン」と総称する)を包含
している、シェーディング問題の特別な場合が存在す
る。凹ポリゴンのシェーディングの問題は2つの主要な
方法、すなわち(1)ポリゴンの凸形部分への分解、及
び(2)走査線アルゴリズムの使用で処理されていた。
第1の手法において、分解されたポリゴンを定義する各
凸形部分には、独立してシェードが付けられる。この手
法は「Triangulating a Simple Polygon」、M.R.Carey
et al.Information Processing letters、(June 197
8)、pp.175−179に記載されている。他の例が「Surfac
e Triangulation for Picture Production」、by B.Wor
denweber、IEEE CG&A(November,1983)、pp.45−51
に記載されている。この手法の主な欠点は、特に分解プ
ロシージャにおいて、付加的な頂点が導入されない場合
に、処理時間の増加によってシステム・パフォーマンス
が低下することである。付加的な頂点の生成を認めた場
合、頂点の数に対する線形時間挙動が得られる。しかし
ながら、処理はこれでも時間のかかるものである。この
別の手法の例は、「A Linear−Time Algorithm for Tri
angulating Simple Polygons」、by R.E.Tarjan and C.
J.Van Wyk,PROC Eighteenth Annual ACM Symnposium on
Theory of Computing(1986)pp.380−388で検討され
ている。また、オリジナルのポリゴンのエッジが2つま
たは3つの部分に分割される場合には、付加的な頂点の
導入は避けなければならない。丸めの誤差によって、部
分の線方程式は、オリジナルのエッジの方程式とは異な
ってくる。このことはアプリケーションがこれを描くこ
とを選択した場合に、オリジナルのポリゴンのエッジと
合致する線の可視性に問題を引き起こす。
凸形部分には、独立してシェードが付けられる。この手
法は「Triangulating a Simple Polygon」、M.R.Carey
et al.Information Processing letters、(June 197
8)、pp.175−179に記載されている。他の例が「Surfac
e Triangulation for Picture Production」、by B.Wor
denweber、IEEE CG&A(November,1983)、pp.45−51
に記載されている。この手法の主な欠点は、特に分解プ
ロシージャにおいて、付加的な頂点が導入されない場合
に、処理時間の増加によってシステム・パフォーマンス
が低下することである。付加的な頂点の生成を認めた場
合、頂点の数に対する線形時間挙動が得られる。しかし
ながら、処理はこれでも時間のかかるものである。この
別の手法の例は、「A Linear−Time Algorithm for Tri
angulating Simple Polygons」、by R.E.Tarjan and C.
J.Van Wyk,PROC Eighteenth Annual ACM Symnposium on
Theory of Computing(1986)pp.380−388で検討され
ている。また、オリジナルのポリゴンのエッジが2つま
たは3つの部分に分割される場合には、付加的な頂点の
導入は避けなければならない。丸めの誤差によって、部
分の線方程式は、オリジナルのエッジの方程式とは異な
ってくる。このことはアプリケーションがこれを描くこ
とを選択した場合に、オリジナルのポリゴンのエッジと
合致する線の可視性に問題を引き起こす。
走査線アルゴリズムを使用する、凹ポリゴンにシェード
を付ける第2の手法は、「Fundamentals of Interactiv
e Computer Graphics」、by J.D.Foley and A.Van Da
m、at pp.456−460(1985)で説明されている。この手
法の主な欠点は、エッジ・リストの分類、及びシェード
の付けられるポリゴンの各スパンに対する勾配(dZ/dX
/、dR/dX、dG/dX、dB/dX)の計算に付加的な時間が必要
なことである。
を付ける第2の手法は、「Fundamentals of Interactiv
e Computer Graphics」、by J.D.Foley and A.Van Da
m、at pp.456−460(1985)で説明されている。この手
法の主な欠点は、エッジ・リストの分類、及びシェード
の付けられるポリゴンの各スパンに対する勾配(dZ/dX
/、dR/dX、dG/dX、dB/dX)の計算に付加的な時間が必要
なことである。
本発明は従来の凹ポリゴン処理手法に付随する上述のパ
フォーマンスの問題を解決するようになされており、凸
ポリゴンを処理するためにすでに標準となっている多く
のハードウェアを有利に使用する、凹ポリゴンの描出
(すなわち、塗りつぶしやシェーディング)手法を提供
する。
フォーマンスの問題を解決するようになされており、凸
ポリゴンを処理するためにすでに標準となっている多く
のハードウェアを有利に使用する、凹ポリゴンの描出
(すなわち、塗りつぶしやシェーディング)手法を提供
する。
C.課題を解決するための手段 簡単にいえば、ディスプレイ・モニタに表示すべき複数
の線の各々に対する個々のピクセルを記憶するためにフ
レーム・バッファを含む、ディスプレイ・プロセッサ及
びディスプレイ装置を有するコンピュータ・グラフィッ
クス・ディスプレイ・システムにおいて、本発明は広い
意味で、フレーム・バッファ内の凹ポリゴンを描出する
方法を提供する。フレーム・バッファは通常、複数個の
アドレス可能なM×Nの構成(constituent)ピクセル
・ブロックに編成され、本方法は複数個のアドレス可能
なM×Nの構成ピクセルで構成されたマーク・バッファ
を使用する。本方法はポリゴンの境界に対応するマーク
・バッファ内のピクセルをマップし、ポリゴンの境界に
対応するフレーム・バッファ内のピクセルに記入するス
テップと、ポリゴンの内部に対応するマーク・バッファ
内のピクセルをマークするとともに、ポリゴンの境界に
対応するマークされたピクセルをマーク・バッファ内に
保存するステップと、ポリゴンの内部に対応するフレー
ム・バッファ内のピクセルを、マーク・バッファ内のマ
ークされたポリゴン内部のピクセルを参照して描くステ
ップからなる。
の線の各々に対する個々のピクセルを記憶するためにフ
レーム・バッファを含む、ディスプレイ・プロセッサ及
びディスプレイ装置を有するコンピュータ・グラフィッ
クス・ディスプレイ・システムにおいて、本発明は広い
意味で、フレーム・バッファ内の凹ポリゴンを描出する
方法を提供する。フレーム・バッファは通常、複数個の
アドレス可能なM×Nの構成(constituent)ピクセル
・ブロックに編成され、本方法は複数個のアドレス可能
なM×Nの構成ピクセルで構成されたマーク・バッファ
を使用する。本方法はポリゴンの境界に対応するマーク
・バッファ内のピクセルをマップし、ポリゴンの境界に
対応するフレーム・バッファ内のピクセルに記入するス
テップと、ポリゴンの内部に対応するマーク・バッファ
内のピクセルをマークするとともに、ポリゴンの境界に
対応するマークされたピクセルをマーク・バッファ内に
保存するステップと、ポリゴンの内部に対応するフレー
ム・バッファ内のピクセルを、マーク・バッファ内のマ
ークされたポリゴン内部のピクセルを参照して描くステ
ップからなる。
特定な実施例において、ディスプレイ・プロセッサは個
々のピクセルのZ値を記憶するためのデプス・バッファ
を含んでおり、このバッファは複数個のアドレス可能な
M×Nの構成ピクセル・ブロックで構成されている。本
方法はさらに、ポリゴンの境界に対応するピクセルにお
ける該当するZ値を、デプス・バッファに記憶するステ
ップと、前記ポリゴンの内部に対応するピクセルにおけ
るデプス・バッファ内のZ値を、マーク・バッファ内の
マークされたポリゴンの内部のピスセルを参照して記憶
するステップを含んでいる。
々のピクセルのZ値を記憶するためのデプス・バッファ
を含んでおり、このバッファは複数個のアドレス可能な
M×Nの構成ピクセル・ブロックで構成されている。本
方法はさらに、ポリゴンの境界に対応するピクセルにお
ける該当するZ値を、デプス・バッファに記憶するステ
ップと、前記ポリゴンの内部に対応するピクセルにおけ
るデプス・バッファ内のZ値を、マーク・バッファ内の
マークされたポリゴンの内部のピスセルを参照して記憶
するステップを含んでいる。
さらに、本方法はポリゴンを一連の三角形に分割(tess
ellate)し、分解されたポリゴンを定義する三角形の各
々の向きを判定し、各三角形の内部に対応するマーク・
バッファ内のピクセルを処理して、同じ向きの隣接した
三角形の内部ピクセルをマークするとともに、異なる向
きの隣接した三角形の内部ピクセルを三角形の重畳領域
内でマークしないようにすることを含むことが好まし
い。概要を述べたマスキング、描出、及び記憶の各ステ
ップを実現する詳細なアルゴリズムが提供される。
ellate)し、分解されたポリゴンを定義する三角形の各
々の向きを判定し、各三角形の内部に対応するマーク・
バッファ内のピクセルを処理して、同じ向きの隣接した
三角形の内部ピクセルをマークするとともに、異なる向
きの隣接した三角形の内部ピクセルを三角形の重畳領域
内でマークしないようにすることを含むことが好まし
い。概要を述べたマスキング、描出、及び記憶の各ステ
ップを実現する詳細なアルゴリズムが提供される。
他の実施例において、本発明は上述の方法を実現するデ
ィスプレイ・プロセッサからなる。プロセッサはコント
ローラ、コントローラから信号を受け取るように接続さ
れたエッジ/トライアングル生成手段、生成手段から信
号を受け取るように接続された第1組合せ論理手段、複
数個のM×Nの構成ピクセルで構成されたマーク・バッ
ファ、第1組合せ論理手段からのピクセル値及び生成手
段からのアドレス信号を受け取るように接続され、プロ
セッサによって使用されて、マーク・バッファ内にポリ
ゴンの境界及びポリゴンの内部のマークを形成するマー
ク・バッファ、ならびに生成手段からのアドレス信号及
びマーク・バッファからのピクセル値を受け取るように
接続された第2組合せ論理手段とを含んでいる。信号及
びピクセル値の入力に応じて、第2組合せ論理手段は処
理される各X、Yアドレスに対し、エッジ信号及び塗り
つぶし信号の一方を発生する。エッジ信号はポリゴンの
境界ピクセルに対応しており、塗りつぶし信号はポリゴ
ンの内部ピクセルに対応している。信号はフレーム・バ
ッファに送られる。
ィスプレイ・プロセッサからなる。プロセッサはコント
ローラ、コントローラから信号を受け取るように接続さ
れたエッジ/トライアングル生成手段、生成手段から信
号を受け取るように接続された第1組合せ論理手段、複
数個のM×Nの構成ピクセルで構成されたマーク・バッ
ファ、第1組合せ論理手段からのピクセル値及び生成手
段からのアドレス信号を受け取るように接続され、プロ
セッサによって使用されて、マーク・バッファ内にポリ
ゴンの境界及びポリゴンの内部のマークを形成するマー
ク・バッファ、ならびに生成手段からのアドレス信号及
びマーク・バッファからのピクセル値を受け取るように
接続された第2組合せ論理手段とを含んでいる。信号及
びピクセル値の入力に応じて、第2組合せ論理手段は処
理される各X、Yアドレスに対し、エッジ信号及び塗り
つぶし信号の一方を発生する。エッジ信号はポリゴンの
境界ピクセルに対応しており、塗りつぶし信号はポリゴ
ンの内部ピクセルに対応している。信号はフレーム・バ
ッファに送られる。
D.実施例 簡単に上述したように、本発明はポリゴンの座標、及び
その頂点にこれらの対応する輝度(すなわち、主に、た
とえば赤緑青(RGB)系を使用した、カラー)を与えた
ポリゴンを描出する(すなわち、塗りつぶしまたはシェ
ーディングを行なう)改善された方法及びプロセッサを
提供する。本発明は特に、凹ポリゴンの処理を目的とす
る。特に断らない限り、本明細書で使用する「凹ポリゴ
ン」とは、セルフ・インターセクティング・ポリゴン及
び多角形孔を有するポリゴンを含むものである。本発明
のすべての実施例において、ポリゴンの境界及び内部の
カラーは異なることができる。さらに、拡張された実施
例においては、ポリゴンの境界を記述する線は、たとえ
ば、点線、破線などの形式とすることができる。
その頂点にこれらの対応する輝度(すなわち、主に、た
とえば赤緑青(RGB)系を使用した、カラー)を与えた
ポリゴンを描出する(すなわち、塗りつぶしまたはシェ
ーディングを行なう)改善された方法及びプロセッサを
提供する。本発明は特に、凹ポリゴンの処理を目的とす
る。特に断らない限り、本明細書で使用する「凹ポリゴ
ン」とは、セルフ・インターセクティング・ポリゴン及
び多角形孔を有するポリゴンを含むものである。本発明
のすべての実施例において、ポリゴンの境界及び内部の
カラーは異なることができる。さらに、拡張された実施
例においては、ポリゴンの境界を記述する線は、たとえ
ば、点線、破線などの形式とすることができる。
まず、第1図には、総括的に10で示されているラスタ・
グラフィック・ディスプレイ・システムのいくつかの主
要構成部品が示されている。システム10はホスト・イン
ターフェース12、システム・メモリ14、システム制御プ
ロセッサ16、ディスプレイ・プロセッサ18、I/Oデバイ
ス20、2つのフレーム・バッファ22a及び22b、ならびに
モニタ24を含んでいる。これらの構成部品の各々は、IB
M5080などの市販コンピュータ・グラフィックス・ディ
スプレイ・システムの要素によって実現できる。簡単に
いうと、メモリ14、プロセッサ16及び18、ならびにI/O
デバイス20はシステム・バス13を介して互いに通信を行
ない、またシリアル・ホスト・インターフェース12を介
してホスト・コンピュータ(図示せず)と通信を行な
う。システム制御プロセッサ16は、グラフィックス・シ
ステム10のマスタ・コントローラを有している汎用プロ
セッサである。プロセッサ16は接続されたすべてのグラ
フィックスI/Oデバイス20にサービスを行ない、関連す
る処理をディスプレイ・プロセッサ18と整合させ、かつ
インターフェース12を介してホスト・コンピュータとイ
ンターフェースする。ディスプレイ・プロセッサ18はシ
ステム・メモリ14に常駐するディスプレイ・プログラム
のグラフィックス命令を実行するものであり、主として
ディスプレイ・モニタ24に現れるイメージの生成にかか
わっている。ディスプレイ・プロセッサ18は部分的に、
モニタ24に表示されるオブジェクトを表すポリゴンやポ
リラインなどの幾何学的プリミティブを作成する機能を
果たす。ディスプレイ・プロセッサはシステム・バス13
を介して、メモリ14から基本プリミティブを読み取り、
フレーム・バッファ・バス15によって、フレーム・バッ
ファ−A 22a及びフレーム・バッファ−B22b内に希望
する画素を生成する。フレーム・バッファは通常2重に
なっており、これによって一方に描面プロセッサによっ
て書き込みを行ないながら、他方をモニタによって表示
することが可能となる。本発明を構成する方法及びシス
テムは主として、システム10のディスプレイ・プロセッ
サ18内で実現される。
グラフィック・ディスプレイ・システムのいくつかの主
要構成部品が示されている。システム10はホスト・イン
ターフェース12、システム・メモリ14、システム制御プ
ロセッサ16、ディスプレイ・プロセッサ18、I/Oデバイ
ス20、2つのフレーム・バッファ22a及び22b、ならびに
モニタ24を含んでいる。これらの構成部品の各々は、IB
M5080などの市販コンピュータ・グラフィックス・ディ
スプレイ・システムの要素によって実現できる。簡単に
いうと、メモリ14、プロセッサ16及び18、ならびにI/O
デバイス20はシステム・バス13を介して互いに通信を行
ない、またシリアル・ホスト・インターフェース12を介
してホスト・コンピュータ(図示せず)と通信を行な
う。システム制御プロセッサ16は、グラフィックス・シ
ステム10のマスタ・コントローラを有している汎用プロ
セッサである。プロセッサ16は接続されたすべてのグラ
フィックスI/Oデバイス20にサービスを行ない、関連す
る処理をディスプレイ・プロセッサ18と整合させ、かつ
インターフェース12を介してホスト・コンピュータとイ
ンターフェースする。ディスプレイ・プロセッサ18はシ
ステム・メモリ14に常駐するディスプレイ・プログラム
のグラフィックス命令を実行するものであり、主として
ディスプレイ・モニタ24に現れるイメージの生成にかか
わっている。ディスプレイ・プロセッサ18は部分的に、
モニタ24に表示されるオブジェクトを表すポリゴンやポ
リラインなどの幾何学的プリミティブを作成する機能を
果たす。ディスプレイ・プロセッサはシステム・バス13
を介して、メモリ14から基本プリミティブを読み取り、
フレーム・バッファ・バス15によって、フレーム・バッ
ファ−A 22a及びフレーム・バッファ−B22b内に希望
する画素を生成する。フレーム・バッファは通常2重に
なっており、これによって一方に描面プロセッサによっ
て書き込みを行ないながら、他方をモニタによって表示
することが可能となる。本発明を構成する方法及びシス
テムは主として、システム10のディスプレイ・プロセッ
サ18内で実現される。
標準的なハードワイヤード・トライアングル・ジェネレ
ータを使用してポリゴンを塗りつぶすように構成された
本発明の第1の基本実施例を、第2図に示す。(本実施
例に関連して使用する場合、「凹ポリゴン」という用語
の定義は、多角形孔を有するポリゴンを除くものとみな
される。)本実施例の利点は、ポリゴンのシェーディン
グ(後述)に使用されるものと同じトライアングル・ジ
ェネレータを使用することであり、したがって、シェー
ディング及び塗りつぶし両方の機能を、同一のハードウ
ェアに統合することができる。図示のように、プロセッ
サ18はコントローラ30、エッジ/トライアングル・ジェ
ネレータ82、第1組合せ論理回路34、第2組合せ論理回
路36、及びマーク・バッファ38を含んでいる。コントロ
ーラ30はμプロセッサであって、システム・メモリに記
憶されている命令リストの読取り解釈を行ない、幾何学
的変換を計算し、かつクリッピング、ライティング及び
デプス・キューイングなどの他の操作を行なう。エッジ
/トライアングル・ジェネレータ32はコントローラ30に
よって設定された操作モードに応じて、エッジ・ジェネ
レータまたはトライアングル・ジェネレータのいずれか
として機能する。3つの操作信号、すなわち現在の信号
がポリゴンの有効なピクセルからなっていることを示す
「VALID」(エッジまたはトライアングル生成モードの
いずれか)、ポリゴンを部分的に定義する三角形(以下
の説明参照)の向きの信号を出す「ORIENT」、及びジェ
ネレータ32がエッジ生成モードにあるときに活動状態と
なる「EDGE」が、ジェネレータ32から出力される。エッ
ジ生成モードにおいて、ジェネレータ32はポリゴンの2
つの頂点を接続するベクトルの点のアドレスのシーケン
スを生成する。このモードにおいて、信号VALIDはアド
レス線31がエッジ・ピクセルの実際のアドレスを含んで
いることを示す。また、エッジ生成モードにおいて、信
号EDGEは活動状態であり、信号ORIENTは非活動状態であ
る。
ータを使用してポリゴンを塗りつぶすように構成された
本発明の第1の基本実施例を、第2図に示す。(本実施
例に関連して使用する場合、「凹ポリゴン」という用語
の定義は、多角形孔を有するポリゴンを除くものとみな
される。)本実施例の利点は、ポリゴンのシェーディン
グ(後述)に使用されるものと同じトライアングル・ジ
ェネレータを使用することであり、したがって、シェー
ディング及び塗りつぶし両方の機能を、同一のハードウ
ェアに統合することができる。図示のように、プロセッ
サ18はコントローラ30、エッジ/トライアングル・ジェ
ネレータ82、第1組合せ論理回路34、第2組合せ論理回
路36、及びマーク・バッファ38を含んでいる。コントロ
ーラ30はμプロセッサであって、システム・メモリに記
憶されている命令リストの読取り解釈を行ない、幾何学
的変換を計算し、かつクリッピング、ライティング及び
デプス・キューイングなどの他の操作を行なう。エッジ
/トライアングル・ジェネレータ32はコントローラ30に
よって設定された操作モードに応じて、エッジ・ジェネ
レータまたはトライアングル・ジェネレータのいずれか
として機能する。3つの操作信号、すなわち現在の信号
がポリゴンの有効なピクセルからなっていることを示す
「VALID」(エッジまたはトライアングル生成モードの
いずれか)、ポリゴンを部分的に定義する三角形(以下
の説明参照)の向きの信号を出す「ORIENT」、及びジェ
ネレータ32がエッジ生成モードにあるときに活動状態と
なる「EDGE」が、ジェネレータ32から出力される。エッ
ジ生成モードにおいて、ジェネレータ32はポリゴンの2
つの頂点を接続するベクトルの点のアドレスのシーケン
スを生成する。このモードにおいて、信号VALIDはアド
レス線31がエッジ・ピクセルの実際のアドレスを含んで
いることを示す。また、エッジ生成モードにおいて、信
号EDGEは活動状態であり、信号ORIENTは非活動状態であ
る。
トライアングル生成モードにおいて、ジェネレータ32は
三角形の頂点のX及びY座標を受け取り、三角形を定義
するピクセルのアドレスのシーケンスを生成する。(4
つ以上の辺を有するポリゴンの頂点を処理する場合、周
知技術においては、頂点は一般に系統的な順序で、一度
に3つの頂点を組合せて処理されるので、システムは複
雑なポリゴンではなく、単純な三角形を処理することに
なる。)トライアングル生成モードにおいて、信号VALI
Dはアドレス線31が、三角形のピクセルの実際のアドレ
スを含むことを示す。信号EDGEはトライアングル生成モ
ードになったときに非活動状態となり、信号ORIENTは現
在の三角形の向きを示す。ORIENT信号は次のように定義
される。
三角形の頂点のX及びY座標を受け取り、三角形を定義
するピクセルのアドレスのシーケンスを生成する。(4
つ以上の辺を有するポリゴンの頂点を処理する場合、周
知技術においては、頂点は一般に系統的な順序で、一度
に3つの頂点を組合せて処理されるので、システムは複
雑なポリゴンではなく、単純な三角形を処理することに
なる。)トライアングル生成モードにおいて、信号VALI
Dはアドレス線31が、三角形のピクセルの実際のアドレ
スを含むことを示す。信号EDGEはトライアングル生成モ
ードになったときに非活動状態となり、信号ORIENTは現
在の三角形の向きを示す。ORIENT信号は次のように定義
される。
ViVj×ViVk≧0の場合、ORIENT=‘+’ (1) ViVj×ViVk<0の場合、ORIENT=‘−’ (2) ViVjは頂点Viから頂点Vjへのベクトルであり、ViVkは頂
点ViからVkへのベクトルであり、×はクロス乗積演算で
ある。ORIENTは所与の三角形に対する定数である。
点ViからVkへのベクトルであり、×はクロス乗積演算で
ある。ORIENTは所与の三角形に対する定数である。
上述のように、コントローラ30はシステム・メモリに記
憶されている命令リスト内のポリゴン塗りつぶしコマン
ドを解釈し、トライアングル・ジェネレータ32に、ポリ
ゴンの頂点のXおよびYの座標を供給する。P1、P2、・
・・、PNをN辺のポリゴンの頂点とした場合、コントロ
ーラ30はエッジ・モードになったとき、ポリゴンの辺
(P1−P2、P2−P3、・・P(N−1)−PN)を描くよう
命令する。トライアングル・モードになったときに、コ
ントローラ30は次のように、ポリゴンを一連の三角形に
分割する。第1の三角形はP1、P2及びP3によって与えら
れ、第2の三角形はPl、P3及びP4によって与えられ、最
後の三角形はP1、PN−1及びPNによって与えられる。コ
ントローラ30はジェネレータ32に、三角形ごとに該当す
る頂点のデータをロードする。
憶されている命令リスト内のポリゴン塗りつぶしコマン
ドを解釈し、トライアングル・ジェネレータ32に、ポリ
ゴンの頂点のXおよびYの座標を供給する。P1、P2、・
・・、PNをN辺のポリゴンの頂点とした場合、コントロ
ーラ30はエッジ・モードになったとき、ポリゴンの辺
(P1−P2、P2−P3、・・P(N−1)−PN)を描くよう
命令する。トライアングル・モードになったときに、コ
ントローラ30は次のように、ポリゴンを一連の三角形に
分割する。第1の三角形はP1、P2及びP3によって与えら
れ、第2の三角形はPl、P3及びP4によって与えられ、最
後の三角形はP1、PN−1及びPNによって与えられる。コ
ントローラ30はジェネレータ32に、三角形ごとに該当す
る頂点のデータをロードする。
マーク・バッファ38はそれぞれが2ビットの深さのM×
Nの位置で構成されたバッファ・メモリからなる。M×
Nの位置はM×Nの典型的なモニタ・サイズに対応する
ように選択される。2ビット平面によって、各X、Y位
置は4つの信号の1つを記憶することができる。信号は
この説明において、「+」、「−」、「e」、及び
「0」というラベルが付けられる。バッファ38は組合せ
論理回路34によって更新され、各X、Yアドレスはジェ
ネレータ32から線31を介して受け取られる。
Nの位置で構成されたバッファ・メモリからなる。M×
Nの位置はM×Nの典型的なモニタ・サイズに対応する
ように選択される。2ビット平面によって、各X、Y位
置は4つの信号の1つを記憶することができる。信号は
この説明において、「+」、「−」、「e」、及び
「0」というラベルが付けられる。バッファ38は組合せ
論理回路34によって更新され、各X、Yアドレスはジェ
ネレータ32から線31を介して受け取られる。
組合せ論理回路36はシステム・フレーム・バッファ22a
及び22bに対して、信号「EDGE_PX」及び「FILL_PX」を
出力する。活動EDGE_PX信号は現在の点がエッジ・ポイ
ントであることを示す。このエッジ・ポイントに対応し
ているX、Yアドレス(線31を介した)は、エッジのカ
ラーとともにフレーム・バッファに書き込まれる。活動
信号FILL_PXは線31上のX、Yアドレスによって与えら
れる対応する位置を、フレーム・バッファ内で、内部カ
ラーで塗りつぶさなければならないことを示す。フレー
ム・バッファへのアドレス線上の信号は、マーク・バッ
ファへのアクセス時間を考慮して遅延することが好まし
い。これは当技術分野において、ラッチ回路33を使用す
ることによって容易に達成される。
及び22bに対して、信号「EDGE_PX」及び「FILL_PX」を
出力する。活動EDGE_PX信号は現在の点がエッジ・ポイ
ントであることを示す。このエッジ・ポイントに対応し
ているX、Yアドレス(線31を介した)は、エッジのカ
ラーとともにフレーム・バッファに書き込まれる。活動
信号FILL_PXは線31上のX、Yアドレスによって与えら
れる対応する位置を、フレーム・バッファ内で、内部カ
ラーで塗りつぶさなければならないことを示す。フレー
ム・バッファへのアドレス線上の信号は、マーク・バッ
ファへのアクセス時間を考慮して遅延することが好まし
い。これは当技術分野において、ラッチ回路33を使用す
ることによって容易に達成される。
塗りつぶすべき各ポリゴンに対し、本方法はX、Y座標
を通る3本のパス及びポリゴンを表す輝度を必要とす
る。ただし、マーク・バッファ38はまずクリアされる。
すなわち、バッファの各ピクセルは最初のポリゴンの処
理に進む前に、値「0」にセットされる。最初のパスに
おいて、トライアングル・ジェネレータ32はエッジ生成
モードで作動し、(1)各ポリゴン・エッジの点のアド
レス・シーケンスを生成し、(2)VALIDエッジ・アド
レスに対応する位置に値「e」を書き込むことによっ
て、マーク・バッファ38内のポリゴンのエッジをマーク
する。第2のパスにおいて、分割されたポリゴンの各三
角形について、ジェネレータ82は(1)三角形のアドレ
ス・シーケンスを生成し、(2)各有効アドレスにある
マーク・バッファ38に第1表による新しいバッファ値を
ロードすることによって、ポリゴンの内部に対応するバ
ッファ38内のピクセルをマークする。
を通る3本のパス及びポリゴンを表す輝度を必要とす
る。ただし、マーク・バッファ38はまずクリアされる。
すなわち、バッファの各ピクセルは最初のポリゴンの処
理に進む前に、値「0」にセットされる。最初のパスに
おいて、トライアングル・ジェネレータ32はエッジ生成
モードで作動し、(1)各ポリゴン・エッジの点のアド
レス・シーケンスを生成し、(2)VALIDエッジ・アド
レスに対応する位置に値「e」を書き込むことによっ
て、マーク・バッファ38内のポリゴンのエッジをマーク
する。第2のパスにおいて、分割されたポリゴンの各三
角形について、ジェネレータ82は(1)三角形のアドレ
ス・シーケンスを生成し、(2)各有効アドレスにある
マーク・バッファ38に第1表による新しいバッファ値を
ロードすることによって、ポリゴンの内部に対応するバ
ッファ38内のピクセルをマークする。
真理値表1は第1の組合せ論理回路84に常駐するもの
で、当分野の技術者によって簡単に実現できる。
で、当分野の技術者によって簡単に実現できる。
データ構造を通過する第3のパスにおいて、ポリゴンを
表す各三角形について、トライアングル・ジェネレータ
は(1)三角形の点のアドレス・シーケンスを生成し、
(2)アドレスX、Yが有効であり、この位置における
マーク・バッファ38の内容が‘e'であれば、信号EDGE_P
Xを発生し、(3)アドレスX、Yが有効であり、この
位置におけるマーク・バッファ38の内容が‘+’または
‘−’であれば、FILL_PXを活動化し、(4)アドレス
X、YがVALIDであれば、マーク・バッファ38を再初期
設定する。EDGE_PX及びFILL_PX信号を発生する論理は回
路36で実現される。マーク・バッファ38の再初期設定
は、組合せ論理回路34によって行なわれる。
表す各三角形について、トライアングル・ジェネレータ
は(1)三角形の点のアドレス・シーケンスを生成し、
(2)アドレスX、Yが有効であり、この位置における
マーク・バッファ38の内容が‘e'であれば、信号EDGE_P
Xを発生し、(3)アドレスX、Yが有効であり、この
位置におけるマーク・バッファ38の内容が‘+’または
‘−’であれば、FILL_PXを活動化し、(4)アドレス
X、YがVALIDであれば、マーク・バッファ38を再初期
設定する。EDGE_PX及びFILL_PX信号を発生する論理は回
路36で実現される。マーク・バッファ38の再初期設定
は、組合せ論理回路34によって行なわれる。
第3図は凹ポリゴン40の例を示すが、この図において、
ポリゴン40は頂点P1、P2、P3、P4、P5によって定義され
る。ポリゴン40の分割によって形成される結果として生
じる三角形を第4A図一第4C図、ならびにORIENTのそれぞ
れに対応する値で示す。第5A図一第5C図は、ジェネレー
タ32が上述の処理の第2のパスにおいて各三角形P1P2P3
P、P1P3P4及びP1P4P5を処理した後の、マーク・バッフ
ァ38の内容を示す。
ポリゴン40は頂点P1、P2、P3、P4、P5によって定義され
る。ポリゴン40の分割によって形成される結果として生
じる三角形を第4A図一第4C図、ならびにORIENTのそれぞ
れに対応する値で示す。第5A図一第5C図は、ジェネレー
タ32が上述の処理の第2のパスにおいて各三角形P1P2P3
P、P1P3P4及びP1P4P5を処理した後の、マーク・バッフ
ァ38の内容を示す。
本発明の他の拡張された実施例を、第6図及び第7図に
示す。この実施例において、ディスプレイ・プロセッサ
18′は座標及びその頂点における輝度を与えられたポリ
ゴンにシェードを付けるように作動する。また、ポリゴ
ンの境界をたとえば、点線や破線などのスタイルにする
ことができる。この実施例は補間関数が面で表される場
合に、最良の作動を行なう。また処理対象の幾何学的プ
リミティブを、単一のポリゴン・コマンドによっていく
つかのサブポリゴンまたはサブエリアで構成することも
できる。単一のコマンドによってグループ化されたすべ
てのサブエリアは、本発明にしたがって三角形ごとにま
とめて処理される。
示す。この実施例において、ディスプレイ・プロセッサ
18′は座標及びその頂点における輝度を与えられたポリ
ゴンにシェードを付けるように作動する。また、ポリゴ
ンの境界をたとえば、点線や破線などのスタイルにする
ことができる。この実施例は補間関数が面で表される場
合に、最良の作動を行なう。また処理対象の幾何学的プ
リミティブを、単一のポリゴン・コマンドによっていく
つかのサブポリゴンまたはサブエリアで構成することも
できる。単一のコマンドによってグループ化されたすべ
てのサブエリアは、本発明にしたがって三角形ごとにま
とめて処理される。
第6図において、ディスプレイ・プロセッサ18′はシス
テム・バス13を介して、ディスプレイ・システムと通信
を行なう。プロセッサ18′はコントローラ50、X−Yジ
ェネレータ52インタポレータ54、ライン・スタイル・ジ
ェネレータ56、マーク及びデプス・バッファならびにこ
れらに関連した組合せ論理回路58、ならびにディレイ回
路60を含んでいる。マーク・バッファ及びユニット58内
のこれをサポートする論理回路を除き、これらの構成要
素の各々はコンピュータ・グラフィックス・システムの
市販の要素で構成することができる。第2図に示した実
施例のコントローラ30と同様に、コントローラ50はシス
テム・メモリに記憶された命令リストを読み取り、解釈
し、必要な幾何学的変換、及びクリッピング、ライティ
ング、デプス・キューイングなどの他の操作を計算す
る。命令リストの一部として、各頂点に関連した境界フ
ラグが通常与えられる。たとえば、第1のフラグはポリ
ゴン境界の実エッジまたはスタイル・エッジからなる
「リアル・エッジ」を定義し、第2のフラグは境界エッ
ジ(以下「レギュラー・エッジ」と呼ぶ)が内部カラー
を受け取るものであることの信号を出し、第3のフラグ
はフロントまたはバックZ軸クリッピング面のそれぞれ
に対するポリゴンのクリッピングによって生成された、
フェイクZフロント・エッジまたはフェイクZバック・
エッジを定義することができる。(フェイクX及びYエ
ッジはクリッピング処理において、「レギュラー・エッ
ジ」と識別される。)これらのフラグを以下で詳述する
処理のいくつかの態様で使用すると有利である。
テム・バス13を介して、ディスプレイ・システムと通信
を行なう。プロセッサ18′はコントローラ50、X−Yジ
ェネレータ52インタポレータ54、ライン・スタイル・ジ
ェネレータ56、マーク及びデプス・バッファならびにこ
れらに関連した組合せ論理回路58、ならびにディレイ回
路60を含んでいる。マーク・バッファ及びユニット58内
のこれをサポートする論理回路を除き、これらの構成要
素の各々はコンピュータ・グラフィックス・システムの
市販の要素で構成することができる。第2図に示した実
施例のコントローラ30と同様に、コントローラ50はシス
テム・メモリに記憶された命令リストを読み取り、解釈
し、必要な幾何学的変換、及びクリッピング、ライティ
ング、デプス・キューイングなどの他の操作を計算す
る。命令リストの一部として、各頂点に関連した境界フ
ラグが通常与えられる。たとえば、第1のフラグはポリ
ゴン境界の実エッジまたはスタイル・エッジからなる
「リアル・エッジ」を定義し、第2のフラグは境界エッ
ジ(以下「レギュラー・エッジ」と呼ぶ)が内部カラー
を受け取るものであることの信号を出し、第3のフラグ
はフロントまたはバックZ軸クリッピング面のそれぞれ
に対するポリゴンのクリッピングによって生成された、
フェイクZフロント・エッジまたはフェイクZバック・
エッジを定義することができる。(フェイクX及びYエ
ッジはクリッピング処理において、「レギュラー・エッ
ジ」と識別される。)これらのフラグを以下で詳述する
処理のいくつかの態様で使用すると有利である。
コントローラ50はX−Yジェネレータ52、インターポレ
ータ54、ライン・スタイル・ジェネレータ56、ならびに
マーク・バッファ及びデプス・バッファ・ユニット58の
論理回路で構成されたレンダリング・パイプラインと通
信する。各ポリゴン・プリミティブ及びその各頂点に対
して、位置(X,Y,Z)、内部カラー(たとえば、R、
G、B)及びエッジ・カラー(R、G、B)を、レンダ
リング・パイプラインに利用できる。
ータ54、ライン・スタイル・ジェネレータ56、ならびに
マーク・バッファ及びデプス・バッファ・ユニット58の
論理回路で構成されたレンダリング・パイプラインと通
信する。各ポリゴン・プリミティブ及びその各頂点に対
して、位置(X,Y,Z)、内部カラー(たとえば、R、
G、B)及びエッジ・カラー(R、G、B)を、レンダ
リング・パイプラインに利用できる。
ジェネレータ52は取りうる2つの操作モード、すなわち
(1)ベクトル生成モード及び(2)トライアングル生
成モードに対応するX及びY座標のシーケンを生成す
る。ベクトル生成モードにおいて、ジェネレータ52はベ
クトルの2つの端点の座標を与えられて、周知のブレゼ
ンナムのアルゴリズムなどのベクトル生成アルゴリズム
を実現する。このアルゴリズムはスクリーン・スペース
内にX、Y座標のシーケンスをもたらすが、これは幾何
学的直線を最もよく近似するものである。最初及び最後
に生成された点、すなわち端点は常に幾何学的直線上に
ある。しかしながら、中間点は2つの端点が定義する特
定の線によっては、幾何学的直線上にあることも、ない
こともある。以下で詳述するように、本発明で好ましく
実現されるベクトル・ジェネレータは、正確に幾何学的
直線上にあるのは、生成されたシーケンスのどの点かを
検出し、これによってコントローラ50の命令による2つ
の「サブモード」、すなわち(1)正規生成モード、及
び(2)オン・ジオメトリック・ライン生成モードが可
能となる。後者のモードは正確に幾何学的直線上にある
点のみを生成する。
(1)ベクトル生成モード及び(2)トライアングル生
成モードに対応するX及びY座標のシーケンを生成す
る。ベクトル生成モードにおいて、ジェネレータ52はベ
クトルの2つの端点の座標を与えられて、周知のブレゼ
ンナムのアルゴリズムなどのベクトル生成アルゴリズム
を実現する。このアルゴリズムはスクリーン・スペース
内にX、Y座標のシーケンスをもたらすが、これは幾何
学的直線を最もよく近似するものである。最初及び最後
に生成された点、すなわち端点は常に幾何学的直線上に
ある。しかしながら、中間点は2つの端点が定義する特
定の線によっては、幾何学的直線上にあることも、ない
こともある。以下で詳述するように、本発明で好ましく
実現されるベクトル・ジェネレータは、正確に幾何学的
直線上にあるのは、生成されたシーケンスのどの点かを
検出し、これによってコントローラ50の命令による2つ
の「サブモード」、すなわち(1)正規生成モード、及
び(2)オン・ジオメトリック・ライン生成モードが可
能となる。後者のモードは正確に幾何学的直線上にある
点のみを生成する。
トライアングル生成モードにおいて、X−Yジェネレー
タ52を、たとえば、当分野の技術者が構成し、3つの所
与の頂点によって定義される三角形の内部または正確に
エッジ上にあるすべての点を生成することができる(そ
れゆえ、以下で説明する処理で、オン・ジオメトリカル
・ライン・ベクトル生成サブモードが必要となる)。あ
るいは、このプロセスをベクトル生成モードにおいて、
三角形のエッジに対応する点を生成できる限り、より典
型的な、精度の低いトライアングル生成手法で実現する
こともできる(以下で、詳述する)。
タ52を、たとえば、当分野の技術者が構成し、3つの所
与の頂点によって定義される三角形の内部または正確に
エッジ上にあるすべての点を生成することができる(そ
れゆえ、以下で説明する処理で、オン・ジオメトリカル
・ライン・ベクトル生成サブモードが必要となる)。あ
るいは、このプロセスをベクトル生成モードにおいて、
三角形のエッジに対応する点を生成できる限り、より典
型的な、精度の低いトライアングル生成手法で実現する
こともできる(以下で、詳述する)。
トライアングル生成モードにおいて、ジェネレータ52は
2進変数ORIENTを計算するが、これはこの場合も、三角
形の向きを示し、方程式(1)及び(2)によって定義
される。ORIENTの値を、たとえば、X−Yジェネレータ
52内の適当な状況レジスタによって、コントローラ50が
利用できる。X−Yジェネレータ52は制御信号をインタ
ーポレータ54へ、また検証信号(VALID)をライン・ス
タイル・ジェネレータ56へもたらす。ジェネレータ52か
ら出力され、コントローラ50によって制御される信号OP
ERは制御信号を、ライン・スタイル選択活動化、デプス
・バッファの制御などのレンタリング・パイプラインの
論理のさまざまな部分に配布する。
2進変数ORIENTを計算するが、これはこの場合も、三角
形の向きを示し、方程式(1)及び(2)によって定義
される。ORIENTの値を、たとえば、X−Yジェネレータ
52内の適当な状況レジスタによって、コントローラ50が
利用できる。X−Yジェネレータ52は制御信号をインタ
ーポレータ54へ、また検証信号(VALID)をライン・ス
タイル・ジェネレータ56へもたらす。ジェネレータ52か
ら出力され、コントローラ50によって制御される信号OP
ERは制御信号を、ライン・スタイル選択活動化、デプス
・バッファの制御などのレンタリング・パイプラインの
論理のさまざまな部分に配布する。
インターポレータ54も2つの作動モード、すなわちベク
トル・モードとトライアングル・モードを有している。
インターポレータ54は周知の態様で、端点における対応
する値から、ベクトルの点に対するZならびにR、G及
び(原色)の補間された値を生成するか(ベクトル生成
モードの場合)、頂点の対応する値から三角形の点の補
間された値を生成するかする(トライアングル生成モー
ドの場合)。ベクトル・モードにおいて、インターポレ
ータ54は「Incremental Linear Interpolation」、D.Fi
eld、ACM Transactions on Craphics、Volume4,No.1、
(January 1985)という記事に記載されている方法を実
現することができる。トライアングル・モードにおいて
は、米国特許明細書第4805116号に開示されているよう
な方法が適当である。両方のモードにおいて、インター
ポレータ54はX−Yジェネレータ52の制御のもとで、ジ
ェネレータと同期して作動し、補間された各点のX、
Y、Z、R、G、及びBの値がフレーム・バッファで同
時に利用できるようになる。これは部分的に、R、G、
Bディレイ回路60によって達成される。
トル・モードとトライアングル・モードを有している。
インターポレータ54は周知の態様で、端点における対応
する値から、ベクトルの点に対するZならびにR、G及
び(原色)の補間された値を生成するか(ベクトル生成
モードの場合)、頂点の対応する値から三角形の点の補
間された値を生成するかする(トライアングル生成モー
ドの場合)。ベクトル・モードにおいて、インターポレ
ータ54は「Incremental Linear Interpolation」、D.Fi
eld、ACM Transactions on Craphics、Volume4,No.1、
(January 1985)という記事に記載されている方法を実
現することができる。トライアングル・モードにおいて
は、米国特許明細書第4805116号に開示されているよう
な方法が適当である。両方のモードにおいて、インター
ポレータ54はX−Yジェネレータ52の制御のもとで、ジ
ェネレータと同期して作動し、補間された各点のX、
Y、Z、R、G、及びBの値がフレーム・バッファで同
時に利用できるようになる。これは部分的に、R、G、
Bディレイ回路60によって達成される。
ライン・スタイル・ジェネレータ56は、X−Yジェネレ
ータ52がベクトル生成モードのときに作動する。ジェネ
レータ56は信号「GAP」を発生し、現在のピクセルが線
の活動セグメントに属しているか、またはセグメント間
のギャップに属しているかを示す。すなわち、スタイル
化された線が存在していると想定する。ライン・スタイ
ル・ジェネレータ56の適当な実施形態は、周知の文献か
ら入手できる。
ータ52がベクトル生成モードのときに作動する。ジェネ
レータ56は信号「GAP」を発生し、現在のピクセルが線
の活動セグメントに属しているか、またはセグメント間
のギャップに属しているかを示す。すなわち、スタイル
化された線が存在していると想定する。ライン・スタイ
ル・ジェネレータ56の適当な実施形態は、周知の文献か
ら入手できる。
マーク・バッファ及びデプス・バッファ・ユニット58
は、マーク・バッファと組み合わされたデプス・バッフ
ァで周知のZバッファ・アルゴリズムを実施して、凹ポ
リゴンのシェーディングを可能とする。この組合せはZ
バッファ作動を拡張するものであって、本発明の中心を
なすものである。デプス・バッファはM×Nのメモリで
あり、通常はビット深さが16ないし32ビットであって、
この内部にZ(X,Y)値がZバッファ・アルゴリズムと
同様な態様で記録される。MとNは通常、画面の寸法で
ある。マーク・バッファもデプス・バッファと同じサイ
ズのメモリであるが、ビット深さはたとえば2ビットに
過ぎないものである。バッファは両方ともX−Yジェネ
レータ52からのX及びY座標出力によってアドレスされ
る。
は、マーク・バッファと組み合わされたデプス・バッフ
ァで周知のZバッファ・アルゴリズムを実施して、凹ポ
リゴンのシェーディングを可能とする。この組合せはZ
バッファ作動を拡張するものであって、本発明の中心を
なすものである。デプス・バッファはM×Nのメモリで
あり、通常はビット深さが16ないし32ビットであって、
この内部にZ(X,Y)値がZバッファ・アルゴリズムと
同様な態様で記録される。MとNは通常、画面の寸法で
ある。マーク・バッファもデプス・バッファと同じサイ
ズのメモリであるが、ビット深さはたとえば2ビットに
過ぎないものである。バッファは両方ともX−Yジェネ
レータ52からのX及びY座標出力によってアドレスされ
る。
第7図はマーク・バッファ及びデプス・バッファ回路58
を、より詳細に示すものである。X、Y座標はデプス・
バッファ62及びマーク・バッファ64の両方に供給され、
処理中のピクセル位置を識別する。位置X,YにおけるZ
の値はインターポレータ54から、比較器68に供給され、
この比較器は新しい値を、位置X,Yにおけるデプス・バ
ッファ62の内容と比較し、たとえば、右側の座標系につ
いて、Z(X,Y)≧Z_OLDであるかどうかを判定する。ト
ランスペアレント・ラッチ66をタイミングを取るために
使用して、Z_OLDを遅延させる。比較器68からの出力ZCO
MP_OUT、ならびに信号GAP、VALID及びマーク・バッファ
64の対応する位置X,Yの内容(MB_OLD)を使用して、第
1組合せ論理回路70を介して信号PIXEL_VALID及びZ_UPD
ATEを生成する。PIXEL_VALIDを使用して、フレーム・バ
ッファ(第1図)に、現在のピクセルが有効であるか
ら、受け入れるべきであるとの信号を出す。Z_UPDATEは
新しいZの値Z(X,Y)を、この位置におけるデプス・
バッファの古い内容と置き換えるべきであることを示
す。この信号をマルチプレクサ72に供給し、Z(X,Y)
とZ_OLDの間のこの選択を指示する。
を、より詳細に示すものである。X、Y座標はデプス・
バッファ62及びマーク・バッファ64の両方に供給され、
処理中のピクセル位置を識別する。位置X,YにおけるZ
の値はインターポレータ54から、比較器68に供給され、
この比較器は新しい値を、位置X,Yにおけるデプス・バ
ッファ62の内容と比較し、たとえば、右側の座標系につ
いて、Z(X,Y)≧Z_OLDであるかどうかを判定する。ト
ランスペアレント・ラッチ66をタイミングを取るために
使用して、Z_OLDを遅延させる。比較器68からの出力ZCO
MP_OUT、ならびに信号GAP、VALID及びマーク・バッファ
64の対応する位置X,Yの内容(MB_OLD)を使用して、第
1組合せ論理回路70を介して信号PIXEL_VALID及びZ_UPD
ATEを生成する。PIXEL_VALIDを使用して、フレーム・バ
ッファ(第1図)に、現在のピクセルが有効であるか
ら、受け入れるべきであるとの信号を出す。Z_UPDATEは
新しいZの値Z(X,Y)を、この位置におけるデプス・
バッファの古い内容と置き換えるべきであることを示
す。この信号をマルチプレクサ72に供給し、Z(X,Y)
とZ_OLDの間のこの選択を指示する。
同様な態様で、位置X,Yにおけるマーク・バッファ64の
内容(MB_OLD)(トランスペアレント・ラッチ65を介し
た)、ならびに信号VALID、GAP及びZCOMP_OUTを第2組
合せ論理回路74で使用して、位置X,Yにおけるマーク・
バッファ64の内容と置き換えることを目的としたマーク
・バッファ値を生成する。マーク・バッファ64の性質に
ついては、以下で詳述する。信号OPERは組合せ論理回路
70及び74に対する制御信号であって、シェーディング・
アルゴリズムの演算を可能とし、かつそのさまざまなス
テップを識別する(後述) 本発明のこの実施例によれば、2ビット・プレーン・マ
ーク・バッファ64は、各位置における4種類の値のうち
の1つを記憶することを可能とする。これらのマーク値
には、次のようなラベルが付けられる。
内容(MB_OLD)(トランスペアレント・ラッチ65を介し
た)、ならびに信号VALID、GAP及びZCOMP_OUTを第2組
合せ論理回路74で使用して、位置X,Yにおけるマーク・
バッファ64の内容と置き換えることを目的としたマーク
・バッファ値を生成する。マーク・バッファ64の性質に
ついては、以下で詳述する。信号OPERは組合せ論理回路
70及び74に対する制御信号であって、シェーディング・
アルゴリズムの演算を可能とし、かつそのさまざまなス
テップを識別する(後述) 本発明のこの実施例によれば、2ビット・プレーン・マ
ーク・バッファ64は、各位置における4種類の値のうち
の1つを記憶することを可能とする。これらのマーク値
には、次のようなラベルが付けられる。
‘O':初期状態。クリアされたピクセル ‘i':内部ピクセル ‘g':エッジ・ギャップ・ピクセル ‘e':エッジ・セグメント・ピクセル 組合せ論理回路74は2つの入力値、すなわちマーク・バ
ッファの内容(すなわち、MB_OLD)とアルゴリズムによ
って指定される何らかの他の値の間の論理演算(以下の
アルゴリズムの説明においては、‘■’と記号化する)
を実施する。真理値表2は、MB_OLDと置き換えるために
マーク・バッファ64に記憶される値を明らかにするもの
である。
ッファの内容(すなわち、MB_OLD)とアルゴリズムによ
って指定される何らかの他の値の間の論理演算(以下の
アルゴリズムの説明においては、‘■’と記号化する)
を実施する。真理値表2は、MB_OLDと置き換えるために
マーク・バッファ64に記憶される値を明らかにするもの
である。
第2表を調べれば、‘■’演算が相互的なものであり、
また信号が入力のいずれかに現れた場合に、値‘e'が出
力に現れることから、これが高い優先順位を有している
ことがわかろう。値‘g'はこの点で同様なものである
が、この信号が‘e'よりも低い優先順位を有しているこ
とが異なっている(すなわち、‘e'、‘■’、‘g'=
‘e'である)。これが意味するところは、エッジ・セグ
メント・ピクセルにはエッジ・ギャップ信号よりも高い
優先順位が与えられるということだけである。‘■’演
算は本質的に値‘0'及び‘i'に関する排他的論理和演算
である。以下の説明から明らかなように、マーク・バッ
ファ64における‘■’演算はあらゆる内部ピクセルに対
するポリゴン境界ピクセルを、またエッジ・ギャップ・
ピクセルに対するエッジ・セグメント・ピクセルを保存
するようになされている。偶数回書き込まれた内部ピク
セルは‘0'のマークされた値をもたらし、これは最終的
なピクチュアの凹面または孔を排除するのに有利なもの
である。本発明の実施例の1つの実施アルゴリズムを、
以下で検討する。
また信号が入力のいずれかに現れた場合に、値‘e'が出
力に現れることから、これが高い優先順位を有している
ことがわかろう。値‘g'はこの点で同様なものである
が、この信号が‘e'よりも低い優先順位を有しているこ
とが異なっている(すなわち、‘e'、‘■’、‘g'=
‘e'である)。これが意味するところは、エッジ・セグ
メント・ピクセルにはエッジ・ギャップ信号よりも高い
優先順位が与えられるということだけである。‘■’演
算は本質的に値‘0'及び‘i'に関する排他的論理和演算
である。以下の説明から明らかなように、マーク・バッ
ファ64における‘■’演算はあらゆる内部ピクセルに対
するポリゴン境界ピクセルを、またエッジ・ギャップ・
ピクセルに対するエッジ・セグメント・ピクセルを保存
するようになされている。偶数回書き込まれた内部ピク
セルは‘0'のマークされた値をもたらし、これは最終的
なピクチュアの凹面または孔を排除するのに有利なもの
である。本発明の実施例の1つの実施アルゴリズムを、
以下で検討する。
この場合も、該当する処理ステップがジェネレータ52か
らのOPER信号によって識別される。アルゴリズムは暫定
条件として、マーク・バッファの各ピクセルが値「0」
に初期設定され、かつデプス・バッファの各ピクセルが
最も遠いZ値に対応した値に初期設定されるものと想定
する。各ステップはレンダリング・パイプラインを通る
別々なパスを含んでいる。
らのOPER信号によって識別される。アルゴリズムは暫定
条件として、マーク・バッファの各ピクセルが値「0」
に初期設定され、かつデプス・バッファの各ピクセルが
最も遠いZ値に対応した値に初期設定されるものと想定
する。各ステップはレンダリング・パイプラインを通る
別々なパスを含んでいる。
ステップ1 このステップの目的はマーク・バッファ内のポリゴンの
境界をまずマークして、これが以降の処理で保存される
ようにすることである。この場合も、エッジをスタイル
化することができる。「リアル・エッジ」、「レギュラ
ー・エッジ」、及び「Zフェイク・エッジ(偽エッ
ジ)」のフラグがまず、処理される境界エッジのタイプ
を識別する。「セグメント」ピクセルが、エッジ・カラ
ーによって描かれる。「リアル・エッジ」のエッジ「ギ
ャップ」ピクセルはフレーム・バッファ内に描かれず、
後で内部カラーが割り当てられる。「レギュラー・エッ
ジ」ピクセルは同様にして処理される。X−Yジェネレ
ータ52及びインターポレータ54はベクトル・モードにセ
ットされ、ポリゴンのエッジを生成する。ポリゴンのエ
ッジの各ピクセルに対し、マーク・バッファ、デプス・
バッファ、及びフレーム・バッファの操作は、次のよう
にライン・スタイル・ジェネレータ56の出力によって決
定される。
境界をまずマークして、これが以降の処理で保存される
ようにすることである。この場合も、エッジをスタイル
化することができる。「リアル・エッジ」、「レギュラ
ー・エッジ」、及び「Zフェイク・エッジ(偽エッ
ジ)」のフラグがまず、処理される境界エッジのタイプ
を識別する。「セグメント」ピクセルが、エッジ・カラ
ーによって描かれる。「リアル・エッジ」のエッジ「ギ
ャップ」ピクセルはフレーム・バッファ内に描かれず、
後で内部カラーが割り当てられる。「レギュラー・エッ
ジ」ピクセルは同様にして処理される。X−Yジェネレ
ータ52及びインターポレータ54はベクトル・モードにセ
ットされ、ポリゴンのエッジを生成する。ポリゴンのエ
ッジの各ピクセルに対し、マーク・バッファ、デプス・
バッファ、及びフレーム・バッファの操作は、次のよう
にライン・スタイル・ジェネレータ56の出力によって決
定される。
ライン・スタイル・ギャップ・ピクセル: マーク・バッファ: If ZCOMP_OUT=“真”(たとえば、Z(X,Y)≧ZB_OL
D) デプス・バッファ: If(ZCOMP_OUT=“真”及びMB_OLD‘e') Then DB<=Z(X,Y) フレーム・バッファ: 変更なし。
D) デプス・バッファ: If(ZCOMP_OUT=“真”及びMB_OLD‘e') Then DB<=Z(X,Y) フレーム・バッファ: 変更なし。
ライン・スタイル・セグメント・ピクセル マーク・バッファ: If(ZCOMP_OUT=,“真”またはMB_OLD=‘g') Then MB<=‘e' デプス・バッファ: If(ZCOMP_OUT=“真”またはMB_OLD=‘g') Then DB<=Z(X,Y) フレーム・バッファ: If(ZCOMP_OUT=“真”またはMB_OLD=‘g') Then FB<=R,G,B この場合も、■演算は第2表で定義されている。上記の
アルゴリズムは標準のブーリアン演算であって、当分野
の技術者が実行できるものである。デプス・バッファ及
びフレーム・バッファの処理は組合せ論理回路70で実施
され、マーク・バッファの処理は組合せ論理回路74に常
駐している。上記のアルゴリズムから、処理対象の点が
エッジ・ギャップ・ピクセルからなっており、Zの値
が、たとえば、X,Yに記憶されているデプス・バッファ
の値以上であれば、マーク・バッファが以前の点の処理
からの値‘e'をすでに保持していない限り、マーク・バ
ッファには値‘g'が割り当てられることがわかる。ま
た、エッジ・セグメント・ピクセルとエッジ・ギャップ
・ピクセルがマーク・バッファに描かれ、可視のZ(X,
Y)値がデプス・バッファに割り当てられ、Z(X,Y)が
可視のエッジ・セグメント・ピクセルである(すなわ
ち、ZCOMP_OUT=‘真’)と、デプス・バッファが示し
ている場合には、この点におけるカラーR、G、Bがフ
レーム・バッファに割り当てられることに留意された
い。
アルゴリズムは標準のブーリアン演算であって、当分野
の技術者が実行できるものである。デプス・バッファ及
びフレーム・バッファの処理は組合せ論理回路70で実施
され、マーク・バッファの処理は組合せ論理回路74に常
駐している。上記のアルゴリズムから、処理対象の点が
エッジ・ギャップ・ピクセルからなっており、Zの値
が、たとえば、X,Yに記憶されているデプス・バッファ
の値以上であれば、マーク・バッファが以前の点の処理
からの値‘e'をすでに保持していない限り、マーク・バ
ッファには値‘g'が割り当てられることがわかる。ま
た、エッジ・セグメント・ピクセルとエッジ・ギャップ
・ピクセルがマーク・バッファに描かれ、可視のZ(X,
Y)値がデプス・バッファに割り当てられ、Z(X,Y)が
可視のエッジ・セグメント・ピクセルである(すなわ
ち、ZCOMP_OUT=‘真’)と、デプス・バッファが示し
ている場合には、この点におけるカラーR、G、Bがフ
レーム・バッファに割り当てられることに留意された
い。
ステップ2 このステップの目的はマーク・バッファ内のポリゴンの
内部をマークすることである。これを達成するため、X
−Yジェネレータとインターポレータを、トライアング
ル生成モードにセットする。P1、P2、・・・PNがポリゴ
ンの頂点であり、Q1、Q2、・・・QMがポリゴ内の孔の頂
点であれば(すなわち、存在している場合)、コントロ
ーラはX−Yジェネレータとインターポレータに、三角
形P1P2P3、P1P3P4、・・・P1(PN−1)PNを生成するよ
う命令する。同様に、処理されるポリゴンが孔を含んで
いるのであれば、三角形Q1Q2Q3、Q1Q3Q4、・・・Q1(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に沿った共通の点を、■演算によるこれらの
ピクセルの最初の排他的論理和除去とかかわりなく、保
存しなければならない。あるいは、線1、4に共通なこ
れらのピクセルは凹ポリゴンの外部のものであるから、
これらのピクセルを保存してはならない。この問題の解
は、隣接する2つの三角形の向き(すなわち、ORIENTの
値)が同じ場合に、共通点を再度生成することである。
これは線1、3の場合であって、線1、4の場合ではな
い。上述のように、トライアングル生成モードで作動す
るX−Yジェネレータが、幾何学的三角形の内部または
正確に境界上にある点のみを作成するのが好ましいの
で、共通の点が整数のX及びY座標を有する幾何学的
(真の直線)のものでなければならないということにな
る。これを達成するために、コントローラはX−Yジェ
ネレータに、同じ向きの隣接する三角形に対して、ベク
トル・モードのオン・ジオメトリカル・ライン・サブモ
ード(後述)で共通の点を生成するよう命令する。
内部をマークすることである。これを達成するため、X
−Yジェネレータとインターポレータを、トライアング
ル生成モードにセットする。P1、P2、・・・PNがポリゴ
ンの頂点であり、Q1、Q2、・・・QMがポリゴ内の孔の頂
点であれば(すなわち、存在している場合)、コントロ
ーラはX−Yジェネレータとインターポレータに、三角
形P1P2P3、P1P3P4、・・・P1(PN−1)PNを生成するよ
う命令する。同様に、処理されるポリゴンが孔を含んで
いるのであれば、三角形Q1Q2Q3、Q1Q3Q4、・・・Q1(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に沿った共通の点を、■演算によるこれらの
ピクセルの最初の排他的論理和除去とかかわりなく、保
存しなければならない。あるいは、線1、4に共通なこ
れらのピクセルは凹ポリゴンの外部のものであるから、
これらのピクセルを保存してはならない。この問題の解
は、隣接する2つの三角形の向き(すなわち、ORIENTの
値)が同じ場合に、共通点を再度生成することである。
これは線1、3の場合であって、線1、4の場合ではな
い。上述のように、トライアングル生成モードで作動す
るX−Yジェネレータが、幾何学的三角形の内部または
正確に境界上にある点のみを作成するのが好ましいの
で、共通の点が整数のX及びY座標を有する幾何学的
(真の直線)のものでなければならないということにな
る。これを達成するために、コントローラはX−Yジェ
ネレータに、同じ向きの隣接する三角形に対して、ベク
トル・モードのオン・ジオメトリカル・ライン・サブモ
ード(後述)で共通の点を生成するよう命令する。
このステップの両方の場合、すなわちトライアングル生
成モード及びベクトル生成モードにおいて、マーク・バ
ッファ、デプス・バッファ及びフレーム・バッファの作
動は次のようになる。
成モード及びベクトル生成モードにおいて、マーク・バ
ッファ、デプス・バッファ及びフレーム・バッファの作
動は次のようになる。
マーク・バッファ: MB<=‘i'■ MB_OLD デプス・バッファ 変更なし。
フレーム・バッファ 変更なし。
デプス・バッファ及びフレーム・バッファに書き込みが
行なわれないのであるから、Z、R、G、及びBの値が
このステップでは必要なく、このステップがマーク・バ
ッファ内にポリゴンの適正なアウトラインを生成するだ
けであることに留意されたい。
行なわれないのであるから、Z、R、G、及びBの値が
このステップでは必要なく、このステップがマーク・バ
ッファ内にポリゴンの適正なアウトラインを生成するだ
けであることに留意されたい。
オン・ジオメトリック・ライン・サブモードのための回
路の実施形態の1つを、第8図に示し、かつ第3表で定
義する。従来、ベクトル・ジェネレータは画面の座標
(X,Y)のシーケンスを生成し、これは2つの所与の端
点をつなぐ幾何学的直線を最もよく近似するものであ
る。ブレゼンハム・アルゴリズムにおいて、幾何学的直
線に関して生成された各ピクセルの位置誤差は0.5ユニ
ット以下である。誤差は生成されたベクトルの端点にお
いて、またおそらく若干の中間点においてゼロである。
しかしながら、本発明で使用するマーク生成手法では、
必要なものは、誤差がゼロのこれらの点だけである。第
8図はこのようなゼロ誤差デテクタを実現する新規の論
理回路からなっている。破線80内の論理回路は、周知の
ブレゼンハムのベクトル・ジェネレータに存在している
ものである。
路の実施形態の1つを、第8図に示し、かつ第3表で定
義する。従来、ベクトル・ジェネレータは画面の座標
(X,Y)のシーケンスを生成し、これは2つの所与の端
点をつなぐ幾何学的直線を最もよく近似するものであ
る。ブレゼンハム・アルゴリズムにおいて、幾何学的直
線に関して生成された各ピクセルの位置誤差は0.5ユニ
ット以下である。誤差は生成されたベクトルの端点にお
いて、またおそらく若干の中間点においてゼロである。
しかしながら、本発明で使用するマーク生成手法では、
必要なものは、誤差がゼロのこれらの点だけである。第
8図はこのようなゼロ誤差デテクタを実現する新規の論
理回路からなっている。破線80内の論理回路は、周知の
ブレゼンハムのベクトル・ジェネレータに存在している
ものである。
下記の設定手順は外部のマイクロプロセッサまたはハー
ドウェア論理回路によって実現され、点P1(X1,Y1)か
らP2(X2,Y2)へのベクトルを描く。
ドウェア論理回路によって実現され、点P1(X1,Y1)か
らP2(X2,Y2)へのベクトルを描く。
第1: DX及びDYは次のように計算される。
DX=ABS(X2−X1) DY=ABS(Y2−Y1) ただし、ABS=絶対値 第2: 操作のOCTANTは下記の論理式によって決定される。
DX≧DY X2≧X1 Y2≧Y1 3ビットの信号OCTANTはこれら3つの式の結果によって
発生される。
発生される。
第3: レジスタINCP、INCN、及びD1(第8図)には、OCTANT信
号を導くために第1及び第2ステップで数値を求めた論
理式の関数として、第3表によって与えられる値がロー
ドされる。
号を導くために第1及び第2ステップで数値を求めた論
理式の関数として、第3表によって与えられる値がロー
ドされる。
第4: レジスタD2(第8図)をクリアする。
第5: Xカウンタ及びYカウンタに、X1及びY1をそれぞれロー
ドする。
ドする。
第6: 信号MODEを次のように操作のモードにしたがって発生す
る。
る。
MODE=0=「オン・ジオメトリック・ライン」点を生成
する。
する。
MODE=1:ベクトルのすべての点を生成する。
上記の手順の各々が4番目及び6番目の操作を除き、通
常のブレゼンハム・アルゴリズムに必要なことに留意さ
れたい。
常のブレゼンハム・アルゴリズムに必要なことに留意さ
れたい。
第8図において、作動時に、レジスタD1≦0であれば
(すなわち、レジスタD1の符号ビット、信号SIGN_D1=
1または負)、値INCN 83が加算器ADD−1 82及びADD
−2 84のそれぞれによって、レジスタD1 77及びD2
79に加えられる。それ以外の場合には、値INCP 81がレ
ジスタD1 77及びD2 79に加えられる。組合せ論理回路
86はD1の符号ビット(すなわち、信号SIGN_D1)及び第
3表に示す信号OCTANT(XINC及びYINC欄)の関数として
Xカウンタ88及びYカウンタ90を増分または減分する。
増分または減分がSIGN_D1=0(すなわち、D1≧0)の
場合にのみ生じることを、表の項目のアスタリスクが意
味していることに留意されたい。回路86は発生されたピ
クセルが有効な場合に、VALID信号を断定する。
(すなわち、レジスタD1の符号ビット、信号SIGN_D1=
1または負)、値INCN 83が加算器ADD−1 82及びADD
−2 84のそれぞれによって、レジスタD1 77及びD2
79に加えられる。それ以外の場合には、値INCP 81がレ
ジスタD1 77及びD2 79に加えられる。組合せ論理回路
86はD1の符号ビット(すなわち、信号SIGN_D1)及び第
3表に示す信号OCTANT(XINC及びYINC欄)の関数として
Xカウンタ88及びYカウンタ90を増分または減分する。
増分または減分がSIGN_D1=0(すなわち、D1≧0)の
場合にのみ生じることを、表の項目のアスタリスクが意
味していることに留意されたい。回路86は発生されたピ
クセルが有効な場合に、VALID信号を断定する。
D2=0の状態はNOR回路92によって検出され、MODEがゼ
ロであれば、VALIDはOR回路94によりAND回路96を通過し
て、ピクセルの有効化をもたらす(信号PIXEL_VALI
D)。D2 79の内容が0でない場合、ピクセルはこれが
生成されていることにかかわりなく、有効とはされな
い。MODEが1の場合(正規モード)、PIXEL_VALIDは有
効となる。
ロであれば、VALIDはOR回路94によりAND回路96を通過し
て、ピクセルの有効化をもたらす(信号PIXEL_VALI
D)。D2 79の内容が0でない場合、ピクセルはこれが
生成されていることにかかわりなく、有効とはされな
い。MODEが1の場合(正規モード)、PIXEL_VALIDは有
効となる。
上記のオン・ジオメトリック・ライン・サブモード処理
の他の手法は、第2図に関連して本明細書で説明したよ
うな手法を実現することである。たとえば、3ビットの
平面をマーク・バッファとして使用した場合、信号‘i'
を上述の‘+’及び‘−’の内部信号に分割することが
できる。第1表の論理を実施することによって、内部線
を再生成する必要がなくなる。しかしながら、このよう
な手法の欠点は、付加的なビット平面に関連して、余分
なコストがかかることである。
の他の手法は、第2図に関連して本明細書で説明したよ
うな手法を実現することである。たとえば、3ビットの
平面をマーク・バッファとして使用した場合、信号‘i'
を上述の‘+’及び‘−’の内部信号に分割することが
できる。第1表の論理を実施することによって、内部線
を再生成する必要がなくなる。しかしながら、このよう
な手法の欠点は、付加的なビット平面に関連して、余分
なコストがかかることである。
本実施例のポリゴン処理ステップに戻ると、マーク・バ
ッファ内でポリゴンの内部をマークした後、コントロー
ラはステップ3に進む。
ッファ内でポリゴンの内部をマークした後、コントロー
ラはステップ3に進む。
ステップ3 このステップの目的はマーク・バッファを参照して、あ
るいはマーク・バッファの制御のもとでポリゴンの内部
の点を描くことである。たとえば第3図の三角形1、
4、5に対応する点が生成されるが、これらをマーク・
バッファによってフレーム・バッファに書き込むことは
認められない。フレーム・バッファに書き込まれた内部
の点に関するマーク・バッファは、同時にクリアされ
る。X−Yジェネレータ及びインターポレータはトライ
アングル・モードにセットされ、ポリゴンの内部の点の
Z値と輝度を生成して、ステップ2に関連して上述した
ものと同様な態度で、デプス・バッファに記憶し、フレ
ーム・バッファへの描出を行なう。このステップにおけ
るバッファの作動は、次のように説明できる。
るいはマーク・バッファの制御のもとでポリゴンの内部
の点を描くことである。たとえば第3図の三角形1、
4、5に対応する点が生成されるが、これらをマーク・
バッファによってフレーム・バッファに書き込むことは
認められない。フレーム・バッファに書き込まれた内部
の点に関するマーク・バッファは、同時にクリアされ
る。X−Yジェネレータ及びインターポレータはトライ
アングル・モードにセットされ、ポリゴンの内部の点の
Z値と輝度を生成して、ステップ2に関連して上述した
ものと同様な態度で、デプス・バッファに記憶し、フレ
ーム・バッファへの描出を行なう。このステップにおけ
るバッファの作動は、次のように説明できる。
マーク・バッファ: If(MB OLD)=‘i') Then MB<=‘0' デプス・バッファ: If(Z COMP_OUT=“真”及びMB_OLD=‘i') Then DB<=Z(X,Y) フレーム・バッファ: If(ZCOMP_OUT=“真”及びMB_OLD=‘i') Then FB<=Z(X,Y)においてR,G,B ステップ4 このステップの機能は、この場合もマーク・バッファの
制御のもとで、スタイル化されたポリゴンの境界のギャ
ップ点(すなわち、値‘g'を有する点)を、この場合
も、マーク・バッファの制御のもとで描くことである。
X−Yジェネレータ及びインターポレータはベクトル・
モードにセットされ、ポリゴン・エッジ・ポイントを生
成する。バッファの作動は、次のように表される。
制御のもとで、スタイル化されたポリゴンの境界のギャ
ップ点(すなわち、値‘g'を有する点)を、この場合
も、マーク・バッファの制御のもとで描くことである。
X−Yジェネレータ及びインターポレータはベクトル・
モードにセットされ、ポリゴン・エッジ・ポイントを生
成する。バッファの作動は、次のように表される。
マーク・バッファ: 変更なし デプス・バッファ: 変更なし フレーム・バッファ: If(ZCOMP_OUT=“真”及びMB_OLD=‘g') Then FB<=(X,Y)においてR,G,B ステップ5 このステップの目的はポリゴンの処理に引き続き、マー
ク・バッファをクリアすることである。X−Yジェネレ
ータはベクトル・モードにセットされ、ステップ3でマ
ーク・バッファからクリアされたポリゴン境界、内部点
を生成する。このステップにおけるバッファの作動は次
のとおりである。
ク・バッファをクリアすることである。X−Yジェネレ
ータはベクトル・モードにセットされ、ステップ3でマ
ーク・バッファからクリアされたポリゴン境界、内部点
を生成する。このステップにおけるバッファの作動は次
のとおりである。
マーク・バッファ: MB<=‘0' デプス・バッファ及びフレーム・バッファ 変更なし 処理対象の凹ポリゴンが「リアル・エッジ」 みを有しており、エッジ・ギャップがない場合、上記の
アルゴリズムは次のように表すことができる。
アルゴリズムは次のように表すことができる。
ステップ1 ポリゴンの境界はマークされ、マーク・バッファ、デプ
ス・バッファ及びフレーム・バッファの作動は次のよう
になる。
ス・バッファ及びフレーム・バッファの作動は次のよう
になる。
マーク・バッファ: If(ZCOMP_OUT)=“真”) Then MB<=‘e'■ MB_OLD デプス・バッファ If(ZCOMP_OUT) Then DB Z フレーム・バッファ If(ZCOMP_OUT)=‘真’) Then FB<=(X,Y)においてR,G,B ステップ2 このステップの目的はマーク・バッファ内部のポリゴン
の内側をマークすることである。マーク・バッファ、デ
プス・バッファ及びフレーム・バッファの作動は次のと
おりである。
の内側をマークすることである。マーク・バッファ、デ
プス・バッファ及びフレーム・バッファの作動は次のと
おりである。
マーク・バッファ MB<=‘i'■ MB_OLD デプス・バッファ及びフレームバッファ: 変更なし ステップ3 このステップの目的は、マーク・バッファを参照して、
あるいはマーク・バッファの制御のもとでポリゴンの内
部の点を描くことである。バッファの作動は次のとおり
である。
あるいはマーク・バッファの制御のもとでポリゴンの内
部の点を描くことである。バッファの作動は次のとおり
である。
マーク・バッファ: If(MB_OLD=‘i') Then MB<=‘0' デプス・バッファ: If(ZCOMP_OUT=“真”及びMB_OLD=‘i') Then DB<=Z(X,Y) フレーム・バッファ If(ZCOMP_OUT=“真”及びMB_OLD=‘i') Then FB<=(X,Y)においてR,G,B ステップ4 定義により、このステップの機能は適用されない。
ステップ5 最後のステップはポリゴンの処理に引き続きマーク・バ
ッファをクリアすることである。バッファの作動は次の
とおりである。
ッファをクリアすることである。バッファの作動は次の
とおりである。
マーク・バッファ: MB<=‘0' デプス・バッファ及びフレーム・バッファ: 変更なし この実施例において、論理濱算‘■’は第4表に記載す
るように定義される。
るように定義される。
本発明の方法及びプロセッサを実施する際に、フロント
またはバックのZ軸クリッピング面に対してクリップさ
れたポリゴンを描くには、特に注意を払わなければなら
ない。たとえば、第9図は2つのサブエリア、すなわち
1、2、3、4及び11、12、13、14を有するボリゴン・
プリミティブを示す。後者のサブエリアは前者のサブエ
リアにある孔を定義する。上述のアルゴリズムは第1の
サブエリア(エッジ及び内部の点)、ならびに第2のサ
ブエリア(エッジ及び内部の点)を生成する。この処理
に固有なEX−OR関数は、第2のサブエリアの内部の点を
除去し、孔をもたらす。しかしながら、EX−OR演算が境
界点に適用されないので、第2のサブエリアのエッジの
点(すなわち、孔の境界)は除去されない。
またはバックのZ軸クリッピング面に対してクリップさ
れたポリゴンを描くには、特に注意を払わなければなら
ない。たとえば、第9図は2つのサブエリア、すなわち
1、2、3、4及び11、12、13、14を有するボリゴン・
プリミティブを示す。後者のサブエリアは前者のサブエ
リアにある孔を定義する。上述のアルゴリズムは第1の
サブエリア(エッジ及び内部の点)、ならびに第2のサ
ブエリア(エッジ及び内部の点)を生成する。この処理
に固有なEX−OR関数は、第2のサブエリアの内部の点を
除去し、孔をもたらす。しかしながら、EX−OR演算が境
界点に適用されないので、第2のサブエリアのエッジの
点(すなわち、孔の境界)は除去されない。
クリッピング・ボックスのフロント及びバックのZ軸面
に対してポリゴン・ブリミティブをクリップすると、第
10図に示すような構造を得ることができる。図示のよう
に、2つの新しいサブエリア、すなわちサブエリア1、
2′、3′、4、及び11、12′、13′、14が生成され
る。エッジ2′、3′及び12′、13′をZフェイク・エ
ッジ、つまり偽のエッジと呼ぶ。上述のようにポリゴン
のマークを生成した場合、これらのZのフェイク・エッ
ジに問題が生じる。詳細にいえば、セグメント12′、1
3′は孔に対応しているのであるから、エッジが現れる
筈はなく、ポリゴンの境界としてマークしてはならな
い。しかしながら、画面座標の量子化により(すなわ
ち、X及びYが整数であるため)、エッジ2′、3′が
エッジ12′、13′に正確に重ならないことがある。結果
として、この処理に固有なEX−OR演算は、いくつかの点
においてうまくいかないことがある。この問題はXフェ
イクまたはYフェイク・エッジ(すなわち、X軸または
Y軸のクリッピング面に対するクリッピングによって生
じたエッジ)には存在しないが、これはこれらのセグメ
ントがそれぞれ垂直または水平であり、かつEX−OR演算
が失敗することがないからである。
に対してポリゴン・ブリミティブをクリップすると、第
10図に示すような構造を得ることができる。図示のよう
に、2つの新しいサブエリア、すなわちサブエリア1、
2′、3′、4、及び11、12′、13′、14が生成され
る。エッジ2′、3′及び12′、13′をZフェイク・エ
ッジ、つまり偽のエッジと呼ぶ。上述のようにポリゴン
のマークを生成した場合、これらのZのフェイク・エッ
ジに問題が生じる。詳細にいえば、セグメント12′、1
3′は孔に対応しているのであるから、エッジが現れる
筈はなく、ポリゴンの境界としてマークしてはならな
い。しかしながら、画面座標の量子化により(すなわ
ち、X及びYが整数であるため)、エッジ2′、3′が
エッジ12′、13′に正確に重ならないことがある。結果
として、この処理に固有なEX−OR演算は、いくつかの点
においてうまくいかないことがある。この問題はXフェ
イクまたはYフェイク・エッジ(すなわち、X軸または
Y軸のクリッピング面に対するクリッピングによって生
じたエッジ)には存在しないが、これはこれらのセグメ
ントがそれぞれ垂直または水平であり、かつEX−OR演算
が失敗することがないからである。
この問題に鑑み、上記の方法と共同するソフトウェアで
実現された解決策が考案されており、この組合せの詳細
を第13図−第17図を参照して以下に詳述する。ただし、
この付加的な処理手法の概要をまず説明する。
実現された解決策が考案されており、この組合せの詳細
を第13図−第17図を参照して以下に詳述する。ただし、
この付加的な処理手法の概要をまず説明する。
マーク生成プロセスのステップ1において、Zフェイク
・エッジ(クリッピング・ステージにおいて識別され
た)は生成されるのではなく、リストに保管されている
(すなわち、フェイク・エッジを定義する2つの端点に
よって)。バックのZ軸クリッピング面に対するポリゴ
ンのクリッピングによって作成されたフェイク・エッジ
のもの、及びフロントのZ軸クリッピング面に対するポ
リゴンのクリッピングによって生じるZフェイク・エッ
ジのものという、2つのこのようなリストが維持され
る。Zフェイク・エッジの勾配の向きが垂直よりも、水
平に近い場合には、各空でないリストはXによって分類
される。それ以外の場合には、Yによって分類される。
当分野の技術者には、Z軸クリッピング面とのポリンゴ
ン面の交点の勾配を、たとえばポリゴン法線のX及びY
成分を検査することによって、容易に得ることができる
ことが認識されよう。第5表は分類(ソート)の前後に
おける、第10図に示したZフェイク・エッジの頂点リス
トを示す。
・エッジ(クリッピング・ステージにおいて識別され
た)は生成されるのではなく、リストに保管されている
(すなわち、フェイク・エッジを定義する2つの端点に
よって)。バックのZ軸クリッピング面に対するポリゴ
ンのクリッピングによって作成されたフェイク・エッジ
のもの、及びフロントのZ軸クリッピング面に対するポ
リゴンのクリッピングによって生じるZフェイク・エッ
ジのものという、2つのこのようなリストが維持され
る。Zフェイク・エッジの勾配の向きが垂直よりも、水
平に近い場合には、各空でないリストはXによって分類
される。それ以外の場合には、Yによって分類される。
当分野の技術者には、Z軸クリッピング面とのポリンゴ
ン面の交点の勾配を、たとえばポリゴン法線のX及びY
成分を検査することによって、容易に得ることができる
ことが認識されよう。第5表は分類(ソート)の前後に
おける、第10図に示したZフェイク・エッジの頂点リス
トを示す。
マーク生成プロセスのステップ1を完了するために、分
離された第1の点から第2の点へのセグメント、次いで
第3の点から第4の点へのセグメントなどを生成するこ
とによって、Zフェイク・エッジをマークする。これが
達成されたら、マーク・バッファはクリップされたポリ
ゴンの真の境界を含む(すなわち、第10図の線12′、1
3′などのセグメントは除かれる)。
離された第1の点から第2の点へのセグメント、次いで
第3の点から第4の点へのセグメントなどを生成するこ
とによって、Zフェイク・エッジをマークする。これが
達成されたら、マーク・バッファはクリップされたポリ
ゴンの真の境界を含む(すなわち、第10図の線12′、1
3′などのセグメントは除かれる)。
マーク生成プロセスのステップ2において、内部の点が
生成される。ただし、各サブエリアの定義は変更され、
考察の対象の特定のZフェイク頂点の間にある他のサブ
エリアのあらゆる頂点を含むようになっている。たとえ
ば、新しいサブエリア1が1、2′、12′、13′、
3′、4として再定義される。頂点12′及び13′がポリ
ゴンの頂点のリストに人為的に追加されたことがわか
る。第2のサブエリアは依然として11、12′、13′、14
である。この処理の結果として、変更された第1サブエ
リアのエッジ12′、13′は第2のサブエリアの同じエッ
ジと一致し、したがって、上記の処理に固有なEX−OR演
算はマークから第2のサブエリア・エッジを消去する。
生成される。ただし、各サブエリアの定義は変更され、
考察の対象の特定のZフェイク頂点の間にある他のサブ
エリアのあらゆる頂点を含むようになっている。たとえ
ば、新しいサブエリア1が1、2′、12′、13′、
3′、4として再定義される。頂点12′及び13′がポリ
ゴンの頂点のリストに人為的に追加されたことがわか
る。第2のサブエリアは依然として11、12′、13′、14
である。この処理の結果として、変更された第1サブエ
リアのエッジ12′、13′は第2のサブエリアの同じエッ
ジと一致し、したがって、上記の処理に固有なEX−OR演
算はマークから第2のサブエリア・エッジを消去する。
しかしながら、場合によっては、完全なキャンセルが行
なわれないこともある。このような特別な場合には、マ
ークを分類されたリストの2番目から3番目の点へ向か
うベクトル、4番目から5番目へ向うベクトルなどにつ
いて、クリアすることが必要となる。例においては、セ
グメント12′、13′が生成され、対応するマーク・バッ
ファ位置がクリアされる。この活動の必要性を、以下で
説明する。
なわれないこともある。このような特別な場合には、マ
ークを分類されたリストの2番目から3番目の点へ向か
うベクトル、4番目から5番目へ向うベクトルなどにつ
いて、クリアすることが必要となる。例においては、セ
グメント12′、13′が生成され、対応するマーク・バッ
ファ位置がクリアされる。この活動の必要性を、以下で
説明する。
第11図は第10図のクリップされたポリゴンを示すもので
あり、X及びYの量子化によるフェイク・エッジによる
位置誤差が、検討のために誇張されている。また、クリ
ッピング・ステージが次の順序で、サブエリアの頂点を
もたらすと想定している。
あり、X及びYの量子化によるフェイク・エッジによる
位置誤差が、検討のために誇張されている。また、クリ
ッピング・ステージが次の順序で、サブエリアの頂点を
もたらすと想定している。
サブエリア1:2′、1、4、3′ サブエリア2:11、12′、13′、14 第2のサブエリアの順序は、この説明には無関係であ
る。マーク生成プロセスの第1のステップにおいて、エ
ッジ2′、1、1、4及び4、3′はポリゴンの境界エ
ッジとしてマークされる。次いで、エッジ11、12′;1
3′、14及び14、11が生成される。Zフェイク頂点リス
トが分類され、セグメント2、12′及び13、3′が生成
される。ステップ2において、三角形2′、1、4(第
12図(a));2′、4、3′(第12図(b))及び
2′、3′、13′(第12図(c))が生成される。点P
a、Pb及びPcがこの時点でマークされることに留意され
たい。
る。マーク生成プロセスの第1のステップにおいて、エ
ッジ2′、1、1、4及び4、3′はポリゴンの境界エ
ッジとしてマークされる。次いで、エッジ11、12′;1
3′、14及び14、11が生成される。Zフェイク頂点リス
トが分類され、セグメント2、12′及び13、3′が生成
される。ステップ2において、三角形2′、1、4(第
12図(a));2′、4、3′(第12図(b))及び
2′、3′、13′(第12図(c))が生成される。点P
a、Pb及びPcがこの時点でマークされることに留意され
たい。
次に、三角形2′、13′、12′が生成され、EX−OR関数
がこの三角形をクリアする。三角形2′、12′、13′と
ポリゴンの残余部分との間のセグメント12′、13′上の
共通点(すなわち、点Pa、Pb、及びPc)が、EX−OP演算
の結果としてクリアされる(第12(d)図)。ポリゴン
11、12′、13′、14が生成され、これは上記の説明に従
い、マークからの孔11、12′、13′、14をキャンセルす
る。しかしながら、点Pa、Pb、及びPc(クリアされた)
はこのプロセスによって間違ってマークされる(第12図
(e))。それゆえ、セグメント12′、13′に対応した
マーク・バッファの点を特にクリアしなければならな
い。
がこの三角形をクリアする。三角形2′、12′、13′と
ポリゴンの残余部分との間のセグメント12′、13′上の
共通点(すなわち、点Pa、Pb、及びPc)が、EX−OP演算
の結果としてクリアされる(第12(d)図)。ポリゴン
11、12′、13′、14が生成され、これは上記の説明に従
い、マークからの孔11、12′、13′、14をキャンセルす
る。しかしながら、点Pa、Pb、及びPc(クリアされた)
はこのプロセスによって間違ってマークされる(第12図
(e))。それゆえ、セグメント12′、13′に対応した
マーク・バッファの点を特にクリアしなければならな
い。
略述したZフェイク・エッジ処理と組み合わせた上述の
処理ステップ1−5の詳細な実施形態の1つを、第13図
−第17図の流れ図に示す。
処理ステップ1−5の詳細な実施形態の1つを、第13図
−第17図の流れ図に示す。
第13図はステップ1の流れ図を示しており、このステッ
プの主たる目的はマーク・バッファ内のポリゴン・プリ
ミティブの境界をマークし、これを以降の処理のために
保存することである。この場合も、ポリゴン・プリミテ
ィブはいくつかの個別のサブエリアからなっていてもか
まわない。「開始」100に入った後、コントローラはポ
リゴンの最後のサブエリアがステップ1によって処理さ
れたかどうか、「最後のサブエリアが処理されたか」を
照会する。処理が終わっていない場合、コントローラは
命令104「最初の頂点データを得る」に進み、その後、
照会106「サブエリアの最後の頂点か」に進む。処理が
開始したばかりなので、答えは「ノー」であり、流れは
108「次の頂点データを得る」になる。処理対象のサブ
エリアの最後の頂点が存在していれば、コントローラに
は照会106から、照会102に戻るように命令か与えられ
る。
プの主たる目的はマーク・バッファ内のポリゴン・プリ
ミティブの境界をマークし、これを以降の処理のために
保存することである。この場合も、ポリゴン・プリミテ
ィブはいくつかの個別のサブエリアからなっていてもか
まわない。「開始」100に入った後、コントローラはポ
リゴンの最後のサブエリアがステップ1によって処理さ
れたかどうか、「最後のサブエリアが処理されたか」を
照会する。処理が終わっていない場合、コントローラは
命令104「最初の頂点データを得る」に進み、その後、
照会106「サブエリアの最後の頂点か」に進む。処理が
開始したばかりなので、答えは「ノー」であり、流れは
108「次の頂点データを得る」になる。処理対象のサブ
エリアの最後の頂点が存在していれば、コントローラに
は照会106から、照会102に戻るように命令か与えられ
る。
命令108により、コントローラは命令104で得られた最初
の頂点データと、命令108で得られた次の頂点データと
の間のベクトルが、サブエリアな「レギュラー・エッ
ジ」であるかどうかを判断する。上述のように、境界フ
ラグがデータ・リストの一部として与えられ、各頂点を
「リアル・エッジ」、「レギュラー・エッジ」または
「フェイクZフロント・エッジまたはフェイクZバック
・エッジ」にあるものとして定義する。「レギュラー・
エッジ」はポリゴン・プリミティブのすべての内部点ま
たはギャップ・ピクセルに対応する。「イエス」の場
合、コントローラはコマンド112「ベクトルを生成す
る」に進み、信号‘g'をレギュラー・エッジに沿ってマ
ーク・バッファに対してマークする。この場合も、カラ
ーは‘g'に対するステップ1におけるフレーム・バッフ
ァには送られない。
の頂点データと、命令108で得られた次の頂点データと
の間のベクトルが、サブエリアな「レギュラー・エッ
ジ」であるかどうかを判断する。上述のように、境界フ
ラグがデータ・リストの一部として与えられ、各頂点を
「リアル・エッジ」、「レギュラー・エッジ」または
「フェイクZフロント・エッジまたはフェイクZバック
・エッジ」にあるものとして定義する。「レギュラー・
エッジ」はポリゴン・プリミティブのすべての内部点ま
たはギャップ・ピクセルに対応する。「イエス」の場
合、コントローラはコマンド112「ベクトルを生成す
る」に進み、信号‘g'をレギュラー・エッジに沿ってマ
ーク・バッファに対してマークする。この場合も、カラ
ーは‘g'に対するステップ1におけるフレーム・バッフ
ァには送られない。
その後、コマンド112の流れは照会106に戻る。
照会110に対する答えが「ノー」である場合には、コン
トローラは照会114「エッジはリアル・エッジか」に進
み、ベクトルがポリゴン・プリミティブのリアル・エッ
ジを定義しているかどうか(すなわち、実線か飾り線
か)を判定する。「イエス」の場合には、コントローラ
はコマンド116「ベクトルを生成する」においてベクト
ルを生成し、上出のアルゴリズム及びカラーR、G、B
にしたがって、すなわち、エッジ・セグメントの場合に
は、フレーム・バッファにしたがって、マーク・バッフ
ァ内の該当する信号‘e'または‘g'をマークする。照会
114に対する答えが「ノー」である場合には、コントロ
ーラは照会118「エッジはZフェイクか」に進む。この
場合も、「ノー」であれば、コントローラは照会106へ
戻る。
トローラは照会114「エッジはリアル・エッジか」に進
み、ベクトルがポリゴン・プリミティブのリアル・エッ
ジを定義しているかどうか(すなわち、実線か飾り線
か)を判定する。「イエス」の場合には、コントローラ
はコマンド116「ベクトルを生成する」においてベクト
ルを生成し、上出のアルゴリズム及びカラーR、G、B
にしたがって、すなわち、エッジ・セグメントの場合に
は、フレーム・バッファにしたがって、マーク・バッフ
ァ内の該当する信号‘e'または‘g'をマークする。照会
114に対する答えが「ノー」である場合には、コントロ
ーラは照会118「エッジはZフェイクか」に進む。この
場合も、「ノー」であれば、コントローラは照会106へ
戻る。
エッジがフェイクZエッジからなっている場合には、照
会118によって、コントローラは照会120「フロントZフ
ェイクか」に進み、フェイクZエッジがフロントZ軸ク
リッピング境界またはバックZ軸クリッピング境界に沿
っているかどうかを判断する。エッジがバッグZ軸クリ
ッピング境界に対応している場合には、流れは命令122
「エッジ頂点を、Zフェイク頂点リスト(バック)に保
管する」に進む。逆に、Zフェイク・エッジがフロント
・エッジからなっている場合には、コントローラはZフ
ェイク・エッジ頂点を別のリスト124に記憶する。「エ
ッジ頂点を、Zフェイク頂点リスト(フロント)に保管
する」。命令122または124を処理した後、コントローラ
は照会106に戻る。
会118によって、コントローラは照会120「フロントZフ
ェイクか」に進み、フェイクZエッジがフロントZ軸ク
リッピング境界またはバックZ軸クリッピング境界に沿
っているかどうかを判断する。エッジがバッグZ軸クリ
ッピング境界に対応している場合には、流れは命令122
「エッジ頂点を、Zフェイク頂点リスト(バック)に保
管する」に進む。逆に、Zフェイク・エッジがフロント
・エッジからなっている場合には、コントローラはZフ
ェイク・エッジ頂点を別のリスト124に記憶する。「エ
ッジ頂点を、Zフェイク頂点リスト(フロント)に保管
する」。命令122または124を処理した後、コントローラ
は照会106に戻る。
照会102に対する答えが「イエス」である場合には、コ
ントローラは照会126「Zフェイク・バック・エッジ
か」に進む。この命令はコントローラに、頂点が命令12
2で作成されたZフェイク頂点リスト(バック)に記憶
されているかどうかを判断するよう命令する。「イエ
ス」の場合には、コントローラはZフェイク・バック頂
点のリストを分類し、128「Zフェイク頂点リスト(バ
ック)を分類する」、分類されたリストからベクトルP1
−P2、P3−P4、・・・を生成する、130「ベクトルP1−P
2、P3−P4、・・・を生成する」。フェイクZエッジに
内部カラーが割り当てられているので、マーク・バッフ
ァは生成されたベクトルに対する‘g'信号を受け取る
が、フレーム・バッファには何も書き込まれない。命令
130の後、あるいは照会126に対する答えが「ノー」であ
る場合、コントローラは照会132「Zフェイク・フロン
ト・エッジか」に送られる。「ノー」の場合、コントロ
ーラは本描出処理のステップ2に進む。
ントローラは照会126「Zフェイク・バック・エッジ
か」に進む。この命令はコントローラに、頂点が命令12
2で作成されたZフェイク頂点リスト(バック)に記憶
されているかどうかを判断するよう命令する。「イエ
ス」の場合には、コントローラはZフェイク・バック頂
点のリストを分類し、128「Zフェイク頂点リスト(バ
ック)を分類する」、分類されたリストからベクトルP1
−P2、P3−P4、・・・を生成する、130「ベクトルP1−P
2、P3−P4、・・・を生成する」。フェイクZエッジに
内部カラーが割り当てられているので、マーク・バッフ
ァは生成されたベクトルに対する‘g'信号を受け取る
が、フレーム・バッファには何も書き込まれない。命令
130の後、あるいは照会126に対する答えが「ノー」であ
る場合、コントローラは照会132「Zフェイク・フロン
ト・エッジか」に送られる。「ノー」の場合、コントロ
ーラは本描出処理のステップ2に進む。
「イエス」の場合には、流れ命令184「Zフェイク頂点
リスト(フロント)」へ進み、その後命令136「ベクト
ルP1−P2、P3−P4、・・・を生成する」に進む。命令13
4及び136は、これらがコントローラにフロントZ軸クリ
ッピング面に沿った非重畳フェイクZエッジを分類生成
し、これらのエッジをマーク・バッファ内の信号‘g'に
よってマークするよう命令する点で、命令128及び130の
それぞれに対応している。この場合も、フレーム・バッ
ファへの描出は遅延する。命令136が完了すると、コン
トローラは処理対象のボリゴン・プリミティブに対する
ステップ1を完了し、ステップ2へ進む。
リスト(フロント)」へ進み、その後命令136「ベクト
ルP1−P2、P3−P4、・・・を生成する」に進む。命令13
4及び136は、これらがコントローラにフロントZ軸クリ
ッピング面に沿った非重畳フェイクZエッジを分類生成
し、これらのエッジをマーク・バッファ内の信号‘g'に
よってマークするよう命令する点で、命令128及び130の
それぞれに対応している。この場合も、フレーム・バッ
ファへの描出は遅延する。命令136が完了すると、コン
トローラは処理対象のボリゴン・プリミティブに対する
ステップ1を完了し、ステップ2へ進む。
ステップ2の目的は、マーク・バッファ内のポリゴンの
内部をマークすることである。まず、コントローラに
は、最後のサブエリアが処理されたかどうか、138「最
後のサブエリアが処理されたか」を判断するよう命令が
与えられる。ステップ2の処理が始まったばかりなの
で、答えは「ノー」であり、コントローラはサブエリア
の最初の頂点データを獲得し、140「サブエリアの最初
の頂点データを得る」、その後サブエリアの最後の頂点
が処理されたかどうかを照会する、42「最後の頂点が処
理されたか」。「ノー」の場合、コントローラは獲得し
た頂点データがフェイクZエッジの頂点に対応している
かどうかを照会する、「エッジはZフェイクか」。「ノ
ー」の場合、コントローラはサブルーチンALPH1に入
る、146「ALPH1を呼び出す」。
内部をマークすることである。まず、コントローラに
は、最後のサブエリアが処理されたかどうか、138「最
後のサブエリアが処理されたか」を判断するよう命令が
与えられる。ステップ2の処理が始まったばかりなの
で、答えは「ノー」であり、コントローラはサブエリア
の最初の頂点データを獲得し、140「サブエリアの最初
の頂点データを得る」、その後サブエリアの最後の頂点
が処理されたかどうかを照会する、42「最後の頂点が処
理されたか」。「ノー」の場合、コントローラは獲得し
た頂点データがフェイクZエッジの頂点に対応している
かどうかを照会する、「エッジはZフェイクか」。「ノ
ー」の場合、コントローラはサブルーチンALPH1に入
る、146「ALPH1を呼び出す」。
第14B図に略示したALPH1はコントローラに、Zフェイク
・エッジのない三角形を生成するよう命令する。サブル
ーチンには170で入り、コントローラはまず、検討対象
の頂点が処理対象のサブエリアの第2の頂点からなって
いるかどうかを判定する、172「処理対象のサブエリア
の2番目の頂点か」。「ノー」の場合、コントローラは
2番目の頂点を獲得し、174「2番目の頂点データを得
る」、次いで照会142で、第14A図に示した処理に戻る、
186。サブエリアの2番目の頂点が獲得されている場
合、照会172によって、コントローラは3番目の頂点を
獲得し、176「次の頂点データを得る」、その後3つの
頂点を使用して三角形を生成する、178「三角形を生成
する」。三角形を生成した後、コントローラは生成され
た三角形が処理対象のサブエリアの最初の三角形である
かどうかを判定し、「イエス」の場合には、第14A図の
メインステップ2の処理に戻る、186。反対に、コマン
ド178で作成された三角形がサブエリアの最初のもので
ない場合には、コントローラは以前の三角形の向きが、
現在の三角形の向きと同じであうかどうかを判定する、
182「以前の三角形と同じ向きか」。「ノー」の場合、
流れはステップ2のメイン・プロセスに戻る、186。
「イエス」の場合には、コントローラは現在の三角形及
び以前の三角形のすべての共通の点を修正するが、以前
の三角形は第8図に関連して詳述した処理アルゴリズム
に固有な排他的論理和関数によって消去されたものであ
る。命令184の後、照会142においてステップ2のメイン
処理への復帰が行なわれる、186。
・エッジのない三角形を生成するよう命令する。サブル
ーチンには170で入り、コントローラはまず、検討対象
の頂点が処理対象のサブエリアの第2の頂点からなって
いるかどうかを判定する、172「処理対象のサブエリア
の2番目の頂点か」。「ノー」の場合、コントローラは
2番目の頂点を獲得し、174「2番目の頂点データを得
る」、次いで照会142で、第14A図に示した処理に戻る、
186。サブエリアの2番目の頂点が獲得されている場
合、照会172によって、コントローラは3番目の頂点を
獲得し、176「次の頂点データを得る」、その後3つの
頂点を使用して三角形を生成する、178「三角形を生成
する」。三角形を生成した後、コントローラは生成され
た三角形が処理対象のサブエリアの最初の三角形である
かどうかを判定し、「イエス」の場合には、第14A図の
メインステップ2の処理に戻る、186。反対に、コマン
ド178で作成された三角形がサブエリアの最初のもので
ない場合には、コントローラは以前の三角形の向きが、
現在の三角形の向きと同じであうかどうかを判定する、
182「以前の三角形と同じ向きか」。「ノー」の場合、
流れはステップ2のメイン・プロセスに戻る、186。
「イエス」の場合には、コントローラは現在の三角形及
び以前の三角形のすべての共通の点を修正するが、以前
の三角形は第8図に関連して詳述した処理アルゴリズム
に固有な排他的論理和関数によって消去されたものであ
る。命令184の後、照会142においてステップ2のメイン
処理への復帰が行なわれる、186。
照会144に戻ると、答えが「イエス」の場合、コントロ
ーラは頂点がZフェイク・フロント・エッジまたはZフ
ェイク・バック・エッジに対応しているかどうか判定す
る、148「Zフェイク・エッジのタイプは」。エッジが
Zフェイク・バック・エッジである場合には、サブレー
チンALPH2Bが呼び出される、150「ALPH2Bを呼び出
す」。あるいは、エッジがZフェイク・フロント・エッ
ジである場合にはサブルーチンALPH2Fが呼び出される、
152「ALPH2Fを呼び出す」。サブルーチンALPH2B及びALP
H2Fは、これらがステップ1のコマンド122及び124でコ
ンパイルされた異なるリストにアクセスすることを除け
ば、同じものである。ALPH2BはZフェイク頂点リスト
(バック)に保管されているエッジ頂点にアクセスし、
ALPH2FはZフェイク頂点リスト(フロント)に保管され
ているエッジ頂点にアクセスする。ALPH2B/ALPH2Fサブ
ルーチンの概要を、14C図に示す。
ーラは頂点がZフェイク・フロント・エッジまたはZフ
ェイク・バック・エッジに対応しているかどうか判定す
る、148「Zフェイク・エッジのタイプは」。エッジが
Zフェイク・バック・エッジである場合には、サブレー
チンALPH2Bが呼び出される、150「ALPH2Bを呼び出
す」。あるいは、エッジがZフェイク・フロント・エッ
ジである場合にはサブルーチンALPH2Fが呼び出される、
152「ALPH2Fを呼び出す」。サブルーチンALPH2B及びALP
H2Fは、これらがステップ1のコマンド122及び124でコ
ンパイルされた異なるリストにアクセスすることを除け
ば、同じものである。ALPH2BはZフェイク頂点リスト
(バック)に保管されているエッジ頂点にアクセスし、
ALPH2FはZフェイク頂点リスト(フロント)に保管され
ているエッジ頂点にアクセスする。ALPH2B/ALPH2Fサブ
ルーチンの概要を、14C図に示す。
188でサブルーチンに入ってから、コントローラは重畳
Zフェイク・エッジが存在しているかどうかを確認す
る、190「重畳Zフェイク・エッジか」。「ノー」の場
合、コントローラはサブエリアの最後のエッジが処理さ
れたかどうかを照会する、192「サブエリアの最後のエ
ッジか」。再度「ノー」の場合には、サブルーチンALPH
1が入力される、194「ALPH1を呼び出す」。ALPH1サブル
ーチンの処理後、照会142において、ステップ2のメイ
ン処理フローへの復帰が行なわれる、196。プロセッサ
には同様に、照会192に対する答えが「イエス」の場合
に、照会142に戻るよう命令が与えられる、196。
Zフェイク・エッジが存在しているかどうかを確認す
る、190「重畳Zフェイク・エッジか」。「ノー」の場
合、コントローラはサブエリアの最後のエッジが処理さ
れたかどうかを照会する、192「サブエリアの最後のエ
ッジか」。再度「ノー」の場合には、サブルーチンALPH
1が入力される、194「ALPH1を呼び出す」。ALPH1サブル
ーチンの処理後、照会142において、ステップ2のメイ
ン処理フローへの復帰が行なわれる、196。プロセッサ
には同様に、照会192に対する答えが「イエス」の場合
に、照会142に戻るよう命令が与えられる、196。
重畳Zフェイク・エッジが存在している場合には、コン
トローラは重畳Zフェイク・エッジが処理すべき最後の
エッジであるかどうかを判断する、198「サブエリアの
最後のエッジか」。「ノー」の場合、次の頂点データが
獲得され、200「次の頂点データを得る」、その後コン
トローラは命令202へ進む。命令202において、コントロ
ーラは上述のZフェイク処理を実施する。詳細にいえ
ば、他の対応するZフェイク・エッジのN個の頂点が、
現在のエッジ頂点の間に挿入され、結果として生じるN
+1個の三角形が生成され、Zフェイク・エッジに沿っ
たあらゆる共通点に対して修正が行なわれる、202「他
のZフェイク・エッジの頂点(N個)を、現在のエッジ
頂点の間に挿入し、N+1個の三角形を生成し、共通点
の修正を行なう」。重畳Zフェイク・エッジがサブエリ
アの最後のエッジに沿って整合している場合には、照会
198によって、コントローラは次の頂点データを獲得
し、206「次の頂点データを得る」、その後命令208「他
のZフェイク・エッジの頂点(N個)を、現在のエッジ
頂点の間に挿入し、N個の三角形を生成し、共通点の修
正を行なう」。命令208は命令202と同様であるが、Zフ
ェイク重畳エッジが、処理すべきサブエリアの最後のエ
ッジでない場合に、N個の三角形のみが生成される点が
異なっている。命令202または208の後、コントローラは
ステップ2のメイン処理ループへ戻る、196。
トローラは重畳Zフェイク・エッジが処理すべき最後の
エッジであるかどうかを判断する、198「サブエリアの
最後のエッジか」。「ノー」の場合、次の頂点データが
獲得され、200「次の頂点データを得る」、その後コン
トローラは命令202へ進む。命令202において、コントロ
ーラは上述のZフェイク処理を実施する。詳細にいえ
ば、他の対応するZフェイク・エッジのN個の頂点が、
現在のエッジ頂点の間に挿入され、結果として生じるN
+1個の三角形が生成され、Zフェイク・エッジに沿っ
たあらゆる共通点に対して修正が行なわれる、202「他
のZフェイク・エッジの頂点(N個)を、現在のエッジ
頂点の間に挿入し、N+1個の三角形を生成し、共通点
の修正を行なう」。重畳Zフェイク・エッジがサブエリ
アの最後のエッジに沿って整合している場合には、照会
198によって、コントローラは次の頂点データを獲得
し、206「次の頂点データを得る」、その後命令208「他
のZフェイク・エッジの頂点(N個)を、現在のエッジ
頂点の間に挿入し、N個の三角形を生成し、共通点の修
正を行なう」。命令208は命令202と同様であるが、Zフ
ェイク重畳エッジが、処理すべきサブエリアの最後のエ
ッジでない場合に、N個の三角形のみが生成される点が
異なっている。命令202または208の後、コントローラは
ステップ2のメイン処理ループへ戻る、196。
最後の頂点が処理されると、コントローラは照会142か
ら照会154「エッジはZフェイクか」に進む。最後の頂
点がフェイクZエッジに沿っていない場合には、コント
ローラは照会138に戻る。照会154に対する答えが「イエ
ス」の場合には、コントローラは処理対象のZフェイク
・エッジのタイプを判断する、156「Zフェイク・エッ
ジのタイプは」。Zフェイク・エッジがバックZ軸クリ
ッピング面に沿っている場合には、コントローラはサブ
ルーチンALPH2Bを呼び出す、158「ALPH2Bを呼び出
す」。それ以外の場合には、コントローラはサブルーチ
ンALPH2Fを呼び出す、160「ALPH2Fを呼び出す」。命令1
58または命令160の処理後、コトローラは照会138に戻
る。
ら照会154「エッジはZフェイクか」に進む。最後の頂
点がフェイクZエッジに沿っていない場合には、コント
ローラは照会138に戻る。照会154に対する答えが「イエ
ス」の場合には、コントローラは処理対象のZフェイク
・エッジのタイプを判断する、156「Zフェイク・エッ
ジのタイプは」。Zフェイク・エッジがバックZ軸クリ
ッピング面に沿っている場合には、コントローラはサブ
ルーチンALPH2Bを呼び出す、158「ALPH2Bを呼び出
す」。それ以外の場合には、コントローラはサブルーチ
ンALPH2Fを呼び出す、160「ALPH2Fを呼び出す」。命令1
58または命令160の処理後、コトローラは照会138に戻
る。
照会138に戻ると、答えが「イエス」の場合、コントロ
ーラはサブエリアが、バックZ軸クリッピング面に沿っ
たフェイクZエッジを含んでいるかどうかを判断する、
162「Zフェイク・バック・エッジか」。答えが「イエ
ス」の場合、コントローラはベクトルを生成し、Zフェ
イク・バック・エッジに沿ったマークをクリアする、16
4「ベクトルP1−P2、P3−P4、・・.を生成する」命令1
64の後、コントローラは進行し、何らかのZフェイク・
フロント・エッジが存在しているかどうかを判断する、
166「Zフェイク・フロント・エッジか」。照会162に対
する答えが「ノー」の場合、流れは照会166に進む。フ
ロントZフェイク・エッジが存在するものと想定する
と、コントラーラはベクトルを生成し、フロントZフェ
イク・エッジのマークをクリアする、168「ベクトルP1
−P2、P3−P4、・・・を生成する」。命令168の後、あ
るいは照会166に対する答えが「ノー」の場合には、コ
ントローラは処理アルゴリズムのステップ3に送られ
る。
ーラはサブエリアが、バックZ軸クリッピング面に沿っ
たフェイクZエッジを含んでいるかどうかを判断する、
162「Zフェイク・バック・エッジか」。答えが「イエ
ス」の場合、コントローラはベクトルを生成し、Zフェ
イク・バック・エッジに沿ったマークをクリアする、16
4「ベクトルP1−P2、P3−P4、・・.を生成する」命令1
64の後、コントローラは進行し、何らかのZフェイク・
フロント・エッジが存在しているかどうかを判断する、
166「Zフェイク・フロント・エッジか」。照会162に対
する答えが「ノー」の場合、流れは照会166に進む。フ
ロントZフェイク・エッジが存在するものと想定する
と、コントラーラはベクトルを生成し、フロントZフェ
イク・エッジのマークをクリアする、168「ベクトルP1
−P2、P3−P4、・・・を生成する」。命令168の後、あ
るいは照会166に対する答えが「ノー」の場合には、コ
ントローラは処理アルゴリズムのステップ3に送られ
る。
メイン・ステップ3の処理の1実施例を、第15A図に示
す。このステップの目的は、ポリゴンの内部をフレーム
・バッファに描くことである。ステップ2から、コント
ローラはまず、最後のサブエリアが処理されたかどうか
を判断する、210「最後のサブエリアが処理された
か」。イエスであれば、コントローラはステップ4に送
られる。反対に、照会210に対する答えが「ノー」の場
合、コントローラはサブエリアの最初の頂点データを獲
得し、212「サブエリアの最初の頂点データを得る」、
サブエリアの最後の頂点が処理されているかどうかを照
会する、216「最後の頂点が処理されたか」。「ノー」
の場合、獲得された頂点データにZフェイク・エッジと
フラグが付けられたかどうか照会される、218「エッジ
はZフェイクか」。「ノー」の場合、コントローラはサ
ブルーチンBETA1に入る、220「BETA1を呼び出す」。
す。このステップの目的は、ポリゴンの内部をフレーム
・バッファに描くことである。ステップ2から、コント
ローラはまず、最後のサブエリアが処理されたかどうか
を判断する、210「最後のサブエリアが処理された
か」。イエスであれば、コントローラはステップ4に送
られる。反対に、照会210に対する答えが「ノー」の場
合、コントローラはサブエリアの最初の頂点データを獲
得し、212「サブエリアの最初の頂点データを得る」、
サブエリアの最後の頂点が処理されているかどうかを照
会する、216「最後の頂点が処理されたか」。「ノー」
の場合、獲得された頂点データにZフェイク・エッジと
フラグが付けられたかどうか照会される、218「エッジ
はZフェイクか」。「ノー」の場合、コントローラはサ
ブルーチンBETA1に入る、220「BETA1を呼び出す」。
第15B図に示すようにBETA1はコントローラに、Zフェイ
ク・エッジのない三角形を生成するよう命令する。236
で、サブルーチンに入り、コントローラはまず、検討対
象の頂点が処理対象のサブエリアの2番目の頂点を含ん
でいるかどうかを判断する、238「処理対象のサブエリ
アの2番目の頂点か」。「ノー」の場合、コントローラ
は2番目の頂点を獲得し、240「2番目の頂点データを
得る」、照会216で第15A図の処理ルーチンに戻る、24
6。
ク・エッジのない三角形を生成するよう命令する。236
で、サブルーチンに入り、コントローラはまず、検討対
象の頂点が処理対象のサブエリアの2番目の頂点を含ん
でいるかどうかを判断する、238「処理対象のサブエリ
アの2番目の頂点か」。「ノー」の場合、コントローラ
は2番目の頂点を獲得し、240「2番目の頂点データを
得る」、照会216で第15A図の処理ルーチンに戻る、24
6。
サブエリアの2番目の頂点が獲得されている場合には、
照会238により、コントローラは3番目の頂点データを
獲得し、242「次の頂点データを得る」、3つの頂点を
使用して、三角形を生成する、244「三角形を生成す
る」。三角形の生成後、照会216で、第15A図のメイン・
ルーチン処理に戻る、246。
照会238により、コントローラは3番目の頂点データを
獲得し、242「次の頂点データを得る」、3つの頂点を
使用して、三角形を生成する、244「三角形を生成す
る」。三角形の生成後、照会216で、第15A図のメイン・
ルーチン処理に戻る、246。
照会218に戻ると、答えが「イエス」の場合、コントロ
ーラは頂点が、Zフェイク・フロント・エッジまたはZ
フェイク・バック・エッジに対応しているかどうかを判
断する、222「Zフェイク・エッジのタイプは」。エッ
ジがZフェイク・バック・エッジの場合には、コントロ
ーラはサブルーチンBETA2Bを呼び出す、224「BETA2Bを
呼び出す」。反対に、エッジがZフェイク・フロント・
エッジを含んでいる場合には、サブルーチンBETA2Fが呼
び出される、226「BETA2Fを呼び出す」。サブルーチンB
ETA2B及びBETA2Fはこれらがステップ1のコマンド122及
び124でコンパイルされた異なる2つのリストをアクセ
スすることを除けば、同一のものである。BETA2BはZフ
ェイク頂点リスト(バック)で保管されているエッジ頂
点にアクセスし、BETA2FはZフェイク頂点リスト(フロ
ント)で保管されているエッジ頂点にアクセスする。BE
TA2B/BETA2Fサブルーチンの概要を第15C図に示す。
ーラは頂点が、Zフェイク・フロント・エッジまたはZ
フェイク・バック・エッジに対応しているかどうかを判
断する、222「Zフェイク・エッジのタイプは」。エッ
ジがZフェイク・バック・エッジの場合には、コントロ
ーラはサブルーチンBETA2Bを呼び出す、224「BETA2Bを
呼び出す」。反対に、エッジがZフェイク・フロント・
エッジを含んでいる場合には、サブルーチンBETA2Fが呼
び出される、226「BETA2Fを呼び出す」。サブルーチンB
ETA2B及びBETA2Fはこれらがステップ1のコマンド122及
び124でコンパイルされた異なる2つのリストをアクセ
スすることを除けば、同一のものである。BETA2BはZフ
ェイク頂点リスト(バック)で保管されているエッジ頂
点にアクセスし、BETA2FはZフェイク頂点リスト(フロ
ント)で保管されているエッジ頂点にアクセスする。BE
TA2B/BETA2Fサブルーチンの概要を第15C図に示す。
248でサブルーチンに入った後、コントローラは重畳Z
フェイク・エッジが存在しているかどうかを確認する、
250「重畳したZフェイク・エッジか」。「ノー」の場
合、コントローラはサブエリアの最後のエッジが処理さ
れているかどうかを照会し、252「サブエリアの最後の
エッジか」、再度「ノー」であれば、サブルーチンBETA
1に入る、254「BETA1を呼び出す」。BETA1サブルーチン
の処理の後、コントローラは照会216で、ステップ3の
メイン処理フローに戻る、256。照会252に対する答えが
「イエス」の場合には、プロセッサは同様に照会216に
戻る、256。
フェイク・エッジが存在しているかどうかを確認する、
250「重畳したZフェイク・エッジか」。「ノー」の場
合、コントローラはサブエリアの最後のエッジが処理さ
れているかどうかを照会し、252「サブエリアの最後の
エッジか」、再度「ノー」であれば、サブルーチンBETA
1に入る、254「BETA1を呼び出す」。BETA1サブルーチン
の処理の後、コントローラは照会216で、ステップ3の
メイン処理フローに戻る、256。照会252に対する答えが
「イエス」の場合には、プロセッサは同様に照会216に
戻る、256。
重畳Zフェイク・エッジが存在している場合には、コン
トローラはZフェイク・エッジが、処理すべき最後のエ
ッジであるかどうかを判断する、258「サブエリアの最
後のエッジか」。「ノー」の場合、次の頂点データが獲
得され、260「次の頂点データを得る」、コントローラ
は命令262「他のZフェイク・エッジの頂点(N個)
を、現在のエッジ頂点の間に挿入し、N+1個の三角形
を生成する」へ進む。重畳Zフェイク・エッジがサブエ
リアの最後のエッジと整合している場合には、照会258
により、コントローラは次の頂点データを獲得し、264
「次の頂点データを得る」、その後命令266「他のZフ
ェイク・エッジの頂点(N個)を、現在のエッジ頂点の
間に挿入し、N個の三角形を生成する」へ進む。命令26
2及び266は共通点を修正する必要がないことを除けば、
命令202及び208のそれぞれと同一である。命令262また
は266の後、コントローラはステップ3のメイン処理ル
ープへ戻る、256。
トローラはZフェイク・エッジが、処理すべき最後のエ
ッジであるかどうかを判断する、258「サブエリアの最
後のエッジか」。「ノー」の場合、次の頂点データが獲
得され、260「次の頂点データを得る」、コントローラ
は命令262「他のZフェイク・エッジの頂点(N個)
を、現在のエッジ頂点の間に挿入し、N+1個の三角形
を生成する」へ進む。重畳Zフェイク・エッジがサブエ
リアの最後のエッジと整合している場合には、照会258
により、コントローラは次の頂点データを獲得し、264
「次の頂点データを得る」、その後命令266「他のZフ
ェイク・エッジの頂点(N個)を、現在のエッジ頂点の
間に挿入し、N個の三角形を生成する」へ進む。命令26
2及び266は共通点を修正する必要がないことを除けば、
命令202及び208のそれぞれと同一である。命令262また
は266の後、コントローラはステップ3のメイン処理ル
ープへ戻る、256。
照会216に対する答えが「イエス」の場合には、コント
ローラは頂点が、Zフェイク・エッジに対応しているか
どうかを判断し、228「エッジはZフェイクか」、再度
「イエス」の場合、Zフェイク・エッジのタイプを識別
する、23「Zフェイク・エッジのタイプは」。Zフェイ
ク・エッジがZ軸クリッピング面に沿っている場合に
は、サブルーチンBETA2Bが呼び出される、232「BETA2B
を呼び出す」。それ以外の場合には、サブルーチンBETA
2Fが呼び出される、234「BETA2Fを呼び出す」。サブル
ーチンBETA2BまたはBETA2Fの処理の後、コントローラは
照会210に戻る。また、頂点がZフェイク・エッジに沿
っていない場合には、コントローラは照会228から照会2
10へ直接戻る。
ローラは頂点が、Zフェイク・エッジに対応しているか
どうかを判断し、228「エッジはZフェイクか」、再度
「イエス」の場合、Zフェイク・エッジのタイプを識別
する、23「Zフェイク・エッジのタイプは」。Zフェイ
ク・エッジがZ軸クリッピング面に沿っている場合に
は、サブルーチンBETA2Bが呼び出される、232「BETA2B
を呼び出す」。それ以外の場合には、サブルーチンBETA
2Fが呼び出される、234「BETA2Fを呼び出す」。サブル
ーチンBETA2BまたはBETA2Fの処理の後、コントローラは
照会210に戻る。また、頂点がZフェイク・エッジに沿
っていない場合には、コントローラは照会228から照会2
10へ直接戻る。
ステップ3から、コントローラはステップ4でスタイル
化されたポリゴン境界のギャップ・ポイントを描くよう
に命令される。ステップ4の処理の1実施例を第16図に
示す。図示のように、コントローラはまず、最後のサブ
エリアが処理されているかどうかを判断する、270「最
後のサブエリアを処理したか」。「ノー」の場合、最初
の頂点が獲得され、272「最初の頂点データを得る」、
その後獲得された頂点データがサブエリアの最後で頂点
に対応しているのかどうかの照会が行なわれる、274
「サブエリアの最後の頂点か」。「イエス」の場合、コ
ントローラは照会270へ戻る。反対に、サブエリアの最
後の頂点が処理されていない場合には、コントローラは
次の頂点を獲得し、275「次の頂点データを得る」、2
つの頂点によって定義されたエッジが「レギュラー・エ
ッジ」なのかどうかを照会する、276「エッジはレギュ
ラー・エッジか」。「イエス」の場合、上述のアルゴリ
ズムにしたがって、エッジのすべてのピクセルに内部カ
ラーが割り当てられる、278「ベクトルを生成する」。
照会276に対する答えが「ノー」の場合、コントローラ
はエッジが「リアル・エッジ」であるかどうかを判断
し、280「エッジは「リアル・エッジ」か」、「イエ
ス」の場合には、エッジがスタイル化されているかどう
かを判断する、282「エッジはスタイル化された線
か」。「イエス」の場合には、ベクトルが生成され、27
8「ベクトルを生成する」、アルゴリズムにしたがって
ギャップ・ピクセルが描かれる。エッジがスタイル化さ
れた線でない場合には、エッジがすでにステップ1で描
かれているので、ベクトルは生成されない。
化されたポリゴン境界のギャップ・ポイントを描くよう
に命令される。ステップ4の処理の1実施例を第16図に
示す。図示のように、コントローラはまず、最後のサブ
エリアが処理されているかどうかを判断する、270「最
後のサブエリアを処理したか」。「ノー」の場合、最初
の頂点が獲得され、272「最初の頂点データを得る」、
その後獲得された頂点データがサブエリアの最後で頂点
に対応しているのかどうかの照会が行なわれる、274
「サブエリアの最後の頂点か」。「イエス」の場合、コ
ントローラは照会270へ戻る。反対に、サブエリアの最
後の頂点が処理されていない場合には、コントローラは
次の頂点を獲得し、275「次の頂点データを得る」、2
つの頂点によって定義されたエッジが「レギュラー・エ
ッジ」なのかどうかを照会する、276「エッジはレギュ
ラー・エッジか」。「イエス」の場合、上述のアルゴリ
ズムにしたがって、エッジのすべてのピクセルに内部カ
ラーが割り当てられる、278「ベクトルを生成する」。
照会276に対する答えが「ノー」の場合、コントローラ
はエッジが「リアル・エッジ」であるかどうかを判断
し、280「エッジは「リアル・エッジ」か」、「イエ
ス」の場合には、エッジがスタイル化されているかどう
かを判断する、282「エッジはスタイル化された線
か」。「イエス」の場合には、ベクトルが生成され、27
8「ベクトルを生成する」、アルゴリズムにしたがって
ギャップ・ピクセルが描かれる。エッジがスタイル化さ
れた線でない場合には、エッジがすでにステップ1で描
かれているので、ベクトルは生成されない。
会280または282に対する答えが「ノー」の場合、コント
ローラは照会274に戻り、さらに処理される。同様に、
ベクトル生成コマンド278によって、プロセッサは274に
戻る。
ローラは照会274に戻り、さらに処理される。同様に、
ベクトル生成コマンド278によって、プロセッサは274に
戻る。
最後のサブエリアが処理されると、照会270によって、
コントローラはZフェイク・バック・エッジがあるかど
うかを判断する、284「Zフェイク・バック・エッジ
か」。「イエス」の場合、ベクトルP1−P2、P3−P4、・
・・が生成されるので、内部カラーをこれに割り当てる
ことができる、286「ベクトルP1−P2、P3−P4、・・.
を生成する」。命令286の後、あるいは照会284に対する
答えが「ノー」の場合、コントローラは進行し、何らか
のZフェイク・フロント・エッジがあるかどうかを判断
する、288「Zフェイク・エッジか」。「イエス」の場
合、対応するベクトルP1−P2、P3−P4、・・・が生成さ
れる、290「ベクトルP1−P2、P3−P4、・・・を生成す
る」。命令290の後、コントローラはステップ5へ送ら
れる。同様に、ポリゴン・プリミティブに対してZフェ
イク・フロント・エッジが存在しない場合には、コント
ローラはステップ5へ送られる。
コントローラはZフェイク・バック・エッジがあるかど
うかを判断する、284「Zフェイク・バック・エッジ
か」。「イエス」の場合、ベクトルP1−P2、P3−P4、・
・・が生成されるので、内部カラーをこれに割り当てる
ことができる、286「ベクトルP1−P2、P3−P4、・・.
を生成する」。命令286の後、あるいは照会284に対する
答えが「ノー」の場合、コントローラは進行し、何らか
のZフェイク・フロント・エッジがあるかどうかを判断
する、288「Zフェイク・エッジか」。「イエス」の場
合、対応するベクトルP1−P2、P3−P4、・・・が生成さ
れる、290「ベクトルP1−P2、P3−P4、・・・を生成す
る」。命令290の後、コントローラはステップ5へ送ら
れる。同様に、ポリゴン・プリミティブに対してZフェ
イク・フロント・エッジが存在しない場合には、コント
ローラはステップ5へ送られる。
ステップ5の目的は最後のサブエリアの処理に引き続
き、マーク・バッファに残っているあらゆるエッジを消
去することである。ステップ5の概要を第17図に示す。
図示のように、コントローラはまず、最後のサブエリア
が処理されているかどうかを判断する、292「最後のサ
ブエリアが処理されたか」。「ノー」の場合、最初の頂
点が獲得される、294「最初の頂点を得る」。次いで、
コントローラはサブエリアの最後の頂点が処理されてい
るかどうかを判断し、296「サブエリアの最後の頂点
か」、「イエス」の場合には、照会292に戻る。最後の
頂点が処理されていない場合には、コントローラは次の
頂点データを獲得し、298「次の頂点データを得る」、
2つの頂点によって定義されたエッジがレギュラー・エ
ッジであるかどうかを判断する、300「エッジはレギュ
ラー・エッジか」。「イエス」の場合には、ベクトルが
生成され、エッジを消去する、302「ベクトルを生成す
る」。エッジがレギュラー・エッジでない場合には、コ
ントローラはエッジが「リアル・エッジ」であるかどう
かを判断し、804「エッジは「リアル・エッジ」か」、
再度「イエス」の場合には、ベクトルを生成して、エッ
ジを消去する、302「ベクトルを生成する」。命令302の
後、コントローラは照会296に戻る。照会304に対する答
えが「ノー」の場合には、コントローラは直接296に戻
る。
き、マーク・バッファに残っているあらゆるエッジを消
去することである。ステップ5の概要を第17図に示す。
図示のように、コントローラはまず、最後のサブエリア
が処理されているかどうかを判断する、292「最後のサ
ブエリアが処理されたか」。「ノー」の場合、最初の頂
点が獲得される、294「最初の頂点を得る」。次いで、
コントローラはサブエリアの最後の頂点が処理されてい
るかどうかを判断し、296「サブエリアの最後の頂点
か」、「イエス」の場合には、照会292に戻る。最後の
頂点が処理されていない場合には、コントローラは次の
頂点データを獲得し、298「次の頂点データを得る」、
2つの頂点によって定義されたエッジがレギュラー・エ
ッジであるかどうかを判断する、300「エッジはレギュ
ラー・エッジか」。「イエス」の場合には、ベクトルが
生成され、エッジを消去する、302「ベクトルを生成す
る」。エッジがレギュラー・エッジでない場合には、コ
ントローラはエッジが「リアル・エッジ」であるかどう
かを判断し、804「エッジは「リアル・エッジ」か」、
再度「イエス」の場合には、ベクトルを生成して、エッ
ジを消去する、302「ベクトルを生成する」。命令302の
後、コントローラは照会296に戻る。照会304に対する答
えが「ノー」の場合には、コントローラは直接296に戻
る。
最後のサブエリアが処理された後、コントローラはZフ
ェイク・バック・エッジがあるかどうかを判断し、306
「Zフェイク・バック・エッジか」、「イエス」の場合
には、ベクトルを生成して、エッジを消去する、308
「ベクトルP1−P2、P3−P4、・・・を生成する」。命令
308から、あるいは答えが「ノー」の場合には、直接命
令306から、コントローラはZフェイク・フロント・エ
ッジがあるかどうかを判断し、306「Zフェイク・フロ
ント・エッジか」、「イエス」の場合には、ベクトルを
生成し、エッジを消去する、312「ベクトルP1−P2、P3
−P4、・・・を生成する」。バック及びフロントZフェ
イク・エッジを消去した後、ステップ5の処理は終了す
る、314。
ェイク・バック・エッジがあるかどうかを判断し、306
「Zフェイク・バック・エッジか」、「イエス」の場合
には、ベクトルを生成して、エッジを消去する、308
「ベクトルP1−P2、P3−P4、・・・を生成する」。命令
308から、あるいは答えが「ノー」の場合には、直接命
令306から、コントローラはZフェイク・フロント・エ
ッジがあるかどうかを判断し、306「Zフェイク・フロ
ント・エッジか」、「イエス」の場合には、ベクトルを
生成し、エッジを消去する、312「ベクトルP1−P2、P3
−P4、・・・を生成する」。バック及びフロントZフェ
イク・エッジを消去した後、ステップ5の処理は終了す
る、314。
上記したところから、本発明が本明細書に記載した目的
を完全に満たしていることがわかろう。セルフ・インタ
ーセクティング・ポリゴン及び多角形孔を有するポリゴ
ンを含む凹ポリゴンを効率的に処理する、コンピュータ
・グラフィックス・ディスプレイ・システム用の方法及
びプロセッサが提供される。また、上述の方法及びプロ
セッサは、典型的なコンピュータ・グラフィックス・デ
ィスプレイ・システムのさまざまな既存のハードウェア
構成要素を使用して実現される。
を完全に満たしていることがわかろう。セルフ・インタ
ーセクティング・ポリゴン及び多角形孔を有するポリゴ
ンを含む凹ポリゴンを効率的に処理する、コンピュータ
・グラフィックス・ディスプレイ・システム用の方法及
びプロセッサが提供される。また、上述の方法及びプロ
セッサは、典型的なコンピュータ・グラフィックス・デ
ィスプレイ・システムのさまざまな既存のハードウェア
構成要素を使用して実現される。
E.発明の効果 本発明により、周知の手法に比較して、凹ポリゴン処理
時間が大幅に短縮される。さらに、実施例の説明から明
らかなように、本発明は既存のディスプレイ・システム
・ハードウェアの多くの要素、たとえば、凸ポリゴンを
処理するのに必要な要素を使用して実現される。
時間が大幅に短縮される。さらに、実施例の説明から明
らかなように、本発明は既存のディスプレイ・システム
・ハードウェアの多くの要素、たとえば、凸ポリゴンを
処理するのに必要な要素を使用して実現される。
第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図は、本発明の第3の処理ステップ
の流れ図である。 第15A図ないし15C図は、本発明の第3の処理ステップの
流れ図である。 第16図は、本発明の第4のステップの流れ図である。 第17図は、本発明の第5の処理ステップの流れ図であ
る。
ックス・システムの全体ブロック図である。 第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図は、本発明の第3の処理ステップ
の流れ図である。 第15A図ないし15C図は、本発明の第3の処理ステップの
流れ図である。 第16図は、本発明の第4のステップの流れ図である。 第17図は、本発明の第5の処理ステップの流れ図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウイリアム・ルイス・ルーケン、ジユニア アメリカ合衆国ニユーヨーク州アルスタ ー・パーク、オチヤード・ヒル・ロード2 番地
Claims (20)
- 【請求項1】ディスプレイ・プロセッサと、ディスプレ
イモニタに表示される複数の線の各々についての個々の
ピクセルを記憶するためのフレーム・バッフアを含むデ
ィスプレイ手段とを有しており、該フレーム・バッファ
が複数個のアドレス可能なM×Nの構成ピクセル・ブロ
ックに編成されているコンピュータ・グラフィックス・
ディスプレイ・システムにおける、複数個のアドレス可
能なM×Nの構成ピクセルに編成されたマーク・バッフ
ァを使用して、前記フレーム・バッファに凹ポリゴンを
描く方法であって、 (a)前記ポリゴンの境界に対応する前記マーク・バッ
ファ内のピクセルをマークし、前記ポリゴンの境界に対
応するピクセルを前記フレーム・バッファに描くステッ
プと、 (b)前記ポリゴン境界に対応するマークされたピクセ
ルが前記マーク・バッファに保存されている間に、前記
ポリゴンの内側に対応する前記マーク・バツファ内のピ
クセルをマークするステップと、 (c)前記マーク・バッファ内のマークされたポリゴン
内部ピクセルを参照して、前記ポリゴンの内側に対応す
る前記フレーム・バッファ内のピクセルに記入するステ
ップと、 からなる凹ポリゴンを描く方法。 - 【請求項2】前記ポリゴンが複数の多角形サブェリアに
よって定義され、前記ステップ(a)−(c)の各々が
前記サブェリアのすべてを処理する、請求項1記載の方
法。 - 【請求項3】ディスプレイ・プロセッサと、ディスプレ
イ・モニタに表示される複数の線の各々についての個々
のピクセルを記憶するためのフレーム・バッファ及び個
々のピクセルについてのZ値を記憶するためのデプス・
バッファを含むディスプレイ手段とを有しており、該フ
レーム・バッファ及び該デプス・バッファの各々が複数
個のアドレス可能なM×Nの構成ピクセル・ブロックで
構成されているコンピュータ・グラフィックス・ディス
プレイ・システムにおける、複数個のアドレス可能なM
×Nの構成ピクセルで構成されたマーク・バッファを使
用して、エッジ・ギャップ及びエッジ・セグメントによ
って定義されるスタイル化された境界のある、あるいは
該境界のない凹ポリゴンを描く方法であって、 (a)前記ポリゴンの境界を定義するエッジ・ギャップ
及びエッジ・セグメントに対応する前記マーク・バッフ
ァ内のピクセルをマークするステップと、 (b)前記マーク・バッファの内容を参照して、ポリゴ
ンの境界を定義するエッジ・ギャップ及びエッジ・セグ
メントに対応する前記デプス・バッファ内のピクセルに
Z値を記憶するステップと、 (c)前記マーク・バッファの内容を参照して、前記ポ
リゴンの境界のエッジ・セグメントに対応するものにつ
いて前記フレーム・バッファ内のピクセルに記入するス
テップと、 (d)前記ポリゴンの境界のエッジ・ギャップ及びエッ
ジ・セグメントに対応する前記マーク・バッファにマー
クされたピクセルが保存されている間に、前記ポリゴン
の内側に対応する前記マーク・バッファ内のピクセルを
マークするステップと、 (e)前記マーク・バッファの内容を参照して、前記ポ
リゴンの内側の点に対応するピクセルについて前記デプ
ス・バッファにZ値を記憶し、これと同時に前記フレー
ム・バッファのピクセルに記入するステップと、 (f)前記マーク・バッファの内容を参照して、前記ポ
リゴンの境界のエッジ・ギャップに対応するものについ
て前記フレーム・バッファのピクセルに記入するステッ
プと、 からなり、前記ステップ(a)−(c)が実質的に同時
に行なわれる凹ポリゴンを描く方法 - 【請求項4】各々が3辺のエッジによって内側が囲まれ
た三角形であって、隣接する三角形が共通の重複するエ
ッジを有する三角形のセットに前記ポリゴンを分割する
ステップであって、前記各三角形は共通の第1頂点、個
々の第2頂点及び第3頂点を有し、該第1及び第2頂点
を結ぶ第1ベクトルと該第1及び第3頂点を結ぶ第2ベ
クトルとの積の符号によって決まる正の向きまたは負の
向きを有する如き三角形に分割するステップと、 前記ポリゴンの内側に対応するピクセルをマークするス
テップが、 前記三角形の各々の向きを判断し、 同一の向きの隣接する三角形の内部ピクセルはマークさ
れるが、異なる向きの隣接する三角形の内部ピクセルは
三角形の重畳領域内でマークされないように三角形の各
々の内側に対応する前記マーク・バッファ内のピクセル
を処理することを含んでいる、 請求項1または3記載の方法。 - 【請求項5】前記フレーム・バッファに前記凹ポリゴン
を描いた後、前記マーク・バッファをクリアするステッ
プをさらに包含している、請求項1または3記載の方
法。 - 【請求項6】ディスプレイ・モニタに表示される複数の
線の各々に対する個々のピクセルを記憶するためのフレ
ーム・バッファを含むディスプレィ手段とを有してお
り、該フレーム・バッファが複数個のアドレス可能なM
×Nの構成ピクセル・ブロックで構成されている、コン
ピュータ・グラフィックス・ディスプレイ・システム用
のディスプレイ・プロセッサであって、前記フレーム・
バッファに凹ポリゴンを描くことのできるディスプレイ
・プロセッサにおいて、 コントローラと、 該コントローラから信号を受け取るように接続されたエ
ッジ/トライアングル生成手段と、 該生成手段から信号を受け取るように接続された第1組
合せ論理手段と、 複数個のM×Nの構成ピクセルで構成されたマーク・バ
ッファであって、該マーク・バッファが前記第1組合せ
論理手段からのピクセル値及び前記生成手段からのアド
レス信号を受け取るように接続されており、前記第1組
合せ論理手段からの前記ピクセル値及び前記生成手段か
らの前記アドレス信号が、第1パスの間に前記ポリゴン
の境界をマークするために使用され、その後の1または
複数パスの間に前記ポリゴンの前記境界のマークが前記
マーク・バッファに保存されている間に前記マーク・バ
ッファ内の前記ポリゴンの内側をマースするために使用
されるマーク・バッファと、 前記生成手段からのアドレス信号及び前記マーク・バッ
ファからのピクセル値を受け取るように接続された第2
組合せ論理手段であって、該第2組合せ論理手段が前記
フレーム・バッファに対して、処理される各X、Yアド
レスに対するエッジ信号及び塗りつぶし信号の一方を出
力し、前記エッジ信号が前記ポリゴンの境界ピクセルに
対応しており、前記塗りつぶし信号が前記ポリゴンの内
部ピクセルに対応している如き第2組合わせ論理手段
と、 から成るディスプレイ・プロセッサ。 - 【請求項7】前記生成手段が、 各々が3辺のエッジによって内側が囲まれた三角形であ
って、隣接する三角形が共通の重複するエッジを有する
三角形のセットに前記ポリゴンを分割する手段であっ
て、前記各三角形は共通の第1頂点、個々の第2頂点及
び第3頂点を有し、該第1及び第2頂点を結ぶ第1ベク
トルと該第1及び第3頂点を結ぶ第2ベクトルとの積の
符号によって決まる正の向きまたは負の向きを有する如
き手段と、 前記三角形の各々の向きを判断する手段と、 を含み、 前記第1組合わせ論理手段が、 同一の向きの隣接する三角形の内部ピクセルはマークさ
れるが、異なる向きの隣接する三角形の内部ピクセルは
三角形の重畳領域内でマークされないように三角形の各
々の内側に対応する前記マーク・バッファ内のピクセル
を処理する手段を含んでいる、 請求項6記載のディスプレイ・プロセッサ。 - 【請求項8】前記三角形の内側に対応する前記マーク・
バッファ内のピクセルを処理するための手段が、下記の
表を実現する、請求項7記載のディスプレイ・プロセッ
サ。 0RIENT MB_O LD MB_NEW ‘+’ ‘+’ ‘+’ ‘+’ ‘−’ ‘0' ‘+’ ‘0' ‘+’ ‘+’ ‘e' ‘e' ‘−’ ‘+’ ‘0' ‘−’ ‘−’ ‘−’ ‘−’ ‘0' ‘−’ ‘−’ ‘e' ‘e' ただし、 ‘+’=反時計方向の三角形の向きの塗りつぶしピクセ
ル ‘−’=時計方向の三角形の塗りつぶしピクセル ‘0'=クリアされたピクセル ‘e'=エッジ・ピクセル MB_0LD=X、Yアドレスにおける古いマーク・バッファ
値 MB_NEW=X、Yアドレスにおける新しいマーク・バッフ
ァ値 - 【請求項9】前記第2組合せ論理手段が、有効なX、Y
アドレス信号を前記生成手段から受け取り、かつ該X、
Yアドレスにおける前記マーク・バッファの内容が,
+’または‘−’である場合に、前記塗りつぶし信号を
発生し、また有効なX、Yアドレス信号を前記生成手段
から受け取り、かつ該X、Yアドレスにおける前記マー
ク・バッファの内容が‘e'である場合に、前記エッジ信
号を発生する、請求項8記載のディスプレイ・プロセッ
サ。 - 【請求項10】前記エッジ/トライアングル生成手段が
ポリゴンのエッジ上のすべての点のアドレス・シーケン
スを生成する手段を含んでおり、前記第1組合せ論理手
段が有効なX、Yエッジ・アドレスに対応するマーク・
バッファ内の位置に、エッジ‘e'を書き込み、該アドレ
スを前記生成手段から受け取る、請求項6記載のディス
プレイ・プロセッサ。 - 【請求項11】ディスプレイ・モニタに表示される複数
の線の各々に対する個々のピクセルを記憶するためのフ
レーム・バッファを含むディスプレイ手段を有してお
り、該フレーム・バッファが複数個のアドレス可能なM
×Nの構成ピクセル・ブロックで構成されている、コン
ピュータ・グラフィックス・ディスプレイ・システム用
のディスプレイ・プロセッサであって、前記フレーム・
バッファに凹ポリゴンを描くことのできるディスプレイ
・プロセッサにおいて、 コントローラと、 X−Yジェネレータと、 前記コントローラ及び前記X−Yジェネレータから信号
を受け取り、各X、Yアドレスに対するZの補間された
値及び輝度を出力するように構成された補間手段と、 各々のピクセルの深さが2ビットである複数個のアドレ
ス可能なM×Nのピクセルを有するマーク・バッファ、
ならびに複数個のアドレス可能なM×Nの構成ピクセル
・プロックで構成されたデプス・バッファを含むマーク
・バッファ及びデプス・バッファ手段からなり、該バッ
ファ手段が前記ポリゴンの境界及び内側に対応する各
X、Yアドレスに対するZの補間された値を、フレーム
・バッファに出力し、 前記マーク・バッファ及びデプス・バッファ手段が前記
マーク・バッファ内の前記ポリゴンの正確なマークを生
成するための組合せ論理手段を含んでおり、前記マーク
が、前記フレーム・バッファへの前記輝度値の描出、な
らびに各X、Yアドレスに対するZの補間された値の前
記デプス・バッファ内への記憶を制御するために使用さ
れる、 ディスプレイ・プロセッサ。 - 【請求項12】前記X−Yジェネレータと前記マーク・
バッファ及びデプス・バッファ手段の間に配置されたラ
イン・スタイル・ジェネレータをさらに含んでおり、該
ライン・スタイル・ジェネレータが前記マーク・バッフ
ァ及びデプス・バッファ手段に対して、スタイル化され
たポリゴン境界を表すエッジ・ギャップ・ピクセル及び
エッジ・セグメント・ピクセルを定義する、請求項11記
載のディスプレイ・プロセッサ。 - 【請求項13】ディスプレイ・プロセッサと、ディスプ
レイモニタに表示される複数の線の各々についての個々
のピクセルを記憶するためのフレーム・バッフアを含む
ディスプレイ手段とを有しており、該フレーム・バッフ
ァが複数個のアドレス可能なM×Nの構成ピクセル・ブ
ロックに編成されているコンピュータ・グラフィックス
・ディスプレイ・システムにおける、複数個のアドレス
可能なM×Nの構成ピクセルに編成されたマーク・バッ
ファを使用して前記フレーム・バッファに凹ポリゴンを
描く方法であって、 (a)前記ポリゴンの境界に対応する前記マーク・バッ
ファ内のピクセルをマークし、前記ポリゴンの境界に対
応するピクセルを前記フレーム・バッファに描くステッ
プと、 (b)前記ポリゴンを三角形のセットに分割するステッ
プと、 (c)前記ポリゴン境界に対応するマークされたピクセ
ルが前記マーク・バッファに保存されている間に、前記
ポリゴンの内側に対応する前記マークバツファ内のピク
セルをマークするステップと、 (d)前記マーク・バッファ内のマークされた内部ピク
セルを参照して、前記各三角形の内側に対応する前記フ
レーム・バッファのピクセルに記入するステップと、 を含む凹ポリゴンを描く方法 - 【請求項14】前記凹ポリゴンが多角形の孔を有するポ
リゴンからなっており、 前記方法が、各々が同一のボリゴンの頂点から始まる頂
点のセットによって多角形孔定義三角形の各々が表され
る一連の三角形に多角形孔を分割することをさらに含ん
でおり、 前記内部ビクセルをマークするステップ(c)が、 ポリゴン三角形及び多角形孔定義三角形の重畳するピク
セルがマークされないように前記凹ポリゴン定義三角形
及び前記多角形孔定義三角形の各々の内側に対応する前
記マーク・バッファ中のピクセルを処理することを含ん
でいる、 請求項13記載の方法。 - 【請求項15】前記三角形の各々が三角形のエッジによ
って内側が囲まれ、かつ順番の頂点のセットによって表
される三角形であって、隣接する三角形が共通のエッジ
に沿った重複領域を有し、前記各三角形は共通の第1頂
点、個々の第2頂点及び第3頂点を有し、該第1及び第
2頂点を結ぶ第1ベクトルと該第1及び第3頂点を結ぶ
第2ベクトルとの積の符号によって決まる正の向きまた
は負の向きを有し、 前記内部ピクセルをマークするステップ(c)が、 前記三角形の各々の向きを判断し、 同一の向きの隣接する三角形の内部ピクセルはマークさ
れるが、異なる向きの隣接する三角形の内部ピクセルは
三角形の重畳領域内でマークされないように三角形の各
々の内側に対応する前記マーク・バッファ内のピクセル
を処理することを含んでいる、 請求項13記載の方法。 - 【請求項16】ディスプレイ・プロセッサと、ディスプ
レイモニタに表示される複数の線の各々についての個々
のピクセルを記憶するためのフレーム・バッフアを含む
ディスプレイ手段とを有しており、該フレーム・バッフ
ァが複数個のアドレス可能なM×Nの構成ピクセル・ブ
ロックに編成されているコンピュータ・グラフィックス
・ディスプレイ・システムにおける、複数個のアドレス
可能なM×Nの構成ピクセルに編成されたマーク・バッ
ファを使用して前記フレーム・バッファに凹ポリゴンを
描く方法であって、 (a)前記ポリゴンの境界に対応する前記マーク・バッ
ファ内のピクセルをマークし、前記ポリゴンの境界に対
応する前記デプス・バッファ中のピクセルのZ値を記憶
させ、前記ポリゴンの境界に対応するピクセルを前記フ
レーム・バッファに描くステップと、 (b)前記ポリゴン境界に対応するマークされたピクセ
ルが前記マーク・バッファに保存されている間に、前記
ポリゴンの内側に対応する前記マークバッファ内のピク
セルをマークするステップと、 (c)前記マーク・バッファ内のマークされたポリゴン
内部ピクセルを参照して、前記ポリゴンの内側に対応す
る前記フレーム・バッファのピクセルに記入するステッ
プと、 からなる凹ポリゴンを描く方法。 - 【請求項17】前記三角形の各々が三角形のエッジによ
って内側が囲まれ、かつ順番の頂点のセットによって表
される三角形であって、隣接する三角形が共通のエッジ
に沿った重複領域を有し、前記各三角形は共通の第1頂
点、個々の第2頂点及び第3頂点を有し、該第1及び第
2頂点を結ぶ第1ベクトルと該第1及び第3頂点を結ぶ
第2ベクトルとの積の符号によって決まる正の向きまた
は負の向きを有し、 前記内部ピクセルをマークするステップ(c)が、 前記三角形の各々の向きを判断し、 同一の向きの隣接する三角形の内部ピクセルはマークさ
れるが、異なる向きの隣接する三角形の内部ピクセルは
三角形の重畳領域内でマークされないように三角形の各
々の内側に対応する前記マーク・バッファ内のピクセル
を処理することを含んでいる、 請求項16記載の方法。 - 【請求項18】フレーム・バッファにおける内部ビクセ
ル描出及びデプス・バッファにおける前記Z値記憶がほ
ぼ同時に行なわれる、請求項16記載の方法。 - 【請求項19】ディスプレイ・プロセッサと、ディスプ
レイモニタに表示される複数の線の各々についての個々
のピクセルを記憶するためのフレーム・バッフアを含む
ディスプレイ手段とを有しており、該フレーム・バッフ
ァが複数個のアドレス可能なM×Nの構成ピクセル・ブ
ロックに編成されているコンピュータ・グラフィックス
・ディスプレイ・システムにおいて前記フレーム・バッ
ファに凹ポリゴンを描く方法であって、 前記ポリゴがフロントまたはバックZ軸クリップ面に対
してポリゴンをクリップすることにより生じるZフェイ
ク・バック・エッジまたはZフェイク・フロント・エッ
ジ内の少なくとも1つのサブエリアを有するクリップさ
れたボリゴンからなっており、 (a)前記ポリゴンの境界に対応する前記マーク・バッ
ファ内のピクセルをマークし、前記ポリゴンの境界に対
応するピクセルを前記フレーム・バッファに描くステッ
プであって、 (i)第1のリストがZフェイク・バック・エッジの頂
点を含んでおり、第2のリストがZフェイク・フロント
・エッジの頂点を含んでいる2つのリストの一方に、ポ
リゴンの各Zフェイク・エッジを定義する頂点を保管
し、 (ii)前記Zフェイク・エッジの勾配が垂直勾配よりも
水平勾配に近い場合には、X軸の頂点値に基づいて、ま
た前記Zフェイク・エッジの勾配が水平勾配よりも垂直
勾配に近い場合には、Y軸の頂点値に基づいて、各空で
ない第1及び第2のリストを分類し、 (iii)各空でないリストに対し、順次に対の分類され
た頂点間にエッジ・セグメントを生成することによっ
て、前記マーク・バッファ内のZフェイク・エッジを前
記境界としてマークする、 ことを含むステップと、 (b)前記ポリゴン境界に対応するマークされたピクセ
ルが前記マーク・バッファに保存されている間に、前記
ポリゴンの内側に対応する前記マークバツファ内のピク
セルをマークするステップと、 (c)前記マーク・バッファ内のマークされたポリゴン
内部ピクセルを参照して、前記ポリゴンの内側に対応す
る前記フレーム・バッファのピクセルに記入するステッ
プと、 からなる凹ポリゴンを描く方法。 - 【請求項20】ディスプレイ・プロセッサと、ディスプ
レイモニタに表示される複数の線の各々についての個々
のピクセルを記憶するためのフレーム・バッフアを含む
ディスプレイ手段とを有しており、該フレーム・バッフ
ァが複数個のアドレス可能なM×Nの構成ピクセル・ブ
ロックに編成されているコンピュータ・グラフィックス
・ディスプレイ・システムにおける、複数個のアドレス
可能なM×Nの構成ピクセルに編成されたマーク・バッ
ファを使用して前記フレーム・バッファに凹ポリゴンを
描く方法であって、 各々が3辺のエッジによって内側が囲まれ且つ順番の頂
点のセットにより表される三角形であって、隣接する三
角形が共通の重複するエッジを有する三角形のセットに
前記ポリゴンを分割するステップであって、前記各三角
形は共通の第1頂点、個々の第2頂点及び第3頂点を有
し、該第1及び第2頂点を結ぶ第1ベクトルと該第1及
び第3頂点を結ぶ第2ベクトルとの積の符号によって決
まる正の向きまたは負の向きを有する如き三角形に分割
するステップと、 三角形の前記セットを用いて前記ポリゴンの内部に対応
する前記マーク・バッファのピクセルをマークするステ
ップと、 前記内部ピクセルをマークするステップが、 前記三角形の各々の向きを判断し、 同一の向きの隣接する三角形の内部ピクセルはマークさ
れるが、異なる向きの隣接する三角形の内部ピクセルは
三角形の重畳領域内でマークされないように三角形の各
々の内側に対応する前記マーク・バッファ内のピクセル
を処理することを含み、 前記マーク・バッファ内のマークされた内部ピクセルを
参照して、前記各三角形の内部に対応する前記フレーム
・バッファのピクセルに記入するステップと、 からなる凹ポリゴンを描く方法。
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 JPH03139782A (ja) | 1991-06-13 |
| JPH0760465B2 true 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 (24)
| 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 |
| US6768488B1 (en) * | 1999-05-25 | 2004-07-27 | Nippon Telegraph And Telephone Corporation | Image filling method, apparatus and computer readable medium for reducing filling process in processing 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 | 富士通マイクロエレクトロニクス株式会社 | 描画装置及び描画方法 |
| WO2004055697A1 (ja) * | 2002-12-13 | 2004-07-01 | Fujitsu Limited | 処理方法、処理装置及びコンピュータプログラム |
| 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 |
| RU2342705C9 (ru) * | 2007-03-20 | 2009-04-20 | Институт проблем управления им. В.А. Трапезникова РАН | Компьютерный способ формирования изображения частей ломаной линии, лежащих как внутри, так и вне многоугольной области, и компьютерный способ формирования изображения границ одной или нескольких областей, полученных в результате применения заданной логической операции к двум многоугольным областям |
| 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 |
| CN116579038B (zh) * | 2023-05-23 | 2025-09-09 | 江苏省地质矿产局第五地质大队 | 一种面向地表沉陷预测的凹多边形倾斜采煤工作面剖分方法 |
Family Cites Families (8)
| 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 |
-
1990
- 1990-10-05 JP JP2266604A patent/JPH0760465B2/ja not_active Expired - Lifetime
- 1990-10-17 EP EP19900311392 patent/EP0425189A3/en not_active Withdrawn
-
1993
- 1993-02-16 US US08/018,338 patent/US5303340A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5303340A (en) | 1994-04-12 |
| JPH03139782A (ja) | 1991-06-13 |
| EP0425189A3 (en) | 1993-01-07 |
| EP0425189A2 (en) | 1991-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0760465B2 (ja) | 凹ポリゴン描出方法及びプロセツサ | |
| US5377313A (en) | Computer graphics display method and system with shadow generation | |
| JP3344597B2 (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
| US5214753A (en) | Video system with parallel attribute interpolations | |
| CA2094525C (en) | Method and apparatus for rendering polygons | |
| US5838331A (en) | Computer graphics system for creating and enhancing texture maps | |
| DeBry et al. | Painting and rendering textures on unparameterized models | |
| US5359704A (en) | Method for selecting silhouette and visible edges in wire frame images in a computer graphics display system | |
| EP0691012B1 (en) | Graphic edge system | |
| US6744430B1 (en) | Image processing method and its apparatus | |
| US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
| US5283860A (en) | System and method for displaying trimmed surfaces using bitplane masking | |
| US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
| US6353677B1 (en) | Rendering objects having multiple volumes and embedded geometries using minimal depth information | |
| JP2001357410A (ja) | 別々に生成された3次元イメージを合成するグラフィックス・システム | |
| US6184893B1 (en) | Method and system for filtering texture map data for improved image quality in a graphics computer system | |
| EP0644509B1 (en) | Method and apparatus for filling polygons | |
| US5265198A (en) | Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system | |
| US20020063705A1 (en) | Apparatus and method for drawing three dimensional graphics by controlling alpha value based on Z coordinate value | |
| US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
| JPH09120278A (ja) | コンピュータグラフィックスシステムにおけるラインスキャンコンバージョン装置とその方法 | |
| Ertl | Computer graphics—principles and practice | |
| GB2350993A (en) | Generation of mixed semitransparent and opaque objects on a computer display screen. | |
| JPH02132572A (ja) | 画像表示装置 | |
| Ertl | University of Erlangen-Nuremberg, Erlangen, Germany |