JPH0785290A - グラフィック多角形をクリップ領域にクリップする方法および装置 - Google Patents

グラフィック多角形をクリップ領域にクリップする方法および装置

Info

Publication number
JPH0785290A
JPH0785290A JP6165257A JP16525794A JPH0785290A JP H0785290 A JPH0785290 A JP H0785290A JP 6165257 A JP6165257 A JP 6165257A JP 16525794 A JP16525794 A JP 16525794A JP H0785290 A JPH0785290 A JP H0785290A
Authority
JP
Japan
Prior art keywords
vertices
calculating
color factor
clip
polygon
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
JP6165257A
Other languages
English (en)
Other versions
JP3030206B2 (ja
Inventor
Chandrasekhar Narayanaswami
チャンドラセクハール・ナラヤナスワミ
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 JPH0785290A publication Critical patent/JPH0785290A/ja
Application granted granted Critical
Publication of JP3030206B2 publication Critical patent/JP3030206B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping

Landscapes

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

Abstract

(57)【要約】 【目的】 複数の頂点と接続辺とによって定義されたグ
ラフィック多角形をクリップ領域にクリップするための
方法において、交差に関する不必要な計算を避ける。 【構成】 表示すべき多角形のどの頂点を放棄できるか
を計算し、放棄されなかった頂点に対してのみ少なくと
も一つのカラー・ファクタを計算するステップと、クリ
ップ領域境界と交差するすべての辺の上の境界頂点を計
算し、それらに対する少なくとも一つのカラー・ファク
タを計算するステップと、上記計算されたカラー・ファ
クタに従って上記頂点を表示するステップとを含む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・グラフ
ィックス・システムに関し、特に多角形をより効率良く
クリップするための方法および装置に関するものであ
る。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムでは、2次元および3次元のグラフィック画像を2次
元のディスプレイ上に表示することが望まれる。典型的
には、このような画像は、多角形の集合としてメモリに
格納される構成体あるいはイメージである。そしてディ
スプレイ上に画像を生成するため、上記多角形は、典型
的には計算量の多い処理によって描画される。しかし、
表示すべき画像の一部が、ディスプレイ上のウインドウ
またはディスプレイ自身によって与えられる視野の外に
出る場合がある。このようなときには、描画の際、画像
および画像を構成する多角形をクリップすることが望ま
しく、それによって計算量を低減し、描画速度を増すこ
とができる。
【0003】多角形クリッピングとは、クリップ領域と
呼ばれる領域の外にある多角形の部分を除去する処理の
ことである。一つの多角形は一般に頂点P(0),P
(1),・・・,P(n−2),P(n−1)の集合と
して特定される。ここでnは多角形の頂点の数である。
多角形の頂点は、多角形の内部が、連続する頂点によっ
て形成される辺の左側にあるということで特定される。
各頂点P(i)は、適当な座標空間におけるその位置V
(i)と、ここでカラー・ファクタと呼ぶ関数f(V
(i))とによって表される。カラー・ファクタは各頂
点において評価される関数であり、後に色(灰色を含
む)変数(光の強さ、熱特性、湿度ファクタなど)とし
て表示される。カラー・ファクタは色に変換することが
できるものであり、モデリングに有用である(例えば、
簡単な明るさのモデリングやより複雑な気象モデリン
グ)。上記関数、すなわちカラー・ファクタf(V
(i))は、その評価に必要な計算資源のため、一般に
クリッピング技術の開始時には評価されず、必要な場合
にのみ評価されるのが一般的である。
【0004】関数、すなわちカラー・ファクタの補間
は、位置V(k)において新たに生成された頂点P
(k)での関数、すなわちカラー・ファクタの値を計算
するという処理である。関数、すなわちカラー・ファク
タの補間は、一般に多角形とクリップ領域の境界との交
点においてクリップするときに実行される。典型的に
は、関数、すなわちカラー・ファクタの補間は、f(V
(k))に関して、V(i),f(V(i)),V
(j),f(V(j)),ならびにV(k)が既知のと
き可能である。
【0005】
【発明が解決しようとする課題】従来のグラフィックス
・パイプラインでは、多角形の全頂点の明るさの計算
(関数補間の一例)はクリッピングに先だって行われ
る。その結果、多角形がクリップ領域の内部にない場合
にも明るさの計算は実行され、計算資源の無駄が生じ
る。
【0006】
【課題を解決するための手段】本発明は、複数の頂点と
接続辺とによって定義されたグラフィック多角形をクリ
ップ領域にクリップする方法において、表示すべき多角
形のどの頂点を放棄できるかを計算し、放棄されなかっ
た頂点に対してのみ少なくとも一つのカラー・ファクタ
を計算するステップと、クリップ領域境界と交差するす
べての辺の上の境界頂点を計算し、それらに対する少な
くとも一つのカラー・ファクタを計算するステップと、
上記計算されたカラー・ファクタに従って上記頂点を表
示するステップとを含んでいる。さらに、本発明は、複
数の頂点と接続辺とによって定義されたグラフィック多
角形をクリップ領域にクリップする装置において、表示
すべき多角形のどの頂点を放棄できるかを計算し、放棄
されなかった頂点に対してのみ少なくとも一つのカラー
・ファクタを計算する手段と、クリップ領域境界と交差
するすべての辺の上の境界頂点を計算し、それらに対す
る少なくとも一つのカラー・ファクタを計算する手段
と、上記計算されたカラー・ファクタに従って上記頂点
を表示する手段とを備えている。
【0007】
【実施例】この開示は改良したクリップ技術を記述した
ものである。望ましい実施例において、このクリップ技
術では、以下に述べるように、単純受容あるいは単純排
除したケースに関しては必ずしも交点を計算する必要が
ない。単純排除あるいは単純受容しなかったケースに関
しては、この技術では、必ずしも全頂点に対する関数、
すなわちカラー・ファクタを計算する必要がない。
【0008】図1は、本発明の望ましい実施例で用いる
典型的なディジタル・コンピュータ100のブロック図
である。このコンピュータは、入力装置(一つまたは複
数)130および出力装置(一つまたは複数)140を
接続したコンピュータ・ボックス105内に、メモリ1
20およびハード・ディスク125に接続したメイン・
プロセッサ(一つまたは複数)110を含んでいる。メ
イン・プロセッサ110は単一のプロセッサであって
も、あるいは複数のプロセッサであってもよい。入力装
置130は例えばキーボード、マウス、タブレット、あ
るいはその他の入力装置である。出力装置140は、例
えばテキスト・モニタ、プロッタ、あるいはその他の出
力装置である。磁気ディスケットやコンパクト・ディス
クなどの、コンピュータが読むことができ、取り外し可
能なメディア190は、ディスク・ドライブあるいはC
D−ROM(コンパクト・ディスク−読み出し専用メモ
リ)などの入力/出力(I/O)装置180に挿入する
ことができる。データは、取り外し可能メディアに対し
て、I/O装置により、I/O装置コントローラ170
の制御のもとで読み書きされる。I/O装置コントロー
ラは、バス160を通じてメイン・プロセッサと通信す
る。メイン・メモリ120、ハード・ディスク125、
ならびに取り外し可能メディア190はすべて、メイン
・プロセッサ110による処理のためのデータを格納す
るためのメモリと呼ぶ。
【0009】メイン・プロセッサはまた、グラフィック
ス・ディスプレイなどのグラフィックス出力装置(一つ
または複数)150にグラフィックス・アダプタ200
を通じて接続することができる。グラフィックス・アダ
プタ200はメイン・プロセッサ110からのグラフィ
ックスに応じた命令をバス160より受け取る。そして
グラフィックス・アダプタはこれらの命令を、グラフィ
ックス・アダプタ・メモリ230に接続されたグラフィ
ックス・アダプタ・プロセッサ(一つまたは複数)22
0により実行する。グラフィックス・アダプタのグラフ
ィックス・プロセッサは上記命令を実行し、そして上記
命令にもとづいてフレーム・バッファ(一つまたは複
数)240を更新する。グラフィックス・プロセッサ2
20は、特定の基本的なグラフィックスのタイプを描画
するための特別のハードウェアを含んでいてもよい。フ
レーム・バッファ240は、グラフィックス出力装置に
表示するための、すべてのピクセルのデータを含んでい
る。RAMDAC(ランダム・アクセス・メモリD/A
変換器)250は、フレーム・バッファに格納されたデ
ィジタル・データを、グラフィックス・ディスプレイ1
50に与えるためのRGB信号に変換し、メイン・プロ
セッサが出力する所望のグラフィックスを描画する。
【0010】図2は、ホスト・コンピュータおよびグラ
フィックス・アダプタがグラフィックス機能を実施する
ために典型的に使用するコードの層を示すブロック図で
ある。UNIXなどのオペレーティング・システム30
0によってホスト・コンピュータの基本的な制御が行わ
れる。オペレーティング・システム300にはオペレー
ティング・システム・カーネル310が結合されてお
り、それによってハードウェアに強く依存するタスクが
オペレーティング・システムのために行われる。オペレ
ーティング・システム・カーネルはホスト・コンピュー
タのマイクロコード320と直接コミュニケーションす
る。ホスト・コンピュータ・マイクロコードは、ホスト
・コンピュータ・プロセッサによって実行される主要な
命令の集合である。オペレーティング・システム300
にはグラフィックス・アプリケーション330,332
が結合されている。このグラフィックス・アプリケーシ
ョン・ソフトウェアとしては、例えばシリコン・グラフ
ィックのGLや、IBMのgraPHIGS、MITの
PEXなどを用いることができる。このソフトウェア
は、2次元あるいは3次元のグラフィックスの基本的な
機能を与えるものである。グラフィックス・アプリケー
ション330,332はグラフィックス・アプリケーシ
ョンAPI(アプリケーション・プロセッサ・インタフ
ェース)340,342にそれぞれ結合されている。A
PIは計算量の多いタスクの多くをグラフィックス・ア
プリケーションのために行い、また、グラフィックス・
アダプタのためのデバイス・ドライバなどのグラフィッ
クス・ハードウェアに近いソフトウェアと、アプリケー
ション・ソフトウェアとの間のインターフェースとして
機能する。例えば、API340,342はGAI(グ
ラフィックス・アプリケーション・インターフェース)
350,352とそれぞれコミュニケーションすること
ができる。GAIは、アプリケーションAPIとグラフ
ィックス・アダプタ・デバイス・ドライバー370との
インターフェースとして機能する。いくつかのグラフィ
ックス・システムでは、APIはGAIの機能も果た
す。
【0011】グラフィックス・アプリケーション、AP
I、ならびにGAIは、オペレーティング・システムお
よびデバイス・ドライバによって一つの処理と見なされ
る。すなわち、グラフィックス・アプリケーション33
0,332、API340,342、ならびにGAI3
50,352は、オペレーティング・システム300お
よびデバイス・ドライバ370によってそれぞれ処理3
60,362と見なされる。これらの処理は、オペレー
ティング・システム・カーネルが処理に割り当てた処理
識別子(PID)にもとづき、オペレーティング・シス
テムおよびデバイス・ドライバによって識別される。処
理360,362には、例えば2つの別のウインドウに
おいて一つのプログラムを2回実行するような場合に
は、同一のコードを用い、それを同時に2回実行しても
よい。PIDは同一のコードの個別の実行を区別するた
めに用いられる。
【0012】デバイス・ドライバはグラフィックス・カ
ーネルであり、それはオペレーティング・システム・カ
ーネル310を拡張したものである。グラフィックス・
カーネルは、グラフィックス・アダプタ380のマイク
ロコードと直接コミュニケーションを行う。多くのグラ
フィックス・システムにおいては、GAIあるいはGA
I層が使用されない場合のAPIは、デバイス・ドライ
バに初期リクエスト命令を送ることによって、アダプタ
・マイクロコードへの直接アクセスをリクエストするこ
とができる。さらに、多くのグラフィックス・システム
では、アダプタ・マイクロコードも、デバイス・ドライ
バに初期リクエスト命令を送ることによって、GAIあ
るいはGAIが使用されない場合のAPIに直接アクセ
スをリクエストすることが可能である。これらの処理は
以下では共に直接メモリ・アクセス(DMA)と呼ぶ。
DMAは典型的には、大きいデータ・ブロックを伝達す
る場合に用いられる。DMAでは、DMAをセットアッ
プするためのデバイス・ドライバーに対する初期リクエ
ストを別にして、ディスプレイ・ドライバーを通る必要
がなくなるので、ホスト・コンピュータとアダプタとの
間のデータ伝送を速く行うことができる。いくつかのケ
ースでは、アダプタ・マイクロコードはコンテクスト・
スイッチングを用い、それによってアダプタ・マイクロ
コードはそれが使用しているカレント・アトリビュート
を置き換えることができる。コンテクスト・スイッチン
グは、アダプタ・マイクロコードが、それが現在用いて
いるものと異なるアトリビュートを使用するグラフィッ
クス・アプリケーションから命令を受けなければならな
い場合に用いられる。コンテクスト・スイッチは、典型
的には、アトリビュートの変化を認識するデバイス・ド
ライバによって起動される。
【0013】ブロック300〜340はソフトウェア・
コードの層であり、それらは典型的には、使用されてい
るグラフィックス・アダプタの種類には依存しない。ブ
ロック350〜380は典型的には、使用されているグ
ラフィックス・アダプタの種類に依存するソフトウェア
・コードの層である。例えば、グラフィックス・アプリ
ケーション・ソフトウェアによって異なるグラフィック
ス・アダプタが用いられるような場合、新たなGAI、
グラフィックス・カーネル、ならびにアダプタ・マイク
ロコードが必要となる。また、ブロック300〜370
は典型的にはホスト・コンピュータ上にあり、ホスト・
コンピュータによって実行される。しかし、アダプタ・
マイクロコード380は典型的にはグラフィックス・ア
ダプタ上にあり、それによって実行される。しかし、い
くつかのケースでは、アダプタ・マイクロコードは、グ
ラフィックス・アダプタの初期化の際に、ホスト・コン
ピュータによってグラフィックス・アダプタにロードさ
れる。
【0014】典型的なグラフィックス・システムでは、
ユーザがグラフィックス・アプリケーションに対して、
2次元あるいは3次元のモデルよりイメージを構成する
よう命令する。ユーザは最初、光源の位置および種類を
選択する。次にユーザはアプリケーション・ソフトウェ
アに命令して、予め定義された、あるいはユーザが定義
したオブジェクトの集合より所望のモデルを構築させ
る。各オブジェクトは、オブジェクトを表現する、一つ
または複数の同平面描画基本要素を含むことができる。
例えば、多数の三角形などの描画基本要素の集合を、オ
ブジェクトの表面を定義するために用いることができ
る。ユーザは次にモデルを見るために、ウインドウ内で
パースペクティブを与え、それによって所望のイメージ
を定義する。その後、アプリケーション・ソフトウェア
は、オブジェクトを表現する描画基本要素をアダプタ・
マイクロコードに対し、API、GAI、ならびにデバ
イス・ドライバ(DMAを使用しない場合)を通じて送
り、上記モデルからのイメージの描画を開始する。アダ
プタ・マイクロコードは次に、ウインドウ内で見えない
描画基本要素をクリップし(すなわち非使用とし)、そ
して残った描画基本要素を、ユーザにより与えられたパ
ースペクティブからの可視ピクセルとし、グラフィック
ス・ディスプレイ上にイメージを描画する。ピクセルは
その後、3次元モデルの場合にはしばしばデプス(深
さ)・バッファを用いて、フレーム・バッファにロード
される。このステップは、含まれる描画基本要素、変
数、ならびにピクセルの数が多いため、計算量の多いも
のとなっている。フレーム・バッファに格納され、また
グラフィックス・ディスプレイに表示された結果として
のイメージは、ピクセルがどの描画基本要素あるいはオ
ブジェクトから得たものかなどの情報を一般には含んで
いない。従って、ウインドウ、ユーザのパースペクティ
ブ、モデル、明るさなどが変更された場合には、イメー
ジは一部または全体が再描画されなければならない。
【0015】望ましい実施例では、アダプタ・フレーム
・バッファに近いアダプタ・マイクロコードなどの多く
の位置において、クリッピング技術を用いることができ
よう。このアプローチはまた、比較的高速であり、そし
て実施が非常に容易であろう。また、このクリッピング
技術は、描画イメージが、描画される前または後に、グ
ラフィックス・アダプタ(データ・バックアップをグラ
フィックス・アプリケーション・ソフトウェアに渡す)
によってシステム・メモリにも格納されるグラフィック
ス・アプリケーション・ソフトウェアにおいて適用でき
よう。このアプローチでは、低速となるが、既存のグラ
フィックス・アダプタにおいて本技術を用いることが可
能であろう。このクリッピング技術はグラフィックス・
アダプタ・プロセッサのハードウェアにおいても実施で
きよう。この場合には、極めて高速となるが、特別のハ
ードウェアが必要となる。このアプローチでは、グラフ
ィックス・アダプタによって表示されるべき基本要素の
クリッピングを高速に行えることになる。当業者にとっ
て明らかなように、本技術は、ホスト・コンピュータあ
るいはグラフィックス・アダプタ内の他の多数の位置に
おいて用いることができよう。
【0016】簡単のため、2次元の場合のクリッピング
技術についてまず説明する。2次元の技術における基本
概念は、以下に示すように3次元にも適用できる。標準
のクリップ領域は望ましくは正規化したクリップ領域で
あり、領域{−1.0≦x≦1.0}および{−1.0
≦y≦1.0}(および3次元の場合には{−1.0≦
z≦1.0})によって定義される。この領域は、ある
固定されたサイズのクリップ領域に対する設計を行う場
合、クリッピング・ハードウェアを最適化できるので、
広く用いられている。他のクリップ領域に対するクリッ
ピングが必要なときは、クリップ領域および多角形を標
準クリッピング空間に変換し、その後、クリッピングの
結果を変換し直して所望の結果を得ればよい。しかし、
非標準クリップ領域や長方形クリップ領域であっても、
ここに示す技術に関して概念上の問題は一切生じない。
【0017】図3は、多角形の単純受容および単純排除
のケースを示すフローチャートである。すなわち望まし
い実施例では、最初にすべての多角形が調べられ、それ
らが単純受容できるか、あるいは単純排除できるかが判
定される。その結果、計算資源の使用の低減が可能とな
る。もし多角形が単純受容あるいは単純排除されなかっ
た場合には、その多角形は、本発明のより計算量の多い
技術の対象となる。ただし、本発明は、多角形をすべて
単純排除あるいは単純受容することを要求するものでは
ない。
【0018】第1のステップ400では、多角形の頂点
のそれぞれに4ビットの領域コードが割り当てられる。
全2次元空間は、図4に示すようにクリップ領域の境界
によって9つの非重複領域に分割される。これらの領域
のそれぞれには、図に示すような、それぞれ異なる4ビ
ットの領域コード(C3 C2 C1 C0)が与えら
れる。以下では、2つの1を含む4つの領域はコーナー
領域と呼ぶ。また、1を1つだけ含む4つの領域は中間
領域、1つだけの1を含まない領域は中心領域と呼ぶ。
クリップ領域の境界線の交点はコーナー頂点と呼ぶ。多
角形の頂点のコードは、それが位置する領域のコードと
同じである。望ましい実施例では、頂点の領域コード
は、x,y座標を用いて以下に示す簡単なテストによっ
て素早く判定することができる。
【0019】x<−1.0なら、C3=1 そうでない
なら、C3=0 x>−1.0なら、C2=1 そうでないなら、C2=
0 y<−1.0なら、C1=1 そうでないなら、C1=
0 y>−1.0なら、C0=1 そうでないなら、C0=
0 多角形を2次元の標準クリップ領域にクリップする場
合、いくつかのケースが生じる。それらは、単純受容、
単純排除、ならびにその他のケースである。このような
分類は本発明の説明を簡単なものとするためのものであ
る。本発明では、必要に応じてケースを切り換えること
によって、すべてのケースを扱う。以下に、各ケースに
ついて詳しく説明する。
【0020】図5に示すように、多角形全体がクリップ
領域内にある場合には、その多角形は全体が単純受容さ
れる。この状態は、多角形のすべての頂点に関して領域
コードが0かどうかを判定することによって検出するこ
とができる。図6に、全体が中心領域の外側の中間領域
あるいはコーナー領域にある多角形を示す。これらの多
角形はすべて単純排除でき、交点を計算する必要がな
く、また関数、すなわちカラー・ファクタの評価も不要
である。この状態は、すべての頂点が同一の領域コード
であり、それらがゼロでないということの判定によって
検出できる。
【0021】ステップ410では、多角形の連続する頂
点のすべての各対に関して領域コードの排他的論理和が
とられ、辺が領域の境界と交わるかどうかが判定され
る。ステップ420では、その結果がゼロ(辺が領域の
境界と交わらないことを示す)か否かが判定される。ス
テップ420の結果がイエスの場合、ステップ430に
おいて、多角形のすべての頂点の領域コードが選択され
る。すなわち、任意数の頂点の領域コードの論理和がと
られ、選択される。ステップ440では、選択処理の結
果がゼロ(多角形は、全体がクリップ領域内にあること
を示す)に等しいか否(多角形全体がクリップ領域以外
の領域内にあることを示す)かが判定さる。ステップ4
40の結果がイエスの場合には、ステップ450におい
て、多角形はクリップ・ウインドウ内にあるとして単純
受容される。単純受容の場合には、頂点および辺はすべ
て完全にクリップ領域内にあるので、交点の計算は不要
である。従って、すべての頂点の関数、すなわちカラー
・ファクタ(必要なら、明るさの計算を含む)が、次の
多角形に移るまえに評価される。ステップ440の結果
がノーの場合には、ステップ460において、多角形は
まったくクリップ領域内にはないとして単純排除され
る。その場合には、交点の計算は不要であり、また頂点
における関数、すなわちカラー・ファクタ(明るさ、熱
特性など)の評価も不要である。その後、処理はクリッ
プすべき次の多角形に移る。
【0022】図7に、単純排除される他のいくつかのケ
ースを示す。これらの多角形は、クリップ境界の一つの
側部にあり、そしてクリップ領域の外にある。ステップ
420の結果がノーの場合、ステップ470において、
すべての頂点に関する領域コードの論理積がとられる。
ステップ480では、論理積をとった領域コードの中に
1が一つだけあるかどうかが判定される。判定結果がイ
エスの場合には、多角形はステップ490において、多
角形はクリップ領域にはまったく入っていないとして、
単純排除することができる。その結果、交点は計算する
必要がなく、また頂点における、明るさなどの関数の評
価も不要である。その後、処理はクリップすべき次の多
角形に移る。しかし、ステップ480で、論理積をとっ
た領域コードの中に単一の1がないと判定された場合に
は、他のケースを扱うため、処理は図15〜図18に移
る。
【0023】頂点の数が4を大きく上回る場合には、多
角形の制限ボックスを最初にクリップすることが有用で
あろう。多くの場合、多角形の制限ボックスは、すでに
行われた処理の結果として、グラフィックス・パイプラ
インを通じて得られている。その制限ボックスが単純受
容される場合には、多角形も単純受容されることにな
る。従って、その場合にはクリップ処理は完全にディス
エーブルされる。多角形の制限ボックスが単純排除され
た場合には、多角形も単純排除されることになる。従っ
て、その場合には多角形は全体が放棄することができ
る。B(0),B(1),B(2),B(3)を長方形
の制限ボックスとする。i=0,1,2,3のとき、い
かなるiに対しても、[領域コードB(i)XOR領域
コードB(i+1)]OR[領域コードB(i+1)X
OR領域コードB(i+2)]の中に2つまたはそれ以
上の1が存在するなら、上記ボックスはクリップ領域の
コーナー頂点を含んでいる。多角形の境界がクリップ領
域のコーナー頂点を含んでいない場合には、制限ボック
スのいかなる部分もクリップ領域の内部には有りえな
い。従って、この場合には、多角形全体を放棄すること
ができる。
【0024】図8に、本発明の望ましい実施例にもとづ
いて、単純受容あるいは単純排除されない多角形の他の
いくつかのケースを示す。ケース(a)は、多角形の一
部がクリップ領域の内部にあり、また一部が外部にある
場合の簡単なケースを示している。多角形のクリップし
た部分は、単一に接続された多角形である。ケース
(b)はケース(a)と同様であるが、多角形のクリッ
プした部分が複数接続となっている。ケース(c)は、
多角形の頂点はひとつもクリップ領域内にはなく、そし
て多角形がクリップ領域を被っている場合を示してい
る。ケース(d)は、多角形の頂点はひとつもクリップ
領域内にはなく、そして多角形のどの部分もクリップ領
域内にない場合を示している。
【0025】これらのケースでは、コーナー頂点を付加
する必要があるので、処理は難しいものとなる。あるコ
ーナー頂点が多角形の内部にある場合、そのコーナー頂
点は付加されなければならない。この判定は、コーナー
頂点から無限遠への垂直線あるいは水平線が多角形を奇
数回横断するかどうかを調べることによって行うことが
できる。図9に、クリップ領域のコーナー頂点のいくつ
かを取り囲む多角形を示す。垂直および水平境界E1〜
E4が、クリップ領域から多角形を通して延在して示さ
れている。上記線の多角形との交差にもとづけば、コー
ナーSE,SWは出力多角形に含まれなければならず、
一方、コーナーNE,NWは含まれるべきでない。この
判定も、入力多角形の頂点に関する領域コードを用いて
行うことができる。しかし、この方法では出力多角形の
コーナー頂点の正確な位置は簡単には判定できないの
で、この検出だけでは不十分であろう。重要なことは、
多角形の辺が、交差してコーナーを形成する境界の両方
と奇数回、交差すると判定されたとき、出力多角形に頂
点を挿入する必要があるということである。例えば、図
8のケース(c)の場合、右下のコーナーは、P
(0),P(1),P(2)と進んだ後でのみ付加され
ることになる。さらに、この技術では既に付加されたコ
ーナー頂点を、後で除去する必要がある。例えば、図8
のケース(d)の場合、P(0),P(1),P(2)
と進んだ後で、右上のコーナーが付加され、P(8),
P(9),P(0)と進んだとき、そのコーナーは除去
される。
【0026】この問題は組み合せのアプローチによって
解決する。多角形の任意の2つの頂点を考える。頂点の
それぞれは9つの領域のいずれかに入っており、従っ
て、81の異なる種類の辺がある(すなわち、辺を定義
する2つの頂点に対して、領域コードの81の組み合せ
がある)。これらの81の異なる種類の辺のうち、一つ
は単純受容され、8つは単純排除される。このようなケ
ースは、辺が完全に一つの領域内にあり、クリップ領域
の境界辺と交差しない場合である。この場合、望ましい
実施例では、コーナー検出論理はまったくディスエーブ
ルされる。
【0027】残りの72のケースは、辺がクリップ境界
と交差する場合である。これらのケースすべてに対して
コーナー検出論理はイネーブルされなければならない。
これらのケースの内の8つは、図10に示すように分離
しており、水平辺および垂直辺が完全に共通となってい
る電気的CADのアプリケーションでは、大幅なスピー
ドアップが可能となる。なお、このケースにおいて分離
されている辺はすべてが完全に水平あるいは垂直である
わけではない。
【0028】残りの64のケースは、辺がクリップ領域
の境界E1〜E4(図11参照)と交差する際のその数
および種類にもとづいて分類される。この分類は、コー
ナー頂点検出処理を手助けするために行われる。頂点の
一つがクリップ領域内にある場合を除いて、辺の長さは
この分類においては無関係である。辺が境界のクリップ
領域側に入る場合、交差は境界に関するi(外→内)に
分類され、辺が境界の無限遠側に入る場合、交差は境界
に関するo(内→外)に分類される。一つを上回る数の
i(外→内)交差がある場合、辺の開始頂点から最も遠
いものが保持される。一つを上回る数のo(内→外)交
差がある場合、辺の開始頂点から最も近いものが保持さ
れる。
【0029】64のケースのうち、16のケースは図1
2に示す辺によってカバーされ、8つのケースは図13
の辺によってカバーされる。そして、32のケースは図
14に示す辺によってカバーされる(図には20のケー
スが示されているが、他の12のケースは上記20のケ
ースのいくつかのものの言い替えである)。
【0030】図11のケースでは、どの場合にも境界と
の単一の交差のみがある。図12,図13のケースで
は、どの場合にも正確に2つの交差があり、それらは共
にi(外→内)交差あるいはo(内→外)交差である。
図14のケースでは、2つまたはそれを上回る数の交差
があり、それらのうちの少なくとも一つは、i(外→
内)交差であり、少なくとも一つはo(内→外)交差で
ある。
【0031】図15〜図19は、上述したケースを用い
た、多角形に関する頂点のクリッピングおよび頂点関
数、すなわちカラー・ファクタの評価のフローチャート
である。この技術は、上述した図3のもとですでに単純
受容あるいは単純排除されていない多角形に対して適用
することが望ましい。最初のステップ500では、多角
形の現在の頂点Vに対して領域コードが割り当てられ
る。ステップ510では、頂点Vがクリップ領域の内部
にあるか否か(すなわち、頂点の領域コードが0000
に等しいかどうか)が判定される。頂点Vがクリップ領
域の内部にある場合には、ステップ520において、頂
点Vに対する頂点関数、すなわちカラー・ファクタが評
価される。例えば、頂点Vにおける明るさの計算を行う
ことになる。次にステップ530において、以前の頂点
Pがクリップ領域の内部にあるいか否かが判定される
(すなわち、頂点の領域コードが0000に等しいかど
うか)。この試験によって、多角形の最後の辺がクリッ
プ境界のいずれかと交差したかどうかが判定される。こ
れが処理される最初の頂点である場合には、答えはノー
となり、処理はステップ540に進む。また、多角形の
最後の辺が完全にクリップ領域内にある場合にはステッ
プ530の結果はイエスとなる。しかし、ステップ53
0において、以前の頂点Pがクリップ領域の外にあった
場合には、処理は図16に進む(この条件は、最後の辺
がクリップ領域の外側から内側に延びているとき成立す
る)。ステップ540では、頂点Vが多角形の最後の頂
点であるかどうかが判定される。判定結果がイエスの場
合には、多角形の処理は図19に進み、現在の多角形に
対する処理は終了する。ノーの場合には、ステップ55
0において、現在の頂点が出力される(すなわち、メモ
リなどに格納される)。ステップ560では、現在の頂
点Vが以前の頂点Pとして格納され、そして新しい現在
の頂点Vが処理の対象とされる。そして処理はステップ
500に戻る。
【0032】ステップ510において、頂点Vがクリッ
プ領域の内側にないと判定された場合には(すなわち、
頂点Vの領域コードが0000に等しくない)、処理は
ステップ570に進む。ステップ570では、以前の頂
点Pが現在の頂点Vと同じ領域内にあるかどうかが判定
される。判定結果がイエスの場合には、最後の辺は、ク
リップ領域以外のある領域内に完全に入っていることに
なり、単純排除されることになる。その場合、処理はス
テップ575に進む。ステップ575では、頂点Vが最
後の頂点かどうかが判定される。結果がイエスの場合に
は、処理は図19に進み、イエスでない場合には処理は
上述したステップ560に進む。ステップ570におい
て現在の頂点Vおよび以前の頂点Pが異なる領域にある
と判定された場合には、処理はステップ580に進む。
ステップ580では、将来のステップのために、どのク
リップ境界が最後の辺と交差したかが判定される。クリ
ップ境界は、図9に示したように、両方の無限遠に延び
る2本の垂直および水平な線であり、クリップ領域を定
義するために用いられる。次に、ステップ590におい
て、以前の頂点がクリップ領域の内部にあるかどうかが
判定される。結果がイエスの場合、最後の辺はクリップ
領域の内側から外側に延びていることになる。ノーの場
合には、最後の辺はクリップ領域の外側から内側に延び
ていることになる。処理はその後、図17,図18にそ
れぞれ進む。
【0033】図16の処理は、クリップ領域の外側から
内側に延びる辺を扱うためのものであり、上述したステ
ップ530において起動される。最後の辺がクリップ領
域内に延びるため、最後の辺とクリップ領域の交差部に
おける交差頂点Iを決める必要がある。ステップ600
において、関数(一つまたは複数;明るさなど)が以前
の頂点Pに対して評価される必要がある。ステップ61
0では、以前の頂点Pと現在の頂点Vの位置およびそれ
らに対する関数に関する結果とにもとづいて、交差頂点
Iが生成され、辺の補間によって頂点に対する関数が評
価される。ステップ620では、辺が一つのクリップ境
界だけを横断するかどうかが判定される。結果がイエス
の場合には、コーナー頂点は生成する必要はない。その
結果、ステップ630において、上で計算された交差頂
点Iが出力され、処理は上述したステップ575に進
む。しかし、ステップ620において1を上回る数の境
界が横断されていた場合には、処理はステップ640に
進む。ステップ640では、最後の辺によってどのクリ
ップ境界が横断されたかが判定される。ステップ650
では、最後の辺によって横断されたクリップ境界より、
コーナー頂点Cの生成が必要がどうかが判定される。望
ましい実施例では、コーナー頂点は、多角形が垂直クリ
ップ境界および水平クリップ境界の両方を横断する場合
に生成される。コーナーが必要でない場合には、処理は
上述したステップ630に進む。コーナーが必要な場合
には、ステップ660において、コーナー頂点Cが生成
され、頂点に対する関数、すなわちカラー・ファクタが
三角補間によって評価され、そして頂点が出力される。
コーナー頂点Cの三角補間は、現在の頂点Vおよび二つ
の以前の頂点(三角形を与える)に対する関数、すなわ
ちカラー・ファクタを評価し、次に三角形よりコーナー
頂点Cに対して補間することにより行う。コーナーが生
成される場合にはいつも、それによって、以前に同一の
位置に生成されたコーナーは置き換えられるか、あるい
は消去されることになる。次に処理は上述したステップ
630に進む。
【0034】図17は、クリップ領域の内側から外側に
延びている辺を扱うための処理であり、上記ステップ5
90において起動される。最後の辺はクリップ領域の外
側に進展しているので、最後の辺とクリップ領域との交
差部の交差頂点Iを決める必要がある。ステップ700
において、関数、すなわちカラー・ファクタ(明るさ、
熱特性、湿度など)を現在の頂点Vに関して評価する必
要がある。ステップ710では、以前の頂点Pおよび現
在の頂点Vに対する、位置および関数に関する結果にも
とづいて、交差頂点Iが生成され、またその頂点に対す
る関数が辺補間によって評価される。ステップ720で
は、辺がクリップ境界を一度だけ横断するかどうかが判
定される。判定結果がイエスの場合には、コーナー頂点
を生成する必要はない。その結果、ステップ730にお
いて、上で計算した交差頂点Iが出力され、処理は上述
したステップ575に進む。一方、ステップ720にお
いて1を上回る数の境界が交差されていた場合には、処
理はステップ740に進む。ステップ740において、
どのクリップ境界が最後の辺によって横断されたが判断
される。ステップ750では、コーナー頂点Cを生成す
る必要があるかどうかが、最後の辺によって横断された
クリップ境界より判定される。望ましい実施例では、多
角形が垂直クリップ境界および水平クリップ境界の両方
を横断する場合に、コーナー頂点が生成される。コーナ
ーが必要ない場合には、処理は上述したステップ730
に進む。コーナーが必要な場合には、ステップ760に
おいて、コーナー頂点Cが生成され、その頂点に対する
関数が三角補間によって評価され、そして頂点が出力さ
れる。コーナー頂点Cの三角補間は、現在の頂点Vおよ
び2つの以前の頂点(三角形を与える)に対する関数、
すなわちカラー・ファクタを評価し、次に三角形よりコ
ーナー頂点Cに対して補間することにより行う。コーナ
ーが発生される場合にはいつも、それによって、以前に
同一の位置に発生されたコーナーは置き換えられるか、
あるいは消去されることになる。処理は次に、上述した
ステップ730に進む。
【0035】図18は、クリップ領域の外側の一つの領
域からクリップ領域の外側の他の領域に延びる辺を扱う
ための処理であり、上述したステップ590において起
動される。ステップ800では、辺がクリップ境界を一
つだけ横断するかどうかが判定される。結果がイエスの
場合には、ステップ810において、コーナー頂点Cを
生成する必要があるかどうかが、最後の辺が横断したク
リップ境界より判定される。望ましい実施例では、多角
形が垂直クリップ境界および水平クリップ境界の両方を
横断する場合に、コーナー頂点が生成される。コーナー
が必要な場合には、ステップ820において、コーナー
頂点Cが生成され、その頂点に対する関数が三角補間に
よって評価され、そして頂点が出力される。コーナー頂
点Cの三角補間は、現在の頂点Vおよび2つの以前の頂
点(三角形を与える)に対する関数、すなわちカラー・
ファクタを評価し、次に三角形よりコーナー頂点Cに対
して補間することにより行う。コーナーが生成される場
合にはいつも、それによって、以前に同一の位置に発生
されたコーナーは置き換えられるか、あるいは消去され
ることになる。ステップ820においてコーナー頂点が
出力されると、あるいはステップ810においてコーナ
ーが必要ないと判定された場合には、処理は上述したス
テップ575に戻る。しかし、ステップ800におい
て、1を上回る数の境界が横断されていた場合には、処
理はステップ830に進む。このステップにおいて、最
後の辺が水平境界だけ、あるいは垂直境界だけを横断す
るかどうかが判定される。結果がイエスの場合、ステッ
プ840において、コーナー頂点Cが必要かどうかが判
定される。コーナー頂点Cが必要な場合には、処理は上
述したステップ820に進み、一方、不要な場合には処
理は上述したステップ575に進む。ステップ830に
おいて最後の辺が水平境界および垂直境界の両方を横断
すると判定された場合には、処理はステップ850に進
み、最後の辺がクリップ領域を横断する可能性を扱う。
ステップ850において、最後の辺が水平境界および垂
直境界を横断する所で、交差頂点Iが生成される。ステ
ップ860において、これら2つの交差頂点がクリップ
領域内かどうかが判定される。判定結果がイエスの場合
には、ステップ880において、交差頂点Iの関数(明
るさなど)が辺補間を用いて評価され、2つの交差頂点
Iが出力され、そして処理は上述したステップ575に
進む。判定結果がノーの場合には、ステップ870にお
いて、コーナー頂点Cが必要かどうかが判定される。結
果がイエスの場合には処理は上述したステップ820に
進み、ノーの場合には処理は上記ステップ575に進
む。
【0036】望ましい実施例では、交差は以下の三つの
ケースにおいて計算されることが明らかである。第1
は、以前の頂点がクリップ領域の中にあり、現在の頂点
がクリップ領域の外にある場合。第2は、以前の頂点が
クリップ領域の外にあり、現在の頂点がクリップ領域の
中にある場合。第3は、以前の頂点および現在の頂点が
共にクリップ領域の外にあり、辺の一部がクリップ領域
を通過する可能性がある場合。多角形の辺が図9の境界
E1〜E4の一つと交差する可能性がある場合には必ず
コーナー頂点の検出が行われる。
【0037】3次元(3D)の場合でも基本概念は変ら
ない。主な差異は、3次元では、3次元空間が9ではな
く27に分割され、コードワードが4ビットではなく6
ビットとなり、そして、コーナー頂点に加えて、多角形
の面と、クリップ領域の2つの境界面の交差線との交差
部における頂点を追加する必要があるということであ
る。
【0038】当業者にとって明らかなように、本発明
は、並列処理システムを含むマルチプロセッサ・システ
ム、パイプライン処理システム、ならびにそれらの組み
合せに対して容易に応用できよう。例えば、複数のプロ
セッサによって、図15〜図19に示したフローチャー
トの各部を別々に扱うことができよう。
【0039】本発明は、モザイク状にした多角形や、あ
るいは複数の頂点の間に複数の接続を有する多角形に対
しても適用することもできる。しかしその場合には、図
15〜19を参照して説明したように、頂点を順番に見
て各辺を扱うのではなく、他のアプローチを用いること
ができよう。例えば、各辺を個々にレビューして、辺に
対するクリップおよび関数に関する評価を行うことがで
きよう。さらに、各頂点をレビューして、その頂点ある
いはその頂点に結合された頂点がクリップ体の内部にあ
るかどうかを判定し、そしてクリップ領域を横断する辺
を評価することができよう。これらのアプローチもマル
チプロセッサ・システムによって容易に扱うことができ
る。
【0040】以上、本発明について特定の実施例をもと
に詳しく説明したが、当業者にとって他の実施例も明か
であろう。例えば、コーナー頂点は、頂点がクリップ領
域に入る場合にのみ生成し、評価することができよう。
【0041】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)複数の頂点と接続辺とによって定義されたグラフ
ィック多角形をクリップ領域にクリップする方法におい
て、表示すべき多角形のどの頂点を放棄できるかを計算
し、放棄されなかった頂点に対してのみ少なくとも一つ
のカラー・ファクタを計算するステップと、クリップ領
域境界と交差するすべての辺の上の境界頂点を計算し、
それらに対する少なくとも一つのカラー・ファクタを計
算するステップと、前記計算されたカラー・ファクタに
従って前記頂点を表示するステップと、を含むことを特
徴とする方法。 (2)どの頂点が放棄できるかを計算する前記ステップ
は、前記クリップ領域と交差する辺に接続された頂点に
対する少なくとも一つのカラー・ファクタの計算を含
む、上記(1)に記載の方法。 (3)クリップ領域境界と交差するすべての辺の上の境
界頂点を計算する前記ステップは、前記境界頂点に対す
る少なくとも一つのカラー・ファクタを、前記辺に接続
された頂点に対してすでに計算されたカラー・ファクタ
による補間によって計算することを含む、上記(2)に
記載の方法。 (4)前記クリップ領域内の辺の各点に対する少なくと
も一つのカラー・ファクタを、前記辺に接続された頂点
に対してすでに計算されたカラー・ファクタによる補間
によって計算するステップをさらに含む、上記(3)記
載の方法。 (5)複数の頂点と接続辺とによって定義されたグラフ
ィック多角形をクリップ領域にクリップする装置におい
て、表示すべき多角形のどの頂点を放棄できるかを計算
し、放棄されなかった頂点に対してのみ少なくとも一つ
のカラー・ファクタを計算する手段と、クリップ領域境
界と交差するすべての辺の上の境界頂点を計算し、それ
らに対する少なくとも一つのカラー・ファクタを計算す
る手段と、前記計算されたカラー・ファクタに従って前
記頂点を表示する手段と、を備えることを特徴とする装
置。 (6)どの頂点が放棄できるかを計算する前記手段は、
前記クリップ領域と交差する辺に接続された頂点に対す
る少なくとも一つのカラー・ファクタを計算する手段を
有する、上記(5)に記載の装置。 (7)クリップ領域境界と交差するすべての辺の上の境
界頂点を計算する前記手段は、前記境界頂点に対する少
なくとも一つのカラー・ファクタを、前記辺に接続され
た頂点に対してすでに計算されたカラー・ファクタによ
る補間によって計算する手段を有する、上記(6)に記
載の装置。 (8)前記クリップ領域内の辺の各点に対する少なくと
も一つのカラー・ファクタを、前記辺に接続された頂点
に対してすでに計算されたカラー・ファクタによる補間
によって計算する手段をさらに備える、上記(7)に記
載の装置。 (9)複数の頂点と接続辺とによって定義されたグラフ
ィック多角形をクリップ領域にクリップするデータ処理
システムにおいて、データを処理する処理手段と、処理
すべきデータを格納する格納手段と、グラフィック・デ
ータを処理する前記処理手段に接続されたグラフィック
ス処理手段とを備え、前記グラフィックス処理手段は、 i)表示すべき多角形のどの頂点を放棄できるかを計算
し、放棄されなかった頂点に対してのみ少なくとも一つ
のカラー・ファクタを計算する手段と、 ii)クリップ領域境界と交差するすべての辺の上の境界
頂点を計算し、それらに対する少なくとも一つのカラー
・ファクタを計算する手段と、 iii )前記計算されたカラー・ファクタに従って前記頂
点を表示する手段とを有する、ことを特徴とするデータ
処理システム。 (10)どの頂点が放棄できるかを計算する前記手段
は、前記クリップ領域と交差する辺に接続された頂点に
対する少なくとも一つのカラー・ファクタを計算する手
段を有する、上記(9)に記載のデータ処理システム。 (11)クリップ領域境界と交差するすべての辺の上の
境界頂点を計算する前記手段は、前記境界頂点に対する
少なくとも一つのカラー・ファクタを、前記辺に接続さ
れた頂点に対してすでに計算されたカラー・ファクタに
よる補間によって計算する手段を有する、上記(10)
に記載のデータ処理システム。 (12)前記クリップ領域内の辺の各点に対する少なく
とも一つのカラー・ファクタを、前記辺に接続された頂
点に対してすでに計算されたカラー・ファクタによる補
間によって計算する手段をさらに備えた、上記(11)
に記載のデータ処理システム。 (13)メモリに格納され、データ処理システムによっ
て実行でき、複数の頂点と接続辺とによって定義された
グラフィック多角形をクリップ領域にクリップするコン
ピュータ・プログラムの製品において、表示すべき多角
形のどの頂点を放棄できるかを計算し、放棄されなかっ
た頂点に対してのみ少なくとも一つのカラー・ファクタ
を計算する手段と、クリップ領域境界と交差するすべて
の辺の上の境界頂点を計算し、それらに対する少なくと
も一つのカラー・ファクタを計算する手段と、前記計算
されたカラー・ファクタに従って前記頂点を表示する手
段と、を備えることを特徴とするコンピュータ・プログ
ラム製品。 (14)どの頂点が放棄できるかを計算する前記手段
は、前記クリップ領域と交差する辺に接続された頂点に
対する少なくとも一つのカラー・ファクタを計算する手
段を有する、上記(13)に記載のコンピュータ・プロ
グラム製品。 (15)クリップ領域境界と交差するすべての辺の上の
境界頂点を計算する前記手段は、前記境界頂点に対する
少なくとも一つのカラー・ファクタを、前記辺に接続さ
れた頂点に対してすでに計算されたカラー・ファクタに
よる補間によって計算する手段を有する、上記(14)
に記載のコンピュータ・プログラム製品。 (16)前記クリップ領域内の辺の各点に対する少なく
とも一つのカラー・ファクタを、前記辺に接続された頂
点に対してすでに計算されたカラー・ファクタによる補
間によって計算する手段をさらに備える、上記(15)
に記載のコンピュータ・プログラム製品。
【0042】
【発明の効果】本発明の一つの長所は、その複雑さが、
現在の技術より、実際のフラックス(標準クリップ領域
の境界を横断する辺の数)に、より直接的に依存すると
いうことである。その結果、交差に関する不必要な計算
を避けることができる。
【図面の簡単な説明】
【図1】本発明の望ましい実施例で用いる典型的なディ
ジタル・コンピュータを示す図である。
【図2】グラフィックス機能を実施するため、ホスト・
コンピュータおよびグラフィックス・アダプタが典型的
に使用するコードの層を示すブロック図である。
【図3】多角形の単純受容ケースおよび単純排除ケース
の決定を示すフローチャートである。
【図4】2次元空間におけるクリップ領域の、9つの非
重複境界を示す図である。
【図5】全体がクリップ領域内にある、単純受容される
多角形を示す図である。
【図6】全体が、クリップ領域の外側にある中間領域あ
るいは角領域内にある、単純排除される多角形を示す図
である。
【図7】単純排除され得る、他のいくつかの多角形を示
す図である。
【図8】本発明の望ましい実施例にもとづき、単純排除
あるいは単純受容されない、残りのいくつかの多角形の
ケースを示す図である。
【図9】クリップ領域のコーナー頂点のいくつかを取り
囲む多角形を示す図である。
【図10】辺がクリップ領域と交わらない、28の非単
純なケースを示す図である。
【図11】辺がクリップ領域と交わらない、28の非単
純なケースを示す図である。
【図12】辺がクリップ境界を横断する、48のケース
を示す図である。
【図13】辺がクリップ境界を横断する、48のケース
を示す図である。
【図14】辺がクリップ境界を横断する、48のケース
を示す図である。
【図15】一つの多角形に対する、頂点のクリップおよ
び頂点関数の評価を示すフローチャートである。
【図16】一つの多角形に対する、頂点のクリップおよ
び頂点関数の評価を示すフローチャートである。
【図17】一つの多角形に対する、頂点のクリップおよ
び頂点関数の評価を示すフローチャートである。
【図18】一つの多角形に対する、頂点のクリップおよ
び頂点関数の評価を示すフローチャートである。
【図19】一つの多角形に対する、頂点のクリップおよ
び頂点関数の評価を示すフローチャートである。
【符号の説明】
100 ディジタル・コンピュータ 110 メイン・プロセッサ 120 メモリ 125 ハード・ディスク 130 入力装置 140 出力装置 150 グラフィックス・ディスプレイ 160 バス 170 I/Oコントローラ 180 I/O装置 190 取り外し可能なメディア 200 グラフィックス・アダプタ 220 グラフィックス・アダプタ・プロセッサ 240 フレーム・バッファ 250 ランダム・アクセス・メモリD/A変換器

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】複数の頂点と接続辺とによって定義された
    グラフィック多角形をクリップ領域にクリップする方法
    において、 表示すべき多角形のどの頂点を放棄できるかを計算し、
    放棄されなかった頂点に対してのみ少なくとも一つのカ
    ラー・ファクタを計算するステップと、 クリップ領域境界と交差するすべての辺の上の境界頂点
    を計算し、それらに対する少なくとも一つのカラー・フ
    ァクタを計算するステップと、 前記計算されたカラー・ファクタに従って前記頂点を表
    示するステップと、を含むことを特徴とする方法。
  2. 【請求項2】どの頂点が放棄できるかを計算する前記ス
    テップは、前記クリップ領域と交差する辺に接続された
    頂点に対する少なくとも一つのカラー・ファクタの計算
    を含むことを特徴とする請求項1記載の方法。
  3. 【請求項3】クリップ領域境界と交差するすべての辺の
    上の境界頂点を計算する前記ステップは、前記境界頂点
    に対する少なくとも一つのカラー・ファクタを、前記辺
    に接続された頂点に対してすでに計算されたカラー・フ
    ァクタによる補間によって計算することを含むことを特
    徴とする請求項2記載の方法。
  4. 【請求項4】前記クリップ領域内の辺の各点に対する少
    なくとも一つのカラー・ファクタを、前記辺に接続され
    た頂点に対してすでに計算されたカラー・ファクタによ
    る補間によって計算するステップをさらに含むことを特
    徴とする請求項3記載の方法。
  5. 【請求項5】複数の頂点と接続辺とによって定義された
    グラフィック多角形をクリップ領域にクリップする装置
    において、 表示すべき多角形のどの頂点を放棄できるかを計算し、
    放棄されなかった頂点に対してのみ少なくとも一つのカ
    ラー・ファクタを計算する手段と、 クリップ領域境界と交差するすべての辺の上の境界頂点
    を計算し、それらに対する少なくとも一つのカラー・フ
    ァクタを計算する手段と、 前記計算されたカラー・ファクタに従って前記頂点を表
    示する手段と、を備えることを特徴とする装置。
  6. 【請求項6】どの頂点が放棄できるかを計算する前記手
    段は、前記クリップ領域と交差する辺に接続された頂点
    に対する少なくとも一つのカラー・ファクタを計算する
    手段を有することを特徴とする請求項5記載の装置。
  7. 【請求項7】クリップ領域境界と交差するすべての辺の
    上の境界頂点を計算する前記手段は、前記境界頂点に対
    する少なくとも一つのカラー・ファクタを、前記辺に接
    続された頂点に対してすでに計算されたカラー・ファク
    タによる補間によって計算する手段を有することを特徴
    とする請求項6記載の装置。
  8. 【請求項8】前記クリップ領域内の辺の各点に対する少
    なくとも一つのカラー・ファクタを、前記辺に接続され
    た頂点に対してすでに計算されたカラー・ファクタによ
    る補間によって計算する手段をさらに備えることを特徴
    とする請求項7記載の装置。
  9. 【請求項9】複数の頂点と接続辺とによって定義された
    グラフィック多角形をクリップ領域にクリップするデー
    タ処理システムにおいて、 データを処理する処理手段と、 処理すべきデータを格納する格納手段と、 グラフィック・データを処理する前記処理手段に接続さ
    れたグラフィックス処理手段とを備え、 前記グラフィックス処理手段は、 i)表示すべき多角形のどの頂点を放棄できるかを計算
    し、放棄されなかった頂点に対してのみ少なくとも一つ
    のカラー・ファクタを計算する手段と、 ii)クリップ領域境界と交差するすべての辺の上の境界
    頂点を計算し、それらに対する少なくとも一つのカラー
    ・ファクタを計算する手段と、 iii )前記計算されたカラー・ファクタに従って前記頂
    点を表示する手段とを有する、 ことを特徴とするデータ処理システム。
  10. 【請求項10】どの頂点が放棄できるかを計算する前記
    手段は、前記クリップ領域と交差する辺に接続された頂
    点に対する少なくとも一つのカラー・ファクタを計算す
    る手段を有することを特徴とする請求項9記載のデータ
    処理システム。
  11. 【請求項11】クリップ領域境界と交差するすべての辺
    の上の境界頂点を計算する前記手段は、前記境界頂点に
    対する少なくとも一つのカラー・ファクタを、前記辺に
    接続された頂点に対してすでに計算されたカラー・ファ
    クタによる補間によって計算する手段を有することを特
    徴とする請求項10記載のデータ処理システム。
  12. 【請求項12】前記クリップ領域内の辺の各点に対する
    少なくとも一つのカラー・ファクタを、前記辺に接続さ
    れた頂点に対してすでに計算されたカラー・ファクタに
    よる補間によって計算する手段をさらに備えたことを特
    徴とする請求項11記載のデータ処理システム。
  13. 【請求項13】メモリに格納され、データ処理システム
    によって実行でき、複数の頂点と接続辺とによって定義
    されたグラフィック多角形をクリップ領域にクリップす
    るコンピュータ・プログラムの製品において、 表示すべき多角形のどの頂点を放棄できるかを計算し、
    放棄されなかった頂点に対してのみ少なくとも一つのカ
    ラー・ファクタを計算する手段と、 クリップ領域境界と交差するすべての辺の上の境界頂点
    を計算し、それらに対する少なくとも一つのカラー・フ
    ァクタを計算する手段と、 前記計算されたカラー・ファクタに従って前記頂点を表
    示する手段と、を備えることを特徴とするコンピュータ
    ・プログラム製品。
  14. 【請求項14】どの頂点が放棄できるかを計算する前記
    手段は、前記クリップ領域と交差する辺に接続された頂
    点に対する少なくとも一つのカラー・ファクタを計算す
    る手段を有することを特徴とする請求項13に記載のコ
    ンピュータ・プログラム製品。
  15. 【請求項15】クリップ領域境界と交差するすべての辺
    の上の境界頂点を計算する前記手段は、前記境界頂点に
    対する少なくとも一つのカラー・ファクタを、前記辺に
    接続された頂点に対してすでに計算されたカラー・ファ
    クタによる補間によって計算する手段を有することを特
    徴とする請求項14記載のコンピュータ・プログラム製
    品。
  16. 【請求項16】前記クリップ領域内の辺の各点に対する
    少なくとも一つのカラー・ファクタを、前記辺に接続さ
    れた頂点に対してすでに計算されたカラー・ファクタに
    よる補間によって計算する手段をさらに備えることを特
    徴とする請求項15記載のコンピュータ・プログラム製
    品。
JP6165257A 1993-09-02 1994-07-18 グラフィック多角形をクリップ領域にクリップする方法および装置 Expired - Fee Related JP3030206B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/116,238 US5613052A (en) 1993-09-02 1993-09-02 Method and apparatus for clipping and determining color factors for polygons
US116238 2002-04-04

Publications (2)

Publication Number Publication Date
JPH0785290A true JPH0785290A (ja) 1995-03-31
JP3030206B2 JP3030206B2 (ja) 2000-04-10

Family

ID=22366026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6165257A Expired - Fee Related JP3030206B2 (ja) 1993-09-02 1994-07-18 グラフィック多角形をクリップ領域にクリップする方法および装置

Country Status (3)

Country Link
US (1) US5613052A (ja)
EP (1) EP0642103A3 (ja)
JP (1) JP3030206B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735047B1 (en) 1999-10-14 2004-05-11 Matsushita Electric Industrial Co., Ltd. Magnetic head and magnetic recording/reproducing apparatus
WO2011030371A1 (ja) * 2009-09-08 2011-03-17 三菱電機株式会社 描画頂点削除装置
JP2011248700A (ja) * 2010-05-28 2011-12-08 Oki Data Corp 画像処理装置及び画像処理プログラム

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6172682B1 (en) * 1996-01-24 2001-01-09 Hewlett-Packard Co. Detecting insideness of a rectangle to an arbitrary polygon
US5777625A (en) * 1996-03-28 1998-07-07 Hewlett-Packard Company Clipper re-uses storage locations allocated for verticles
US6061047A (en) * 1996-09-17 2000-05-09 Chips & Technologies, Inc. Method and apparatus for clipping text
US6522340B1 (en) * 1996-11-20 2003-02-18 International Business Machines Corporation Creating real-world objects
US7215344B2 (en) * 1998-01-15 2007-05-08 3Dlabs, Inc. Ltd Triangle clipping for 3D graphics
US6553153B1 (en) 1998-12-03 2003-04-22 Chips And Technologies, Llc. Method and apparatus for reducing video data
US6504543B1 (en) * 1999-01-06 2003-01-07 Matsushita Electric Industrial Co., Ltd. Polygon drawing method and polygon drawing apparatus
US6552749B1 (en) 1999-01-29 2003-04-22 Intel Corporation Method and apparatus for video motion compensation, reduction and color formatting
US6281876B1 (en) 1999-03-03 2001-08-28 Intel Corporation Method and apparatus for text image stretching
US6686924B1 (en) * 2000-02-02 2004-02-03 Ati International, Srl Method and apparatus for parallel processing of geometric aspects of video graphics data
US7348983B1 (en) 2001-06-22 2008-03-25 Intel Corporation Method and apparatus for text image stretching
US6917877B2 (en) 2001-08-14 2005-07-12 Navteq North America, Llc Method for determining the intersection of polygons used to represent geographic features
US20030132932A1 (en) * 2001-09-17 2003-07-17 Xiangheng Yang Method for constructing polygons used to represent geographic features
US7589788B1 (en) 2003-02-28 2009-09-15 Intel Corporation Method and apparatus for video motion compensation, reduction and color formatting
US6900818B1 (en) * 2003-11-18 2005-05-31 Silicon Graphics, Inc. Primitive culling apparatus and method
US7170530B2 (en) * 2005-06-24 2007-01-30 George Mason Intellectual Properties, Inc. Image-based clipping
US7439988B1 (en) 2005-12-05 2008-10-21 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with respect to a clipping plane
US7616218B1 (en) 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US7292254B1 (en) 2005-12-05 2007-11-06 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with reduced sensitivity to vertex ordering
US7420572B1 (en) 2005-12-19 2008-09-02 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives with accelerated context switching
US7714877B1 (en) 2005-12-19 2010-05-11 Nvidia Corporation Apparatus, system, and method for determining clipping distances
US7652677B2 (en) * 2006-08-03 2010-01-26 Qualcomm Incorporated Graphics system employing pixel mask
US7944442B2 (en) * 2006-09-26 2011-05-17 Qualcomm Incorporated Graphics system employing shape buffer
CA2729234C (en) 2008-07-03 2014-01-07 Research In Motion Limited Method and system for fast clipping of line segments
US8368719B2 (en) 2008-07-03 2013-02-05 Research In Motion Limited Method and system for fast clipping of polygons
US8269775B2 (en) * 2008-12-09 2012-09-18 Qualcomm Incorporated Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware
US10026204B2 (en) 2015-01-27 2018-07-17 Splunk Inc. Efficient point-in-polygon indexing technique for processing queries over geographic data sets
US9836874B2 (en) * 2015-01-27 2017-12-05 Splunk Inc. Efficient polygon-clipping technique to reduce data transfer requirements for a viewport
US9916326B2 (en) 2015-01-27 2018-03-13 Splunk, Inc. Efficient point-in-polygon indexing technique for facilitating geofencing operations
US9607414B2 (en) 2015-01-27 2017-03-28 Splunk Inc. Three-dimensional point-in-polygon operation to facilitate displaying three-dimensional structures

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63115280A (ja) * 1986-10-31 1988-05-19 Fujitsu Ltd 表示方式

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
GB8411579D0 (en) * 1984-05-05 1984-06-13 Ibm Graphic display systems
US4941111A (en) * 1986-04-18 1990-07-10 Advanced Micro Devices, Inc. Video picking and clipping method and apparatus
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US4958305A (en) * 1987-11-04 1990-09-18 General Electric Company Polygon edge clipping
US4945500A (en) * 1987-11-04 1990-07-31 Schlumberger Technologies, Inc. Triangle processor for 3-D graphics display system
US5051737A (en) * 1989-02-23 1991-09-24 Silicon Graphics, Inc. Efficient graphics process for clipping polygons
US5079719A (en) * 1989-06-09 1992-01-07 Sun Microsystems, Inc. Method and apparatus for clipping polygons
US5159665A (en) * 1989-11-27 1992-10-27 Sun Microsystems, Inc. Graphics accelerator system
US5357599A (en) * 1992-07-30 1994-10-18 International Business Machines Corporation Method and apparatus for rendering polygons

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63115280A (ja) * 1986-10-31 1988-05-19 Fujitsu Ltd 表示方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735047B1 (en) 1999-10-14 2004-05-11 Matsushita Electric Industrial Co., Ltd. Magnetic head and magnetic recording/reproducing apparatus
WO2011030371A1 (ja) * 2009-09-08 2011-03-17 三菱電機株式会社 描画頂点削除装置
JPWO2011030371A1 (ja) * 2009-09-08 2013-02-04 三菱電機株式会社 描画頂点削除装置
JP2011248700A (ja) * 2010-05-28 2011-12-08 Oki Data Corp 画像処理装置及び画像処理プログラム

Also Published As

Publication number Publication date
EP0642103A3 (en) 1996-03-13
US5613052A (en) 1997-03-18
EP0642103A2 (en) 1995-03-08
JP3030206B2 (ja) 2000-04-10

Similar Documents

Publication Publication Date Title
JP3030206B2 (ja) グラフィック多角形をクリップ領域にクリップする方法および装置
US5734806A (en) Method and apparatus for determining graphical object visibility
US4609917A (en) Three-dimensional display system
US5012433A (en) Multistage clipping method
US5877769A (en) Image processing apparatus and method
JPH02287776A (ja) 大域レンダリングに階層ディスプレイリストを採用する方法
US6292192B1 (en) System and method for the direct rendering of curve bounded objects
JPH0877365A (ja) 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置
JPH02230470A (ja) コンピユータグラフイツクス・デイスプレイシステム
KR0150832B1 (ko) 그래픽 대상을 인터로크하기 위한 방법 및 장치
WO2008013605A1 (en) Real-time gpu rendering of piecewise algebraic surfaces
JP2572515B2 (ja) 画素処理方法及び装置並びにグラフィックバッファ
US5003497A (en) Method for three-dimensional clip checking for computer graphics
CN106530379B (zh) 用于执行路径描边的方法和设备
JPH06215152A (ja) 画像データ処理方法及び装置
JPH07104966A (ja) 長方形の相対位置を素早く判定するためのシステムおよび方法
US6396494B1 (en) Method for virtual clipping a three-dimensional graphics image
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
JPH06215143A (ja) グラフィックス・オブジェクト表現方法と装置
CN117519697A (zh) 矢量数据可视化方法及装置
KR100328593B1 (ko) 3-d 그래픽용 고속 클립핑 방법
US5563990A (en) Method and apparatus for processing a pick event
JPH06236444A (ja) 画像データ処理方法及び装置
JP2001243493A (ja) 画像描画方法、画像描画装置、記録媒体及びプログラム
JPH0869539A (ja) 画像の領域エクステントを決める方法および装置

Legal Events

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