JPH05135147A - グラフイツクス・システムにおけるピツク方法および装置 - Google Patents
グラフイツクス・システムにおけるピツク方法および装置Info
- Publication number
- JPH05135147A JPH05135147A JP4066198A JP6619892A JPH05135147A JP H05135147 A JPH05135147 A JP H05135147A JP 4066198 A JP4066198 A JP 4066198A JP 6619892 A JP6619892 A JP 6619892A JP H05135147 A JPH05135147 A JP H05135147A
- Authority
- JP
- Japan
- Prior art keywords
- pick
- primitive
- pixel data
- pixel
- primitives
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
(57)【要約】
【目的】 グラフィックス・システムのピック方法にお
いて、ピック枠内に見えるものだけをピックするピック
方法を提供する。 【構成】 第1の処理で、ピック枠を横切り、ピック枠
内に見える可能性のあるプリミティブが選択され、選択
された各プリミティブに識別子としてピック・インデッ
クスが付けられる。第2の処理で、選択されたプリミテ
ィブのピック・インデックスが、フレーム・バッファ内
の領域に、画素データとして書き込まれる。このとき、
ピック枠内に見えるプリミティブのピック・インデック
スだけが書き込まれるようにするために、Zバッファを
用いて隠線/隠面消去を行なう。第3の処理では、ピッ
ク・インデックスが読み出され、ピック枠内に見えるプ
リミティブが決定される。この情報は、ピックされたプ
リミティブを通知するために使用される。
いて、ピック枠内に見えるものだけをピックするピック
方法を提供する。 【構成】 第1の処理で、ピック枠を横切り、ピック枠
内に見える可能性のあるプリミティブが選択され、選択
された各プリミティブに識別子としてピック・インデッ
クスが付けられる。第2の処理で、選択されたプリミテ
ィブのピック・インデックスが、フレーム・バッファ内
の領域に、画素データとして書き込まれる。このとき、
ピック枠内に見えるプリミティブのピック・インデック
スだけが書き込まれるようにするために、Zバッファを
用いて隠線/隠面消去を行なう。第3の処理では、ピッ
ク・インデックスが読み出され、ピック枠内に見えるプ
リミティブが決定される。この情報は、ピックされたプ
リミティブを通知するために使用される。
Description
【0001】
【産業上の利用分野】本発明は、グラフィックス・シス
テムにおいてピック情報を生成するための方法および装
置に関する。特にこのようなシステムにおいてピック枠
内に見えるものだけをピックすることができるピック方
法および装置に関する。
テムにおいてピック情報を生成するための方法および装
置に関する。特にこのようなシステムにおいてピック枠
内に見えるものだけをピックすることができるピック方
法および装置に関する。
【0002】
【従来の技術】対話型グラフィックス・システムは、表
示画面に描画するための出力機能と、対話を可能にする
ための入力機能の2つの一般的な機能を持つ。多くのグ
ラフィックス・システムでは、対話のために本質的な部
分は、ユーザがアイコンやテキスト等の画面に表示され
ているものを選択することによりアプリケーション・プ
ログラムに対して入力を行なうピック(指示選択)操作
である。代表的な方法は、ユーザがマウスまたは他のポ
インティング(指示)・デバイスを使って表示画像のあ
る部分の上にカーソルを置き、ポインティング・デバイ
スに付設されているアクチュエータを押して所望のもの
を選択する方法である。このようなピック方法は、米国
特許 No. 4,847,605(”グラフィックス・システムにお
けるピック方法”,Callahan 他)、米国特許 No. 4,87
0,599(”グラフィックス・ディスプレイ・システムの
ためのトラバーサル方法”,Hempel 他)、米国特許出
願 No.07/425,781(”階層グラフィックス構造を用いた
パイプライン方式のグラフィックス・システムのための
ピック機能”,Ebbers 他,1989 年 10 月 23 日出願,
この発明の EPO 出願は 公告 No. 425 173 として 1991
年 5 月 2 日に公告された)およびヨーロッパ特許公
告 No. 0 318 154(”コンピュータ・グラフィックス・
システムを操作するための方法”,Callahan 他)等の
文献に記載されている。なおこれらの特許および特許出
願の発明はすべて、本発明の譲受人が譲り受けている。
またこれらの特許および特許出願の明細書は、引用によ
り、本明細書にも組み込まれている。
示画面に描画するための出力機能と、対話を可能にする
ための入力機能の2つの一般的な機能を持つ。多くのグ
ラフィックス・システムでは、対話のために本質的な部
分は、ユーザがアイコンやテキスト等の画面に表示され
ているものを選択することによりアプリケーション・プ
ログラムに対して入力を行なうピック(指示選択)操作
である。代表的な方法は、ユーザがマウスまたは他のポ
インティング(指示)・デバイスを使って表示画像のあ
る部分の上にカーソルを置き、ポインティング・デバイ
スに付設されているアクチュエータを押して所望のもの
を選択する方法である。このようなピック方法は、米国
特許 No. 4,847,605(”グラフィックス・システムにお
けるピック方法”,Callahan 他)、米国特許 No. 4,87
0,599(”グラフィックス・ディスプレイ・システムの
ためのトラバーサル方法”,Hempel 他)、米国特許出
願 No.07/425,781(”階層グラフィックス構造を用いた
パイプライン方式のグラフィックス・システムのための
ピック機能”,Ebbers 他,1989 年 10 月 23 日出願,
この発明の EPO 出願は 公告 No. 425 173 として 1991
年 5 月 2 日に公告された)およびヨーロッパ特許公
告 No. 0 318 154(”コンピュータ・グラフィックス・
システムを操作するための方法”,Callahan 他)等の
文献に記載されている。なおこれらの特許および特許出
願の発明はすべて、本発明の譲受人が譲り受けている。
またこれらの特許および特許出願の明細書は、引用によ
り、本明細書にも組み込まれている。
【0003】
【発明が解決しようとする課題】実時間隠線/隠面消去
の出現により、従来のピック方法は今や不十分である。
なぜなら、従来のピック方法は、代表的なものは、2次
元(2D)の位置検査を利用しており、この方法では、
あるプリミティブから生成された表示が所定のピック枠
を横切っていたら、たとえその表示が他の表示によって
隠されていても、そのプリミティブがピックされるから
である。このような単純な平面的な検出方法では、ユー
ザの意図しない結果を生じる可能性がある。例えば、ユ
ーザが画面に表示されている航空機の胴体をピックしよ
うとしているとき、完全に隠れて見えない乗客の座席も
ピックされることがある。したがって、見えているもの
だけがピックされるようにする追加の選択性を付与する
ことが望まれている。
の出現により、従来のピック方法は今や不十分である。
なぜなら、従来のピック方法は、代表的なものは、2次
元(2D)の位置検査を利用しており、この方法では、
あるプリミティブから生成された表示が所定のピック枠
を横切っていたら、たとえその表示が他の表示によって
隠されていても、そのプリミティブがピックされるから
である。このような単純な平面的な検出方法では、ユー
ザの意図しない結果を生じる可能性がある。例えば、ユ
ーザが画面に表示されている航空機の胴体をピックしよ
うとしているとき、完全に隠れて見えない乗客の座席も
ピックされることがある。したがって、見えているもの
だけがピックされるようにする追加の選択性を付与する
ことが望まれている。
【0004】本発明は、表示画面に見えている描画プリ
ミティブに関するピック情報を、グラフィックス・アプ
リケーション・プログラムに知らせる方法と装置に関す
る。より具体的には、ピックされるための条件を、簡単
な2次元の位置検査から、可視性の検査を含むように厳
しくするものである。これにより、現在使用されている
ピック通知方法を、著じるしく改良することができる。
ミティブに関するピック情報を、グラフィックス・アプ
リケーション・プログラムに知らせる方法と装置に関す
る。より具体的には、ピックされるための条件を、簡単
な2次元の位置検査から、可視性の検査を含むように厳
しくするものである。これにより、現在使用されている
ピック通知方法を、著じるしく改良することができる。
【0005】
【課題を解決するための手段】本発明は、描画プリミテ
ィブが、ラスタ走査装置によって画素からなる画像とし
て表示されるために必要な画素データに変換されるグラ
フィックス・システムにおいて、ピック枠内に見えるプ
リミティブを決定するための方法および装置を提供す
る。
ィブが、ラスタ走査装置によって画素からなる画像とし
て表示されるために必要な画素データに変換されるグラ
フィックス・システムにおいて、ピック枠内に見えるプ
リミティブを決定するための方法および装置を提供す
る。
【0006】本発明によれば、各プリミティブは、互に
異なる値すなわち識別子が付けられる。これらのプリミ
ティブは、まず、生成される画素データが通常のカラー
値の代りにまたは通常のカラー値に加えて識別子を含む
点を除き通常の方法で、画素化(すなわち画素データに
変換)される。このプリミティブの識別子は、フレーム
・バッファまたは他のメモリ内の,ピック枠と同一の範
囲を占める1組の画素格納場所に書き込まれる。この処
理の最後に、ピック枠内に見えるプリミティブの識別子
だけが格納されたまま残るように、Zバッファを用いて
隠線/隠面消去を行なうことが好ましい。ピック枠の場
所に格納された識別子は、ピック枠内に見えるプリミテ
ィブを決定するために読み出される。
異なる値すなわち識別子が付けられる。これらのプリミ
ティブは、まず、生成される画素データが通常のカラー
値の代りにまたは通常のカラー値に加えて識別子を含む
点を除き通常の方法で、画素化(すなわち画素データに
変換)される。このプリミティブの識別子は、フレーム
・バッファまたは他のメモリ内の,ピック枠と同一の範
囲を占める1組の画素格納場所に書き込まれる。この処
理の最後に、ピック枠内に見えるプリミティブの識別子
だけが格納されたまま残るように、Zバッファを用いて
隠線/隠面消去を行なうことが好ましい。ピック枠の場
所に格納された識別子は、ピック枠内に見えるプリミテ
ィブを決定するために読み出される。
【0007】プリミティブの識別子の長さを短くするた
めに、平面的に(すわなち他のプリミティブによって隠
されているかいないかによらず)ピック枠を横切るプリ
ミティブだけを選択する予備的なパスを行なうことが好
ましい。これらの選択されたプリミティブには、識別子
(ここではまたピック・インデックスとも呼ぶ)が付け
られ、これらの識別子は、次のパスで、ピック枠の場所
に格納される。
めに、平面的に(すわなち他のプリミティブによって隠
されているかいないかによらず)ピック枠を横切るプリ
ミティブだけを選択する予備的なパスを行なうことが好
ましい。これらの選択されたプリミティブには、識別子
(ここではまたピック・インデックスとも呼ぶ)が付け
られ、これらの識別子は、次のパスで、ピック枠の場所
に格納される。
【0008】
1.序説 開示したピック方法は、グラフィックス・アプリケーシ
ョン・プログラムに、どの描画プリミティブがピック枠
を横切るかを知らせるための方法を提供する。アプリケ
ーション・プログラムに通知される内容により、次の3
つのピック通知モードがある。 1.ピック・ファースト・モード(ピック枠を横切る第
1番目の描画プリミティブが通知される。) 2.ピック・ラースト・モード(ピック枠を横切る最後
の描画プリミティブが通知される。) 3.ピック・オール・モード(ピック枠を横切るすべて
の描画プリミティブが通知される。)
ョン・プログラムに、どの描画プリミティブがピック枠
を横切るかを知らせるための方法を提供する。アプリケ
ーション・プログラムに通知される内容により、次の3
つのピック通知モードがある。 1.ピック・ファースト・モード(ピック枠を横切る第
1番目の描画プリミティブが通知される。) 2.ピック・ラースト・モード(ピック枠を横切る最後
の描画プリミティブが通知される。) 3.ピック・オール・モード(ピック枠を横切るすべて
の描画プリミティブが通知される。)
【0009】描画プリミティブは、先に表示されものが
後から表示されるものに隠されて見えなくなる可能性が
ある。例えば、最後に画素化されたプリミティブは、最
初に画素化されたプリミティブを覆い隠すことがある。
またZバッファ(奥行値)を利用すると、描画プリミテ
ィブの全体またはそのいくつかの部分の画素データを生
成しなくても済む場合がある。グラフィックス・アプリ
ケーション・プログラムおよび最終ユーザにとってさら
に便利であるようにするためには、表示画面上に実際に
見えるものだけを報告し、隠されているものは報告しな
い通知方法を提供する必要がある。このことは、高機能
グラフィックス・システムに求められる1つの重要な要
件である。
後から表示されるものに隠されて見えなくなる可能性が
ある。例えば、最後に画素化されたプリミティブは、最
初に画素化されたプリミティブを覆い隠すことがある。
またZバッファ(奥行値)を利用すると、描画プリミテ
ィブの全体またはそのいくつかの部分の画素データを生
成しなくても済む場合がある。グラフィックス・アプリ
ケーション・プログラムおよび最終ユーザにとってさら
に便利であるようにするためには、表示画面上に実際に
見えるものだけを報告し、隠されているものは報告しな
い通知方法を提供する必要がある。このことは、高機能
グラフィックス・システムに求められる1つの重要な要
件である。
【0010】2.第1実施例 第1実施例の全体構成を図1に示す。同図に示すよう
に、本発明を組み込んだグラフィックス・システム10
0は、システム制御プロセッサ(SCP)102を含
む。このシステム制御プロセッサ102は、バス106
を介して、グローバルなシステム・メモリ104に結合
されている。システム・メモリ104は、描画基本図形
の定義や付加的な属性(例えば色など)およびそれらの
描画基本図形が表示画のどこにどのように現われるべき
かを指定するために必要な変換マトリックス等を表示リ
ストを格納するためのランダム・アクセス・メモリ(R
AM)から構成される。この情報は、汎用のホスト・コ
ンピュータ(図示されていない)上で実行されているア
プリケーション・プログラムにより、適宜な通信手段
(図示されていない)を使って生成される。
に、本発明を組み込んだグラフィックス・システム10
0は、システム制御プロセッサ(SCP)102を含
む。このシステム制御プロセッサ102は、バス106
を介して、グローバルなシステム・メモリ104に結合
されている。システム・メモリ104は、描画基本図形
の定義や付加的な属性(例えば色など)およびそれらの
描画基本図形が表示画のどこにどのように現われるべき
かを指定するために必要な変換マトリックス等を表示リ
ストを格納するためのランダム・アクセス・メモリ(R
AM)から構成される。この情報は、汎用のホスト・コ
ンピュータ(図示されていない)上で実行されているア
プリケーション・プログラムにより、適宜な通信手段
(図示されていない)を使って生成される。
【0011】システム制御プロセッサ102は、グラフ
ィックス制御プロセッサ(GCP)108とも結合され
ている。グラフィックス制御プロセッサ(GCP)10
8には、RAMから構成されるローカル・メモリ110
と、ピックされたプリミティブについての情報を格納す
ることがその目的の1つであるビデオRAM(VRA
M)122が付設されている。グラフィックス制御プロ
セッサ108は、システム・メモリ104に格納されて
いる個々の描画基本図形を選択して、それを変換プロセ
ッサ(TrP)114(本明細書では変換パイプライン
とも呼ぶ)に渡す。変換プロセッサ(TrP)114
は、渡された描画基本図形を、ピック・モジュール11
6を介して変換プロセッサ114に結合された描画プロ
セッサ(DrP)118またはシェーディング(陰影を
つける)プロセッサ(ShP)120により受け入れら
れる形式に変換する。ピック・モジュール116は、描
画プロセッサ118に向けられた変換プロセッサ114
の出力を途中で調べて、平面的なピック(すなわち従来
の2次元の位置検査を用いたピック)が行なわれたか否
かを判断する。プロセッサ118と120は、バス10
6とフレーム・バッファ124に結合されている。
ィックス制御プロセッサ(GCP)108とも結合され
ている。グラフィックス制御プロセッサ(GCP)10
8には、RAMから構成されるローカル・メモリ110
と、ピックされたプリミティブについての情報を格納す
ることがその目的の1つであるビデオRAM(VRA
M)122が付設されている。グラフィックス制御プロ
セッサ108は、システム・メモリ104に格納されて
いる個々の描画基本図形を選択して、それを変換プロセ
ッサ(TrP)114(本明細書では変換パイプライン
とも呼ぶ)に渡す。変換プロセッサ(TrP)114
は、渡された描画基本図形を、ピック・モジュール11
6を介して変換プロセッサ114に結合された描画プロ
セッサ(DrP)118またはシェーディング(陰影を
つける)プロセッサ(ShP)120により受け入れら
れる形式に変換する。ピック・モジュール116は、描
画プロセッサ118に向けられた変換プロセッサ114
の出力を途中で調べて、平面的なピック(すなわち従来
の2次元の位置検査を用いたピック)が行なわれたか否
かを判断する。プロセッサ118と120は、バス10
6とフレーム・バッファ124に結合されている。
【0012】フレーム・バッファ124は、描画プロセ
ッサ118またはシェーディング・プロセッサ120に
よって生成された,ラスタ化された画素イメージを格納
するために使用される。シェーディング・プロセッサ1
20は、3次元の画素データの生成または多角形による
陰影づけのための色および奥行情報を補間するために、
従来と同様の方法で使用される。これに対して描画プロ
セッサ120は、シェーディングが必要でない2次元の
画素データの生成のために使用される。シェーディング
・プロセッサ120に付設されているZバッファ122
は、各画素の奥行情報を格納するために使用される。シ
ェーディング・プロセッサ120,Zバッファ122,
フレーム・バッファ124は、従来と同様に画素データ
の生成と格納のために使用される他に、本発明において
は、可視ピック情報(ピック枠を横切りかつピック枠内
で見えるプリミティブを知らせる情報)を生成するため
にも使用される。
ッサ118またはシェーディング・プロセッサ120に
よって生成された,ラスタ化された画素イメージを格納
するために使用される。シェーディング・プロセッサ1
20は、3次元の画素データの生成または多角形による
陰影づけのための色および奥行情報を補間するために、
従来と同様の方法で使用される。これに対して描画プロ
セッサ120は、シェーディングが必要でない2次元の
画素データの生成のために使用される。シェーディング
・プロセッサ120に付設されているZバッファ122
は、各画素の奥行情報を格納するために使用される。シ
ェーディング・プロセッサ120,Zバッファ122,
フレーム・バッファ124は、従来と同様に画素データ
の生成と格納のために使用される他に、本発明において
は、可視ピック情報(ピック枠を横切りかつピック枠内
で見えるプリミティブを知らせる情報)を生成するため
にも使用される。
【0013】前述したように、システム・メモリ104
には、描画基本図形すなわちプリミティブの表示リスト
が格納されており、これらのプリミティブはプロセッサ
114,118および120によって画素化され、生成
された画素データは表示のためにフレーム・バッファ1
24に格納される。図6に示すように、このリストは、
構造体A〜D(610〜640)を含む階層ネットワー
ク600として構成されている。構造体A〜Dの各々
は、1つまたは複数の構造体の要素から成る。すなわち
構造体A(610)は要素611〜615を含み、構造
体B(620)は要素621〜623を、構造体C(6
30)は要素631〜633を、さらに構造体D(64
0)は要素641〜643を含む。例えば、構造体Aが
椅子に対応し、構造体BとCが椅子の2本の脚に対応し
て2本の脚の各々に固有の位置および他の情報を含み、
構造体Dが2本の脚についての共通の情報を含む場合を
考えることができる。
には、描画基本図形すなわちプリミティブの表示リスト
が格納されており、これらのプリミティブはプロセッサ
114,118および120によって画素化され、生成
された画素データは表示のためにフレーム・バッファ1
24に格納される。図6に示すように、このリストは、
構造体A〜D(610〜640)を含む階層ネットワー
ク600として構成されている。構造体A〜Dの各々
は、1つまたは複数の構造体の要素から成る。すなわち
構造体A(610)は要素611〜615を含み、構造
体B(620)は要素621〜623を、構造体C(6
30)は要素631〜633を、さらに構造体D(64
0)は要素641〜643を含む。例えば、構造体Aが
椅子に対応し、構造体BとCが椅子の2本の脚に対応し
て2本の脚の各々に固有の位置および他の情報を含み、
構造体Dが2本の脚についての共通の情報を含む場合を
考えることができる。
【0014】各構造体は、図6において左から右に向っ
て1要素づつ処理される(これをトラバーサル処理と呼
ぶ)。要素612,614,623,632がそうであ
るように、処理される要素が構造体実行コマンドのとき
は、そのコマンドに指定されている構造体に処理がジャ
ンプし、ジャンプ先の構造体も同様に左から右に向って
処理され(その構造体に構造体実行コマンドがあればそ
の処理も含む)、処理が終了すと親構造体に戻る。この
実施例では、構造体Aがルートの構造体であり、構造体
B〜Dはルート・構造体Aにより(直接または間接に)
呼び出される下位構造体である。構造体のトラバーサル
処理の詳細は、本発明の1部を構成しないけれども、さ
らに詳しい情報は上記した Ebbers 等の出願や、提案さ
れている標準規格PHIGS(Programmer^s Hierarchi
cal Interactive Graphics Standard)について説明し
ている多数の出版物に見い出されるかもしれない。
て1要素づつ処理される(これをトラバーサル処理と呼
ぶ)。要素612,614,623,632がそうであ
るように、処理される要素が構造体実行コマンドのとき
は、そのコマンドに指定されている構造体に処理がジャ
ンプし、ジャンプ先の構造体も同様に左から右に向って
処理され(その構造体に構造体実行コマンドがあればそ
の処理も含む)、処理が終了すと親構造体に戻る。この
実施例では、構造体Aがルートの構造体であり、構造体
B〜Dはルート・構造体Aにより(直接または間接に)
呼び出される下位構造体である。構造体のトラバーサル
処理の詳細は、本発明の1部を構成しないけれども、さ
らに詳しい情報は上記した Ebbers 等の出願や、提案さ
れている標準規格PHIGS(Programmer^s Hierarchi
cal Interactive Graphics Standard)について説明し
ている多数の出版物に見い出されるかもしれない。
【0015】図2に示すように、フレーム・バッファ1
24は、第1の部分200と第2の部分210から構成
され、各部分には画面全体の画素データ(図示の実施例
では1,280×1,024画素)が格納される。(図
2は画面座標の見地から描かれており、フレーム・バッ
ファ124の行および列アドレスへの実際のマッピング
を表わしていない。行および列アドレスへのマッピング
は、本発明とは無関係であり、多様なやり方で行なうこ
とができる。)この技術分野において行なわれているよ
うに、フレーム・バッファの1方の部分200または2
10が表示(図示されていない)をリフレッシュするた
めのアクティブ・フレーム・バッファとして使用され、
他方の部分はデータは更新されるが表示をリフレッシュ
するためには使用されないインアクティブすなわちバッ
クグラウンドのフレーム・バッファとして使用される。
フレーム・バッファのどちらの部分200,210も、
システム100の必要にしたがって、アクティブからイ
ンアクティブに、またはその逆に切り替えられる。この
切替えを行なうための方法は、本発明に関係がない。以
下の説明では、フレーム・バッファの部分200が表示
をリフレッシュするたに使用されるアクティブな部分で
あり、フレーム・バッファの部分210がインアクティ
ブな部分で、本発明の方法により可視ピック情報を生成
するために使用されるものとしている。
24は、第1の部分200と第2の部分210から構成
され、各部分には画面全体の画素データ(図示の実施例
では1,280×1,024画素)が格納される。(図
2は画面座標の見地から描かれており、フレーム・バッ
ファ124の行および列アドレスへの実際のマッピング
を表わしていない。行および列アドレスへのマッピング
は、本発明とは無関係であり、多様なやり方で行なうこ
とができる。)この技術分野において行なわれているよ
うに、フレーム・バッファの1方の部分200または2
10が表示(図示されていない)をリフレッシュするた
めのアクティブ・フレーム・バッファとして使用され、
他方の部分はデータは更新されるが表示をリフレッシュ
するためには使用されないインアクティブすなわちバッ
クグラウンドのフレーム・バッファとして使用される。
フレーム・バッファのどちらの部分200,210も、
システム100の必要にしたがって、アクティブからイ
ンアクティブに、またはその逆に切り替えられる。この
切替えを行なうための方法は、本発明に関係がない。以
下の説明では、フレーム・バッファの部分200が表示
をリフレッシュするたに使用されるアクティブな部分で
あり、フレーム・バッファの部分210がインアクティ
ブな部分で、本発明の方法により可視ピック情報を生成
するために使用されるものとしている。
【0016】フレーム・バッファの各部分200,21
0は、画面領域202,212と画面外領域204,2
14から構成される。画面領域202,212には、フ
レーム・バッフの対応する部分200,210がアクテ
ィブのとき実際に表示される画素データが格納される。
それに対して画面外領域204,214は、ハッチ・パ
ターン,フォント(字体)等の格納のような補助的な用
途に使用される。
0は、画面領域202,212と画面外領域204,2
14から構成される。画面領域202,212には、フ
レーム・バッフの対応する部分200,210がアクテ
ィブのとき実際に表示される画素データが格納される。
それに対して画面外領域204,214は、ハッチ・パ
ターン,フォント(字体)等の格納のような補助的な用
途に使用される。
【0017】この技術分野において行なわれているよう
に、ユーザは、マウス(図示されていない)のような,
ピックしようとするものの上にピック枠を移動するため
のピック・デバイスを使って、画面上に表示されている
ものをピックする。したがって図2では、バックグラウ
ンド・フレーム・バッファ210の画面領域212内に
ピック枠216が示してある。アクティブなフレーム・
バッファ200の画面領域202内の対応するピック枠
も同じように位置決めされるが、図2には示されていな
い。ピック枠216は、例えば16×16画素の正方形
のように、任意の適宜な大きさに設定することができ
る。
に、ユーザは、マウス(図示されていない)のような,
ピックしようとするものの上にピック枠を移動するため
のピック・デバイスを使って、画面上に表示されている
ものをピックする。したがって図2では、バックグラウ
ンド・フレーム・バッファ210の画面領域212内に
ピック枠216が示してある。アクティブなフレーム・
バッファ200の画面領域202内の対応するピック枠
も同じように位置決めされるが、図2には示されていな
い。ピック枠216は、例えば16×16画素の正方形
のように、任意の適宜な大きさに設定することができ
る。
【0018】後述するように、バックグラウンド・フレ
ーム・バッファ210は、ピック枠216内の各画素デ
ータの各格納場所にプリミティブの対応する画素の実際
のカラー値ではなくピック・インデックスを書き込むこ
とによりピック・データを生成するために使用される。
フレーム・バッファ124のバックグラウンド部210
の内容が壊れたままになるのを避けるために、ピック枠
216内に格納されているカラー値は、ピック・プロセ
スが終了したときに復元できるように、画面外領域21
4の退避領域218に格納される。(フレーム・バッフ
ァ124のアクティブな部分200の画面外領域204
内にも、この部分がバックグラウンド部分になったとき
に使用するために、同様の退避領域208が設けられて
いる。)ピック枠216から画面外領域の退避領域21
8へのこの転送は、従来技術において良く知られている
BitBLT(ビット・ブロック転送)等の適宜な方法
により行なうことができる。
ーム・バッファ210は、ピック枠216内の各画素デ
ータの各格納場所にプリミティブの対応する画素の実際
のカラー値ではなくピック・インデックスを書き込むこ
とによりピック・データを生成するために使用される。
フレーム・バッファ124のバックグラウンド部210
の内容が壊れたままになるのを避けるために、ピック枠
216内に格納されているカラー値は、ピック・プロセ
スが終了したときに復元できるように、画面外領域21
4の退避領域218に格納される。(フレーム・バッフ
ァ124のアクティブな部分200の画面外領域204
内にも、この部分がバックグラウンド部分になったとき
に使用するために、同様の退避領域208が設けられて
いる。)ピック枠216から画面外領域の退避領域21
8へのこの転送は、従来技術において良く知られている
BitBLT(ビット・ブロック転送)等の適宜な方法
により行なうことができる。
【0019】図3は画面の一部(バックグラウンド・フ
レーム・バッファ210の画面領域212内に格納され
ている状態)を示す。同図に示すように、画面のこの部
分には、グラフィックス・プリミティブ301〜305
に対応するものが表示される。これらのプリミティブの
うち301,304および305は線分であり、302
と303はフィルされた4角の多角形である。各プリミ
ティブは、画素化処理の間に、ラスタ化すなわち1組の
画素データに変換される。生成された画素データはフレ
ーム・バッファ124に書き込まれ、他のプリミティブ
により覆い隠されなければ画面に表示される。画素デー
タがフレーム・バッファ124に書き込まれて画面に表
示されるかどうかを判断するために、プリミティブ30
1〜305を構成する各画素には奥行値が付加される。
ここでは説明のために、奥行値は大きいほど視点(見る
者の位置を示す)に近い位置を表わすものとする。望む
なら、逆すなわち大きいほど視点から遠い位置を表わす
ようにすることもできる。初期状態では、Zバッファ1
22およびフレーム・バッファ内のすべての画素データ
格納場所はゼロにセットされる。プリミティブの各画素
に対してカラー値と奥行値が生成される。ある画素に対
して生成された奥行値が、Zバッファに現在格納されて
いるその画素位置の奥行値よりも大きいときは、フレー
ム・バッファ124とZバッファ122が両方とも更新
される。なぜなら新しく生成された画素データは、現在
の画素データにより表わされるものよりも視点に近いも
のを表わすからである。反対にある画素に対して生成さ
れた奥行値が、Zバッファに現在格納されている奥行値
よりも小さいときは、フレーム・バッファ124もZバ
ッファも更新されない。なぜなら新しく生成された画素
データは、フレーム・バッファおよびZバッファ内に現
在格納されている画素データにより表わされるものより
も視点から遠いものを表わし、視点に近いものによって
覆い隠されるからである。
レーム・バッファ210の画面領域212内に格納され
ている状態)を示す。同図に示すように、画面のこの部
分には、グラフィックス・プリミティブ301〜305
に対応するものが表示される。これらのプリミティブの
うち301,304および305は線分であり、302
と303はフィルされた4角の多角形である。各プリミ
ティブは、画素化処理の間に、ラスタ化すなわち1組の
画素データに変換される。生成された画素データはフレ
ーム・バッファ124に書き込まれ、他のプリミティブ
により覆い隠されなければ画面に表示される。画素デー
タがフレーム・バッファ124に書き込まれて画面に表
示されるかどうかを判断するために、プリミティブ30
1〜305を構成する各画素には奥行値が付加される。
ここでは説明のために、奥行値は大きいほど視点(見る
者の位置を示す)に近い位置を表わすものとする。望む
なら、逆すなわち大きいほど視点から遠い位置を表わす
ようにすることもできる。初期状態では、Zバッファ1
22およびフレーム・バッファ内のすべての画素データ
格納場所はゼロにセットされる。プリミティブの各画素
に対してカラー値と奥行値が生成される。ある画素に対
して生成された奥行値が、Zバッファに現在格納されて
いるその画素位置の奥行値よりも大きいときは、フレー
ム・バッファ124とZバッファ122が両方とも更新
される。なぜなら新しく生成された画素データは、現在
の画素データにより表わされるものよりも視点に近いも
のを表わすからである。反対にある画素に対して生成さ
れた奥行値が、Zバッファに現在格納されている奥行値
よりも小さいときは、フレーム・バッファ124もZバ
ッファも更新されない。なぜなら新しく生成された画素
データは、フレーム・バッファおよびZバッファ内に現
在格納されている画素データにより表わされるものより
も視点から遠いものを表わし、視点に近いものによって
覆い隠されるからである。
【0020】その具体的な例として、図3に示すよう
に、プリミティブ301〜305を構成する画素が次の
ような奥行値を持つとする。
に、プリミティブ301〜305を構成する画素が次の
ような奥行値を持つとする。
【0021】奥行値をこのように設定すると、プリミテ
ィブ301〜305は、隠したり隠されたりして、図3
に示すような関係になる。(プリミティブ301は隠さ
れない。なぜなら他のプリミティブ302〜305より
も視点に近いからである。)プリミティブが画素データ
に変換される順番に依存して、プリミティブ302〜3
05の隠される部分は、Zバッファ122およびフレー
ム・バッファ124に書き込まれないか、もし書き込ま
れても,その後に変換される,視点により近い位置を表
わす奥行値を持つ画素により上書きされる。
ィブ301〜305は、隠したり隠されたりして、図3
に示すような関係になる。(プリミティブ301は隠さ
れない。なぜなら他のプリミティブ302〜305より
も視点に近いからである。)プリミティブが画素データ
に変換される順番に依存して、プリミティブ302〜3
05の隠される部分は、Zバッファ122およびフレー
ム・バッファ124に書き込まれないか、もし書き込ま
れても,その後に変換される,視点により近い位置を表
わす奥行値を持つ画素により上書きされる。
【0022】上記の説明は、従来のZバッファを用いる
隠線/隠面消去(HLHSR)の概要である。従来技術
のところで説明したように、従来のピック方法をプリミ
ティブの識別のために使用すると、プリミティブのいく
つかはHLHSRのためにピック枠内で見えない可能性
があるため問題が生じる。すなわち図3に示すように、
プリミティブ301〜305のすべてが、画素化により
生成される画素がピック枠の境界内に入るという意味に
おいてピック枠を横切る。しかしながら、ピック枠21
6内の他のプリミティブの存在のために、図示の場合に
おけるプリミティブ304のように、いくつかのプリミ
ティブがピック枠内で見えない可能性がある。ピック・
デバイスを操作するユーザは、通常、ピック枠216内
に実際に見えるプリミティブだけをピックしようとす
る。しかしながら、可視性を考慮に入れない簡単な2次
元の位置検査では、可視プリミティブ301〜303お
よび305と共に、ピック枠216内で見えないプリミ
ティブ304もピックされる。
隠線/隠面消去(HLHSR)の概要である。従来技術
のところで説明したように、従来のピック方法をプリミ
ティブの識別のために使用すると、プリミティブのいく
つかはHLHSRのためにピック枠内で見えない可能性
があるため問題が生じる。すなわち図3に示すように、
プリミティブ301〜305のすべてが、画素化により
生成される画素がピック枠の境界内に入るという意味に
おいてピック枠を横切る。しかしながら、ピック枠21
6内の他のプリミティブの存在のために、図示の場合に
おけるプリミティブ304のように、いくつかのプリミ
ティブがピック枠内で見えない可能性がある。ピック・
デバイスを操作するユーザは、通常、ピック枠216内
に実際に見えるプリミティブだけをピックしようとす
る。しかしながら、可視性を考慮に入れない簡単な2次
元の位置検査では、可視プリミティブ301〜303お
よび305と共に、ピック枠216内で見えないプリミ
ティブ304もピックされる。
【0023】開示した可視プリミティブを決定しピック
するための方法は、本実施例では3段階の処理として実
現される。最初の2段階は、フレーム・バッファ124
内にピック枠を横切る可視プリミティブを表わすインデ
ックス(ピック・インデックスと呼ぶ)を格納するため
に使われる。第3のパスは、フレーム・バッファ124
からピック・インデックスを読み出し、ピック情報をホ
ストに返すために使われる。開示した実施例における最
初の2パスは、本発明の方法がシステム100の既存の
ハードウェア上で動作するようにするために、2パスに
分けられている。しかしながら一般的には、フレーム・
バッファにピック・インデックスを格納するために、1
パスしか必要でない。
するための方法は、本実施例では3段階の処理として実
現される。最初の2段階は、フレーム・バッファ124
内にピック枠を横切る可視プリミティブを表わすインデ
ックス(ピック・インデックスと呼ぶ)を格納するため
に使われる。第3のパスは、フレーム・バッファ124
からピック・インデックスを読み出し、ピック情報をホ
ストに返すために使われる。開示した実施例における最
初の2パスは、本発明の方法がシステム100の既存の
ハードウェア上で動作するようにするために、2パスに
分けられている。しかしながら一般的には、フレーム・
バッファにピック・インデックスを格納するために、1
パスしか必要でない。
【0024】この3段階の可視プリミティブ・ピック方
法は、次のとおりである。 a.第1パス 図1と4に示すように、システム制御プロセッサ(SC
P)102は、グラフィックス制御プロセッサ(GC
P)108に対し、アドレス・ポインタ(PTR)(図
4)をシステム・メモリ104の格納場所400に設定
して”可視ピック・トラバーサル”割込みをかけること
により、第1パスを開始する。グラフィックス制御プロ
セッサ(GCP)108は、すべてのピックされたプリ
ミティブに対して、ピック・パス(経路)データを、シ
ステム・メモリ104内のPTR+4番地から始まるピ
ック・パス・データ・ブロック401(最大32ブロッ
クまで)内に格納する。描画プロセッサ118は、その
後、格納場所400にピック・フラグワードを格納す
る。
法は、次のとおりである。 a.第1パス 図1と4に示すように、システム制御プロセッサ(SC
P)102は、グラフィックス制御プロセッサ(GC
P)108に対し、アドレス・ポインタ(PTR)(図
4)をシステム・メモリ104の格納場所400に設定
して”可視ピック・トラバーサル”割込みをかけること
により、第1パスを開始する。グラフィックス制御プロ
セッサ(GCP)108は、すべてのピックされたプリ
ミティブに対して、ピック・パス(経路)データを、シ
ステム・メモリ104内のPTR+4番地から始まるピ
ック・パス・データ・ブロック401(最大32ブロッ
クまで)内に格納する。描画プロセッサ118は、その
後、格納場所400にピック・フラグワードを格納す
る。
【0025】また図5にも示すように、フラグワード4
00に続くピック・パス・データ・ブロック401は、
次のように構成されている。 1.ヘッダー 501(このブロック内のバイト数)
(1つの整数) 2.ビユー・インデックス 502(0から63)(1
つの整数) 3.コンポジット・モデリング変換マトリックス 50
3(16個の浮動小数点数) 4.ピック・パス・デプスのレベルL 504(>=
1)(1つの整数) 5.格納場所504に格納されている数Lにより示され
るレベルに対するピック・パス・データ 505
00に続くピック・パス・データ・ブロック401は、
次のように構成されている。 1.ヘッダー 501(このブロック内のバイト数)
(1つの整数) 2.ビユー・インデックス 502(0から63)(1
つの整数) 3.コンポジット・モデリング変換マトリックス 50
3(16個の浮動小数点数) 4.ピック・パス・デプスのレベルL 504(>=
1)(1つの整数) 5.格納場所504に格納されている数Lにより示され
るレベルに対するピック・パス・データ 505
【0026】最下位レベルから最上位レベルまでの各レ
ベルに対するピック・パス・データ505は、それぞれ 1.構造体ID 506(1つの整数) 2.ピックID 507(1つの整数) 3.ラベルID 508(1つの整数) 4.構造体の要素番号 509(1つの整数) を含む。
ベルに対するピック・パス・データ505は、それぞれ 1.構造体ID 506(1つの整数) 2.ピックID 507(1つの整数) 3.ラベルID 508(1つの整数) 4.構造体の要素番号 509(1つの整数) を含む。
【0027】これらの数は、本発明の一部を構成するも
のではない。各数の意味は前述したEbbers 等の出願に
説明されている。ブロック401内に格納されたピック
・パス・データは、アプリケーション・プログラムにピ
ック情報を知らせるために使われる。
のではない。各数の意味は前述したEbbers 等の出願に
説明されている。ブロック401内に格納されたピック
・パス・データは、アプリケーション・プログラムにピ
ック情報を知らせるために使われる。
【0028】各ピック・パス・データ・ブロック401
は、第1のトラバーサルにおいてピックされたプリミテ
ィブ(より詳しくは、図6に示すような1つの構造体要
素)に対応する。なぜなら、それらのプリミティブに対
応する表示は、ピック枠216を横切るからである。各
ブロック401にはピック・インデックスIが付けられ
る。ピック・インデックスIは、この実施例では、1か
ら32までの範囲の値である。
は、第1のトラバーサルにおいてピックされたプリミテ
ィブ(より詳しくは、図6に示すような1つの構造体要
素)に対応する。なぜなら、それらのプリミティブに対
応する表示は、ピック枠216を横切るからである。各
ブロック401にはピック・インデックスIが付けられ
る。ピック・インデックスIは、この実施例では、1か
ら32までの範囲の値である。
【0029】第1および第2のパスでは、検出可能性
(すなわちそのプリミティブが検出されるための条件を
満足しているか否か)は無視される。検出可能でないプ
リミティブも、検出可能なプリミティブの可視性に影響
を及ぼす可能性がある。第3パスでは、検出可能でない
プリミティブは報告されない。
(すなわちそのプリミティブが検出されるための条件を
満足しているか否か)は無視される。検出可能でないプ
リミティブも、検出可能なプリミティブの可視性に影響
を及ぼす可能性がある。第3パスでは、検出可能でない
プリミティブは報告されない。
【0030】Ebbers 等の同じく審査中の出願にもっと
詳しく説明されているように、このトラバースの間に、
グラフィックス制御プロセッサ108はまたVRAM1
12内に構造体を作る。すなわち図7に示すように、グ
ラフィックス制御プロセッサ108は、アトリビュート
(属性)スタック710を維持している。アトリビュー
ト・スタック710の各行711は、構造体のトラバー
サル処理の間に構造体実行コマンド(図6)に遭偶した
とき、システムの状態を格納するために用いられる。ス
タック710は、構造体実行コマンドがあったときに書
き込まれ(すなわちプッシュされ)、そのコマンドの実
行が終了したときに読み出される(すなわちポップされ
る)。カレント・ポインタ(図7)は、スタック710
の現在行711を指し示す。
詳しく説明されているように、このトラバースの間に、
グラフィックス制御プロセッサ108はまたVRAM1
12内に構造体を作る。すなわち図7に示すように、グ
ラフィックス制御プロセッサ108は、アトリビュート
(属性)スタック710を維持している。アトリビュー
ト・スタック710の各行711は、構造体のトラバー
サル処理の間に構造体実行コマンド(図6)に遭偶した
とき、システムの状態を格納するために用いられる。ス
タック710は、構造体実行コマンドがあったときに書
き込まれ(すなわちプッシュされ)、そのコマンドの実
行が終了したときに読み出される(すなわちポップされ
る)。カレント・ポインタ(図7)は、スタック710
の現在行711を指し示す。
【0031】VRAM112にはまたピック・エコー領
域720が取られる。ピック・エコー領域720の連続
した行721は、ピックされたプリミティブをユーザに
エコー表示する(例えばピックされたプリミティブをハ
イライト表示する)ために使用される情報を含む。平面
的なピックが検出されると、カレント・ポインタによっ
て指し示されるアトリビュート・スタック710の行7
11が、ピック・エコー領域720内の次の使用可能な
行721にコピーされる。したがってピック・エコー領
域の各行721は、ピックされた各プリミティブをエコ
ー表示するための情報を含む。本実施例では、ピック・
エコー領域720は32の行721を含む。しかしなが
ら、もし望むなら、行の数は変えることができる。
域720が取られる。ピック・エコー領域720の連続
した行721は、ピックされたプリミティブをユーザに
エコー表示する(例えばピックされたプリミティブをハ
イライト表示する)ために使用される情報を含む。平面
的なピックが検出されると、カレント・ポインタによっ
て指し示されるアトリビュート・スタック710の行7
11が、ピック・エコー領域720内の次の使用可能な
行721にコピーされる。したがってピック・エコー領
域の各行721は、ピックされた各プリミティブをエコ
ー表示するための情報を含む。本実施例では、ピック・
エコー領域720は32の行721を含む。しかしなが
ら、もし望むなら、行の数は変えることができる。
【0032】グラフィックス制御プロセッサ108は、
システム・メモリ104に格納されているバッファ・リ
ストの全体をトラバーサル処理する。このバッファ・リ
ストは、描画プロセッサ118を意図された送り先とす
る,図6に示す構造体のネットワーク600と同様の構
造体のネットワークを含む。このようにするのは、図示
のシステム100では、シェーディング・プロセッサ・
コマンドがグラフィックス制御プロセッサ108に対し
てピック割込みを発生せず、そのためシステム・メモリ
104内にピック・パスを生成し、かつVRAM112
内にピック・エコー領域720(図7)を作成するため
にも、あたかも描画プロセッサ118に対してそうする
かのように画素化処理を行なわなければならないからで
ある。データの送り先は描画プロセッサ118である
が、描画プロセッサにデータは送られない。なぜなら、
このパスでは、画素データは必要でないからである。こ
のように描画プロセッサにデータを送らないようにする
のは、性能の向上を図るためである。ピック・モジュー
ル116は、平面ピックが検出されると、データがグラ
フィックス制御プロセッサ108から送出されないよう
するためにグラフィックス制御プロセッサに割り込みを
かけるように設定されている。さらにこのトラバーサル
処理の間の処理効率を高めるために、変換プロセッサ1
14に対するクリッピング(切取り)の境界はピック枠
216に合わせて設定される。
システム・メモリ104に格納されているバッファ・リ
ストの全体をトラバーサル処理する。このバッファ・リ
ストは、描画プロセッサ118を意図された送り先とす
る,図6に示す構造体のネットワーク600と同様の構
造体のネットワークを含む。このようにするのは、図示
のシステム100では、シェーディング・プロセッサ・
コマンドがグラフィックス制御プロセッサ108に対し
てピック割込みを発生せず、そのためシステム・メモリ
104内にピック・パスを生成し、かつVRAM112
内にピック・エコー領域720(図7)を作成するため
にも、あたかも描画プロセッサ118に対してそうする
かのように画素化処理を行なわなければならないからで
ある。データの送り先は描画プロセッサ118である
が、描画プロセッサにデータは送られない。なぜなら、
このパスでは、画素データは必要でないからである。こ
のように描画プロセッサにデータを送らないようにする
のは、性能の向上を図るためである。ピック・モジュー
ル116は、平面ピックが検出されると、データがグラ
フィックス制御プロセッサ108から送出されないよう
するためにグラフィックス制御プロセッサに割り込みを
かけるように設定されている。さらにこのトラバーサル
処理の間の処理効率を高めるために、変換プロセッサ1
14に対するクリッピング(切取り)の境界はピック枠
216に合わせて設定される。
【0033】ピックされたすべてのプリミティブに対し
て、ピック・パス情報が、システム・メモリ104内
に、図4および5に示すように格納される。またVRA
M112内のアトリビュート・スタック710(図7)
のカレント行711が、ピック・エコー領域720内の
次の使用可能な行721にコピーされる。このようにし
て、すべてのピックされたプリミティブを再描画するた
めに必要な情報のリストが作成される。ピックできるプ
リミティブの数は32個(ピック・セイブ情報のために
割り当てられたピック・エコー領域720のVRAM行
721の数)までである。この上限に対する制約は、使
用できるVRAMの領域の大きさだけである。ピック・
エコー領域720は、行721の数が32に制限されて
いるので、システム・メモリ104内の表示リストの第
1パスのトラバーサルは、ピックされたプリミティブの
数がこの上限に達すると、途中で終了する。
て、ピック・パス情報が、システム・メモリ104内
に、図4および5に示すように格納される。またVRA
M112内のアトリビュート・スタック710(図7)
のカレント行711が、ピック・エコー領域720内の
次の使用可能な行721にコピーされる。このようにし
て、すべてのピックされたプリミティブを再描画するた
めに必要な情報のリストが作成される。ピックできるプ
リミティブの数は32個(ピック・セイブ情報のために
割り当てられたピック・エコー領域720のVRAM行
721の数)までである。この上限に対する制約は、使
用できるVRAMの領域の大きさだけである。ピック・
エコー領域720は、行721の数が32に制限されて
いるので、システム・メモリ104内の表示リストの第
1パスのトラバーサルは、ピックされたプリミティブの
数がこの上限に達すると、途中で終了する。
【0034】b.第2パス グラフィックス制御プロセッサ108は、第2パスを開
始する前に、描画プロセッサ118に対して、バックグ
ラウンド・フレーム・バッファ210内のピック枠21
6内の最初の8つのビット平面の画素データを、画面外
の退避領域218(図2)に、BitBLTにより転送
するように指示する。転送後、ピック枠216内のこれ
らのビット平面とZバッファ122内の対応する格納領
域は、ゼロにクリアされる。本発明の可視ピック法で
は、最小限構成のシステムにおいても働くことを保証す
るために、これよりも多くのビット平面が使用できる場
合にも、最初の8つのビット平面だけを使用するのが好
ましい。
始する前に、描画プロセッサ118に対して、バックグ
ラウンド・フレーム・バッファ210内のピック枠21
6内の最初の8つのビット平面の画素データを、画面外
の退避領域218(図2)に、BitBLTにより転送
するように指示する。転送後、ピック枠216内のこれ
らのビット平面とZバッファ122内の対応する格納領
域は、ゼロにクリアされる。本発明の可視ピック法で
は、最小限構成のシステムにおいても働くことを保証す
るために、これよりも多くのビット平面が使用できる場
合にも、最初の8つのビット平面だけを使用するのが好
ましい。
【0035】グラフィックス制御プロセッサ108は、
次に、Zバッファを参照して、ピック枠内の可視プリミ
ティブのピック・インデックスを、バックグラウンド・
フレーム・バッファ210内のピック枠216内に書き
込む。そのためグラフィックス制御プロセッサ108
は、ピック・モジュール116を動作不可にし、第1バ
スで上記のようにしてVRAMのピック・エコー領域7
20に格納された,ピックされた描画プリミティブを画
素化し、その画素データを描画プロセッサ118および
シェーディング・プロセッサ120に送る。グラフィッ
クス制御プロセッサ108は、このとき、ピック枠21
6内の各画素の画素データに、カラー・インデックスで
はなくピック・インデックスが書き込まれるように強制
する。
次に、Zバッファを参照して、ピック枠内の可視プリミ
ティブのピック・インデックスを、バックグラウンド・
フレーム・バッファ210内のピック枠216内に書き
込む。そのためグラフィックス制御プロセッサ108
は、ピック・モジュール116を動作不可にし、第1バ
スで上記のようにしてVRAMのピック・エコー領域7
20に格納された,ピックされた描画プリミティブを画
素化し、その画素データを描画プロセッサ118および
シェーディング・プロセッサ120に送る。グラフィッ
クス制御プロセッサ108は、このとき、ピック枠21
6内の各画素の画素データに、カラー・インデックスで
はなくピック・インデックスが書き込まれるように強制
する。
【0036】第2パスの終わりには、ピック枠216内
に図8に示すような値が格納される。これらの値は、ピ
ック枠内に実際に見えるプリミティブ301〜303お
よび305のピック・インデックスである。プリミティ
ブ304もピック枠216を横切るが、先に描画される
プリミティブ301〜303の背後に隠れるので、ピッ
ク枠内では見えない。その結果、プリミティブ304の
ピック・インデックスは、フレーム・バッファ124に
書き込まれない。
に図8に示すような値が格納される。これらの値は、ピ
ック枠内に実際に見えるプリミティブ301〜303お
よび305のピック・インデックスである。プリミティ
ブ304もピック枠216を横切るが、先に描画される
プリミティブ301〜303の背後に隠れるので、ピッ
ク枠内では見えない。その結果、プリミティブ304の
ピック・インデックスは、フレーム・バッファ124に
書き込まれない。
【0037】c.第3パス 第2パスにおいて、すべてのピックされた描画プリミテ
ィブが、カラー値の代わりにピック・インデックスを使
って再描画された後、グラフィックス制御プロセッサ1
08は、パイプライン114を通してシェーディング・
プロセッサ120に特別の同期コマンドを送り、肯定応
答を待つ。この肯定応答は、シェーディング・プロセッ
サ120によりフレーム・バッファ124へのすべての
描画が完了されたことを保証する。
ィブが、カラー値の代わりにピック・インデックスを使
って再描画された後、グラフィックス制御プロセッサ1
08は、パイプライン114を通してシェーディング・
プロセッサ120に特別の同期コマンドを送り、肯定応
答を待つ。この肯定応答は、シェーディング・プロセッ
サ120によりフレーム・バッファ124へのすべての
描画が完了されたことを保証する。
【0038】グラフィックス制御プロセッサ108は次
に、描画プロセッサ118に対して特別の画素読出しコ
マンドを送り、ピック枠216内のデータを読み出し、
32ビットのフラグワード400の,ピック枠内の可視
プリミティブのピック・インデックス値に対応するビッ
トを1にセットするように命令する。これにより、例え
ば図8に示すピック・インデックス値のパターンに対す
るフラグワード400は、図9に示すようになる。フラ
グワード400は次にシステム・メモリ104内のピッ
ク・パス・データ・ブロック401の格納領域の直前の
場所(図4)に格納される。
に、描画プロセッサ118に対して特別の画素読出しコ
マンドを送り、ピック枠216内のデータを読み出し、
32ビットのフラグワード400の,ピック枠内の可視
プリミティブのピック・インデックス値に対応するビッ
トを1にセットするように命令する。これにより、例え
ば図8に示すピック・インデックス値のパターンに対す
るフラグワード400は、図9に示すようになる。フラ
グワード400は次にシステム・メモリ104内のピッ
ク・パス・データ・ブロック401の格納領域の直前の
場所(図4)に格納される。
【0039】画素読出しコマンドはまた、描画プロセッ
サ118に、画面外退避領域からデータを読み出して、
フレーム・バッファ124の可視ピックにより壊された
領域のデータを復元するように命令する。
サ118に、画面外退避領域からデータを読み出して、
フレーム・バッファ124の可視ピックにより壊された
領域のデータを復元するように命令する。
【0040】グラフィックス制御プロセッサ108は、
次に、システム制御プロセッサ102に対して”可視ピ
ック処理完了”割込みをかける。
次に、システム制御プロセッサ102に対して”可視ピ
ック処理完了”割込みをかける。
【0041】システム制御プロセッサ102は、フラグ
ワード400を使って、可視ピック処理の結果について
ホストに通知するための情報を組み立てる。ピック・フ
ァースト・モード(ピック枠を横切る第1番目の描画プ
リミティブを通知するモード)では、最上位のアクティ
ブなフラグワード・ビットに対応するピック・パス・デ
ータ・ブロック401(図4)が通知される。ピック・
ラースト・モード(ピック枠を横切る最後の描画プリミ
ティブを通知するモード)では、最下位のアクティブな
フラグワード・ビットに対応するピック・パス・データ
・ブロック401が通知される。ピック・オール・モー
ド(ピック枠を横切るすべての描画プリミティブを通知
するモード)では、すべてのアクティブなフラグワード
・ビットに対応するピック・パス・データ・ブロック4
01が通知される。ピック・オール・モードでは、ピッ
ク・パス・データ・ブロック401を、フラグワード4
00のアクティブ・ビットにしたがってパックする(す
なわち、見えないプリミティブロックを除く)ことが好
ましい。
ワード400を使って、可視ピック処理の結果について
ホストに通知するための情報を組み立てる。ピック・フ
ァースト・モード(ピック枠を横切る第1番目の描画プ
リミティブを通知するモード)では、最上位のアクティ
ブなフラグワード・ビットに対応するピック・パス・デ
ータ・ブロック401(図4)が通知される。ピック・
ラースト・モード(ピック枠を横切る最後の描画プリミ
ティブを通知するモード)では、最下位のアクティブな
フラグワード・ビットに対応するピック・パス・データ
・ブロック401が通知される。ピック・オール・モー
ド(ピック枠を横切るすべての描画プリミティブを通知
するモード)では、すべてのアクティブなフラグワード
・ビットに対応するピック・パス・データ・ブロック4
01が通知される。ピック・オール・モードでは、ピッ
ク・パス・データ・ブロック401を、フラグワード4
00のアクティブ・ビットにしたがってパックする(す
なわち、見えないプリミティブロックを除く)ことが好
ましい。
【0042】エコー表示がアクティブになっているとき
は、グラフィックス制御プロセッサ108はさらに、可
視ピック・トラバーサルの第1パスで見つけ出され,ピ
ック・エコー領域720に格納されたすべてのプリミテ
ィブ721(図7)に対する処理を行なうエコー・パス
を開始する。このエコー・パスでは、フラグワード40
0を調べることにより、各プリミティブ721に対して
エコー表示をしなければならないかスキップすべきかを
決定する。
は、グラフィックス制御プロセッサ108はさらに、可
視ピック・トラバーサルの第1パスで見つけ出され,ピ
ック・エコー領域720に格納されたすべてのプリミテ
ィブ721(図7)に対する処理を行なうエコー・パス
を開始する。このエコー・パスでは、フラグワード40
0を調べることにより、各プリミティブ721に対して
エコー表示をしなければならないかスキップすべきかを
決定する。
【0043】3.第2実施例 第1実施例は、検出可能性の条件に可視性を含めるため
の、処理速度の速い手段を提供する。次に性能は多少低
下するが、資源の使用を少なくすることができるもう1
つの方法を説明する。この方法によれば、ピック・オー
ル・モードにおいて収容できる要素の数が減少する代り
に、可視ピック検出のために必要な時間が短かくなる。
第1実施例は、可視ピックされる可能性のあるプリミテ
ィブのデータをピック・エコー領域720(図7)に格
納するために、VRAM112(図1)を使用する。こ
れに対して第2実施例は、それらのプリミティブに対す
るインデックス・テーブル1100(図11)を使用す
る。第2実施例の方法も、次の3つのパスを含む。
の、処理速度の速い手段を提供する。次に性能は多少低
下するが、資源の使用を少なくすることができるもう1
つの方法を説明する。この方法によれば、ピック・オー
ル・モードにおいて収容できる要素の数が減少する代り
に、可視ピック検出のために必要な時間が短かくなる。
第1実施例は、可視ピックされる可能性のあるプリミテ
ィブのデータをピック・エコー領域720(図7)に格
納するために、VRAM112(図1)を使用する。こ
れに対して第2実施例は、それらのプリミティブに対す
るインデックス・テーブル1100(図11)を使用す
る。第2実施例の方法も、次の3つのパスを含む。
【0044】a.第1パス システム制御プロセッサ102は、第1実施例における
のと同様に、アドレス・ポインタをピック・インデック
ス値のテーブルを格納するためのシステム・メモリ10
4内の領域1100(図11)に設定して、グラフィッ
クス制御プロセッサ108に対し”可視ピック・トラバ
ーサル開始”割込みをかける。グラフィックス制御プロ
セッサ108は、第2および第3パスにおいてトラバー
サルを再開するために必要な情報を退避する。
のと同様に、アドレス・ポインタをピック・インデック
ス値のテーブルを格納するためのシステム・メモリ10
4内の領域1100(図11)に設定して、グラフィッ
クス制御プロセッサ108に対し”可視ピック・トラバ
ーサル開始”割込みをかける。グラフィックス制御プロ
セッサ108は、第2および第3パスにおいてトラバー
サルを再開するために必要な情報を退避する。
【0045】第1パスでは、グラフィックス制御プロセ
ッサ108は、可視であるか否かによらずピック枠21
6(図3)を横切るすべての描画プリミティブの構造要
素インデックス(SEI)・テーブル1000(図1
0)を、VRAM112内(VRAM112に使用でき
るスペースがないときはシステム・メモリ104内)に
作成する。そのためグラフィックス制御プロセッサ10
8は、ピック・モジュール116を動作可能にしかつ描
画プロセッサ118にデータが行かないように設定し
て、描画プロセッサに対して構造要素を画素化する。先
に第1実施例において説明したように、このようにする
のは、シェーディング・プロセッサ・コマンドはグラフ
ィックス制御プロセッサ108に対してピック割込みを
発生せず、したがってSEIテーブル1000を作成す
るためにも、あたかも描画プロセッサ118に対してそ
うするかのように画素化を行わなければならないからで
ある。第1実施例の場合と同様に、クリッピングの境界
はピック枠216に合わせて設定される。
ッサ108は、可視であるか否かによらずピック枠21
6(図3)を横切るすべての描画プリミティブの構造要
素インデックス(SEI)・テーブル1000(図1
0)を、VRAM112内(VRAM112に使用でき
るスペースがないときはシステム・メモリ104内)に
作成する。そのためグラフィックス制御プロセッサ10
8は、ピック・モジュール116を動作可能にしかつ描
画プロセッサ118にデータが行かないように設定し
て、描画プロセッサに対して構造要素を画素化する。先
に第1実施例において説明したように、このようにする
のは、シェーディング・プロセッサ・コマンドはグラフ
ィックス制御プロセッサ108に対してピック割込みを
発生せず、したがってSEIテーブル1000を作成す
るためにも、あたかも描画プロセッサ118に対してそ
うするかのように画素化を行わなければならないからで
ある。第1実施例の場合と同様に、クリッピングの境界
はピック枠216に合わせて設定される。
【0046】変換プロセッサ114に各描画プリミティ
ブを送る前に、ピック・タグ生成ルーチンによって、S
EIをデータとする同期割込みが送られる(このピック
・タグ生成ルーチンはまたSEIの生成も行なう)。こ
のポスト・フォーマッタ同期割込みが発っせられると、
送られたSEIは、変換パイプライン114の最下部に
おいて現在処理されているプリミティブのSEIを格納
する現在の最下位SEIレジスタ(別個に図示されてい
ない)に退避される。続いて送られた描画プリミティブ
に対してピック割込みが発生した場合には、現在の最下
位SEIレジスタの内容が、VRAM112内のSEI
テーブル1000に入れられる。
ブを送る前に、ピック・タグ生成ルーチンによって、S
EIをデータとする同期割込みが送られる(このピック
・タグ生成ルーチンはまたSEIの生成も行なう)。こ
のポスト・フォーマッタ同期割込みが発っせられると、
送られたSEIは、変換パイプライン114の最下部に
おいて現在処理されているプリミティブのSEIを格納
する現在の最下位SEIレジスタ(別個に図示されてい
ない)に退避される。続いて送られた描画プリミティブ
に対してピック割込みが発生した場合には、現在の最下
位SEIレジスタの内容が、VRAM112内のSEI
テーブル1000に入れられる。
【0047】第1のパスの結果、VRAM112内に、
ピック枠216を横切るすべての(最終的に可視である
か否かを問わない)描画プリミティブを指し示すSEI
テーブル1000(図10)が作成される。このテーブ
ル1000の各項1001は、トラバース処理されてい
る表示リストの1つの構造要素を指し示す構造要素イン
インデックス(SEI)である。SEIテーブル100
0の各項1001には、図10に示すように、1からM
(Mは255以下)までの範囲の連続したピック・イン
デックスが付けられる。本明細書の別のところで説明し
たように、このMに対する上限は、ピック・インデック
スを格納するために使用可能であると想定されるフレー
ム・バッファ124内のビット平面の数により課される
ものである。本実施例のSEIテーブル1000は、項
1001の数が255に制限されているので、システム
・メモリ104内の表示リストの第1パスのトラバーサ
ルは、SEIテーブルの項の数がこの上限に達したら途
中で終了する。(この理論的な可能性はまったく発生し
ないわけではないが、実際には殆ど発生しない。)
ピック枠216を横切るすべての(最終的に可視である
か否かを問わない)描画プリミティブを指し示すSEI
テーブル1000(図10)が作成される。このテーブ
ル1000の各項1001は、トラバース処理されてい
る表示リストの1つの構造要素を指し示す構造要素イン
インデックス(SEI)である。SEIテーブル100
0の各項1001には、図10に示すように、1からM
(Mは255以下)までの範囲の連続したピック・イン
デックスが付けられる。本明細書の別のところで説明し
たように、このMに対する上限は、ピック・インデック
スを格納するために使用可能であると想定されるフレー
ム・バッファ124内のビット平面の数により課される
ものである。本実施例のSEIテーブル1000は、項
1001の数が255に制限されているので、システム
・メモリ104内の表示リストの第1パスのトラバーサ
ルは、SEIテーブルの項の数がこの上限に達したら途
中で終了する。(この理論的な可能性はまったく発生し
ないわけではないが、実際には殆ど発生しない。)
【0048】b.第2パス 第2パスは、第1実施例のものと同じである。第2パス
を開始する前の準備として、グラフィックス制御プロセ
ッサ108は、描画プロセッサ118に対して、バック
グラウンド・フレーム・バッファ210内のピック枠2
16の最初の8つのビット平面から、画面外の退避領域
218(図2)に、BitBLT転送により、画素デー
タを転送するように指示する。転送後、ピック枠216
内のこれらのビット平面とZバッファ122内の対応す
る領域がゼロにクリアされる。第1実施例におけるのと
同じように、本発明の可視ピック法は、この方法が最小
限構成のシステムにおいても働くことを保証するため
に、もっと多くのビット平面が使用できる場合でも、フ
レーム・バッファ124内の最初の8つのビット平面だ
けを使用するのが好ましい。このため本実施例の可視ピ
ック方法ではピック・インデックスの数が256に制限
されるけれども、この上限は通常必要とされるピック・
インデックスの数よりもずっと多いので問題は生じな
い。
を開始する前の準備として、グラフィックス制御プロセ
ッサ108は、描画プロセッサ118に対して、バック
グラウンド・フレーム・バッファ210内のピック枠2
16の最初の8つのビット平面から、画面外の退避領域
218(図2)に、BitBLT転送により、画素デー
タを転送するように指示する。転送後、ピック枠216
内のこれらのビット平面とZバッファ122内の対応す
る領域がゼロにクリアされる。第1実施例におけるのと
同じように、本発明の可視ピック法は、この方法が最小
限構成のシステムにおいても働くことを保証するため
に、もっと多くのビット平面が使用できる場合でも、フ
レーム・バッファ124内の最初の8つのビット平面だ
けを使用するのが好ましい。このため本実施例の可視ピ
ック方法ではピック・インデックスの数が256に制限
されるけれども、この上限は通常必要とされるピック・
インデックスの数よりもずっと多いので問題は生じな
い。
【0049】グラフィックス制御プロセッサ108は、
次に、第1パスで格納されたトラバーサル情報を使っ
て、システム・メモリ104内の元の表示リスト(図
6)のトラバーサルを再開する。このトラバーサルの間
に、グラフィックス制御プロセッサ108は、Zバッフ
ァ122のデータを利用しつつ、ピック枠216内の可
視プリミティブのピック・インデックスを、バックグラ
ウンド・フレーム・バッファ210のピック枠内に書き
込む。グラフィックス制御プロセッサ108は、これ
を、描画プロセッサ118およびシェーディング・プロ
セッサ120に対して、第1パスでピックされた描画プ
リミティブを画素化することにより行なう。グラフィッ
クス制御プロセッサ108は、このとき、ピック枠21
6内の各画素の画素データに、カラー・インデックスで
はなくピック・インデックスが書き込まれるように強制
する。
次に、第1パスで格納されたトラバーサル情報を使っ
て、システム・メモリ104内の元の表示リスト(図
6)のトラバーサルを再開する。このトラバーサルの間
に、グラフィックス制御プロセッサ108は、Zバッフ
ァ122のデータを利用しつつ、ピック枠216内の可
視プリミティブのピック・インデックスを、バックグラ
ウンド・フレーム・バッファ210のピック枠内に書き
込む。グラフィックス制御プロセッサ108は、これ
を、描画プロセッサ118およびシェーディング・プロ
セッサ120に対して、第1パスでピックされた描画プ
リミティブを画素化することにより行なう。グラフィッ
クス制御プロセッサ108は、このとき、ピック枠21
6内の各画素の画素データに、カラー・インデックスで
はなくピック・インデックスが書き込まれるように強制
する。
【0050】この第2パスでは、そのSEIがピック・
タグ・ルーチン内に保存されているSEIテーブル10
00内のSEIと一致するプリミティブだけが画素化さ
れる。フレーム・バッファ124内に書き込まれるカラ
ー情報を保持するために使用されるハイライト・レジス
タ(別個に図示されていない)内のピック・インデック
スは、描画プリミティブが画素化されるごとに1づつ増
やされる。
タグ・ルーチン内に保存されているSEIテーブル10
00内のSEIと一致するプリミティブだけが画素化さ
れる。フレーム・バッファ124内に書き込まれるカラ
ー情報を保持するために使用されるハイライト・レジス
タ(別個に図示されていない)内のピック・インデック
スは、描画プリミティブが画素化されるごとに1づつ増
やされる。
【0051】このトラバーサルが終了したとき、ピック
枠216は図8に示す値を含む。これらの値は、ピック
枠内に実際に見えるプリミティブ301〜303および
305のピック・インデックスである。
枠216は図8に示す値を含む。これらの値は、ピック
枠内に実際に見えるプリミティブ301〜303および
305のピック・インデックスである。
【0052】ピックされたすべてのプリミティブが、第
2パスにおいて、カラー値の代わりにピック・インデッ
クスを用いて再描画された後、グラフィックス制御プロ
セッサ108は、パイプライン114を通してシェーデ
ィング・プロセッサ120に特別の同期コマンドを送
り、肯定応答を待つ。この肯定応答は、シェーディング
・プロセッサ120によりフレーム・バッファ124に
対するすべての画素化処理が完了されたことを保証す
る。
2パスにおいて、カラー値の代わりにピック・インデッ
クスを用いて再描画された後、グラフィックス制御プロ
セッサ108は、パイプライン114を通してシェーデ
ィング・プロセッサ120に特別の同期コマンドを送
り、肯定応答を待つ。この肯定応答は、シェーディング
・プロセッサ120によりフレーム・バッファ124に
対するすべての画素化処理が完了されたことを保証す
る。
【0053】グラフィックス制御プロセッサ108は、
次に、描画プロセッサ118に対して特別のリード・ピ
クセル・コマンドを送り、フレーム・バッファ124内
のピック枠216内に格納されているピック・インデッ
クスを読み出し、それらのピック・インデックスを小さ
い順に並べ(同じピック・インデックスが複数回出現し
たときは、2回目以降は除去する)、それらのソートさ
れたピック・インデックスをシステム・メモリ104の
ピック・インデックス領域1100(図11)に格納す
るように命令する。描画プロセッサ118は、また、領
域1000の先頭に、ピック・インデックス1102の
総数を示すヘッダ・バイト1101を挿入する。
次に、描画プロセッサ118に対して特別のリード・ピ
クセル・コマンドを送り、フレーム・バッファ124内
のピック枠216内に格納されているピック・インデッ
クスを読み出し、それらのピック・インデックスを小さ
い順に並べ(同じピック・インデックスが複数回出現し
たときは、2回目以降は除去する)、それらのソートさ
れたピック・インデックスをシステム・メモリ104の
ピック・インデックス領域1100(図11)に格納す
るように命令する。描画プロセッサ118は、また、領
域1000の先頭に、ピック・インデックス1102の
総数を示すヘッダ・バイト1101を挿入する。
【0054】画素読出しコマンドは、また、描画プロセ
ッサ118に対して、可視ピックにより壊されたフレー
ム・バッファ124の領域216のデータを、画面外退
避領域218から読み出して復元するように命令する。
ッサ118に対して、可視ピックにより壊されたフレー
ム・バッファ124の領域216のデータを、画面外退
避領域218から読み出して復元するように命令する。
【0055】c.第3パス グラフィックス制御プロセッサ108は、ピック割込み
を可に設定し、また描画プロセッサ118およびシェー
ディング・プロセッサ120のどちらに対してもグラフ
ィックス制御プロセッサ108から何も送られないよう
にピック・コリレーション・モードを可に設定して、第
3パスのピック・トラバーサルを開始する。構造要素イ
ンデックス(SEI)テーブル1000(図10)とピ
ック・インデックス・テーブル1100(図11)はま
だ保存されているが、シェーディング・プロセッサ12
0にも描画プロセッサ118にも何も送られない。ピッ
ク・タグ・ルーチンにおいて生成されたSEI(テーブ
ル1000に格納されている)とピック・インデックス
(テーブル1100に格納されている)が一致したと
き、変換パイプライン114の先頭において、ピックが
あったことが知られる。このプリミティブのピック情報
は、システム・メモリ104内の、ピック・データ・ブ
ロック401(図4)として格納される。
を可に設定し、また描画プロセッサ118およびシェー
ディング・プロセッサ120のどちらに対してもグラフ
ィックス制御プロセッサ108から何も送られないよう
にピック・コリレーション・モードを可に設定して、第
3パスのピック・トラバーサルを開始する。構造要素イ
ンデックス(SEI)テーブル1000(図10)とピ
ック・インデックス・テーブル1100(図11)はま
だ保存されているが、シェーディング・プロセッサ12
0にも描画プロセッサ118にも何も送られない。ピッ
ク・タグ・ルーチンにおいて生成されたSEI(テーブ
ル1000に格納されている)とピック・インデックス
(テーブル1100に格納されている)が一致したと
き、変換パイプライン114の先頭において、ピックが
あったことが知られる。このプリミティブのピック情報
は、システム・メモリ104内の、ピック・データ・ブ
ロック401(図4)として格納される。
【0056】ピック・ファースト・モードでは、ソート
されたピック・インデックス・テーブル1100(図1
1)に格納されている第1番目のピック・インデックス
1102だけを見つければよい。ピック・ラースト・モ
ードでは、ソートされたピック・インデックス・テーブ
ル1100の最後のピック・インデックスが、ピックさ
れた最後の可視構造要素を指し示す。ピック・オール・
モードでは、すべてのピックされたプリミティブが通知
される。
されたピック・インデックス・テーブル1100(図1
1)に格納されている第1番目のピック・インデックス
1102だけを見つければよい。ピック・ラースト・モ
ードでは、ソートされたピック・インデックス・テーブ
ル1100の最後のピック・インデックスが、ピックさ
れた最後の可視構造要素を指し示す。ピック・オール・
モードでは、すべてのピックされたプリミティブが通知
される。
【0057】第3パスが終了すると、グラフィックス制
御プロセッサ108は、システム制御プロセッサ102
に対して”可視ピック完了”割込みをかける。
御プロセッサ108は、システム制御プロセッサ102
に対して”可視ピック完了”割込みをかける。
【0058】4.まとめ 開示された実施例は、両方とも、図12に示すように、
3つの部分から成る処理を用いて、アプリケーション・
プログラムに通知するための可視ピック情報を生成す
る。第1の部分では、システム・メモリ内に格納されて
いる1組のプリミティブから、ピック枠を横切る,した
がってピック枠内の可視プリミティブが選択され、選択
された各プリミティブに異なるピック・インデックスが
付けられる。第2の部分では、選択されたプリミティブ
が、通常のカラー値ではなく、第1の部分において付与
されたピック・インデックスを用いて、フレーム・バッ
ファのピック枠部分に、描画データとして書き込まれ
る。見えない部分を消去するためにZバッファが用いら
れる。第3の部分では、フレーム・バッファのピック枠
部分に格納されたピック・インデックスが読み出され、
ピック枠内に実際に見えるプリミティブが決定され、所
要の情報がアプリケーション・プログラムに渡される。
3つの部分から成る処理を用いて、アプリケーション・
プログラムに通知するための可視ピック情報を生成す
る。第1の部分では、システム・メモリ内に格納されて
いる1組のプリミティブから、ピック枠を横切る,した
がってピック枠内の可視プリミティブが選択され、選択
された各プリミティブに異なるピック・インデックスが
付けられる。第2の部分では、選択されたプリミティブ
が、通常のカラー値ではなく、第1の部分において付与
されたピック・インデックスを用いて、フレーム・バッ
ファのピック枠部分に、描画データとして書き込まれ
る。見えない部分を消去するためにZバッファが用いら
れる。第3の部分では、フレーム・バッファのピック枠
部分に格納されたピック・インデックスが読み出され、
ピック枠内に実際に見えるプリミティブが決定され、所
要の情報がアプリケーション・プログラムに渡される。
【0059】
【効果】以上のように本発明の可視ピック方法によれ
ば、ピック枠を横切るもののうちピック枠内に実際に見
えるものだけをピックすることが可能になる。
ば、ピック枠を横切るもののうちピック枠内に実際に見
えるものだけをピックすることが可能になる。
【図1】本発明を組み込んだグラフィックス・システム
のブロック線図である。
のブロック線図である。
【図2】図1に示すシステムのフレーム・バッファの説
明図である。
明図である。
【図3】表示画面上のピック枠が表示されている部分と
その周辺の部分の表示の一例を示す。
その周辺の部分の表示の一例を示す。
【図4】本発明の1実施例の第1パスにおいてシステム
・メモリ内に作成されるデータ構造の説明図である。
・メモリ内に作成されるデータ構造の説明図である。
【図5】図4に示すデータ構造のより詳しい構造を示す
説明図である。
説明図である。
【図6】システム・メモリにプリミティブを格納するた
めに使用するデータ構造の説明図である。
めに使用するデータ構造の説明図である。
【図7】本発明の1実施例の第1パスにおいてビデオR
AM内に作成されるデータ構造の説明図である。
AM内に作成されるデータ構造の説明図である。
【図8】本発明の1実施例の第2パスの終了後の、フレ
ーム・バッファのピック枠部分の内容を示す説明図であ
る。
ーム・バッファのピック枠部分の内容を示す説明図であ
る。
【図9】本発明の1実施例の第2パスの終了後の、フラ
グワードの内容を示す説明図である。
グワードの内容を示す説明図である。
【図10】本発明の第2実施例の第1パスにおいて作成
されるデータ構造の説明図である。
されるデータ構造の説明図である。
【図11】本発明の第2実施例の第3パスにおいてシス
テム・メモリ内に作成されるデータ構造の説明図であ
る。
テム・メモリ内に作成されるデータ構造の説明図であ
る。
【図12】本発明の可視ピック方法による処理のフロー
チャートである。
チャートである。
124・・・・・・フレーム・バッファ 200・・・
・・・第1の部分 210・・・・・・第2の部分 202,21
2・・画面部 204,214・・非画面部 208,21
8・・退避領域 216・・・・・・ピック枠 301,30
4,305・・線分 302,303・・フィルされた4角形
・・・第1の部分 210・・・・・・第2の部分 202,21
2・・画面部 204,214・・非画面部 208,21
8・・退避領域 216・・・・・・ピック枠 301,30
4,305・・線分 302,303・・フィルされた4角形
フロントページの続き (72)発明者 デイビツド・ウエイ・リー アメリカ合衆国12401 ニユーヨーク州キ ングストン アパートメント・1 パー ル・ストリート 66番地 (72)発明者 デイビツド・コンラツド・タネンバウム アメリカ合衆国12443 ニユーヨーク州ハ ーリー 209 オールド・ルート 369番地
Claims (7)
- 【請求項1】 描画プリミティブがラスタ走査装置の表
示領域に画素の配列として表示するための画素データに
変換されるグラフィックス・システムであって、前記シ
ステムが前記表示領域内にピック枠を設定しかつ前記ピ
ック枠内の画素に対応する格納場所を設定するための手
段を備えており、前記プリミティブの各々がそれらに付
けられた相異なる値を持つグラフィックス・システムに
おいて、 (a)前記プリミティブの画素に対して前記値を含む画
素データを生成する (b)前記値を含む前記画素データを前記一時的な格納
場所に書き込む (c)前記一時的な格納場所に格納された値を読み出し
て前記ピック枠内に見えるプリミティブを決定する処理
を含む,前記ピック枠内に見えるものだけをピックする
グラフィックス・システムにおけるピック方法。 - 【請求項2】 請求項1の方法であって、前記画素デー
タが、プリミティブの各画素に対して、プリミティブの
その画素に対応する部分の視点からの距離を表わす奥行
値を含み、新しく生成された前記画素データの奥行値
が、前記格納場所に現在格納されている画素データの奥
行値よりも小さい視点からの距離を表わすときは、前記
格納場所を前記新しく生成された画素データで更新する
方法。 - 【請求項3】 請求項1の方法であって、前記プリミテ
ィブが、より多数の1組のプリミティブから前記ピック
枠を横切ることを条件として選択されたものである方
法。 - 【請求項4】 請求項1の方法であって、前記格納場所
が、前記画素の配列を格納するためのフレーム・バッフ
ァ内に含まれている方法。 - 【請求項5】 描画プリミティブがラスタ走査装置の表
示領域に画素の配列として表示するための画素データに
変換されるグラフィックス・システムであって、プリミ
ティブを構成する各画素に対する画素データがプリミテ
ィブのその画素に対応する部分の視点からの距離を表わ
す奥行値を含み、前記システムが前記表示領域内にピッ
ク枠を設定しかつ前記ピック枠内の画素に対応する格納
場所を決めるための手段を備えており、前記プリミティ
ブの各々がそれらに付けられた相異なる値を持つグラフ
ィックス・システムにおいて、 (a)1組のプリミティブから前記ピック枠を横切るプ
リミティブを選択し、選択された各プリミティブに相異
なる識別子をつける (b)選択された各プリミティブについて、そのプリミ
ティブを構成する各画素に対し、前記そのプリミティブ
の識別子とそのプリミティブの各画素に対応する部分の
奥行値を含む画素データを生成し、新しく生成された前
記画素データの奥行値が、前記格納場所に現在格納され
ている画素データの奥行値よりも小さい視点からの距離
を表わすときは、前記格納場所を前記新しく生成された
画素データで更新する (c)前記格納場所に格納された値を読み出して前記ピ
ック枠内に見えるプリミティブを決定する処理を含む,
前記ピック枠内に見えるものだけをピックするグラフィ
ックス・システムにおけるピック方法。 - 【請求項6】 描画プリミティブがラスタ走査装置の表
示領域に画素の配列として表示するための画素データに
変換されるグラフィックス・システムであって、前記シ
ステムが前記表示領域内にピック枠を設定しかつ前記ピ
ック枠内の画素に対応する格納場所を用意するための手
段を備えており、前記プリミティブの各々がそれらに付
けられた相異なる値を持つグラフィックス・システムの
ためのピック装置であって、 (a)前記プリミティブを構成する画素に対して前記値
を含む画素データを生成するための手段 (b)前記値を含む前記画素データを前記格納場所に書
き込むための手段 (c)前記格納場所に格納された値を読み出して前記ピ
ック枠内に見えるプリミティブを決定するための手段を
含むピック装置。 - 【請求項7】 描画プリミティブがラスタ走査装置の表
示領域に画素の配列として表示するための画素データに
変換されるグラフィックス・システムであって、プリミ
ティブを構成する各画素に対する画素データがプリミテ
ィブのその画素に対応する部分の視点からの距離を表わ
す奥行値を含み、前記システムが前記表示領域内にピッ
ク枠を設定しかつ前記ピック枠内の画素に対応する格納
場所を決めるための手段を備えたグラフィックス・シス
テムのためのピック装置であって、 (a)1組のプリミティブから前記ピック枠を横切るプ
リミティブを選択し、選択された各プリミティブに相異
なる識別子をつけるための手段 (b)選択された各プリミティブについて、そのプリミ
ティブを構成する各画素に対して、前記そのプリミティ
ブの識別子とそのプリミティブの各画素に対応する部分
の奥行値を含む画素データを生成し、かつ新しく生成さ
れた前記画素データの奥行値が、前記格納場所に現在格
納されている画素データの奥行値よりも小さい視点から
の距離を表わすときは、前記格納場所を前記新しく生成
された画素データで更新するための手段 (c)前記格納場所に格納された値を読み出して前記ピ
ック枠内に見えるプリミティブを決定するための手段を
含む装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70125591A | 1991-05-16 | 1991-05-16 | |
US701255 | 1991-05-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05135147A true JPH05135147A (ja) | 1993-06-01 |
JPH0797413B2 JPH0797413B2 (ja) | 1995-10-18 |
Family
ID=24816611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4066198A Expired - Lifetime JPH0797413B2 (ja) | 1991-05-16 | 1992-03-24 | グラフィックス・システムにおけるピック方法および装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5371514A (ja) |
EP (1) | EP0515076A1 (ja) |
JP (1) | JPH0797413B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981361A (ja) * | 1995-09-12 | 1997-03-28 | Toshiba Corp | 画像表示方法、データ収集方法及び対象物特定方法 |
JP2010287254A (ja) * | 2003-02-18 | 2010-12-24 | Microsoft Corp | タスクのスケジューリングを支援する装置 |
JP2013025376A (ja) * | 2011-07-15 | 2013-02-04 | Fujitsu Semiconductor Ltd | 画像描画装置 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3222694B2 (ja) * | 1994-09-07 | 2001-10-29 | シャープ株式会社 | 情報処理装置 |
JP3015262B2 (ja) * | 1994-09-27 | 2000-03-06 | 松下電器産業株式会社 | 3次元形状データ加工装置 |
US5530798A (en) * | 1994-11-01 | 1996-06-25 | United Microelectronics Corp. | Apparatus and method for cascading graphic processors |
US5748946A (en) * | 1995-02-17 | 1998-05-05 | International Business Machines Corporation | Method and apparatus for improved graphics picking using auxiliary buffer information |
US5701444A (en) * | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US5764243A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US5966136A (en) * | 1995-04-12 | 1999-10-12 | Hewlett-Packard Co. | Efficient method for clipping numerous objects against an arbitrary clipping path |
EP0741352B1 (en) * | 1995-05-05 | 2001-12-19 | Intergraph Corporation | Intelligent selection of graphic objects keypoints and relationships |
US5737553A (en) * | 1995-07-14 | 1998-04-07 | Novell, Inc. | Colormap system for mapping pixel position and color index to executable functions |
US6690369B1 (en) * | 1996-08-01 | 2004-02-10 | 3Dlabs, Inc., Ltd. | Hardware-accelerated photoreal rendering |
JPH10334259A (ja) * | 1997-05-22 | 1998-12-18 | Internatl Business Mach Corp <Ibm> | 図形選択方法および記憶媒体 |
US5933156A (en) * | 1997-12-03 | 1999-08-03 | Margolin; Jed | Z-Buffer for row addressable graphics memory with flash fill |
US6441837B1 (en) * | 1998-05-12 | 2002-08-27 | Autodesk, Inc. | Method and apparatus for manipulating geometric constraints of a mechanical design |
US6222561B1 (en) * | 1998-09-17 | 2001-04-24 | International Business Machines Corporation | Render optimization using page alignment techniques |
US6919898B2 (en) * | 2000-01-21 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for ascertaining and selectively requesting displayed data in a computer graphics system |
US6950791B1 (en) * | 2000-09-13 | 2005-09-27 | Antartica Systems, Inc. | Method for describing objects in a virtual space |
US20050195186A1 (en) * | 2004-03-02 | 2005-09-08 | Ati Technologies Inc. | Method and apparatus for object based visibility culling |
US7348997B1 (en) * | 2004-07-21 | 2008-03-25 | United States Of America As Represented By The Secretary Of The Navy | Object selection in a computer-generated 3D environment |
US7898553B2 (en) * | 2006-10-19 | 2011-03-01 | Delorme Publishing Co. | Pick packet for web browser display |
JP2008202566A (ja) * | 2007-02-22 | 2008-09-04 | Sanden Corp | インバータ一体型電動圧縮機 |
WO2012040827A2 (en) * | 2010-10-01 | 2012-04-05 | Smart Technologies Ulc | Interactive input system having a 3d input space |
CN103577322B (zh) * | 2012-08-08 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 一种点击测试方法和装置 |
CN103473814B (zh) * | 2013-09-23 | 2016-01-20 | 电子科技大学中山学院 | 一种基于gpu的三维几何图元拾取方法 |
GB2564466B (en) * | 2017-07-13 | 2020-01-08 | Advanced Risc Mach Ltd | Storing YUV texture data in a cache in a graphics processing system |
US11010954B2 (en) | 2018-12-11 | 2021-05-18 | Samsung Electronics Co., Ltd. | Efficient redundant coverage discard mechanism to reduce pixel shader work in a tile-based graphics rendering pipeline |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61231676A (ja) * | 1985-04-05 | 1986-10-15 | Mitsubishi Electric Corp | 3次元モデルのピツキング処理方式 |
JPH01150981A (ja) * | 1987-12-08 | 1989-06-13 | Hitachi Ltd | 三次元グラフイツクデイスプレイ装置 |
JPH01200481A (ja) * | 1988-02-05 | 1989-08-11 | Japan Radio Co Ltd | 三次元図形のピック方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4451895A (en) * | 1980-07-17 | 1984-05-29 | Telesis Corporation Of Delaware, Inc. | Interactive computer aided design system |
EP0100798A1 (en) * | 1982-08-13 | 1984-02-22 | Telesis Corporation of Delaware, Inc | Computer aided design system |
US4475104A (en) * | 1983-01-17 | 1984-10-02 | Lexidata Corporation | Three-dimensional display system |
US4609917A (en) * | 1983-01-17 | 1986-09-02 | Lexidata Corporation | Three-dimensional display system |
US4805127A (en) * | 1985-03-12 | 1989-02-14 | Mitsubishi Denki Kabushiki Kaisha | Image describing apparatus |
US4809201A (en) * | 1985-12-02 | 1989-02-28 | Schlumberger Systems, Inc. | Graphic display region defining technique |
US4941111A (en) * | 1986-04-18 | 1990-07-10 | Advanced Micro Devices, Inc. | Video picking and clipping method and apparatus |
US4924414A (en) * | 1986-09-24 | 1990-05-08 | Daikin Industries, Ltd. | Apparatus and method for obtaining priority numbers for drawing figures forming a display figure |
US4870599A (en) * | 1986-09-26 | 1989-09-26 | International Business Machines Corporation | Traversal method for a graphics display system |
JPS63104104A (ja) * | 1986-10-21 | 1988-05-09 | Fanuc Ltd | 自動プログラミングシステム |
US4731609A (en) * | 1986-11-03 | 1988-03-15 | International Business Machines Corporation | Fast correlation of markers with graphic entities |
US4847605A (en) * | 1987-04-27 | 1989-07-11 | International Business Machines Corporation | Picking in a graphics system |
JPH0634209B2 (ja) * | 1987-07-23 | 1994-05-02 | 株式会社日立製作所 | 表示図形検知方式 |
US4939672A (en) * | 1987-11-09 | 1990-07-03 | Tektronix, Inc. | Method and apparatus for classifying graphics segments to facilitate pick and display operation |
US5027291A (en) * | 1987-11-24 | 1991-06-25 | International Business Machines Corporation | Application exit for potentially pickable primitives in a graphics system |
FR2628553B1 (fr) * | 1988-03-08 | 1990-11-09 | Labo Electronique Physique | Systeme graphique video muni d'un curseur graphique |
US5086496A (en) * | 1988-05-02 | 1992-02-04 | Arch Development Corporation | Method for hidden line and surface removal in a three dimensional display |
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 |
US5175805A (en) * | 1990-10-30 | 1992-12-29 | Sun Microsystems, Inc. | Method and apparatus for sequencing composite operations of pixels |
-
1992
- 1992-03-24 JP JP4066198A patent/JPH0797413B2/ja not_active Expired - Lifetime
- 1992-05-12 EP EP92304282A patent/EP0515076A1/en not_active Withdrawn
- 1992-10-23 US US07/966,126 patent/US5371514A/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61231676A (ja) * | 1985-04-05 | 1986-10-15 | Mitsubishi Electric Corp | 3次元モデルのピツキング処理方式 |
JPH01150981A (ja) * | 1987-12-08 | 1989-06-13 | Hitachi Ltd | 三次元グラフイツクデイスプレイ装置 |
JPH01200481A (ja) * | 1988-02-05 | 1989-08-11 | Japan Radio Co Ltd | 三次元図形のピック方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981361A (ja) * | 1995-09-12 | 1997-03-28 | Toshiba Corp | 画像表示方法、データ収集方法及び対象物特定方法 |
JP2010287254A (ja) * | 2003-02-18 | 2010-12-24 | Microsoft Corp | タスクのスケジューリングを支援する装置 |
US8671411B2 (en) | 2003-02-18 | 2014-03-11 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US9298498B2 (en) | 2003-02-18 | 2016-03-29 | Microsoft Technology Licensing, Llc | Building a run list for a coprocessor based on rules when the coprocessor switches from one context to another context |
JP2013025376A (ja) * | 2011-07-15 | 2013-02-04 | Fujitsu Semiconductor Ltd | 画像描画装置 |
Also Published As
Publication number | Publication date |
---|---|
US5371514A (en) | 1994-12-06 |
EP0515076A1 (en) | 1992-11-25 |
JPH0797413B2 (ja) | 1995-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05135147A (ja) | グラフイツクス・システムにおけるピツク方法および装置 | |
JP4071196B2 (ja) | ゾーン・レンダリング用の自動メモリ管理 | |
US6734873B1 (en) | Method and system for displaying a composited image | |
US8803898B2 (en) | Forming a windowing display in a frame buffer | |
US5574836A (en) | Interactive display apparatus and method with viewer position compensation | |
WO2011052117A1 (ja) | 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造 | |
JP3428192B2 (ja) | ウインドウ表示処理装置 | |
JP5368254B2 (ja) | 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造 | |
US6894695B2 (en) | Apparatus and method for acceleration of 2D vector graphics using 3D graphics hardware | |
JP3359634B2 (ja) | 境界内更新を備えたグラフィックス出力システム | |
US7898549B1 (en) | Faster clears for three-dimensional modeling applications | |
JP2750318B2 (ja) | グラフィカル・オブジェクトをインターロックする方法及び装置 | |
JP3170279B2 (ja) | グラフィックスシステムにおけるイメージ位置の解釈 | |
JP3232236B2 (ja) | グラフィック処理システム | |
JP2003503775A (ja) | Zバッファをレンダリングする方法及び装置 | |
JP3177143B2 (ja) | 補助バッファ情報を用いる改良型グラフィクス・ピッキング方法及び装置 | |
JP5296656B2 (ja) | 画像処理装置および画像処理方法 | |
US6567092B1 (en) | Method for interfacing to ultra-high resolution output devices | |
JPH1074263A (ja) | コンピュータ・グラフィックス・システム | |
US6466217B1 (en) | Method and apparatus for ensuring backward compatibility in a bucket rendering system | |
US6285373B1 (en) | Method and apparatus for texture transmission and storage | |
US6756978B1 (en) | Apparatus and method for sharing antialiasing memory across multiple displays | |
EP0670560B1 (en) | A method for sorting polygon data, a video game machine employing the same and acomputer program performing the method | |
JP2010164972A (ja) | 画像ドローイング方法及び装置 | |
JPH1069548A (ja) | コンピュータ・グラフィックス・システム |