JPH06215133A - データ処理装置および方法 - Google Patents
データ処理装置および方法Info
- Publication number
- JPH06215133A JPH06215133A JP5229597A JP22959793A JPH06215133A JP H06215133 A JPH06215133 A JP H06215133A JP 5229597 A JP5229597 A JP 5229597A JP 22959793 A JP22959793 A JP 22959793A JP H06215133 A JPH06215133 A JP H06215133A
- Authority
- JP
- Japan
- Prior art keywords
- volume
- picking
- picking volume
- edge
- test
- 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
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/10—Geometric effects
- G06T15/30—Clipping
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
との交差を処理する簡単な装置および方法を提供する。 【構成】 共面オブジェクトをディスプレイ上に表示
し、表示されたオブジェクトを含む面がピッキング・ボ
リュームのいずれかのエッジと交差するかどうかを計算
し、次いで、オブジェクトの面がピッキング・ボリュー
ムのエッジと交差すると判断されるときは、表示された
オブジェクトとピッキング・ボリュームとが交差するか
どうかを計算し、表示されたオブジェクトがピッキング
・ボリュームと交差するかどうかの指摘を提供する。
Description
ピッキングおよび特にオブジェクトが多次元的グラフィ
ック・アプリケーションの中でピッキング・ボリューム
と交差するかどうかを決める技術に関連する。
ケーションにおいて、オブジェクトまたは基本立体 (pr
imitive) がピッキング・ボリュームと呼ばれるある量
のインタレストと交差するかどうか検出することが必要
である。これはピッキング問題として知られている。ピ
ッキング・ボリュームはディスプレイ目的のためのクリ
ッピング・ボリュームであるかもしれない。または、ク
リッピング・ボリューム中の基本立体を選択するための
通常より小さいボリュームに分かれるかもしれない。典
型的にはピッキング・ボリュームは、複数の面によって
囲まれたボリュームであって通常立方体である。一般に
使われるクリッピング技術の1つを使用して、すべての
基本立体をピッキング・ボリュームでクリップすること
によって、ピッキング問題を解決するのが伝統であっ
た。
技術は典型的に、簡単な受け入れおよび拒絶のテストを
提供するために、コーヒン・スーザーランド(Cohen-Su
therland)コーディング技術を利用する。しかし、基本
立体を受け入れるか、あるいはピック・ボリュームの中
にあるとして拒絶するテストが矢敗するならば、クリッ
ピング技術は、典型的には基本立体とピッキング・ボリ
ュームの交差を計算するが、これは計算としては集中的
なタスクである。
ジェクトがピッキング・ボリュームと交差するかどうか
を処理する方法を含み、ディスプレイ上のオブジェクト
を表示し、表示されたオブジェクトを含んでいる面がピ
ッキング・ボリュームのエッジを交差するかどうかを最
初に計算し、オブジェクトの面が、ピッキング・ボリュ
ームのエッジと交差すると決められたとき、表示された
オブジェクトおよびピッキング・ボリュームが交差する
かどうかを計算し、表示されたオブジェクトがピッキン
グ・ボリュームと交差するかどうかの指摘を出すステッ
プを含んでいる。本発明は、共面上のオブジェクトがピ
ッキング・ボリュームと交差するかどうかを処理する装
置を含む。
がピッキング・ボリュームのエッジと交差するかどうか
を決めるための第1の装置、オブジェクトの面がピッキ
ング・ボリュームのエッジを交差すると決定したとき、
オブジェクトおよびピッキング・ボリュームが交差する
かどうかを計算するための第2の装置を含んでいる。
してオブジェクトまたは基本立体とピッキング・ボリュ
ームとの交差を決定することなしに、オブジェクトまた
は基本立体がピッキング・ボリュームの範囲内に位置す
るかどうかを検知することによりピック事象を処理する
ことに向けられる。ほとんどのアプリケーションの中で
ピックされるようなオブジェクトまたは基本立体を処理
するためには、交差の点を計算することなく、オブジェ
クトまたは基本立体がピッキング・ボリュームを交差す
るかどうかを検出することで十分である。この簡略化に
より、ハードウェアを単純化することができ、コストが
低減され、実行速度が速くなる。
用された典型的ディジタルコンピュータ100のブロッ
ク図である。コンピュ ーターは、メモリ120、入力
装置130および出力装置14 0に結びつけられたメ
イン・プロセッサ110を含む。メイン・プロセッサ1
10は、ひとつのプロセッサでも複数のプロセッサでも
よい。入力装置130は、入力装置のキーボ ード、マ
ウス、タブレットなどを含む。出力装置140は、出力
装置のテキスト・モニタ、プロッタなどを含む。メイン
・プロセッサは、また、グラフィックス・アダプタ20
0を通してグラフィックス・ディスプレイのようなグラ
フィックス出力装置150に接続することができる。
ン・プロセッサ110からバス160の上の、グラフィ
ックスに関する命令を受け取る。グラフィックス・アダ
プタは、それからグラフィックス・アダプタ・メモリ2
30に結びつけられたグラフィックス・アダプタ・プロ
セッサ220でそれらの命令を実行する。グラフィック
ス・アダプタの中のグラフィックス・プロセッサが、そ
れらの命令を実行し、それらの命令に基づいてフレーム
・バッファ240を更新する。グラフィック・プロセッ
サ220は、また、基本立体の生成のための特有な型を
生成するために、特別なハードウェアを含むであろう。
フレーム・バッファ240は、グラフィックス出力装置
上に表示されるためにあらゆるピクセルのためのデータ
を含む。ランダム・アクセス・メモリー・ディジタル・
アナログ変換器(RAMDAC)250は、グラフィックス・
ディスプレイ150に提供するためにフレーム・バッフ
ァにストアされたディジタル・データをRGB信号に変換
して、メイン・プロセッサから希望のグラフィックス出
力を生成する。
ス機能を実行するためにホスト計算機およびグラフィッ
クス・アダプタによって典型的に利用されたコードの層
を図示しているブロック図である。ピック事象は、消
去、カラー変更、移動、その他のようなオブジェクトの
上のある機能を実行するためにピック・ボリュームを使
って、ピックされる事象である。DOSを始めとするオペ
レーティング・システム300が、ホスト計算機の主要
なコントロールを提供する。オペレーティング・システ
ムのためにハードウェア集中的タスクを提供するオペレ
ーティング・システム・カーネル310が、オペレーテ
ィング・システムに結びつけられる。オペレーティング
・システム・カーネルは、直接ホスト計算機マイクロコ
ード320と通信する。ホスト計算機マイクロコード
は、ホスト計算機プロセッサによって実行される一次命
令セットである。グラフィックス・アプリケーション3
30および332は、オペレーティング・システム30
0に結びつけられる。この図形処理への応用ソフトウェ
アには、シリコングラフィック社(Silicon Graphic)
のGL、IBM社のgraPHIGS、MITのPEXその他がある。
元グラフィック処理の基本的機能を提供する。グラフィ
ックス・アプリケーション330および 332は図形
処理への応用API(適用業務プログラム・インタフェー
ス)340および342にそれぞれ結合する。APIは、
図形処理への応用のために計算的に集中的なタスクの多
くを提供し、グラフィックス・アダプタへの デバイス
ドライバのような、グラフィックス・ハードウェア に
より近いアプリケーション・ソフトウェアと適用業務ソ
フトウェアとの間のインターフェースを提供する。たと
えば、API 340および342は、GAI(図形処理への
応用インターフェース)350および352とそれぞれ
通信する。GAIは、アプリケーションAPIおよびグラフィ
ックス・アダプタ・デバイスドライバ370の間のイン
ターフェースを提供する。あるグラフィックス・システ
ムの中で、APIはまた、GAIの機能を実行する。グラフィ
ックス・アプリケーション、APIおよびGAIは、オペレー
ティング・システムおよびデバイスドライバによって、
ひとつのプロセ スであると考えられる。すなわち,グラ
フィックス・アプリケーション330、332、API 3
40、342、そして,GAI350および352は、オペ
レーティング・システム300およびデバイスドライバ
370によってそれぞれ、プロセス360および362
であると考えられる。プロセスは、オペレーティング・
システム・カーネルによってプロセスに割り当てられた
プロセスID(PID)によって、オペレーティング・シ
ステムとデバイスドライバによって識別される。プロセ
ス360および362は、たとえば、2個の別々のウィ
ンドウの中でのあるプログラムの2つの実行のように、
同時に2度実行されている同じコードを使用することが
ある。PIDが、同じコードの別々の実行を区別するため
に使われる。
システム・カーネル310の拡張(部分)であるグラフ
ィックス・カーネル である。グラフィックス・カーネ
ルは、直接グラフィックス・アダプタ380のマイクロ
コードと通信する。多くのグラフィックス・システムの
中で、GAI、あるいはGAI階層が使用されていなければAP
Iが、デバイスドライバに初めの要求命令を送り出すこ
とによりアダプタ・マイクロコードへのGAIまたはAPIか
らの直接アクセスを要請するであろう。
ステムは、また、アダプタ・マイクロコードが、デバイ
スドライバに初めの要求命令を送り出すことによって、
アダプタ・マイクロコードからGAI、GAI階層が使用され
ていなければAPI、への直接アクセスを要請することを
許す。両方のプロセスは、以下に直接メモリ・アクセス
(DMA)として参照される。データの大きいブロックを
転送しているとき、DMAが典型的に使われる。DMAは、デ
バイスドライバがDMAをセットするための最初の要求以
外、ディスプレイ・ドライバを経由する必要を排除する
ことにより、ホスト計算機およびアダプタの間のデータ
のより速い伝送を提供する。ケースによっては、アダプ
タ・マイクロコードは、アダプタ・マイクロコードによ
って利用されていた現在の属性を置き換えることを可能
にするコンテクスト・スイッチングを利用する。適応し
たマイクロコードが現在使用しているものと異なる属性
を利用するグラフィックス・アプリケーションからの命
令をアダプタ・マイクロコードが受取る時、コンテクス
ト・スイッチングが使われる。コンテクスト・スイッチ
は、典型的には、属性変更を認めるデバイスドライバに
よって始められる。
る型のグラフィックス・アダプタから典型的に独立して
いるソフトウェア・コード層である。ブロック350ー
380は、利用されている型のグラフィックス・アダプ
タに典型的に依存するソフトウェア・コード層である。
たとえば、異なるグラフィックス・アダプタが、グラフ
ィックス・アプリケーションソフトウェアによって使わ
れるとしたら、新しいGAI、グラフィックス・カーネル
およびアダプタ・マイ クロコードが必要とされる。そ
れに加えて、ブロック300 ー370は、ホスト計算
機に常駐し実行される。しかし、アダプタ・マイクロコ
ード380は、グラフィックス・アダプタに常駐し、こ
れによって実行される。あるケースにおいて、しかし、
アダプタ・マイクロコードは、グラフィックス・アダプ
タの初期状態設定の間にホスト計算機によってグラフィ
ックス・アダプタにロードされる。
利用者はグラフィックス・アプリケーションに2次元ま
たは3次元モデルからイメージをつくるように命令す
る。利用者は、光源のロケーションおよび型を最初に選
択する。利用者は、それからアプリケーション・ソフト
ウェアに一組の定義済みまたは利用者定義オブジェクト
から要求されたモデルを作るように命令する。各オブジ
ェクトは、オブジェクトを記述しているひとつ以上の共
面上の図面基本立体を含みうる。たとえば、多くの三角
形のような 一組の図面基本立体が、オブジェクトの表
面を定義するために使われうる。利用者は、そのモデル
を見るためにウィンドウの中で透視画を提供し、希望す
るイメージを定義する。アプリケーション・ソフトウェ
ア は、オブジェクトを記述する図面基本立体をAPI、GA
I、そしてDMAが使われていなければデバイスドライバを
通してアダプタ・マイクロコードに送り出すことによ
り、そのモデルからイメージの生成を始める。アダプタ
・マイクロコードは、ウィンドウの中で見えないそれら
の図面基本立体をクリッピン グして(すなわち使用し
ない)、グラフィックス・ディスプレイ上にイメージを
生成する。アダプタ・マイクロコードは、利用者によっ
て与えられた透視画から残りの図面基本立体を見えるピ
クセルに分解する。このピクセルは次いでフレーム・バ
ッファにロードされる。この場合、3次元モデルのとき
は深さバッファがよく使用される。このステップは、図
面基本立体、変数および関係しているピクセルの数のた
めに計算的に非常に集中的である。フレーム・バッファ
の中でストアされて、グラフィックス・ディスプレイの
上に表示されるイメージは、ピクセルがどの図面プリミ
ティブまたはオブジェクトから由来するかというような
オリジナルの情報を典型的には持っていない。この結
果、ウィンドウ、利用者の透視画、モデル、照明、その
他が修正された場合、イメージは部分的あるいは全体的
に再生成される必要があるであろう。ウィンドウの中で
表示されたイメージを選ぼうとしているとき、これがま
た、困難を提示する。典型的3次元モデルにおいて、利
用者がウィンドウの中に表示される多くのオブジェクト
を含むイメージを持つとき、要求されたオブジェクトを
選ぶために、複雑で、ときとして時間がかかるプロセス
が必要となる。
ダプタ・フレーム・バッファの近くに存在するアダプタ
・マイクロコードを始めとする多くのロケーションの中
で利用される可能性がある。このアプローチは、また、
比較的に速くて、そしてかなり実行するのが簡単であ
る。それに加えて、ピック技術は、イメージが生成され
る前、あるいは生成後にグラフィックス・アダプタがデ
ータ・バックアップをグラフィックス・アプリケーショ
ン・ソフトウェアに渡すことによって、生成イメージが
システム・メモリに同様にストアされるグラフィックス
・アプリケーションに適用されることができる。このア
プローチは、かなり遅いが、既に存在するグラフィック
ス・アダプタ上でこの技術を利用することをを可能にす
る。ピック技術は、また、グラフィックス・アダプタ・
プロセッサのハードウェアの中で実行される可能性があ
る。このアプローチは、非常に速いが、多分特殊化され
たハードウェアを必要とする。これは、グラフィックス
・アダプタによって表示された基本立体の急速なピッキ
ングを可能にする。この分野の技術者は、この技術がホ
スト計算機またはグラフィックス・アダプタの範囲内で
多くの他のロケーションの中で適用される可能性がある
ことを理解するであろう。
ッキング・ボリュームは、典型的には、6個の境界面お
よび12個の境界エッジによって区切られている。しか
し、ピッキング・ボリュームは、2以上の次元を持っ
て、そしていっそう多くのまたはより少しの境界面によ
って区切られてもよい。境界エッジ500は、ピッキン
グ・ボリュームにある2個の隣接する境界面が交差する
エッジの部分である。境界面510は、ピッキング・ボ
リュームに共通である境界面の部分である。境界面は、
3次元間隔をピッキング・ボリュームがその1つである
27個の重複しない区域に分割する。26個の他の区域
は、外区域と呼ばれる。ピッキング・ボリュームの8つ
の頂点(すなわち、3つの隣接する境界面の交差する
点)は境界頂点520である。境界表面、エッジおよび
頂点は、ピッキング・ボリュームの内側とする。
的に指定される。基本立体は、凸面でも凹面でもあるこ
とができ、穴を含むことができる。図4は、ピッキング
・ボリュームを横切っている穴をもつ凹形基本立体54
0のイラストである。このオブジェクトのピッキングが
、図8を参照して詳細に記述される。
的または部分的にピッキング・ボリューム内にあるかど
うかを判断する仕方を示すフロー・チャートである。ス
テップ550においてオブジェクトは、各基本立体が一
組の頂点によって定義されている、複数の共面上の基本
立体にモザイク状に分けられる。オブジェクトは、共面
上であるならば、図4に示されるようにひとつの基本立
体でありうる。ステップ560において、基本立体はオ
ブジェクトから選ばれる。ステップ570において、基
本立体が全体的にあるいは部分的にピック・ボリューム
内に位置するかどうかが決定される。このステップは、
図6、図7の中でより詳細に記述される。基本立体が、
ピック・ボリューム内に位置しないならば、ステップ5
80でそれがオブジェクトの最後の基本立体であるかど
うか判断される。最後でなければ、処理は次の基本立体
を選択するためにステップ560に戻る。そうでなけれ
ば、オブジェクトの基本立体のどれもピック・ボリュー
ム内でないので、オブジェクトが拒絶される。オブジェ
クトの基本立体の1つがステップ570でピック・ボリ
ュームと交差するならば、オブジェクトはステップ59
5で受け入れられる。
た共面上の基本立体またはオブジェクトが全体的あるい
は部分的にピッキング・ボリューム内にあるかどうか決
めるための発明の好ましい実施例の方法を示すフロー・
チャートである。最初のステップ600において、Cohe
n-Sutherland技術に従って基本立体の各頂点のために6
ビット・コードが計算される。すなわち、基本立体の各
頂点は、ピッキング・ボリューム側またはピッキング・
ボリュームの境界面の各々の無限の側のいずれかにある
ように、分類される。ビット・コードの各ビットは0ま
たは1で、頂点が特定の面の内側あるいは外側に存在す
ることを示す。頂点がすべての6つの境界面のピッキン
グ・ボリューム側にあるならば、それはピッキング・ボ
リューム内にあって、そしてビットコード000000
を持つ。
トコードを図示する。ビット1は、Y方向のピッキング
・ボリュームの上のポイントを示し、ビット2は、Y方
向のピッキング・ボリュームの下のポイントを示し、ビ
ット3は、X方向のピッキング・ボリュームの右のポイ
ントを示し、ビット4は、X方向のピッキング・ボリュ
ームの左のポイントを示し、ビット5は、Z方向のピッ
キング・ボリュームの後のポイントを示し、ビット6
は、Z方向のピッキング・ボリュームの前のポイントを
示す。もちろん、別のビット・コード構成を利用するこ
ともできる。
・コードのいずれかが000000と等しければ、頂点
は、ピッキング・ボリューム内にある。少くとも基本立
体のある部分は、ピッキング・ボリューム内にある。し
たがって、基本立体は受け入れられ、ステップ800で
ヒットとして処理される。さもなければ、処理はステッ
プ620に続く。ステップ620で、頂点ビット・コー
ドのすべての論理積(AND)が計算される。ステップ6
30の中で、論理積が1つの1(例えば001000)
を持つならば、基本立体全体はピッキング・ボリューム
の外側にあり、基本立体は拒絶され、ステップ810で
そのように処理される。すなわち、基本立体のすべての
頂点が同じ外区域にあるならば、基本立体はピッキング
・ボリュームを交差することができない。それゆえに、
その基本立体はヒットでない。
れると、その基本立体がピッキング・ボリューム内にあ
るかどうか判断する後続の処理は必要とされない。普通
の適用業務では、ほとんどの基本立体はこうなる。頂点
のどれもピッキング・ボリューム内にないが、基本立体
の一部がピッキング・ボリューム内にあるかもしれない
場合、この後続の処理の間に、特定の問題が起こる。頂
点がピッキング・ボリューム内にあるかどうかチェック
するだけでは、このケースは発見されない。しかし、後
続の処理を必要とする少数の基本立体のために、その処
理は計算的に集中的になりうるが、ここで記述される本
発明を利用して能率的に処理することができる。
ず受け入れられもしないならば、基本立体のより進んだ
処理が必要である。基本立体がピッキング・ボリューム
の範囲内で存在するならば、基本立体のエッジの1つ
が、ピッキング・ボリュームを横切らなければならない
か、またはピッキング・ボリュームの境界エッジが基本
立体を横切らなければならない。好ましい実施例の中
で、したがって、処理は一度に1つの頂点ではなく一度
に1つのエッジについて続けられる。
ムを交差する かどうか検出するためには、最初にその
ような交差の可能性があるかどうか判断することが効率
的である。たとえば、エッジの両方の頂点がピック・ボ
リュームの外側にあるので、2つの隣接する頂点(基本
立体のエッジを定義する)のビットコードが少なくとも
2つの面において異なる場合のみ交差が起こりうる。そ
れに加えて、エッジの2つの頂点のビットコードを調べ
るだけで、基本立体がピッキング・ボリュームを横切る
ことを受諾あるいは拒絶することができる場合もある。
ステップ640で、各基本立体のエッジに対する2個の
頂点ビット・コードは、一緒に論理的排他和を取られる
(XOR'd)。ステップ650で、ビット・コードは、論
理積が000000になるかどうかチェックされ、排他
的論理和(XOR'd)ビット・コードが110000、0
01100または000011であるかどうかチェック
される。両方が真であるならば、エッジはピッキング・
ボリュームを横切り、基本立体はピッキング・ボリュー
ム内にあるとして受け入れられる。ステップ660で、
基本立体に対する排他的論理和(XOR'd)ビット・コー
ドが1つの1の集まりより1少ないもの(one one less
ones)を含むならば(そして上に決定されるように頂
点がピッキング・ボリューム内に存在しないとする
と)、ピッキング・ボリューム内に存在しないとして基
本立体が拒絶される。ステップ660は、効率ののため
にステップ630と組み合わせられるであろう。ここで
は説明しやすいように、これらのステップは別々に示さ
れる。
そしてエッジ交差テストが、効率のために実施例の中で
使われる。しかし、上述のテストが実行されなかったと
しても、下に記述されるプロセスが使われうる。
の最終的な決定はいっそう難しいが、上に記述されたプ
ロセスと違って決定的である。基本的には、境界エッジ
のいずれかが基本立体を交差するかどうかが判断され
る。基本立体と交差する境界エッジに必要な条件は、そ
の2つ境界エッジの頂点が、基本立体を含んでいる面の
それぞれ反対側になければならないということである。
境界エッジ頂点が面のどちら側にあるか決定するため、
そして境界エッジが基本立体を交差するかどうかチェッ
クするために、基本立体の面から広がっている面がピッ
キング・ボリュームと交差するかどうかが判断される。
ステップ700の中で、ax + by + cz + d= 0という基
本立体面方程式が、基本立体から選ばれた3個の非共面
頂点から決定される。しばしば、基本立体のためのノー
マル、すなわち上記の公式からのa、b、cは、グラフィ
ックス・アプリケーションによって計算済みでありすぐ
に使うことができる。これらのケースにおいて、d は基
本立体の頂点の座標によって決定される。
cz + dであるP(x,y,z)の符号が8つの境界頂点の各々
で評価される。ステップ720で、12個の境界エッジ
のいずれの2つの頂点のどちらも違わないならば、基本
立体はピッキング・ボリュームを横切らず、基本立体は
拒絶される。境界エッジに対する頂点のいずれかの符号
が異なるならば、処理はステップ730に続く。
ば、ステップ735の中で基本立体は、基本立体とピッ
キング・ボリュームの交差の計算を試みることによっ
て、それがピッキング・ボリュームと交差するかどうか
テストされる。これは、オプションのテストであって、
利用されないかもしれない。基本立体が凸面でない、ま
たはテストが要求されないならば、処理はステップ74
0に続く。
点が基本立体の反対側にあり、そして境界エッジ上のポ
イントが境界エッジに直角である面上の基本立体の投影
内に含まれるならば、基本立体はピッキング・ボリュー
ムを横切り、受け入れられる。 そうでなければ基本立
体は拒絶される。投影テストと呼ばれるこのテスト
は、、共面上の基本立体が凹形であるか凸面であるか穴
が有るか無いかに関係なく、ステップ700ー720に
記述されるように基本立体の面がピッキング・ボリュー
ムを交差することが既に決定されたかぎり、真である。
結果として、これは非常に強力なテストであり、複雑な
共面上の基本立体を扱っているとき、とくに役に立つ。
すなわち、そのような複雑な共面上の基本立体は、それ
らがピッキング・ボリュームと交差するかどうかを決め
るために、複数の単純な基本立体に分解される必要がな
い。それに加えて、基本立体およびピッキング・ボリュ
ームの間の交差の実際のポイントは計算されておらず、
ピッキングに効率的アプローチを提供する。
形基本立体の、基本立体を横切っているピッキング・ボ
リュームの境界エッジが、どのように発見されるかの例
を図示する。図9は、境界エッジE1(この例では左上の
エッジ)に垂直である面Pproj(この例ではx-y面)への
基本立体の投影を示す。境界エッジは、Pprojの中でポ
イントに0を投影する。この境界エッジは、左の境界面
P1、および上の境界面P2の交差点である。エッジE1およ
びE3は、Pprojの中で境界面の投影である。エッジE2お
よびE4は、Pprojの中で境界面の投影である。エッジEl-
E4は、投影の中で4区域R1-R4を生成する。これらの区
域の各々が、E1-E4からの2つのエッジによって境界づ
けられる。0がエッジの上にあるか下にあるか決定でき
るように、基本立体の投影されたエッジが位置づけられ
なければならない。別の実施例では、エッジ方程式に関
して0を計算し評価して、いくつのエッジが0より上に
あるか決めることによって、交差の計算を避けることが
できる。
まれるならば、Pprojの基本立体投影内に含まれる。0
が偶数回囲まれるならば、それは基本立体の外側に存在
する。エッジEl-E4のいずれかが輪郭のエッジによって
奇数回横切られるならば、基本立体の輪郭は0を囲む。
エッジEl-E4のいずれかが偶数回横切られるならば、輪
郭は0を囲まない。条件は、前もって計算された6ディ
ジットのビット・コードの使用によって検査される。基
本立体の2個の連続頂点が同じ区域の中でまたは隣接の
区域の中にあるとき、交差の計算は必要でない。頂点V1
およびV2は、このケースの例である。連続する頂点が隣
接しない区域にあるとき、交差の計算は必要である。頂
点V3およびV4は、このケースの例である。エッジV3-V4
およびV5-V6は、交差計算が必要な理由を示す。0がPpr
oj面上の基本立体の投影内に含まれないので、エッジBE
1は、基本立体を横切らない。
あるいは無い、凸面および凹形多角形が、本発明によっ
て扱われることができる。
トがピッキング・ボリュームを交差するかどうか決定す
るための疑似コードを示す。表1は、各基本立体が複数
の頂点を持つ基本立体または複数のコード面に、オブジ
ェクトがモザイク状に分かれるより高いレベルの処理に
向けられたものである。各基本立体は、基本立体のいず
れかがピック・ボリュームに含まれているかどうか決定
するために順次テストされる。基本立体のいずれかがピ
ック・ボリューム内にあるならば、オブジェクトはピッ
ク・ボリューム内にあると決定される。一方、基本立体
のどれもピック・ボリュームを横切らなければ、オブジ
ェクト自体ピック・ボリュームを横切らない。
にあるかどうか決定するための疑似コードである。いく
つかのテストが、共面上の基本立体がピッキング・ボリ
ュームを横切るかどうか決定するために順次実行され
る。Cohen-Sutherland点交差テストは、最初に実行され
るものであり、表3を参照して以下に詳細に説明する。
れるならば、処理は上述のオブジェクト・テストに戻
る。2番目のテストで、基本立体のエッジのいずれかが
ピッキング・ボリュームを横切るかどうか決定される。
これは、表4の参照により以下に詳細に記述される。簡
単な点交差テストおよびエッジ交差テストは、ひとつの
ループに結合することができる。ここでは説明の便宜
上、それらは別々の手続として示される。ヒットまたは
ミスがあるならば、処理はオブジェクト・テストに戻
る。3番目のテストで、基本立体の面の投影が境界エッ
ジのいずれかと交差するかどうかが判定される。これ
は、表5を参照して以下に詳細に記述される。
ボリュームを横切らないと決定されるならば、処理はオ
ブジェクト・テストに戻る。4番目のテストで、多角形
が凸面ならば、多角形がピッキング・ボリュームを横切
るかどうか決定するために、ピッキング・ボリュームと
多角形の実際の交差が計算される。この手続きは、効率
のために、エッジ交差検査およ簡単な点交差検査と組み
合わせることができる。処理は、オブジェクト・テスト
に戻る。基本立体エッジが少くとも2つの面と交差し、
基本立体の面がピッキング・ボリュームを横切るなら
ば、基本立体は、ピッキング・ボリュームと交差するで
あろう。5番目のテストで、多角形が凸面でない、また
は凸面のテストが要求されないならば、投影テストは、
表6の参照により以下に詳細に記述されるテストが終結
すると、処理はオブジェクト・テストに戻る。
実行するための疑似コードを含む。これは、従来の技で
かなりよく知られた簡単な受け入れ拒絶テストの変形で
ある。このテストは、オプションであるが、エッジ 交
差 テストを実行するならば、必要とされるであろう。
かどうか決定するための疑似コードを含む。加えて、以
下に示されるようにエッジが2個の面の特定のセットを
横切るならば、基本立体はピッキング・ボリュームを横
切るとみなされる。このテストはオプションであるが、
基本立体が凸面であり、凸面の多角形に対する検査が実
行されることになっているならば、実行するのが好まし
い。
横切られるかどうか決定するための疑似コードを含む。
基本立体の面方程式を計算することによって、これが決
定される。しかし、この面式計算は単純なので、面に対
する法線はグラフィックス適用業務または以前の処理に
よってすでに提供されているかもしれない。面がいった
ん計算されると、もし境界エッジのいずれかが、面式が
適用されたときと異なった符号の頂点を持っていれば、
その境界エッジは基本立体によって横切られ、そして後
の処理が必要とされる。このテストは、Cohen-Sutherla
ndまたはエッジ交差テストを必要としない。
の基本立体面の投影内に頂点を持つかどうか決定するた
めの疑似コードである。そうであれば基本立体は、ピッ
キング・ボリュームと交差する。このテストは、境界
エッジ テストの実行の後に実行されるのが好ましい。
しかし、このテストは、Cohen-Sutherlandテストまたは
エッジ 交差 テストが実行されるのを、必要としな
い。
利用される大規模な数量の計算を必要としない。これ
は、必要な制御論理を単純化して、それによっりハード
ウェア・コストおよび実行時間を減少させる。
たが、他の実施例も、当技術に通じる者には明らかであ
る。たとえば、上記の手続きは、2次元または4次元以
上のピッキング・ボリュームに適用されるであろう。し
たがって、以上の記述は、請求項によって定義される本
発明の範囲を制限すると考えてはならない。
面オブジェクトとピッキング・ボリュームとの交差を決
定する簡略化された手段が提供される。
ブロック図である。
コンピューターおよびグラフィックス・アダプタによっ
て典型的に利用されるコードの層を図示しているブロッ
ク図である。
まれたピッキング・ボリュームのイラストである。
つ凹形基本立体のイラストである。
るかまたは部分的にピッキング・ボリューム内にあるか
決めるための好まれた方法を図示しているフロー・チャ
ートである。
ング・ボリューム内にあるかまたは部分的にピッキ ン
グ・ボリューム内にあるか、決めるための好まれた方法
を図示しているフロー・チャートである。
ング・ボリューム内にあるかまたは部分的にピッキ ン
グ・ボリューム内にあるか、決めるための好まれた方法
を図示しているフロー・チャートである。
のためのビットコードを図示する。
の図4のオブジェクトの投影である。
断するステップ 590 オブジェクト拒絶ステップ 595 オブジェクト受け入れステップ
Claims (7)
- 【請求項1】 共面オブジェクトをディスプレイ上に表
示するステップと、 上記表示されたオブジェクトを含む面がピッキング・ボ
リュームのいずれかのエッジと交差するかどうかを計算
する第1の計算ステップと、 上記オブジェクトの面が上記ピッキング・ボリュームの
いずれかのエッジと交差すると判断されるとき、上記表
示されたオブジェクトと上記ピッキング・ボリュームと
が交差するかどうかを計算する第2の計算ステップと、 上記表示されたオブジェクトが上記ピッキング・ボリュ
ームと交差するかどうかの指摘をするステップとを含
む、データ処理処理方法。 - 【請求項2】 上記第2の計算ステップは、交差するエ
ッジの点が上記オブジェクトの投影と交差するかどうか
の計算を含む請求項1に記載の方法。 - 【請求項3】 上記第2の計算ステップが、交差される
エッジの頂点が該エッジに垂直な投影と交差するかどう
かの計算を含む請求項2に記載の方法。 - 【請求項4】 上記第1の計算ステップが、上記オブジ
ェクトの面方程式を得ることを含む請求項3に記載の方
法。 - 【請求項5】 共面オブジェクトがピッキング・ボリュ
ームと交差するかどうかを処理する装置であって、 上記オブジェクトを含む面が上記ピッキング・ボリュー
ムのいずれかのエッジと交差するかどうかを判断する第
1手段と、 上記オブジェクトの面が上記ピッキング・ボリュームの
エッジを交差すると判断されるとき該オブジェクト及び
該ピッキング・ボリュームが交差するかどうかを判断す
るための第2手段と、 を備えるデータ処理装置。 - 【請求項6】 上記第2手段が、交差するエッジの点が
オブジェクトの投影と交差するかどうかを計算する手段
を含んでいる請求項5に記載の装置。 - 【請求項7】 オブジェクトを記憶するためのメモリ
と、 上記記憶されたオブジェクトを表示するためのディスプ
レイと、 上記表示されたオブジェクトを処理するためのOプロセ
サとを備え、上記プロセサは、 上記表示されたオブジェクトを含む面がピッキング・ボ
リュームのエッジと交差するかどうかを判断するための
第1手段と、 上記記憶されたオブジェクトの面がピッキング・ボリュ
ームのエッジと交差すると判断されるとき、上記表示さ
れたオブジェクトおよび上記ピッキング・ボリュームが
交差するかどうかを判断するための第2手段とを有す
る、データ処理装置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/968,718 US5563990A (en) | 1992-10-30 | 1992-10-30 | Method and apparatus for processing a pick event |
| US7/968,718 | 1992-10-30 | ||
| US07/968,718 | 1992-10-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06215133A true JPH06215133A (ja) | 1994-08-05 |
| JP2667949B2 JP2667949B2 (ja) | 1997-10-27 |
Family
ID=25514664
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5229597A Expired - Lifetime JP2667949B2 (ja) | 1992-10-30 | 1993-08-24 | ピック事象の処理方法及び処理装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5563990A (ja) |
| EP (1) | EP0595146A3 (ja) |
| JP (1) | JP2667949B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040396A (ja) * | 1996-07-19 | 1998-02-13 | Nec Shizuoka Ltd | クリッピング回路 |
| JP2007213562A (ja) * | 2005-12-30 | 2007-08-23 | Dassault Systemes | Plmデータベース内のオブジェクトを選択する処理および本処理を実装した装置 |
| JP2007220089A (ja) * | 2005-12-30 | 2007-08-30 | Dassault Systemes | Plmデータベース内のオブジェクトを選択する処理および本処理を実装した装置 |
| JP2007220090A (ja) * | 2005-12-30 | 2007-08-30 | Dassault Systemes | Plmデータベース内のオブジェクトを表示する処理および本処理を実装した装置 |
Family Cites Families (11)
| 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 |
| EP0156052B1 (en) * | 1984-03-23 | 1989-12-20 | International Business Machines Corporation | An interactive discharge system |
| 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 |
| US4888712A (en) * | 1987-11-04 | 1989-12-19 | Schlumberger Systems, Inc. | Guardband clipping method and apparatus for 3-D graphics display system |
| US5249264A (en) * | 1988-11-14 | 1993-09-28 | International Business Machines Corporation | Image display method and apparatus |
| US5003497A (en) * | 1988-12-15 | 1991-03-26 | Sun Micosystems Inc | Method for three-dimensional clip checking for computer graphics |
| US4982345A (en) * | 1989-01-23 | 1991-01-01 | International Business Machines Corporation | Interactive computer graphics display system processing method for identifying an operator selected displayed object |
| US5051737A (en) * | 1989-02-23 | 1991-09-24 | Silicon Graphics, Inc. | Efficient graphics process for clipping polygons |
| JPH06309425A (ja) * | 1990-10-12 | 1994-11-04 | Internatl Business Mach Corp <Ibm> | グラフィックディスプレイ装置及び方法 |
| JP2558984B2 (ja) * | 1991-03-12 | 1996-11-27 | 松下電器産業株式会社 | 3次元情報会話システム |
-
1992
- 1992-10-30 US US07/968,718 patent/US5563990A/en not_active Expired - Fee Related
-
1993
- 1993-08-24 JP JP5229597A patent/JP2667949B2/ja not_active Expired - Lifetime
- 1993-10-18 EP EP19930116778 patent/EP0595146A3/en not_active Withdrawn
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1040396A (ja) * | 1996-07-19 | 1998-02-13 | Nec Shizuoka Ltd | クリッピング回路 |
| JP2007213562A (ja) * | 2005-12-30 | 2007-08-23 | Dassault Systemes | Plmデータベース内のオブジェクトを選択する処理および本処理を実装した装置 |
| JP2007220089A (ja) * | 2005-12-30 | 2007-08-30 | Dassault Systemes | Plmデータベース内のオブジェクトを選択する処理および本処理を実装した装置 |
| JP2007220090A (ja) * | 2005-12-30 | 2007-08-30 | Dassault Systemes | Plmデータベース内のオブジェクトを表示する処理および本処理を実装した装置 |
| US9135372B2 (en) | 2005-12-30 | 2015-09-15 | Dassault Systemes | Process for selecting objects in a PLM database and apparatus implementing this process |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0595146A2 (en) | 1994-05-04 |
| JP2667949B2 (ja) | 1997-10-27 |
| US5563990A (en) | 1996-10-08 |
| EP0595146A3 (en) | 1994-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5613052A (en) | Method and apparatus for clipping and determining color factors for polygons | |
| US4888712A (en) | Guardband clipping method and apparatus for 3-D graphics display system | |
| JP3840014B2 (ja) | グラフィックス表示システムの走査変換実施装置 | |
| US5734806A (en) | Method and apparatus for determining graphical object visibility | |
| US7292242B1 (en) | Clipping with addition of vertices to existing primitives | |
| US5579454A (en) | Three dimensional graphics processing with pre-sorting of surface portions | |
| AU600515B2 (en) | Method and system for solid modelling | |
| US7307628B1 (en) | Diamond culling of small primitives | |
| US5926182A (en) | Efficient rendering utilizing user defined shields and windows | |
| Greene | Detecting Intersection of a Rectangular Solid and a Convex | |
| KR20110093404A (ko) | 3차원 그래픽스 랜더링 장치 및 그 방법 | |
| JPH02230470A (ja) | コンピユータグラフイツクス・デイスプレイシステム | |
| JP2572515B2 (ja) | 画素処理方法及び装置並びにグラフィックバッファ | |
| US5357600A (en) | Method and apparatus for the rendering of curved surfaces using a cone of normals | |
| US5003497A (en) | Method for three-dimensional clip checking for computer graphics | |
| JPH07104966A (ja) | 長方形の相対位置を素早く判定するためのシステムおよび方法 | |
| US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
| JP2667949B2 (ja) | ピック事象の処理方法及び処理装置 | |
| KR100298789B1 (ko) | 그래픽 처리에 있어서 클리핑 처리방법 | |
| JPH06215143A (ja) | グラフィックス・オブジェクト表現方法と装置 | |
| Yu | Efficient visibility processing for projective texture mapping | |
| US5649078A (en) | Efficient two-pass rasterization scheme utilizing visibility information | |
| US20050231533A1 (en) | Apparatus and method for performing divide by w operations in a graphics system | |
| KR100372901B1 (ko) | 지.에프-버퍼를 이용하여 광선추적법의 속도를 개선하는방법 | |
| KR100328593B1 (ko) | 3-d 그래픽용 고속 클립핑 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050615 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050628 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050628 |
|
| R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120708 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130708 Year of fee payment: 8 |