JPH0855239A - グラフィカル・オブジェクトの可視性を判定するための方法および装置 - Google Patents
グラフィカル・オブジェクトの可視性を判定するための方法および装置Info
- Publication number
- JPH0855239A JPH0855239A JP7168688A JP16868895A JPH0855239A JP H0855239 A JPH0855239 A JP H0855239A JP 7168688 A JP7168688 A JP 7168688A JP 16868895 A JP16868895 A JP 16868895A JP H0855239 A JPH0855239 A JP H0855239A
- Authority
- JP
- Japan
- Prior art keywords
- graphical
- objects
- depth
- memory
- identifier
- 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.)
- Pending
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/40—Hidden part removal
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)【要約】 (修正有)
【目的】 グラフィカル・オブジェクトの可視性を判定
する方法と装置の提供。 【構成】 各グラフィカル・オブジェクトを複数の画素
にスキャン変換する装置と、各画素の深さとオブジェク
ト識別子とをメモリに記憶する装置と、メモリに記憶さ
れたオブジェクト識別子を有するグラフィカル・オブジ
ェクトをレンダリングする装置とを含む。各グラフィカ
ル・オブジェクトを、深さを有しそれぞれに該オブジェ
クトのオブジェクト識別子が与えられる複数の画素にス
キャン変換するステップ520と、所与の画素位置につ
いて前に記憶された深さより視点に近い画素深さを有す
る各画素の深さとオブジェクト識別子とをメモリに記憶
するステップ530と、メモリに記憶されたオブジェク
ト識別子を有するグラフィカル・オブジェクトをレンダ
リングするステップとを含み、ディスプレイ上に可視の
グラフィカル・オブジェクトをレンダリングする。
する方法と装置の提供。 【構成】 各グラフィカル・オブジェクトを複数の画素
にスキャン変換する装置と、各画素の深さとオブジェク
ト識別子とをメモリに記憶する装置と、メモリに記憶さ
れたオブジェクト識別子を有するグラフィカル・オブジ
ェクトをレンダリングする装置とを含む。各グラフィカ
ル・オブジェクトを、深さを有しそれぞれに該オブジェ
クトのオブジェクト識別子が与えられる複数の画素にス
キャン変換するステップ520と、所与の画素位置につ
いて前に記憶された深さより視点に近い画素深さを有す
る各画素の深さとオブジェクト識別子とをメモリに記憶
するステップ530と、メモリに記憶されたオブジェク
ト識別子を有するグラフィカル・オブジェクトをレンダ
リングするステップとを含み、ディスプレイ上に可視の
グラフィカル・オブジェクトをレンダリングする。
Description
【0001】
【産業上の利用分野】本発明は、全般的にはコンピュー
タ・グラフィックス・システムに関し、具体的には、グ
ラフィカル・オブジェクトの可視性を判定する方法およ
び装置に関する。
タ・グラフィックス・システムに関し、具体的には、グ
ラフィカル・オブジェクトの可視性を判定する方法およ
び装置に関する。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムでは、3次元グラフィックの絵を2次元ディスプレイ
に提示することが望ましい。通常、このような絵は、3
次元オブジェクトの組としてメモリに記憶される構造ま
たは画像である。たとえば、オブジェクトは、通常は頂
点P(0),P(1),…,P(n−2),P(n−
1)の組として指定され、このnは、オブジェクトの頂
点の個数である。各頂点P(i)は、適当な座標空間内
の位置V(i)と、少なくとも1つの関数、たとえばカ
ラー係数f(V(i))などによって指定される。カラ
ー係数は、後程カラー(グレイスケールを含む)の変動
として表示できる、各頂点で評価される関数である(光
の強度、温度特性、湿度係数など)。カラー係数は、色
に変換することができ、モデリングに有用である(単純
な照明モデリングやより複雑な気象モデリングなど)。
ムでは、3次元グラフィックの絵を2次元ディスプレイ
に提示することが望ましい。通常、このような絵は、3
次元オブジェクトの組としてメモリに記憶される構造ま
たは画像である。たとえば、オブジェクトは、通常は頂
点P(0),P(1),…,P(n−2),P(n−
1)の組として指定され、このnは、オブジェクトの頂
点の個数である。各頂点P(i)は、適当な座標空間内
の位置V(i)と、少なくとも1つの関数、たとえばカ
ラー係数f(V(i))などによって指定される。カラ
ー係数は、後程カラー(グレイスケールを含む)の変動
として表示できる、各頂点で評価される関数である(光
の強度、温度特性、湿度係数など)。カラー係数は、色
に変換することができ、モデリングに有用である(単純
な照明モデリングやより複雑な気象モデリングなど)。
【0003】オブジェクトをレンダリングしている時
に、位置または画素アドレス(通常はXY空間)と、色
などのその画素のさまざまな関数を含むオブジェクトの
画素表現を計算し、補間する。その結果、ディスプレイ
上の絵を生成するために、通常は計算集中型の処理を使
用してオブジェクトをレンダリングする。その結果、複
数の技法を使用して、レンダリングするオブジェクトま
たは画素の個数を減らすことができる。
に、位置または画素アドレス(通常はXY空間)と、色
などのその画素のさまざまな関数を含むオブジェクトの
画素表現を計算し、補間する。その結果、ディスプレイ
上の絵を生成するために、通常は計算集中型の処理を使
用してオブジェクトをレンダリングする。その結果、複
数の技法を使用して、レンダリングするオブジェクトま
たは画素の個数を減らすことができる。
【0004】たとえば、表現しなければならない絵の一
部が、ディスプレイ上のウィンドウまたはディスプレイ
自体によってもたらされる視野から外れる場合がある。
そのような場合には、絵を生成する際にその絵とその絵
を構成するオブジェクトをクリッピングし、これによっ
て必要な計算量を減らし、レンダリング速度を高めるこ
とが望ましい。
部が、ディスプレイ上のウィンドウまたはディスプレイ
自体によってもたらされる視野から外れる場合がある。
そのような場合には、絵を生成する際にその絵とその絵
を構成するオブジェクトをクリッピングし、これによっ
て必要な計算量を減らし、レンダリング速度を高めるこ
とが望ましい。
【0005】もう1つの例では、いくつかのオブジェク
トが視野の中にあるが、その前にあるオブジェクトによ
って隠されている場合がある。どのオブジェクトが可視
であるかを判定し、その結果、可視のオブジェクトまた
はオブジェクトの一部だけをレンダリングするための技
法が複数存在する。これらの可視性判定技法の多くが、
フォレイ(Foley)、バン−ダム(Van Dam)、ファイナ
(Feiner)およびヒューズ(Hughes)著、"Computer Gr
aphics Principles and Practice", second edition、
1990年の649ページから720ページに記載され
ている。
トが視野の中にあるが、その前にあるオブジェクトによ
って隠されている場合がある。どのオブジェクトが可視
であるかを判定し、その結果、可視のオブジェクトまた
はオブジェクトの一部だけをレンダリングするための技
法が複数存在する。これらの可視性判定技法の多くが、
フォレイ(Foley)、バン−ダム(Van Dam)、ファイナ
(Feiner)およびヒューズ(Hughes)著、"Computer Gr
aphics Principles and Practice", second edition、
1990年の649ページから720ページに記載され
ている。
【0006】
【発明が解決しようとする課題】たとえば、レンダリン
グしようとするグラフィカル・オブジェクトのすべて
を、その深さに従って順序付けた後に、後方のオブジェ
クトから前方のオブジェクトへとレンダリングして、す
べてのオブジェクトのすべての画素がレンダリングされ
るようにすることができる。その結果、不可視のオブジ
ェクトの画素値は、レンダリングされた後に、その前に
あるオブジェクトがレンダリングされる時に置換され
る。しかし、この処理では、すべてのオブジェクトのす
べての画素をレンダリングする必要があり、オブジェク
トが交差している場合は処理されない。すなわち、この
処理は、第1のオブジェクトの第1の部分が第2のオブ
ジェクトに隠され、第1のオブジェクトの第2の部分が
第2のオブジェクトの前にある場合を取り扱えない。
グしようとするグラフィカル・オブジェクトのすべて
を、その深さに従って順序付けた後に、後方のオブジェ
クトから前方のオブジェクトへとレンダリングして、す
べてのオブジェクトのすべての画素がレンダリングされ
るようにすることができる。その結果、不可視のオブジ
ェクトの画素値は、レンダリングされた後に、その前に
あるオブジェクトがレンダリングされる時に置換され
る。しかし、この処理では、すべてのオブジェクトのす
べての画素をレンダリングする必要があり、オブジェク
トが交差している場合は処理されない。すなわち、この
処理は、第1のオブジェクトの第1の部分が第2のオブ
ジェクトに隠され、第1のオブジェクトの第2の部分が
第2のオブジェクトの前にある場合を取り扱えない。
【0007】
【課題を解決するための手段】本発明には、各グラフィ
カル・オブジェクトを、深さを有しそれぞれに該オブジ
ェクトのオブジェクト識別子が与えられる複数の画素に
スキャン変換する装置と、所与の画素位置について前に
記憶された深さより視点に近い画素深さを有する各画素
の深さとオブジェクト識別子とをメモリに記憶する装置
と、メモリに記憶されたオブジェクト識別子を有するグ
ラフィカル・オブジェクトをレンダリングする装置とを
含む、ディスプレイ上に可視のグラフィカル・オブジェ
クトをレンダリングするための装置が含まれる。さら
に、本発明には、各グラフィカル・オブジェクトを、深
さを有しそれぞれに該オブジェクトのオブジェクト識別
子が与えられる複数の画素にスキャン変換するステップ
と、所与の画素位置について前に記憶された深さより視
点に近い画素深さを有する各画素の深さとオブジェクト
識別子とをメモリに記憶するステップと、メモリに記憶
されたオブジェクト識別子を有するグラフィカル・オブ
ジェクトをレンダリングするステップとを含む、ディス
プレイ上に可視のグラフィカル・オブジェクトをレンダ
リングするための方法が含まれる。
カル・オブジェクトを、深さを有しそれぞれに該オブジ
ェクトのオブジェクト識別子が与えられる複数の画素に
スキャン変換する装置と、所与の画素位置について前に
記憶された深さより視点に近い画素深さを有する各画素
の深さとオブジェクト識別子とをメモリに記憶する装置
と、メモリに記憶されたオブジェクト識別子を有するグ
ラフィカル・オブジェクトをレンダリングする装置とを
含む、ディスプレイ上に可視のグラフィカル・オブジェ
クトをレンダリングするための装置が含まれる。さら
に、本発明には、各グラフィカル・オブジェクトを、深
さを有しそれぞれに該オブジェクトのオブジェクト識別
子が与えられる複数の画素にスキャン変換するステップ
と、所与の画素位置について前に記憶された深さより視
点に近い画素深さを有する各画素の深さとオブジェクト
識別子とをメモリに記憶するステップと、メモリに記憶
されたオブジェクト識別子を有するグラフィカル・オブ
ジェクトをレンダリングするステップとを含む、ディス
プレイ上に可視のグラフィカル・オブジェクトをレンダ
リングするための方法が含まれる。
【0008】本発明の性質および長所のさらなる理解
は、本明細書の残りの部分および図面を参照することに
よって得られる。
は、本明細書の残りの部分および図面を参照することに
よって得られる。
【0009】
【実施例】この開示では、グラフィカル・オブジェクト
の可視性を判定するための改良された方法および装置を
説明する。好ましい実施例では、各オブジェクトに識別
子を与え、X、YおよびZ値だけを決定された画素にス
キャン変換する。その後、可視性バッファを使用して、
各オブジェクトの可視の画素を記憶する。これが完了し
たならば、カラー、照明および他の補間計算の実行を含
めて、可視のオブジェクトまたはオブジェクトの可視部
分だけをレンダリングする。この処理では、必要なレン
ダリング計算の量が少なくなり、したがって、レンダリ
ング処理の速度が向上する。
の可視性を判定するための改良された方法および装置を
説明する。好ましい実施例では、各オブジェクトに識別
子を与え、X、YおよびZ値だけを決定された画素にス
キャン変換する。その後、可視性バッファを使用して、
各オブジェクトの可視の画素を記憶する。これが完了し
たならば、カラー、照明および他の補間計算の実行を含
めて、可視のオブジェクトまたはオブジェクトの可視部
分だけをレンダリングする。この処理では、必要なレン
ダリング計算の量が少なくなり、したがって、レンダリ
ング処理の速度が向上する。
【0010】図1は、本発明の好ましい実施例によって
使用される典型的なディジタル・コンピュータ100の
ブロック図である。このコンピュータには、入力装置1
30および出力装置140を接続されたコンピュータ・
ボックス105内の、主記憶120およびハード・ディ
スク125に結合された主プロセッサ110が含まれ
る。主プロセッサ110には、単一のプロセッサまたは
複数のプロセッサを含めることができる。入力装置13
0には、キーボード、マウス、タブレットまたは他のタ
イプの入力装置を含めることができる。出力装置140
には、テキスト・モニタ、プロッタまたは他のタイプの
出力装置を含めることができる。磁気ディスケットやコ
ンパクト・ディスクなどのコンピュータ可読の取外し可
能媒体190を、ディスク駆動装置やCD−ROM(コ
ンパクト・ディスク読取専用メモリ)駆動装置などの入
出力装置180に挿入することができる。データは、入
出力装置コントローラ170の制御の下で、入出力装置
によって取外し可能媒体から読み取られ、書き込まれ
る。入出力装置コントローラは、バス160を介して主
プロセッサと通信する。主記憶120、ハード・ディス
ク125および取外し可能媒体190のすべてを、主プ
ロセッサ110による処理のためのデータの記憶に関し
てメモリと称する。
使用される典型的なディジタル・コンピュータ100の
ブロック図である。このコンピュータには、入力装置1
30および出力装置140を接続されたコンピュータ・
ボックス105内の、主記憶120およびハード・ディ
スク125に結合された主プロセッサ110が含まれ
る。主プロセッサ110には、単一のプロセッサまたは
複数のプロセッサを含めることができる。入力装置13
0には、キーボード、マウス、タブレットまたは他のタ
イプの入力装置を含めることができる。出力装置140
には、テキスト・モニタ、プロッタまたは他のタイプの
出力装置を含めることができる。磁気ディスケットやコ
ンパクト・ディスクなどのコンピュータ可読の取外し可
能媒体190を、ディスク駆動装置やCD−ROM(コ
ンパクト・ディスク読取専用メモリ)駆動装置などの入
出力装置180に挿入することができる。データは、入
出力装置コントローラ170の制御の下で、入出力装置
によって取外し可能媒体から読み取られ、書き込まれ
る。入出力装置コントローラは、バス160を介して主
プロセッサと通信する。主記憶120、ハード・ディス
ク125および取外し可能媒体190のすべてを、主プ
ロセッサ110による処理のためのデータの記憶に関し
てメモリと称する。
【0011】主プロセッサは、グラフィックス・アダプ
タ200を介して、グラフィックス・ディスプレイなど
のグラフィックス出力装置150に結合することもでき
る。グラフィックス・アダプタ200は、バス160を
介して主プロセッサ110からグラフィックスに関する
命令を受け取る。その後、グラフィックス・アダプタ
は、グラフィックス・アダプタ・メモリ230に結合さ
れたグラフィックス・アダプタ・プロセッサ220を用
いてこれらの命令を実行する。グラフィックス・アダプ
タ内のグラフィックス・プロセッサは、これらの命令を
実行し、これらの命令に基づいてフレーム・バッファ2
40を更新する。グラフィックス・アダプタ・プロセッ
サ220は、直列のプロセッサのパイプライン、1組の
並列プロセッサ、またはその組合せとすることができ、
この各プロセッサは、完了すべきタスクの一部を処理す
ることができる。グラフィックス・アダプタ・プロセッ
サ220には、特定のタイプのプリミティブのレンダリ
ング専用のレンダリング・ハードウェアを含めることも
できる。グラフィックス・アダプタ・メモリ230は、
グラフィックス・プロセッサによって、受け取ったオブ
ジェクト・データ、中間計算データ(ステンシル・バッ
ファや部分的にレンダリングされたオブジェクトのデー
タなど)およびフレーム・バッファ240にロードされ
る完了したデータなど、処理される情報の記憶に使用さ
れる。フレーム・バッファ240には、グラフィックス
出力装置に表示されるすべての画素のデータが含まれ
る。RAMDAC(ランダム・アクセス・メモリ・ディ
ジタル・アナログ変換器)250は、フレーム・バッフ
ァに記憶されたディジタル・データをRGB信号に変換
してグラフィックス出力装置150に供給し、これによ
って、主プロセッサから所望されたグラフィックス出力
をレンダリングする。
タ200を介して、グラフィックス・ディスプレイなど
のグラフィックス出力装置150に結合することもでき
る。グラフィックス・アダプタ200は、バス160を
介して主プロセッサ110からグラフィックスに関する
命令を受け取る。その後、グラフィックス・アダプタ
は、グラフィックス・アダプタ・メモリ230に結合さ
れたグラフィックス・アダプタ・プロセッサ220を用
いてこれらの命令を実行する。グラフィックス・アダプ
タ内のグラフィックス・プロセッサは、これらの命令を
実行し、これらの命令に基づいてフレーム・バッファ2
40を更新する。グラフィックス・アダプタ・プロセッ
サ220は、直列のプロセッサのパイプライン、1組の
並列プロセッサ、またはその組合せとすることができ、
この各プロセッサは、完了すべきタスクの一部を処理す
ることができる。グラフィックス・アダプタ・プロセッ
サ220には、特定のタイプのプリミティブのレンダリ
ング専用のレンダリング・ハードウェアを含めることも
できる。グラフィックス・アダプタ・メモリ230は、
グラフィックス・プロセッサによって、受け取ったオブ
ジェクト・データ、中間計算データ(ステンシル・バッ
ファや部分的にレンダリングされたオブジェクトのデー
タなど)およびフレーム・バッファ240にロードされ
る完了したデータなど、処理される情報の記憶に使用さ
れる。フレーム・バッファ240には、グラフィックス
出力装置に表示されるすべての画素のデータが含まれ
る。RAMDAC(ランダム・アクセス・メモリ・ディ
ジタル・アナログ変換器)250は、フレーム・バッフ
ァに記憶されたディジタル・データをRGB信号に変換
してグラフィックス出力装置150に供給し、これによ
って、主プロセッサから所望されたグラフィックス出力
をレンダリングする。
【0012】図2は、通常はグラフィックス機能を実行
するためホスト・コンピュータおよびグラフィックス・
アダプタによって利用されるコードの層を示すブロック
図である。UNIXなどのオペレーティング・システム
300が、ホスト・コンピュータの基本制御を提供す
る。オペレーティング・システムに結合されているの
が、オペレーティング・システムにハードウェア集中型
タスクを提供するオペレーティング・システム・カーネ
ル310である。オペレーティング・システム・カーネ
ルは、ホスト・コンピュータ・マイクロコード320と
直接に通信する。ホスト・コンピュータ・マイクロコー
ドは、ホスト・コンピュータ・プロセッサによって実行
される基本命令セットである。オペレーティング・シス
テム300に結合されているのが、グラフィックス・ア
プリケーション330および332である。このグラフ
ィックス・アプリケーション・ソフトウェアには、シリ
コン・グラフィック(Silicon Graphic)社のGL、I
BM社のgraPHIGS、MIT(マサチューセッツ
工科大学)のPEXなどのソフトウェア・パッケージを
含めることができる。このソフトウェアは、2次元グラ
フィックスまたは3次元グラフィックスの主要な機能を
提供する。グラフィックス・アプリケーション330は
グラフィックス・アプリケーションのAPI(アプリケ
ーション・プログラム・インターフェース)340に、
グラフィックス・アプリケーション332はAPI34
2に結合される。APIは、グラフィックス・アプリケ
ーションに計算集中型タスクの多くを提供し、グラフィ
ックス・アダプタ用のデバイス/ドライバなど、グラフ
ィックス・ハードウェアに近いソフトウェアとアプリケ
ーション・ソフトウェアの間のインターフェースを提供
する。たとえば、API340はGAI(グラフィック
ス・アプリケーション・インターフェース)350と、
API342はGAI352と、通信することができ
る。GAIは、アプリケーションAPIとグラフィック
ス・アダプタのデバイス・ドライバ370の間のインタ
ーフェースを提供する。一部のグラフィックス・システ
ムでは、APIがGAIの機能も実行する。
するためホスト・コンピュータおよびグラフィックス・
アダプタによって利用されるコードの層を示すブロック
図である。UNIXなどのオペレーティング・システム
300が、ホスト・コンピュータの基本制御を提供す
る。オペレーティング・システムに結合されているの
が、オペレーティング・システムにハードウェア集中型
タスクを提供するオペレーティング・システム・カーネ
ル310である。オペレーティング・システム・カーネ
ルは、ホスト・コンピュータ・マイクロコード320と
直接に通信する。ホスト・コンピュータ・マイクロコー
ドは、ホスト・コンピュータ・プロセッサによって実行
される基本命令セットである。オペレーティング・シス
テム300に結合されているのが、グラフィックス・ア
プリケーション330および332である。このグラフ
ィックス・アプリケーション・ソフトウェアには、シリ
コン・グラフィック(Silicon Graphic)社のGL、I
BM社のgraPHIGS、MIT(マサチューセッツ
工科大学)のPEXなどのソフトウェア・パッケージを
含めることができる。このソフトウェアは、2次元グラ
フィックスまたは3次元グラフィックスの主要な機能を
提供する。グラフィックス・アプリケーション330は
グラフィックス・アプリケーションのAPI(アプリケ
ーション・プログラム・インターフェース)340に、
グラフィックス・アプリケーション332はAPI34
2に結合される。APIは、グラフィックス・アプリケ
ーションに計算集中型タスクの多くを提供し、グラフィ
ックス・アダプタ用のデバイス/ドライバなど、グラフ
ィックス・ハードウェアに近いソフトウェアとアプリケ
ーション・ソフトウェアの間のインターフェースを提供
する。たとえば、API340はGAI(グラフィック
ス・アプリケーション・インターフェース)350と、
API342はGAI352と、通信することができ
る。GAIは、アプリケーションAPIとグラフィック
ス・アダプタのデバイス・ドライバ370の間のインタ
ーフェースを提供する。一部のグラフィックス・システ
ムでは、APIがGAIの機能も実行する。
【0013】グラフィックス・アプリケーション、AP
IおよびGAIは、オペレーティング・システムとデバ
イス・ドライバによって、単一のプロセスであるとみな
される。すなわち、オペレーティング・システム300
とデバイス・ドライバ370からは、グラフィックス・
アプリケーション330、API340およびGAI3
50がプロセス360とみなされ、グラフィックス・ア
プリケーション332、API342およびGAI35
2がプロセス362とみなされる。プロセスは、オペレ
ーティング・システムとデバイス・ドライバからは、オ
ペレーティング・システム・カーネルによってそのプロ
セスに割り当てられるプロセス識別子(PID)によっ
て識別される。プロセス360および362は、2つの
別々のウィンドウ内での1プログラムの2つの実行な
ど、2回同時に実行される同一のコードを使用すること
ができる。PIDは、同一のコードの別々の実行を区別
するのに使用される。
IおよびGAIは、オペレーティング・システムとデバ
イス・ドライバによって、単一のプロセスであるとみな
される。すなわち、オペレーティング・システム300
とデバイス・ドライバ370からは、グラフィックス・
アプリケーション330、API340およびGAI3
50がプロセス360とみなされ、グラフィックス・ア
プリケーション332、API342およびGAI35
2がプロセス362とみなされる。プロセスは、オペレ
ーティング・システムとデバイス・ドライバからは、オ
ペレーティング・システム・カーネルによってそのプロ
セスに割り当てられるプロセス識別子(PID)によっ
て識別される。プロセス360および362は、2つの
別々のウィンドウ内での1プログラムの2つの実行な
ど、2回同時に実行される同一のコードを使用すること
ができる。PIDは、同一のコードの別々の実行を区別
するのに使用される。
【0014】このデバイス・ドライバは、オペレーティ
ング・システム・カーネル310の拡張であるグラフィ
ックス・カーネルである。グラフィックス・カーネル
は、グラフィックス・アダプタ・マイクロコード380
と直接に通信する。多くのグラフィックス・システムで
は、GAIまたは、GAI層を使用しない場合にはAP
Iが、デバイス・ドライバに初期要求命令を送ることに
よって、GAIまたはAPIからアダプタ・マイクロコ
ードへの直接アクセスを要求することができる。さら
に、多くのグラフィックス・システムでは、アダプタ・
マイクロコードが、デバイス・ドライバに初期要求命令
を送ることによって、アダプタ・マイクロコードからG
AIまたはGAIを使用しない場合にはAPIへの直接
アクセスを要求することもできる。以下、この両方の処
理を、直接メモリ・アクセス(DMA)と称する。DM
A、通常は、データの大きなブロックを転送する時に使
用される。DMAは、DMAをセットアップするための
デバイス・ドライバに対する初期要求以外にディスプレ
イ・ドライバを通る必要をなくすことによって、ホスト
・コンピュータとアダプタの間のより高速のデータ伝送
をもたらす。場合によっては、アダプタ・マイクロコー
ドがコンテキスト切換えを利用する。これによって、ア
ダプタ・マイクロコードは、アダプタ・マイクロコード
によって利用される現在の属性を置換できるようにな
る。コンテキスト切換えが使用されるのは、アダプタ・
マイクロコードが、そのアダプタ・マイクロコードが現
在使用しているものと異なる属性を使用するグラフィッ
クス・アプリケーションから命令を受け取ろうとしてい
る時である。コンテキスト切換えは、通常は、属性変化
を認識するデバイス・ドライバによって開始される。
ング・システム・カーネル310の拡張であるグラフィ
ックス・カーネルである。グラフィックス・カーネル
は、グラフィックス・アダプタ・マイクロコード380
と直接に通信する。多くのグラフィックス・システムで
は、GAIまたは、GAI層を使用しない場合にはAP
Iが、デバイス・ドライバに初期要求命令を送ることに
よって、GAIまたはAPIからアダプタ・マイクロコ
ードへの直接アクセスを要求することができる。さら
に、多くのグラフィックス・システムでは、アダプタ・
マイクロコードが、デバイス・ドライバに初期要求命令
を送ることによって、アダプタ・マイクロコードからG
AIまたはGAIを使用しない場合にはAPIへの直接
アクセスを要求することもできる。以下、この両方の処
理を、直接メモリ・アクセス(DMA)と称する。DM
A、通常は、データの大きなブロックを転送する時に使
用される。DMAは、DMAをセットアップするための
デバイス・ドライバに対する初期要求以外にディスプレ
イ・ドライバを通る必要をなくすことによって、ホスト
・コンピュータとアダプタの間のより高速のデータ伝送
をもたらす。場合によっては、アダプタ・マイクロコー
ドがコンテキスト切換えを利用する。これによって、ア
ダプタ・マイクロコードは、アダプタ・マイクロコード
によって利用される現在の属性を置換できるようにな
る。コンテキスト切換えが使用されるのは、アダプタ・
マイクロコードが、そのアダプタ・マイクロコードが現
在使用しているものと異なる属性を使用するグラフィッ
クス・アプリケーションから命令を受け取ろうとしてい
る時である。コンテキスト切換えは、通常は、属性変化
を認識するデバイス・ドライバによって開始される。
【0015】ブロック300ないしブロック340は、
通常は、使用されるグラフィックス・アダプタのタイプ
から独立したソフトウェア・コード層である。ブロック
350ないしブロック380は、通常は、使用されるグ
ラフィックス・アダプタのタイプに依存するソフトウェ
ア・コード層である。たとえば、グラフィックス・アプ
リケーション・ソフトウェアが異なるグラフィックス・
アダプタを使用しなければならない場合、新しいGAI
とグラフィックス・カーネルとアダプタ・マイクロコー
ドが必要になるはずである。さらに、ブロック300な
いしブロック370は、通常はホスト・コンピュータに
常駐し、ホスト・コンピュータによって実行される。し
かし、グラフィックス・アダプタ・マイクロコード38
0は、通常は、グラフィックス・アダプタに常駐し、グ
ラフィックス・アダプタによって実行される。しかし、
一部の場合では、アダプタ・マイクロコードが、グラフ
ィックス・アダプタの初期設定中にホスト・コンピュー
タによってグラフィックス・アダプタにロードされる。
通常は、使用されるグラフィックス・アダプタのタイプ
から独立したソフトウェア・コード層である。ブロック
350ないしブロック380は、通常は、使用されるグ
ラフィックス・アダプタのタイプに依存するソフトウェ
ア・コード層である。たとえば、グラフィックス・アプ
リケーション・ソフトウェアが異なるグラフィックス・
アダプタを使用しなければならない場合、新しいGAI
とグラフィックス・カーネルとアダプタ・マイクロコー
ドが必要になるはずである。さらに、ブロック300な
いしブロック370は、通常はホスト・コンピュータに
常駐し、ホスト・コンピュータによって実行される。し
かし、グラフィックス・アダプタ・マイクロコード38
0は、通常は、グラフィックス・アダプタに常駐し、グ
ラフィックス・アダプタによって実行される。しかし、
一部の場合では、アダプタ・マイクロコードが、グラフ
ィックス・アダプタの初期設定中にホスト・コンピュー
タによってグラフィックス・アダプタにロードされる。
【0016】通常のグラフィックス・システムでは、ユ
ーザが、グラフィックス・アプリケーションに、2次元
モデルまたは3次元モデルから画像を構築するように指
令する。ユーザはまず、光源の位置とタイプを選択す
る。次に、ユーザは、定義済みのオブジェクトやユーザ
定義オブジェクトの組から所望のモデルを作るようにア
プリケーション・ソフトウェアに指令する。各オブジェ
クトには、そのオブジェクトを記述する1つまたは複数
の同平面描画プリミティブを含めることができる。たと
えば、多数の三角形などの描画プリミティブの組を使用
して、オブジェクトの表面を定義することができる。そ
の後、ユーザは、モデルを眺めるためのウィンドウ内の
パースを提供し、これによって所望の画像を定義する。
その後、アプリケーション・ソフトウェアが、API、
GAI、およびDMAを使用しない場合にはデバイス・
ドライバを介して、アダプタ・マイクロコードにオブジ
ェクトを記述した描画プリミティブを送ることによっ
て、モデルからの画像のレンダリングを開始する。その
後、アダプタ・マイクロコードは、ウィンドウ内で可視
でない描画プリミティブをクリッピングし(すなわち使
用しない)、残りの描画プリミティブのそれぞれをユー
ザによって与えられたパースから可視の画素に分解する
ことによって、グラフィックス・ディスプレイ上の画像
をレンダリングする。その後、これらの画素をフレーム
・バッファにロードするが、3次元モデルの場合にはデ
プス・バッファを併用することがしばしばである。この
ステップは、関連する描画プリミティブ、変数および画
素の数が原因で、非常に計算集中型である。フレーム・
バッファに格納され、グラフィックス・ディスプレイに
表示される結果の画像は、通常は、画素がどの描画プリ
ミティブまたはオブジェクトから導出されたかなどのオ
リジナルの情報を含まない。その結果、ウィンドウ、ユ
ーザのパース、モデル、照明などが変更された場合に
は、画像の一部または全体をレンダリングし直す必要が
生じる可能性がある。
ーザが、グラフィックス・アプリケーションに、2次元
モデルまたは3次元モデルから画像を構築するように指
令する。ユーザはまず、光源の位置とタイプを選択す
る。次に、ユーザは、定義済みのオブジェクトやユーザ
定義オブジェクトの組から所望のモデルを作るようにア
プリケーション・ソフトウェアに指令する。各オブジェ
クトには、そのオブジェクトを記述する1つまたは複数
の同平面描画プリミティブを含めることができる。たと
えば、多数の三角形などの描画プリミティブの組を使用
して、オブジェクトの表面を定義することができる。そ
の後、ユーザは、モデルを眺めるためのウィンドウ内の
パースを提供し、これによって所望の画像を定義する。
その後、アプリケーション・ソフトウェアが、API、
GAI、およびDMAを使用しない場合にはデバイス・
ドライバを介して、アダプタ・マイクロコードにオブジ
ェクトを記述した描画プリミティブを送ることによっ
て、モデルからの画像のレンダリングを開始する。その
後、アダプタ・マイクロコードは、ウィンドウ内で可視
でない描画プリミティブをクリッピングし(すなわち使
用しない)、残りの描画プリミティブのそれぞれをユー
ザによって与えられたパースから可視の画素に分解する
ことによって、グラフィックス・ディスプレイ上の画像
をレンダリングする。その後、これらの画素をフレーム
・バッファにロードするが、3次元モデルの場合にはデ
プス・バッファを併用することがしばしばである。この
ステップは、関連する描画プリミティブ、変数および画
素の数が原因で、非常に計算集中型である。フレーム・
バッファに格納され、グラフィックス・ディスプレイに
表示される結果の画像は、通常は、画素がどの描画プリ
ミティブまたはオブジェクトから導出されたかなどのオ
リジナルの情報を含まない。その結果、ウィンドウ、ユ
ーザのパース、モデル、照明などが変更された場合に
は、画像の一部または全体をレンダリングし直す必要が
生じる可能性がある。
【0017】本発明の技法は、アダプタ・フレーム・バ
ッファに近いアダプタ・マイクロコードなど、多くの位
置で利用できるはずである。また、この手法は、比較的
高速であり、実施がかなり簡単である。さらに、本発明
は、像をレンダリングする前またはその後のいずれか
に、グラフィックス・アダプタがデータをグラフィック
ス・アプリケーション・ソフトウェアまで返すことによ
って、レンダリングされた画像がシステム・メモリにも
記憶されるグラフィックス・アプリケーション・ソフト
ウェアで適用することもできる。この手法は、おそらく
はより低速であるが、これによって、既存のグラフィッ
クス・アダプタにこの技法を使用できるようになるはず
である。本発明は、グラフィックス・アダプタ・プロセ
ッサ内のハードウェアで実施することもできる。この手
法は、非常に高速であるが、特殊なハードウェアを必要
とする可能性がある。当業者には明白なとおり、本発明
は、ホスト・コンピュータ内またはグラフィックス・ア
ダプタ内の多くの他の位置で適用できる。
ッファに近いアダプタ・マイクロコードなど、多くの位
置で利用できるはずである。また、この手法は、比較的
高速であり、実施がかなり簡単である。さらに、本発明
は、像をレンダリングする前またはその後のいずれか
に、グラフィックス・アダプタがデータをグラフィック
ス・アプリケーション・ソフトウェアまで返すことによ
って、レンダリングされた画像がシステム・メモリにも
記憶されるグラフィックス・アプリケーション・ソフト
ウェアで適用することもできる。この手法は、おそらく
はより低速であるが、これによって、既存のグラフィッ
クス・アダプタにこの技法を使用できるようになるはず
である。本発明は、グラフィックス・アダプタ・プロセ
ッサ内のハードウェアで実施することもできる。この手
法は、非常に高速であるが、特殊なハードウェアを必要
とする可能性がある。当業者には明白なとおり、本発明
は、ホスト・コンピュータ内またはグラフィックス・ア
ダプタ内の多くの他の位置で適用できる。
【0018】ほとんどのグラフィック・オブジェクト
は、一連の頂点を有する多角形として記述できる。図3
は、ウィンドウ400に表示された大きな立方体41
0、三角錐420および小さな立方体430を示す図で
ある。大きい立方体の3つの面と三角錐の1つの面だけ
が可視であり、小さな立方体はどの面も不可視である。
説明のため、これらの隠面の不可視の輪郭を、破線で図
示する。しかし、通常は、陰面やその不可視の輪郭は、
通常の3次元グラフィカル・システムでは表示されな
い。
は、一連の頂点を有する多角形として記述できる。図3
は、ウィンドウ400に表示された大きな立方体41
0、三角錐420および小さな立方体430を示す図で
ある。大きい立方体の3つの面と三角錐の1つの面だけ
が可視であり、小さな立方体はどの面も不可視である。
説明のため、これらの隠面の不可視の輪郭を、破線で図
示する。しかし、通常は、陰面やその不可視の輪郭は、
通常の3次元グラフィカル・システムでは表示されな
い。
【0019】図4は、本発明の好ましい実施例でグラフ
ィックス・アダプタ・メモリ230内で使用されるデー
タ構造を示すブロック図である。
ィックス・アダプタ・メモリ230内で使用されるデー
タ構造を示すブロック図である。
【0020】オブジェクト可視性バッファ231を使用
して、画素位置のそれぞれについて、オブジェクトの識
別子とその相対深さを記憶する。すなわち、オブジェク
ト可視性バッファ231は、XY座標によって示される
ように、フレーム・バッファ(代替実施例ではその一
部)の各画素位置に対応する項目を有する。各項目に
は、オブジェクト識別子232とZ値233が含まれ
る。各項目は、識別されるオブジェクトが、その画素位
置で、記憶されたZ値または深さ値を有することを示
し、識別されたオブジェクトがその画素位置で可視であ
ることを示す。
して、画素位置のそれぞれについて、オブジェクトの識
別子とその相対深さを記憶する。すなわち、オブジェク
ト可視性バッファ231は、XY座標によって示される
ように、フレーム・バッファ(代替実施例ではその一
部)の各画素位置に対応する項目を有する。各項目に
は、オブジェクト識別子232とZ値233が含まれ
る。各項目は、識別されるオブジェクトが、その画素位
置で、記憶されたZ値または深さ値を有することを示
し、識別されたオブジェクトがその画素位置で可視であ
ることを示す。
【0021】オブジェクト可視性リスト235は、オブ
ジェクト識別子バッファ内に少なくとも1つの項目を有
し、これによって、識別されたオブジェクトの少なくと
も1つの画素が可視であることが示されるオブジェクト
識別子のすべてのリストである。
ジェクト識別子バッファ内に少なくとも1つの項目を有
し、これによって、識別されたオブジェクトの少なくと
も1つの画素が可視であることが示されるオブジェクト
識別子のすべてのリストである。
【0022】下記の流れ図で、オブジェクト可視性バッ
ファとオブジェクト・リストを生成する方法と、その後
これらを使用して、すばやく可視オブジェクトをレンダ
リングする方法を説明する。
ファとオブジェクト・リストを生成する方法と、その後
これらを使用して、すばやく可視オブジェクトをレンダ
リングする方法を説明する。
【0023】図5は、本発明の好ましい実施例による、
陰面と隠れオブジェクトを効率的に取り除く方法を示す
流れ図である。
陰面と隠れオブジェクトを効率的に取り除く方法を示す
流れ図である。
【0024】最初のステップ500で、深さ値のそれぞ
れを最大深さにセットすることによって、オブジェクト
可視性バッファを初期設定する。さらに、オブジェクト
識別子のすべてを、0か、オブジェクト識別子として使
用されない値にセットすることができる。
れを最大深さにセットすることによって、オブジェクト
可視性バッファを初期設定する。さらに、オブジェクト
識別子のすべてを、0か、オブジェクト識別子として使
用されない値にセットすることができる。
【0025】ステップ505で、プリミティブと称する
こともあるグラフィカル・オブジェクトを受け取り、元
の座標系からウィンドウ座標系に変換する。これは通
常、オブジェクト内のすべての頂点に対して行われる。
こともあるグラフィカル・オブジェクトを受け取り、元
の座標系からウィンドウ座標系に変換する。これは通
常、オブジェクト内のすべての頂点に対して行われる。
【0026】ステップ510で、オブジェクトまたはプ
リミティブを複数のサブオブジェクトに分割することが
できる。サブオブジェクトのそれぞれを、下では別々の
オブジェクトとして記述する。たとえば、図3の立方体
410は、立方体の各側面を1つのオブジェクトとし
て、6つのオブジェクトに分割できる。その結果、ある
側面が不可視の場合、その側面がレンダリングされなく
なる。さらに、使用可能な識別子の所与の個数に対して
オブジェクトが多すぎる場合には、複数のオブジェクト
を単一のオブジェクトにグループ化して、その状況に対
処することができる。さらに、ハッシュ法を利用して、
複数のオブジェクトを同一の識別子にハッシュ化するこ
とができる。視野ボリュームを複数の均一または不均一
な部分空間に分割し、部分空間のそれぞれに識別子を割
り当てるという組合せの方法もある。さらに、非常に大
量のオブジェクトを扱う時などには、多重解(multires
olution)技法を使用することができる。オブジェクト
を上記のようにグループ化することができ、その後に、
これらのグループについて可視性を判定する。終了した
ならば、可視グループの各オブジェクトに、個別の識別
子を割り当て、可視性検出処理を繰り返す。これらの代
替案のそれぞれについて、このステップは任意選択であ
るが、本発明の最適化に有用である可能性がある。
リミティブを複数のサブオブジェクトに分割することが
できる。サブオブジェクトのそれぞれを、下では別々の
オブジェクトとして記述する。たとえば、図3の立方体
410は、立方体の各側面を1つのオブジェクトとし
て、6つのオブジェクトに分割できる。その結果、ある
側面が不可視の場合、その側面がレンダリングされなく
なる。さらに、使用可能な識別子の所与の個数に対して
オブジェクトが多すぎる場合には、複数のオブジェクト
を単一のオブジェクトにグループ化して、その状況に対
処することができる。さらに、ハッシュ法を利用して、
複数のオブジェクトを同一の識別子にハッシュ化するこ
とができる。視野ボリュームを複数の均一または不均一
な部分空間に分割し、部分空間のそれぞれに識別子を割
り当てるという組合せの方法もある。さらに、非常に大
量のオブジェクトを扱う時などには、多重解(multires
olution)技法を使用することができる。オブジェクト
を上記のようにグループ化することができ、その後に、
これらのグループについて可視性を判定する。終了した
ならば、可視グループの各オブジェクトに、個別の識別
子を割り当て、可視性検出処理を繰り返す。これらの代
替案のそれぞれについて、このステップは任意選択であ
るが、本発明の最適化に有用である可能性がある。
【0027】ステップ515で、各オブジェクトに識別
子を割り当てる。この識別子は、下で説明するように、
どのオブジェクトが可視であるかを追跡するのに使用さ
れる。
子を割り当てる。この識別子は、下で説明するように、
どのオブジェクトが可視であるかを追跡するのに使用さ
れる。
【0028】ステップ520で、オブジェクトを画素に
スキャン変換する。すなわち、各オブジェクトを、X、
YおよびZ値が決定された画素に変換する。本発明の性
質のゆえに、オブジェクトが可視であると判定されるま
では、カラー、照明などの実行と補間を行う必要はな
い。
スキャン変換する。すなわち、各オブジェクトを、X、
YおよびZ値が決定された画素に変換する。本発明の性
質のゆえに、オブジェクトが可視であると判定されるま
では、カラー、照明などの実行と補間を行う必要はな
い。
【0029】ステップ525で、オブジェクトの画素が
可視であるかどうかを判定する。これは、画素のXY値
を使用してオブジェクト可視性バッファをアドレッシン
グすることによって達成される。その後、オブジェクト
画素のZ値を、オブジェクト可視性バッファに記憶され
たZ値と比較して、オブジェクト画素が可視すなわち視
点により近いかどうかを判定する。オブジェクト画素の
Z値がオブジェクト可視性バッファ内のZ値より小さい
場合、ステップ530で、オブジェクト画素のZ値とオ
ブジェクト識別子の両方を、オブジェクト可視性バッフ
ァに記憶し、これによって、バッファに前に記憶された
値(初期設定された値である可能性もある)を置換す
る。もちろん、代替実施例では、より大きなZ値が視点
に近いとみなすことができ、その結果、このテストは、
オブジェクト画素のZ値がオブジェクト可視性バッファ
のZ値より大きいかどうかによって変更されることにな
る。
可視であるかどうかを判定する。これは、画素のXY値
を使用してオブジェクト可視性バッファをアドレッシン
グすることによって達成される。その後、オブジェクト
画素のZ値を、オブジェクト可視性バッファに記憶され
たZ値と比較して、オブジェクト画素が可視すなわち視
点により近いかどうかを判定する。オブジェクト画素の
Z値がオブジェクト可視性バッファ内のZ値より小さい
場合、ステップ530で、オブジェクト画素のZ値とオ
ブジェクト識別子の両方を、オブジェクト可視性バッフ
ァに記憶し、これによって、バッファに前に記憶された
値(初期設定された値である可能性もある)を置換す
る。もちろん、代替実施例では、より大きなZ値が視点
に近いとみなすことができ、その結果、このテストは、
オブジェクト画素のZ値がオブジェクト可視性バッファ
のZ値より大きいかどうかによって変更されることにな
る。
【0030】その後、ステップ540に進んで、これが
そのオブジェクトの最後の画素であるかどうかを判定す
る。そうでない場合、ステップ520に戻って、そのオ
ブジェクトの次の画素のX、YおよびZ値を取得する。
そうである場合、ステップ545に進んで、(上で述べ
たようにステップ510を使用した場合に)これが所与
のオブジェクトの最後のサブオブジェクトであるかどう
かを判定する。そうである場合、ステップ515に戻っ
て、次のサブオブジェクトを処理する。そうでない場
合、ステップ550に進んで、これが処理すべき最後の
オブジェクトであるかどうかを判定する。そうでない場
合、ステップ505に戻って、次のオブジェクトを処理
する。
そのオブジェクトの最後の画素であるかどうかを判定す
る。そうでない場合、ステップ520に戻って、そのオ
ブジェクトの次の画素のX、YおよびZ値を取得する。
そうである場合、ステップ545に進んで、(上で述べ
たようにステップ510を使用した場合に)これが所与
のオブジェクトの最後のサブオブジェクトであるかどう
かを判定する。そうである場合、ステップ515に戻っ
て、次のサブオブジェクトを処理する。そうでない場
合、ステップ550に進んで、これが処理すべき最後の
オブジェクトであるかどうかを判定する。そうでない場
合、ステップ505に戻って、次のオブジェクトを処理
する。
【0031】ステップ550の回答が否定の場合、すべ
てのオブジェクトを処理し終えているので、好ましい実
施例のこの部分を終了する。この時点で、オブジェクト
可視性バッファには、可視のすべてのオブジェクトの識
別子と、これらのオブジェクトの可視の画素が含まれ
る。処理は、下の図6で説明する処理ステップに進む。
てのオブジェクトを処理し終えているので、好ましい実
施例のこの部分を終了する。この時点で、オブジェクト
可視性バッファには、可視のすべてのオブジェクトの識
別子と、これらのオブジェクトの可視の画素が含まれ
る。処理は、下の図6で説明する処理ステップに進む。
【0032】図6は、本発明の好ましい実施例による、
可視のオブジェクトを判定するためのオブジェクト可視
性バッファの処理を示す流れ図である。最初のステップ
560で、オブジェクト可視性バッファの1項目を読み
取って、その項目に記憶されたオブジェクト識別子を得
る。ステップ565で、そのオブジェクト識別子が既に
オブジェクト可視性リストに含まれるかどうかを判定す
る。そうでない場合、ステップ570で、オブジェクト
識別子をリストに追加する。そうである場合、またはス
テップ570を処理した後に、処理はステップ575に
進む。ステップ575で、オブジェクト可視性バッファ
内のすべての項目を処理したかどうかを判定する。そう
でない場合、ステップ560に戻る。そうである場合、
オブジェクト可視性リストの処理が完了している。その
後、処理は下の図7で説明する処理ステップに進む。
可視のオブジェクトを判定するためのオブジェクト可視
性バッファの処理を示す流れ図である。最初のステップ
560で、オブジェクト可視性バッファの1項目を読み
取って、その項目に記憶されたオブジェクト識別子を得
る。ステップ565で、そのオブジェクト識別子が既に
オブジェクト可視性リストに含まれるかどうかを判定す
る。そうでない場合、ステップ570で、オブジェクト
識別子をリストに追加する。そうである場合、またはス
テップ570を処理した後に、処理はステップ575に
進む。ステップ575で、オブジェクト可視性バッファ
内のすべての項目を処理したかどうかを判定する。そう
でない場合、ステップ560に戻る。そうである場合、
オブジェクト可視性リストの処理が完了している。その
後、処理は下の図7で説明する処理ステップに進む。
【0033】上の図3を参照すると、オブジェクト可視
性リストには、立方体410と三角錐420の識別子が
含まれていなければならない。しかし、立方体430は
不可視であるから、このオブジェクトの識別子がオブジ
ェクト可視性リストに含まれていてはならない。各オブ
ジェクトを複数のサブオブジェクトに分割する(すなわ
ち各オブジェクトの各面が1つのサブオブジェクトにな
る)場合、可視のサブオブジェクトだけが、オブジェク
ト可視性リストに含まれるはずである(すなわち、立方
体410の3つの面と三角錐420の1つの面)。その
結果、オブジェクトをレンダリングするためのレンダリ
ング計算の回数が少なくなっている。
性リストには、立方体410と三角錐420の識別子が
含まれていなければならない。しかし、立方体430は
不可視であるから、このオブジェクトの識別子がオブジ
ェクト可視性リストに含まれていてはならない。各オブ
ジェクトを複数のサブオブジェクトに分割する(すなわ
ち各オブジェクトの各面が1つのサブオブジェクトにな
る)場合、可視のサブオブジェクトだけが、オブジェク
ト可視性リストに含まれるはずである(すなわち、立方
体410の3つの面と三角錐420の1つの面)。その
結果、オブジェクトをレンダリングするためのレンダリ
ング計算の回数が少なくなっている。
【0034】代替実施例では、オブジェクト可視性リス
トの各項目が、オブジェクトが可視である位置とそこで
の深さを示す、オブジェクト可視性バッファ内の各項目
を差すポインタを有する。
トの各項目が、オブジェクトが可視である位置とそこで
の深さを示す、オブジェクト可視性バッファ内の各項目
を差すポインタを有する。
【0035】図7は、本発明の好ましい実施例による、
可視オブジェクトの可視画素のレンダリングを示す流れ
図である。
可視オブジェクトの可視画素のレンダリングを示す流れ
図である。
【0036】ステップ600で、メモリからオブジェク
トを取得または検索する。ステップ605で、そのオブ
ジェクトがオブジェクト可視性リストに存在するかどう
かを判定する。そうでない場合、そのオブジェクトはレ
ンダリングされず、処理はステップ650に進んで、こ
れが最後のオブジェクトであるかどうかを判定する。ス
テップ605で存在する場合、処理は任意選択のステッ
プ610に進む(ステップ610を利用しない場合には
ステップ615に進む)。
トを取得または検索する。ステップ605で、そのオブ
ジェクトがオブジェクト可視性リストに存在するかどう
かを判定する。そうでない場合、そのオブジェクトはレ
ンダリングされず、処理はステップ650に進んで、こ
れが最後のオブジェクトであるかどうかを判定する。ス
テップ605で存在する場合、処理は任意選択のステッ
プ610に進む(ステップ610を利用しない場合には
ステップ615に進む)。
【0037】任意指定のステップ610では、そのオブ
ジェクトのどの部分が可視であるかを判定する。これ
は、オブジェクト可視性バッファの項目を検討して、ど
の画素が可視であるかを判定することによって達成でき
る。このステップは、図3の立方体410や三角錐42
0の背面など、オブジェクトのうちの可視でない面を取
り除くのに有用である。このステップは、三角錐420
の前面のうちで立方体410の陰に隠れた部分など、あ
る面のうちの可視でない部分を取り除くのにも有用であ
る。どちらの場合でも、可視の頂点と画素だけを処理す
ることができ、オブジェクトの可視部分を反映するよう
に追加の頂点を追加することができる。
ジェクトのどの部分が可視であるかを判定する。これ
は、オブジェクト可視性バッファの項目を検討して、ど
の画素が可視であるかを判定することによって達成でき
る。このステップは、図3の立方体410や三角錐42
0の背面など、オブジェクトのうちの可視でない面を取
り除くのに有用である。このステップは、三角錐420
の前面のうちで立方体410の陰に隠れた部分など、あ
る面のうちの可視でない部分を取り除くのにも有用であ
る。どちらの場合でも、可視の頂点と画素だけを処理す
ることができ、オブジェクトの可視部分を反映するよう
に追加の頂点を追加することができる。
【0038】ステップ615で、オブジェクトをレンダ
リングするために、オブジェクトの各頂点のカラー、照
明、テクスチャ、透明度などを計算する。おわかりによ
うに、これは、このような計算集中型の計算が実行され
る上で述べた処理の最初のステップである。
リングするために、オブジェクトの各頂点のカラー、照
明、テクスチャ、透明度などを計算する。おわかりによ
うに、これは、このような計算集中型の計算が実行され
る上で述べた処理の最初のステップである。
【0039】ステップ620で、オブジェクトの各画素
のカラー、照明などの値を補間する。ステップ625
で、オブジェクト可視性バッファを検査することによっ
て、その画素が可視であるかどうかを判定する。そうで
ある場合、この画素値をフレーム・バッファに記憶す
る。ステップ625の回答が否定の場合またはステップ
630の後に、処理はステップ640に進む。ステップ
620をステップ625と共に実行すれば、補間計算の
回数を減らせることに留意されたい。
のカラー、照明などの値を補間する。ステップ625
で、オブジェクト可視性バッファを検査することによっ
て、その画素が可視であるかどうかを判定する。そうで
ある場合、この画素値をフレーム・バッファに記憶す
る。ステップ625の回答が否定の場合またはステップ
630の後に、処理はステップ640に進む。ステップ
620をステップ625と共に実行すれば、補間計算の
回数を減らせることに留意されたい。
【0040】ステップ640で、このオブジェクトの最
後の画素を処理したかどうかを判定する。そうでない場
合、ステップ620に戻る。そうである場合、ステップ
650に進む。ステップ650では、最後のオブジェク
ト(またはサブオブジェクト)を処理したかどうかを判
定する。そうでない場合、ステップ600に戻る。そう
である場合、すべてのオブジェクトの処理が完了してい
る。
後の画素を処理したかどうかを判定する。そうでない場
合、ステップ620に戻る。そうである場合、ステップ
650に進む。ステップ650では、最後のオブジェク
ト(またはサブオブジェクト)を処理したかどうかを判
定する。そうでない場合、ステップ600に戻る。そう
である場合、すべてのオブジェクトの処理が完了してい
る。
【0041】代替実施例では、一時にオブジェクトの総
数のうちの一部だけを処理する多重パス手法を使用でき
る。オブジェクトのその部分は、上で説明したようにレ
ンダリングすることができ、その後、オブジェクトの別
の部分に対して上で説明した処理を繰り返す。これは、
オブジェクトの総数が識別子の数を超える場合に特に有
用であり、オブジェクト可視性バッファやオブジェクト
可視性リストを小さくすることができる。この手法は、
各プロセッサが他のプロセッサから独立にオブジェクト
の総数のうちの一部を処理する多重プロセッサ・システ
ムでも有用である。
数のうちの一部だけを処理する多重パス手法を使用でき
る。オブジェクトのその部分は、上で説明したようにレ
ンダリングすることができ、その後、オブジェクトの別
の部分に対して上で説明した処理を繰り返す。これは、
オブジェクトの総数が識別子の数を超える場合に特に有
用であり、オブジェクト可視性バッファやオブジェクト
可視性リストを小さくすることができる。この手法は、
各プロセッサが他のプロセッサから独立にオブジェクト
の総数のうちの一部を処理する多重プロセッサ・システ
ムでも有用である。
【0042】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0043】(1)それぞれにグラフィカル・オブジェ
クトのオブジェクト識別子が与えられる、深さを有する
複数の画素に、前記オブジェクトのそれぞれをスキャン
変換する手段と、所与の画素位置に関して前に記憶され
た深さより視点に近い画素深さを有する画素のそれぞれ
の深さとオブジェクト識別子とをメモリに記憶する手段
と、前記メモリに記憶されたオブジェクト識別子を有す
るグラフィカル・オブジェクトをレンダリングする手段
とを含む、ディスプレイ上に可視のグラフィカル・オブ
ジェクトをレンダリングする装置。 (2)グラフィカル・オブジェクトのそれぞれに識別子
を割り当てる手段をさらに含む、上記(1)の装置。 (3)前記割当手段が、複数のグラフィカル・プリミテ
ィブを単一のグラフィカル・オブジェクトにグループ化
する手段を含むことを特徴とする、上記(2)の装置。 (4)前記割当手段が、グラフィカル・プリミティブを
複数のグラフィカル・オブジェクトに分割する手段を含
み、各グラフィカル・オブジェクトに異なるオブジェク
ト識別子が割り当てられることを特徴とする、上記
(2)の装置。 (5)前記分割手段が、前記グラフィカル・プリミティ
ブを面によって分割する手段を含むことを特徴とする、
上記(4)の装置。 (6)それぞれにグラフィカル・オブジェクトのオブジ
ェクト識別子が与えられる、深さを有する複数の画素
に、前記オブジェクトのそれぞれをスキャン変換するス
テップと、所与の画素位置に関して前に記憶された深さ
より視点に近い画素深さを有する画素のそれぞれの深さ
とオブジェクト識別子とをメモリに記憶するステップ
と、前記メモリに記憶されたオブジェクト識別子を有す
るグラフィカル・オブジェクトをレンダリングするステ
ップとを含む、ディスプレイ上に可視のグラフィカル・
オブジェクトをレンダリングする方法。 (7)グラフィカル・オブジェクトのそれぞれに識別子
を割り当てるステップをさらに含む、上記(6)の方
法。 (8)前記割当ステップが、複数のグラフィカル・プリ
ミティブを単一のグラフィカル・オブジェクトにグルー
プ化するステップを含むことを特徴とする、上記(7)
の方法。 (9)前記割当ステップが、グラフィカル・プリミティ
ブを複数のグラフィカル・オブジェクトに分割するステ
ップを含み、各グラフィカル・オブジェクトに異なるオ
ブジェクト識別子が割り当てられることを特徴とする、
上記(7)の方法。 (10)前記分割ステップが、前記グラフィカル・プリ
ミティブを面によって分割するステップを含むことを特
徴とする、上記(9)の方法。 (11)処理すべきデータを記憶するためのメモリと、
メモリに記憶されたデータを処理するためのプロセッサ
と、ディスプレイ上に可視のグラフィカル・オブジェク
トをレンダリングするためのグラフィックス処理装置で
あって、それぞれにグラフィカル・オブジェクトのオブ
ジェクト識別子が与えられる、深さを有する複数の画素
に、前記オブジェクトのそれぞれをスキャン変換する手
段と、所与の画素位置に関して前に記憶された深さより
視点に近い画素深さを有する画素のそれぞれの深さとオ
ブジェクト識別子とをメモリに記憶する手段と、前記メ
モリに記憶されたオブジェクト識別子を有するグラフィ
カル・オブジェクトをレンダリングする手段とを含む前
記グラフィックス処理装置とを含むデータ処理システ
ム。 (12)グラフィックス処理システムが、グラフィカル
・オブジェクトのそれぞれに識別子を割り当てる手段を
さらに含む、上記(11)のデータ処理システム。 (13)前記割当手段が、複数のグラフィカル・プリミ
ティブを単一のグラフィカル・オブジェクトにグループ
化する手段を含むことを特徴とする、上記(12)のデ
ータ処理システム。 (14)前記割当手段が、グラフィカル・プリミティブ
を複数のグラフィカル・オブジェクトに分割する手段を
含み、各グラフィカル・オブジェクトに異なるオブジェ
クト識別子が割り当てられることを特徴とする、上記
(12)のデータ処理システム。 (15)前記分割手段が、前記グラフィカル・プリミテ
ィブを面によって分割する手段を含むことを特徴とす
る、上記(14)のデータ処理システム。
クトのオブジェクト識別子が与えられる、深さを有する
複数の画素に、前記オブジェクトのそれぞれをスキャン
変換する手段と、所与の画素位置に関して前に記憶され
た深さより視点に近い画素深さを有する画素のそれぞれ
の深さとオブジェクト識別子とをメモリに記憶する手段
と、前記メモリに記憶されたオブジェクト識別子を有す
るグラフィカル・オブジェクトをレンダリングする手段
とを含む、ディスプレイ上に可視のグラフィカル・オブ
ジェクトをレンダリングする装置。 (2)グラフィカル・オブジェクトのそれぞれに識別子
を割り当てる手段をさらに含む、上記(1)の装置。 (3)前記割当手段が、複数のグラフィカル・プリミテ
ィブを単一のグラフィカル・オブジェクトにグループ化
する手段を含むことを特徴とする、上記(2)の装置。 (4)前記割当手段が、グラフィカル・プリミティブを
複数のグラフィカル・オブジェクトに分割する手段を含
み、各グラフィカル・オブジェクトに異なるオブジェク
ト識別子が割り当てられることを特徴とする、上記
(2)の装置。 (5)前記分割手段が、前記グラフィカル・プリミティ
ブを面によって分割する手段を含むことを特徴とする、
上記(4)の装置。 (6)それぞれにグラフィカル・オブジェクトのオブジ
ェクト識別子が与えられる、深さを有する複数の画素
に、前記オブジェクトのそれぞれをスキャン変換するス
テップと、所与の画素位置に関して前に記憶された深さ
より視点に近い画素深さを有する画素のそれぞれの深さ
とオブジェクト識別子とをメモリに記憶するステップ
と、前記メモリに記憶されたオブジェクト識別子を有す
るグラフィカル・オブジェクトをレンダリングするステ
ップとを含む、ディスプレイ上に可視のグラフィカル・
オブジェクトをレンダリングする方法。 (7)グラフィカル・オブジェクトのそれぞれに識別子
を割り当てるステップをさらに含む、上記(6)の方
法。 (8)前記割当ステップが、複数のグラフィカル・プリ
ミティブを単一のグラフィカル・オブジェクトにグルー
プ化するステップを含むことを特徴とする、上記(7)
の方法。 (9)前記割当ステップが、グラフィカル・プリミティ
ブを複数のグラフィカル・オブジェクトに分割するステ
ップを含み、各グラフィカル・オブジェクトに異なるオ
ブジェクト識別子が割り当てられることを特徴とする、
上記(7)の方法。 (10)前記分割ステップが、前記グラフィカル・プリ
ミティブを面によって分割するステップを含むことを特
徴とする、上記(9)の方法。 (11)処理すべきデータを記憶するためのメモリと、
メモリに記憶されたデータを処理するためのプロセッサ
と、ディスプレイ上に可視のグラフィカル・オブジェク
トをレンダリングするためのグラフィックス処理装置で
あって、それぞれにグラフィカル・オブジェクトのオブ
ジェクト識別子が与えられる、深さを有する複数の画素
に、前記オブジェクトのそれぞれをスキャン変換する手
段と、所与の画素位置に関して前に記憶された深さより
視点に近い画素深さを有する画素のそれぞれの深さとオ
ブジェクト識別子とをメモリに記憶する手段と、前記メ
モリに記憶されたオブジェクト識別子を有するグラフィ
カル・オブジェクトをレンダリングする手段とを含む前
記グラフィックス処理装置とを含むデータ処理システ
ム。 (12)グラフィックス処理システムが、グラフィカル
・オブジェクトのそれぞれに識別子を割り当てる手段を
さらに含む、上記(11)のデータ処理システム。 (13)前記割当手段が、複数のグラフィカル・プリミ
ティブを単一のグラフィカル・オブジェクトにグループ
化する手段を含むことを特徴とする、上記(12)のデ
ータ処理システム。 (14)前記割当手段が、グラフィカル・プリミティブ
を複数のグラフィカル・オブジェクトに分割する手段を
含み、各グラフィカル・オブジェクトに異なるオブジェ
クト識別子が割り当てられることを特徴とする、上記
(12)のデータ処理システム。 (15)前記分割手段が、前記グラフィカル・プリミテ
ィブを面によって分割する手段を含むことを特徴とす
る、上記(14)のデータ処理システム。
【0044】
【発明の効果】本発明には、多数の長所がある。たとえ
ば、照明、カラー、テクスチャなどのレンダリング計算
は、オブジェクトが可視であると判定されない限り、実
行する必要がない。さらに、オブジェクトは、どのよう
な順序でも処理することができ、このため、以前の可視
性判定技法の制約の一部が克服される。さらに、本発明
は、オブジェクトの分割、オブジェクトのグループ化、
多重解処理および他の技法を含む、上で述べた多数の最
適化技法を扱える柔軟性を有する。
ば、照明、カラー、テクスチャなどのレンダリング計算
は、オブジェクトが可視であると判定されない限り、実
行する必要がない。さらに、オブジェクトは、どのよう
な順序でも処理することができ、このため、以前の可視
性判定技法の制約の一部が克服される。さらに、本発明
は、オブジェクトの分割、オブジェクトのグループ化、
多重解処理および他の技法を含む、上で述べた多数の最
適化技法を扱える柔軟性を有する。
【0045】上では具体的な実施例を参照して本発明を
完全に説明してきたが、他の代替実施例も、当業者には
明白であろう。したがって、上の説明は、本発明の範囲
を制限するものとして解釈してはならず、本発明の範囲
は、請求の範囲によって定義される。
完全に説明してきたが、他の代替実施例も、当業者には
明白であろう。したがって、上の説明は、本発明の範囲
を制限するものとして解釈してはならず、本発明の範囲
は、請求の範囲によって定義される。
【図1】本発明の好ましい実施例によって使用される典
型的なディジタル・コンピュータを示す図である。
型的なディジタル・コンピュータを示す図である。
【図2】通常はグラフィックス機能を実行するためホス
ト・コンピュータおよびグラフィックス・アダプタによ
って利用されるコードの層を示すブロック図である。
ト・コンピュータおよびグラフィックス・アダプタによ
って利用されるコードの層を示すブロック図である。
【図3】ウィンドウ400に表示された大きな立方体4
10、三角錐420および小さな立方体430を示す図
である。
10、三角錐420および小さな立方体430を示す図
である。
【図4】本発明の好ましい実施例でグラフィックス・ア
ダプタ・メモリ内で使用されるデータ構造を示すブロッ
ク図である。
ダプタ・メモリ内で使用されるデータ構造を示すブロッ
ク図である。
【図5】本発明の好ましい実施例による、陰面と隠れオ
ブジェクトを効率的に取り除く方法を示す流れ図であ
る。
ブジェクトを効率的に取り除く方法を示す流れ図であ
る。
【図6】本発明の好ましい実施例による、可視のオブジ
ェクトを判定するためのオブジェクト可視性バッファの
処理を示す流れ図である。
ェクトを判定するためのオブジェクト可視性バッファの
処理を示す流れ図である。
【図7】本発明の好ましい実施例による、可視オブジェ
クトの可視画素のレンダリングを示す流れ図である。
クトの可視画素のレンダリングを示す流れ図である。
100 ディジタル・コンピュータ 105 コンピュータ・ボックス 110 主プロセッサ 120 主記憶 125 ハード・ディスク 130 入力装置 140 出力装置 150 グラフィックス出力装置 160 バス 170 入出力装置コントローラ 180 入出力装置 190 取外し可能媒体 200 グラフィックス・アダプタ 220 グラフィックス・アダプタ・プロセッサ 230 グラフィックス・アダプタ・メモリ 231 オブジェクト可視性バッファ 232 オブジェクト識別子 233 Z値 235 オブジェクト可視性リスト 240 フレーム・バッファ 250 RAMDAC(ランダム・アクセス・メモリ・
ディジタル・アナログ変換器) 300 オペレーティング・システム 310 オペレーティング・システム・カーネル 320 ホスト・コンピュータ・マイクロコード 330 グラフィックス・アプリケーション 332 グラフィックス・アプリケーション 340 API 342 API 350 GAI 352 GAI 360 プロセス 362 プロセス 370 デバイス・ドライバ 380 グラフィックス・アダプタ・マイクロコード 400 ウィンドウ 410 立方体 420 三角錐 430 立方体
ディジタル・アナログ変換器) 300 オペレーティング・システム 310 オペレーティング・システム・カーネル 320 ホスト・コンピュータ・マイクロコード 330 グラフィックス・アプリケーション 332 グラフィックス・アプリケーション 340 API 342 API 350 GAI 352 GAI 360 プロセス 362 プロセス 370 デバイス・ドライバ 380 グラフィックス・アダプタ・マイクロコード 400 ウィンドウ 410 立方体 420 三角錐 430 立方体
Claims (15)
- 【請求項1】それぞれにグラフィカル・オブジェクトの
オブジェクト識別子が与えられる、深さを有する複数の
画素に、前記オブジェクトのそれぞれをスキャン変換す
る手段と、 所与の画素位置に関して前に記憶された深さより視点に
近い画素深さを有する画素のそれぞれの深さとオブジェ
クト識別子とをメモリに記憶する手段と、 前記メモリに記憶されたオブジェクト識別子を有するグ
ラフィカル・オブジェクトをレンダリングする手段とを
含む、ディスプレイ上に可視のグラフィカル・オブジェ
クトをレンダリングする装置。 - 【請求項2】グラフィカル・オブジェクトのそれぞれに
識別子を割り当てる手段をさらに含む、請求項1の装
置。 - 【請求項3】前記割当手段が、複数のグラフィカル・プ
リミティブを単一のグラフィカル・オブジェクトにグル
ープ化する手段を含むことを特徴とする、請求項2の装
置。 - 【請求項4】前記割当手段が、グラフィカル・プリミテ
ィブを複数のグラフィカル・オブジェクトに分割する手
段を含み、各グラフィカル・オブジェクトに異なるオブ
ジェクト識別子が割り当てられることを特徴とする、請
求項2の装置。 - 【請求項5】前記分割手段が、前記グラフィカル・プリ
ミティブを面によって分割する手段を含むことを特徴と
する、請求項4の装置。 - 【請求項6】それぞれにグラフィカル・オブジェクトの
オブジェクト識別子が与えられる、深さを有する複数の
画素に、前記オブジェクトのそれぞれをスキャン変換す
るステップと、 所与の画素位置に関して前に記憶された深さより視点に
近い画素深さを有する画素のそれぞれの深さとオブジェ
クト識別子とをメモリに記憶するステップと、 前記メモリに記憶されたオブジェクト識別子を有するグ
ラフィカル・オブジェクトをレンダリングするステップ
とを含む、ディスプレイ上に可視のグラフィカル・オブ
ジェクトをレンダリングする方法。 - 【請求項7】グラフィカル・オブジェクトのそれぞれに
識別子を割り当てるステップをさらに含む、請求項6の
方法。 - 【請求項8】前記割当ステップが、複数のグラフィカル
・プリミティブを単一のグラフィカル・オブジェクトに
グループ化するステップを含むことを特徴とする、請求
項7の方法。 - 【請求項9】前記割当ステップが、グラフィカル・プリ
ミティブを複数のグラフィカル・オブジェクトに分割す
るステップを含み、各グラフィカル・オブジェクトに異
なるオブジェクト識別子が割り当てられることを特徴と
する、請求項7の方法。 - 【請求項10】前記分割ステップが、前記グラフィカル
・プリミティブを面によって分割するステップを含むこ
とを特徴とする、請求項9の方法。 - 【請求項11】処理すべきデータを記憶するためのメモ
リと、 メモリに記憶されたデータを処理するためのプロセッサ
と、 ディスプレイ上に可視のグラフィカル・オブジェクトを
レンダリングするためのグラフィックス処理装置であっ
て、 それぞれにグラフィカル・オブジェクトのオブジェクト
識別子が与えられる、深さを有する複数の画素に、前記
オブジェクトのそれぞれをスキャン変換する手段と、 所与の画素位置に関して前に記憶された深さより視点に
近い画素深さを有する画素のそれぞれの深さとオブジェ
クト識別子とをメモリに記憶する手段と、 前記メモリに記憶されたオブジェクト識別子を有するグ
ラフィカル・オブジェクトをレンダリングする手段とを
含む前記グラフィックス処理装置とを含むデータ処理シ
ステム。 - 【請求項12】グラフィックス処理システムが、グラフ
ィカル・オブジェクトのそれぞれに識別子を割り当てる
手段をさらに含む、請求項11のデータ処理システム。 - 【請求項13】前記割当手段が、複数のグラフィカル・
プリミティブを単一のグラフィカル・オブジェクトにグ
ループ化する手段を含むことを特徴とする、請求項12
のデータ処理システム。 - 【請求項14】前記割当手段が、グラフィカル・プリミ
ティブを複数のグラフィカル・オブジェクトに分割する
手段を含み、各グラフィカル・オブジェクトに異なるオ
ブジェクト識別子が割り当てられることを特徴とする、
請求項12のデータ処理システム。 - 【請求項15】前記分割手段が、前記グラフィカル・プ
リミティブを面によって分割する手段を含むことを特徴
とする、請求項14のデータ処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US278433 | 1981-06-25 | ||
| US27843394A | 1994-07-21 | 1994-07-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0855239A true JPH0855239A (ja) | 1996-02-27 |
Family
ID=23064954
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7168688A Pending JPH0855239A (ja) | 1994-07-21 | 1995-07-04 | グラフィカル・オブジェクトの可視性を判定するための方法および装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5734806A (ja) |
| JP (1) | JPH0855239A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002526842A (ja) * | 1998-08-20 | 2002-08-20 | アップル コンピュータ インコーポレイテッド | ディファード・シェーディング(deferredshading)を伴うグラフィックス・プロセッサ(graphicsprocessor) |
| US7148896B2 (en) | 2001-07-09 | 2006-12-12 | Samsung Electronics Co., Ltd. | Method for representing image-based rendering information in 3D scene |
| JP2009295161A (ja) * | 2008-06-04 | 2009-12-17 | Arm Ltd | グラフィックス処理システム |
| JP2009295166A (ja) * | 2008-06-05 | 2009-12-17 | Arm Ltd | グラフィックス処理システム |
| KR20120030700A (ko) * | 2010-09-20 | 2012-03-29 | 삼성전자주식회사 | 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법 |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6016147A (en) | 1995-05-08 | 2000-01-18 | Autodesk, Inc. | Method and system for interactively determining and displaying geometric relationships between three dimensional objects based on predetermined geometric constraints and position of an input device |
| US5572639A (en) | 1995-05-08 | 1996-11-05 | Gantt; Brian D. | Method and apparatus for interactively manipulating and displaying presumptive relationships between graphic objects |
| US7401299B2 (en) | 2001-09-05 | 2008-07-15 | Autodesk, Inc. | Method and apparatus for providing a presumptive drafting solution |
| JP2882465B2 (ja) * | 1995-12-25 | 1999-04-12 | 日本電気株式会社 | 画像生成方法およびその装置 |
| US5977980A (en) * | 1997-07-14 | 1999-11-02 | Ati Technologies | Method and apparatus for determining visibility of a pixel |
| US5949423A (en) * | 1997-09-30 | 1999-09-07 | Hewlett Packard Company | Z buffer with degree of visibility test |
| US6456285B2 (en) * | 1998-05-06 | 2002-09-24 | Microsoft Corporation | Occlusion culling for complex transparent scenes in computer generated graphics |
| US6266064B1 (en) * | 1998-05-29 | 2001-07-24 | Microsoft Corporation | Coherent visibility sorting and occlusion cycle detection for dynamic aggregate geometry |
| US6215503B1 (en) | 1998-05-29 | 2001-04-10 | Microsoft Corporation | Image generator and method for resolving non-binary cyclic occlusions with image compositing operations |
| US6359629B1 (en) | 1998-07-06 | 2002-03-19 | Silicon Graphics, Inc. | Backface primitives culling |
| AU5688199A (en) | 1998-08-20 | 2000-03-14 | Raycer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
| US6720964B1 (en) | 1998-08-27 | 2004-04-13 | Ati International Srl | Method and apparatus for processing portions of primitives that are being rendered |
| US6492987B1 (en) | 1998-08-27 | 2002-12-10 | Ati Technologies, Inc. | Method and apparatus for processing object elements that are being rendered |
| US6417865B1 (en) | 1999-03-09 | 2002-07-09 | Autodesk, Inc. | Affinitive placement by proximity in a computer-implemented graphics system |
| US7000197B1 (en) | 2000-06-01 | 2006-02-14 | Autodesk, Inc. | Method and apparatus for inferred selection of objects |
| US6927768B2 (en) | 2001-09-05 | 2005-08-09 | Autodesk, Inc. | Three dimensional depth cue for selected data |
| EP1306810A1 (en) * | 2001-10-25 | 2003-05-02 | STMicroelectronics Limited | Triangle identification buffer |
| US7599044B2 (en) | 2005-06-23 | 2009-10-06 | Apple Inc. | Method and apparatus for remotely detecting presence |
| US7242169B2 (en) * | 2005-03-01 | 2007-07-10 | Apple Inc. | Method and apparatus for voltage compensation for parasitic impedance |
| US9298311B2 (en) * | 2005-06-23 | 2016-03-29 | Apple Inc. | Trackpad sensitivity compensation |
| US7577930B2 (en) | 2005-06-23 | 2009-08-18 | Apple Inc. | Method and apparatus for analyzing integrated circuit operations |
| US7433191B2 (en) * | 2005-09-30 | 2008-10-07 | Apple Inc. | Thermal contact arrangement |
| US7598711B2 (en) * | 2005-11-23 | 2009-10-06 | Apple Inc. | Power source switchover apparatus and method |
| JPWO2009122588A1 (ja) * | 2008-04-04 | 2011-07-28 | クラリオン株式会社 | 地図表示装置 |
| US8566359B1 (en) * | 2008-12-15 | 2013-10-22 | Pixar | Unfolding sparse data sets |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4970499A (en) * | 1988-07-21 | 1990-11-13 | Raster Technologies, Inc. | Apparatus and method for performing depth buffering in a three dimensional display |
| US5268995A (en) * | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
| US5265199A (en) * | 1991-05-22 | 1993-11-23 | Silicon Graphics, Inc. | Method and apparatus for accomplishing Z-buffering by prediction |
| US5357599A (en) * | 1992-07-30 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for rendering polygons |
-
1995
- 1995-07-04 JP JP7168688A patent/JPH0855239A/ja active Pending
-
1996
- 1996-06-21 US US08/665,975 patent/US5734806A/en not_active Expired - Fee Related
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002526842A (ja) * | 1998-08-20 | 2002-08-20 | アップル コンピュータ インコーポレイテッド | ディファード・シェーディング(deferredshading)を伴うグラフィックス・プロセッサ(graphicsprocessor) |
| US7148896B2 (en) | 2001-07-09 | 2006-12-12 | Samsung Electronics Co., Ltd. | Method for representing image-based rendering information in 3D scene |
| JP2009295161A (ja) * | 2008-06-04 | 2009-12-17 | Arm Ltd | グラフィックス処理システム |
| US9367953B2 (en) | 2008-06-04 | 2016-06-14 | Arm Limited | Graphics processing systems |
| US9947131B2 (en) | 2008-06-04 | 2018-04-17 | Arm Limited | Graphics processing system |
| US10755473B2 (en) | 2008-06-04 | 2020-08-25 | Arm Limited | Graphics processing system |
| JP2009295166A (ja) * | 2008-06-05 | 2009-12-17 | Arm Ltd | グラフィックス処理システム |
| US8698820B2 (en) | 2008-06-05 | 2014-04-15 | Arm Limited | Graphics processing systems |
| KR20120030700A (ko) * | 2010-09-20 | 2012-03-29 | 삼성전자주식회사 | 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5734806A (en) | 1998-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0855239A (ja) | グラフィカル・オブジェクトの可視性を判定するための方法および装置 | |
| JP3030206B2 (ja) | グラフィック多角形をクリップ領域にクリップする方法および装置 | |
| US5805782A (en) | Method and apparatus for projective texture mapping rendered from arbitrarily positioned and oriented light source | |
| JPH0877365A (ja) | 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置 | |
| US7292242B1 (en) | Clipping with addition of vertices to existing primitives | |
| US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
| US20040075654A1 (en) | 3-D digital image processor and method for visibility processing for use in the same | |
| US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
| JPH0683979A (ja) | 影の生成を伴うコンピュータ図形表示の方法及びシステム | |
| JP2001357410A (ja) | 別々に生成された3次元イメージを合成するグラフィックス・システム | |
| KR19980702804A (ko) | 영상 생성 및 조작을 위한 하드웨어 아키텍처 | |
| JPH02287776A (ja) | 大域レンダリングに階層ディスプレイリストを採用する方法 | |
| KR0150832B1 (ko) | 그래픽 대상을 인터로크하기 위한 방법 및 장치 | |
| US5973701A (en) | Dynamic switching of texture mip-maps based on pixel depth value | |
| US6097395A (en) | Dynamic selection of lighting coordinates in a computer graphics system | |
| JPH08249502A (ja) | 補助バッファ情報を用いる改良型グラフィクス・ピッキング方法及び装置 | |
| JPH03139781A (ja) | プリミテイブ描出方法、ポリゴン・シエーデイング方法、及びデイスプレイ・プロセツサ | |
| US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
| EP1242972B1 (en) | A method and apparatus for ensuring backward compatibility in a bucket rendering system | |
| JPH09231385A (ja) | オブジェクトのラスタ化方法及び装置 | |
| US6850244B2 (en) | Apparatus and method for gradient mapping in a graphics processing system | |
| JPH06215143A (ja) | グラフィックス・オブジェクト表現方法と装置 | |
| EP0425573B1 (en) | Texture mapping for computer graphics display controller system | |
| JPH06215133A (ja) | データ処理装置および方法 | |
| JPH0573259A (ja) | 画像シエーデイング方法及び画像処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |