JPH09326043A - 画素フラグメントの結合システムおよび方法 - Google Patents
画素フラグメントの結合システムおよび方法Info
- Publication number
- JPH09326043A JPH09326043A JP8352108A JP35210896A JPH09326043A JP H09326043 A JPH09326043 A JP H09326043A JP 8352108 A JP8352108 A JP 8352108A JP 35210896 A JP35210896 A JP 35210896A JP H09326043 A JPH09326043 A JP H09326043A
- Authority
- JP
- Japan
- Prior art keywords
- fragment
- value
- existing
- new
- depth range
- 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; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
(57)【要約】 (修正有)
【課題】ラスタ演算を行う隠面処理において、従来のA
バッファ法におけるようなリスト処理の制約を改善し、
効果的にフラグメントのグループ化を行う。 【解決手段】グループ化をフラグメントの奥行き範囲値
に基づいて行うようにする。新しく入力されたフラグメ
ントは、奥行き範囲値が既存のフラグメントの奥行き範
囲値と比較され、重なりがあればその重なった既存のフ
ラグメントに結合され(220)、重なりがなければ破
棄される(224)。結合処理は、最小限、最も近い面
である単一面に対するフラグメントについて行う。Aバ
ッファ法の場合のようにリストを長さで制限してフラグ
メントを破棄することをしないので、潜在的に重要な画
素情報が失われることがない。
バッファ法におけるようなリスト処理の制約を改善し、
効果的にフラグメントのグループ化を行う。 【解決手段】グループ化をフラグメントの奥行き範囲値
に基づいて行うようにする。新しく入力されたフラグメ
ントは、奥行き範囲値が既存のフラグメントの奥行き範
囲値と比較され、重なりがあればその重なった既存のフ
ラグメントに結合され(220)、重なりがなければ破
棄される(224)。結合処理は、最小限、最も近い面
である単一面に対するフラグメントについて行う。Aバ
ッファ法の場合のようにリストを長さで制限してフラグ
メントを破棄することをしないので、潜在的に重要な画
素情報が失われることがない。
Description
【0001】
【発明の分野】この発明は、一般にコンピュータグラフ
ィックスシステムに関し、特に奥行き範囲値に画素フラ
グメントを結合するシステムおよび方法に関する。
ィックスシステムに関し、特に奥行き範囲値に画素フラ
グメントを結合するシステムおよび方法に関する。
【0002】
【関連技術】コンピュータグラフィックスシステムは、
種々のビジネスや産業の分野で広範囲に使用されてい
る。3次元グラフィックスシステムの発達により、コン
ピュータグラフィックスシステムの使用は増加の一途を
たどっている。3次元画像が描画可能となったことによ
って、2次元座標システムでは都合の悪い多くの新しい
アプリケーションにコンピュータグラフィックスシステ
ムを使用することに一層拍車がかかった。
種々のビジネスや産業の分野で広範囲に使用されてい
る。3次元グラフィックスシステムの発達により、コン
ピュータグラフィックスシステムの使用は増加の一途を
たどっている。3次元画像が描画可能となったことによ
って、2次元座標システムでは都合の悪い多くの新しい
アプリケーションにコンピュータグラフィックスシステ
ムを使用することに一層拍車がかかった。
【0003】3次元画像を正しく描画するには、グラフ
ィックスシステムは3次元画像の種々の属性を処理する
必要がある。そのような属性の1つに隠面現象がある。
簡単に言えば、3次元画像は奥行き成分を有するため、
描画される情景のうちのいくつかの物体は、視点に近い
他の物体により隠れてしまう場合がある。これらの隠れ
た物体の面は隠面と呼ばれる。
ィックスシステムは3次元画像の種々の属性を処理する
必要がある。そのような属性の1つに隠面現象がある。
簡単に言えば、3次元画像は奥行き成分を有するため、
描画される情景のうちのいくつかの物体は、視点に近い
他の物体により隠れてしまう場合がある。これらの隠れ
た物体の面は隠面と呼ばれる。
【0004】3次元グラフィックスシステムの開発当初
から隠面処理を施すための種々の技術が設計者に提供さ
れている。その他殆どすべての規律がそうであるよう
に、3次元グラフィックスシステムの設計者は画像品質
の必要性とその品質を得るために要する計算費用とのバ
ランスを取らねばならない。
から隠面処理を施すための種々の技術が設計者に提供さ
れている。その他殆どすべての規律がそうであるよう
に、3次元グラフィックスシステムの設計者は画像品質
の必要性とその品質を得るために要する計算費用とのバ
ランスを取らねばならない。
【0005】システム設計者により長年使用されてきた
技術の1つが良く知られたZバッファである。Zバッフ
ァは、画素毎にフレームバッファに格納されたZ値、す
なわち奥行き値の配列である。各画素を描画するたび
に、その画素のZ値がすでに描画されている画素のZ値
と比較される。新しい画素のZ値がすでに描画されてい
る画素の前に位置する(すなわち、新しく描画する画素
が面の一部を構成する)場合、フレームバッファ内で、
すでに描画されている画素が新しい画素に置き換えられ
る。
技術の1つが良く知られたZバッファである。Zバッフ
ァは、画素毎にフレームバッファに格納されたZ値、す
なわち奥行き値の配列である。各画素を描画するたび
に、その画素のZ値がすでに描画されている画素のZ値
と比較される。新しい画素のZ値がすでに描画されてい
る画素の前に位置する(すなわち、新しく描画する画素
が面の一部を構成する)場合、フレームバッファ内で、
すでに描画されている画素が新しい画素に置き換えられ
る。
【0006】Zバッファは、コンピュータグラフィック
スシステムでは良く知られており、3次元グラフィック
スシステムにおいて隠面を処理するのに使用されてき
た。Zバッファをコンピュータグラフィックスシステム
に使用した例としては、米国特許第4,951,232
号(発明者:Hannah)、米国特許第5,038,
297号(発明者:Hannah)、および米国特許第
5,265,199号(発明者:Catlin)が挙げ
られる(上記3件は、シリコングラフィックス社に譲渡
されており、本願明細書に引用される)。
スシステムでは良く知られており、3次元グラフィック
スシステムにおいて隠面を処理するのに使用されてき
た。Zバッファをコンピュータグラフィックスシステム
に使用した例としては、米国特許第4,951,232
号(発明者:Hannah)、米国特許第5,038,
297号(発明者:Hannah)、および米国特許第
5,265,199号(発明者:Catlin)が挙げ
られる(上記3件は、シリコングラフィックス社に譲渡
されており、本願明細書に引用される)。
【0007】Zバッファは、きわめて高速であり、実現
が非常に簡単ではあるが、エイリアジングが生じ、透視
物体をうまく処理することができない。透視物体を処理
する他の技術も提案されている。その1つがCompu
ter Graphics誌(vol.12,no.
3,pp.6−11,ACM,1978)の“アンチエ
イリアジングを用いた隠面アルゴリズム”(筆者:CA
TAMULL,E)というタイトル記事に書かれた“究
極の”可視性方法である。Catmullのアンチエイ
リアジングアルゴリズムは正確であるが、物体精度重み
付け領域サンプリングを画素毎に行うことによりアンチ
エイリアジングを行う、高価なアルゴリズムである。要
するに、各画素に投影する多角形の断片(フラグメン
ト)を比較する完全可視面アルゴリズムが画素毎に行わ
れる。しかしながら、完全物体―精度可視面アルゴリズ
ムを用いることは、ある種のアプリケーションでは必要
以上にコスト高となる。
が非常に簡単ではあるが、エイリアジングが生じ、透視
物体をうまく処理することができない。透視物体を処理
する他の技術も提案されている。その1つがCompu
ter Graphics誌(vol.12,no.
3,pp.6−11,ACM,1978)の“アンチエ
イリアジングを用いた隠面アルゴリズム”(筆者:CA
TAMULL,E)というタイトル記事に書かれた“究
極の”可視性方法である。Catmullのアンチエイ
リアジングアルゴリズムは正確であるが、物体精度重み
付け領域サンプリングを画素毎に行うことによりアンチ
エイリアジングを行う、高価なアルゴリズムである。要
するに、各画素に投影する多角形の断片(フラグメン
ト)を比較する完全可視面アルゴリズムが画素毎に行わ
れる。しかしながら、完全物体―精度可視面アルゴリズ
ムを用いることは、ある種のアプリケーションでは必要
以上にコスト高となる。
【0008】Zバッファの高速性と他の解決方法が有す
るアンチエイリアジング機能とを組み合わせたもう一つ
の解決方法がAバッファである。Aバッファの方法は、
Catmullの画素単位の物体精度領域サンプリング
に近似した技術であり、画素単位の画像精度演算を副画
素格子上で行う。この技術によれば、多角形を走査ライ
ン順に処理し、多角形により覆い隠される各方形画素毎
に多角形をクリッピングする。これにより、クリッピン
グされた多角形フラグメントのリストが画素毎に作られ
る。各フラグメントは、フラグメントにより覆われる画
素のクリッピングされた多角形フラグメントのビットマ
スクと関連付けられる。ビットマスクは、フラグメント
の各エッジを表わすマスクデータの排他的論理和を取る
ことにより計算される。1つの画素と交差する多角形が
すべて処理されると、奥行き方向にソートされた順番に
フラグメントを選択し、選択されたフラグメントのビッ
トマスクを用いてさらに遠くのフラグメントをクリップ
することにより画素の可視面の色の領域重み付け平均値
を得る。ビットマスクは、ブール演算を用いて簡単に計
算することができる。
るアンチエイリアジング機能とを組み合わせたもう一つ
の解決方法がAバッファである。Aバッファの方法は、
Catmullの画素単位の物体精度領域サンプリング
に近似した技術であり、画素単位の画像精度演算を副画
素格子上で行う。この技術によれば、多角形を走査ライ
ン順に処理し、多角形により覆い隠される各方形画素毎
に多角形をクリッピングする。これにより、クリッピン
グされた多角形フラグメントのリストが画素毎に作られ
る。各フラグメントは、フラグメントにより覆われる画
素のクリッピングされた多角形フラグメントのビットマ
スクと関連付けられる。ビットマスクは、フラグメント
の各エッジを表わすマスクデータの排他的論理和を取る
ことにより計算される。1つの画素と交差する多角形が
すべて処理されると、奥行き方向にソートされた順番に
フラグメントを選択し、選択されたフラグメントのビッ
トマスクを用いてさらに遠くのフラグメントをクリップ
することにより画素の可視面の色の領域重み付け平均値
を得る。ビットマスクは、ブール演算を用いて簡単に計
算することができる。
【0009】Aバッファ処理法によれば、ラスタオペレ
ーション中に作られた断片は、連結リストで結合され
る。フラグメントは、フレームバッファ内で結合される
前に順番に(例えば前から後ろに)ソートされる。1つ
のフラグメントが完全な画素を記述している場合には、
リスト内の残りのフラグメントはすべて破棄される。こ
れは、リスト消去と呼ばれる。ソートは、透視性を正し
く計算し、同じ幾何学的基本立体からのフラグメントを
クラスタリングするのに必要である。同じ物体タグを有
し、Z値が重なる場合にのみ断片が結合される。
ーション中に作られた断片は、連結リストで結合され
る。フラグメントは、フレームバッファ内で結合される
前に順番に(例えば前から後ろに)ソートされる。1つ
のフラグメントが完全な画素を記述している場合には、
リスト内の残りのフラグメントはすべて破棄される。こ
れは、リスト消去と呼ばれる。ソートは、透視性を正し
く計算し、同じ幾何学的基本立体からのフラグメントを
クラスタリングするのに必要である。同じ物体タグを有
し、Z値が重なる場合にのみ断片が結合される。
【0010】Aバッファ処理の1つの欠点は、リストが
極めて長くなるということである。長さが不定のリスト
を得ることなく処理を正確に行うことが望ましい。リス
トの長さが不定になるのを防ぐ1つの方法は、単純にリ
ストのサイズを制限し、リストが最大長に達したらそれ
以降に入力された断片を破棄することである。しかし、
潜在的に重要な画素情報を失うことになるので、理想の
解決方法に比べて見劣りする。
極めて長くなるということである。長さが不定のリスト
を得ることなく処理を正確に行うことが望ましい。リス
トの長さが不定になるのを防ぐ1つの方法は、単純にリ
ストのサイズを制限し、リストが最大長に達したらそれ
以降に入力された断片を破棄することである。しかし、
潜在的に重要な画素情報を失うことになるので、理想の
解決方法に比べて見劣りする。
【0011】
【発明の概要】この発明は、物体をディスプレイに描画
しながら複数の奥行きの面を処理するシステムおよび方
法である。この発明によれば、フラグメントが入力され
てフレームバッファに格納されると、奥行き値と奥行き
範囲値に従ってグループ分けされる。最小限の解の場
合、唯一保持されるフラグメントは、最も近い面のフラ
グメントである。すなわち、最も近い面に属し、その面
の他のフラグメントの奥行き範囲値と重なる奥行き範囲
値を有するフラグメントのみが保持される。残りのフラ
グメントは、すべて破棄される。
しながら複数の奥行きの面を処理するシステムおよび方
法である。この発明によれば、フラグメントが入力され
てフレームバッファに格納されると、奥行き値と奥行き
範囲値に従ってグループ分けされる。最小限の解の場
合、唯一保持されるフラグメントは、最も近い面のフラ
グメントである。すなわち、最も近い面に属し、その面
の他のフラグメントの奥行き範囲値と重なる奥行き範囲
値を有するフラグメントのみが保持される。残りのフラ
グメントは、すべて破棄される。
【0012】この発明によれば、グラフィックスシステ
ムのラスタ演算部からフラグメントが出力されると、フ
ラグメントがまたがる奥行き範囲値が計算される。フラ
グメントが最も近い面を表わすことを示す奥行き値を有
している場合には、奥行き範囲値が決定され、その面の
既存のフラグメントの範囲値と比較される。現在のフラ
グメントの範囲値が既存のフラグメント(これは、以前
に結合したフラグメントが考えられる)の範囲値と重な
る場合には、そのフラグメントは破棄されない。第1の
実施形態では、奥行き値が最初にチェックされるので、
最も近い面の一部ではないフラグメントに対して奥行き
値を決定する必要はない。
ムのラスタ演算部からフラグメントが出力されると、フ
ラグメントがまたがる奥行き範囲値が計算される。フラ
グメントが最も近い面を表わすことを示す奥行き値を有
している場合には、奥行き範囲値が決定され、その面の
既存のフラグメントの範囲値と比較される。現在のフラ
グメントの範囲値が既存のフラグメント(これは、以前
に結合したフラグメントが考えられる)の範囲値と重な
る場合には、そのフラグメントは破棄されない。第1の
実施形態では、奥行き値が最初にチェックされるので、
最も近い面の一部ではないフラグメントに対して奥行き
値を決定する必要はない。
【0013】この実施形態は、範囲値を決定し比較する
前に奥行き値を最初にチェックするステップを必要とせ
ずに、実現可能である。この後者の変形例では、フラグ
メントの奥行き値に関係無く、各フラグメントに対して
範囲値の比較を行う必要がある。
前に奥行き値を最初にチェックするステップを必要とせ
ずに、実現可能である。この後者の変形例では、フラグ
メントの奥行き値に関係無く、各フラグメントに対して
範囲値の比較を行う必要がある。
【0014】別の実施形態では、多面(すなわち複数の
奥行きにおける面)のフラグメントは、別個のグループ
(バケットと呼ばれる)に保持される。この実施形態で
は、入力されたフラグメントの奥行き範囲値は、同一面
に対して受け取った前回のフラグメントの奥行き値と比
較される。この2つのフラグメントの奥行き値が重なっ
ている場合、そのフラグメントは、その面に対応したバ
ケットに保持される。
奥行きにおける面)のフラグメントは、別個のグループ
(バケットと呼ばれる)に保持される。この実施形態で
は、入力されたフラグメントの奥行き範囲値は、同一面
に対して受け取った前回のフラグメントの奥行き値と比
較される。この2つのフラグメントの奥行き値が重なっ
ている場合、そのフラグメントは、その面に対応したバ
ケットに保持される。
【0015】従って、これら2つの実施形態の主な違い
は、第1実施形態では視点に最も近い面を表わすフラグ
メントのみを保持するのに対して、第2実施形態は多面
のフラグメントを保持することである。この第2実施形
態の場合も、奥行き範囲値を計算および比較する前に、
前記フラグメントの奥行き値を最初にチェックすること
無しに実現できる。一度フラグメントの奥行き範囲値が
わかると、この範囲値は既存のフラグメントの奥行き範
囲値と比較する場合以外は必要ない。
は、第1実施形態では視点に最も近い面を表わすフラグ
メントのみを保持するのに対して、第2実施形態は多面
のフラグメントを保持することである。この第2実施形
態の場合も、奥行き範囲値を計算および比較する前に、
前記フラグメントの奥行き値を最初にチェックすること
無しに実現できる。一度フラグメントの奥行き範囲値が
わかると、この範囲値は既存のフラグメントの奥行き範
囲値と比較する場合以外は必要ない。
【0016】入力されたフラグメントが前回のフラグメ
ントと重なる範囲が無い場合、そのフラグメントは破棄
される。保持されている各フラグメントは対応するバケ
ット(第1実施形態におけるバケット)の既存のフラグ
メントと結合される。
ントと重なる範囲が無い場合、そのフラグメントは破棄
される。保持されている各フラグメントは対応するバケ
ット(第1実施形態におけるバケット)の既存のフラグ
メントと結合される。
【0017】結合操作は、簡単な加算、平均値、2乗値
の加算、その他入力されたフラグメントの属性を既存の
フラグメントと結合することにより行われる。この発明
が実現されるグラフィックスシステムに応じて、結合さ
れた属性値は、色、濃度等を含むことができる。一実施
形態では、結合動作は色値のみを結合し、奥行き値や奥
行き範囲値は結合しない。
の加算、その他入力されたフラグメントの属性を既存の
フラグメントと結合することにより行われる。この発明
が実現されるグラフィックスシステムに応じて、結合さ
れた属性値は、色、濃度等を含むことができる。一実施
形態では、結合動作は色値のみを結合し、奥行き値や奥
行き範囲値は結合しない。
【0018】一実施形態では、他の計算が行われる前に
フラグメントのα値がチェックされる。この実施形態で
は、フラグメントが全体として透視性があることをα値
が示す場合(例えばα値=0)には、そのフラグメント
は無視される。
フラグメントのα値がチェックされる。この実施形態で
は、フラグメントが全体として透視性があることをα値
が示す場合(例えばα値=0)には、そのフラグメント
は無視される。
【0019】この発明の利点は、不定の長い連結リスト
を必要とせずにフラグメントを入力し結合することがで
きるということである。フラグメントを入力すると、そ
のフラグメントを保持できるかあるいは破棄すべきかが
決定される。
を必要とせずにフラグメントを入力し結合することがで
きるということである。フラグメントを入力すると、そ
のフラグメントを保持できるかあるいは破棄すべきかが
決定される。
【0020】この発明のさらなる特徴と利点並びにこの
発明の種々の実施形態の構成と動作は、添付図面を参照
して以下に詳細に述べる。
発明の種々の実施形態の構成と動作は、添付図面を参照
して以下に詳細に述べる。
【0021】
発明の全体像と解説 この発明は、奥行き範囲値に基づいて画素を結合するシ
ステムと方法に関する。この発明によれば、画素フラグ
メントを入力すると、その奥行き範囲値がチェックされ
る。新しく入力されたフラグメントの奥行き範囲値が、
前回入力されたフラグメント(すなわち既存のフラグメ
ント)の奥行き範囲値と重なる場合には、新しいいフラ
グメントは既存のフラグメントと結合される。
ステムと方法に関する。この発明によれば、画素フラグ
メントを入力すると、その奥行き範囲値がチェックされ
る。新しく入力されたフラグメントの奥行き範囲値が、
前回入力されたフラグメント(すなわち既存のフラグメ
ント)の奥行き範囲値と重なる場合には、新しいいフラ
グメントは既存のフラグメントと結合される。
【0022】一実施形態では、視者に最も近い面に対応
するフラグメントのみが保持され、他のフラグメントは
すべて破棄される。この実施形態では、フラグメントが
入力されると、最も近い面の既存のフラグメントと比較
される。両フラグメントの奥行き範囲値が重なる場合に
は、新しいフラグメントは既存のフラグメントと結合さ
れる。この実施形態の一実現方法によれば、新しいフラ
グメントの範囲値(Z)が最初にチェックされ、新しい
フラグメントが最も近い面の一部であるか否かが判断さ
れる。新しいフラグメントが最も近い面の一部でない場
合には、その範囲値を決定および比較せずに即座に破棄
される。
するフラグメントのみが保持され、他のフラグメントは
すべて破棄される。この実施形態では、フラグメントが
入力されると、最も近い面の既存のフラグメントと比較
される。両フラグメントの奥行き範囲値が重なる場合に
は、新しいフラグメントは既存のフラグメントと結合さ
れる。この実施形態の一実現方法によれば、新しいフラ
グメントの範囲値(Z)が最初にチェックされ、新しい
フラグメントが最も近い面の一部であるか否かが判断さ
れる。新しいフラグメントが最も近い面の一部でない場
合には、その範囲値を決定および比較せずに即座に破棄
される。
【0023】他の実施形態では、複数の面のフラグメン
トが保持される。この実施形態では、フラグメントが入
力されると、その複数の面の既存のフラグメントと比較
される。一致すると(すなわち、既存のフラグメントに
奥行き範囲値の重なりが発見されると)、新しく入力さ
れたフラグメントが一致したフラグメントと結合され
る。
トが保持される。この実施形態では、フラグメントが入
力されると、その複数の面の既存のフラグメントと比較
される。一致すると(すなわち、既存のフラグメントに
奥行き範囲値の重なりが発見されると)、新しく入力さ
れたフラグメントが一致したフラグメントと結合され
る。
【0024】例示的環境 この発明は、フライトシュミレータ、グラフィックスワ
ークステーション、ビデオゲーム、その他多くのアプリ
ケーションに使用されるグラフィックスシステム内に実
現されるのに適している。この発明を詳細に記述する前
に、この発明に使用可能なグラフィックスシステムの一
例を一般的に記述することが有用である。この記述は、
単なる例示に過ぎず、この発明の範囲や応用を、ここに
述べた特定の環境に限定するものではない。図1は、一
例としてのグラフィックスシステム100を示すブロッ
ク図である。
ークステーション、ビデオゲーム、その他多くのアプリ
ケーションに使用されるグラフィックスシステム内に実
現されるのに適している。この発明を詳細に記述する前
に、この発明に使用可能なグラフィックスシステムの一
例を一般的に記述することが有用である。この記述は、
単なる例示に過ぎず、この発明の範囲や応用を、ここに
述べた特定の環境に限定するものではない。図1は、一
例としてのグラフィックスシステム100を示すブロッ
ク図である。
【0025】図1において、一例としてのグラフィック
スシステム100は一般にプロセッサ104とフレーム
バッファ116を有する。多くのグラフィックスシステ
ムはZバッファ108とステンシルバッファ112を含
む。プロセッサ104はグラフィックス動作を行うよう
にプログラムされたマイクロプロセッサあるいは他の汎
用プロセッサを適用することができる。また、プロセッ
サ104は専用グラフィックスプロセッサあるいはグラ
フィックス更新コントローラを用いて実現することも可
能である。さらに別の実施形態では、プロセッサ104
は汎用プロセッサとグラフィックスコプロセッサを組み
合わせることにより実現してもよい。
スシステム100は一般にプロセッサ104とフレーム
バッファ116を有する。多くのグラフィックスシステ
ムはZバッファ108とステンシルバッファ112を含
む。プロセッサ104はグラフィックス動作を行うよう
にプログラムされたマイクロプロセッサあるいは他の汎
用プロセッサを適用することができる。また、プロセッ
サ104は専用グラフィックスプロセッサあるいはグラ
フィックス更新コントローラを用いて実現することも可
能である。さらに別の実施形態では、プロセッサ104
は汎用プロセッサとグラフィックスコプロセッサを組み
合わせることにより実現してもよい。
【0026】フレームバッファ116はメモリ位置の配
列であり、各位置は表示される画像の1点(すなわち1
画素)に対応する。ラスタオペレーションとして知られ
るプロセスにおいて、画素フラグメントが作られる。フ
ラグメントはフラグメントに対応したフレームバッファ
位置を更新するのに使用される。
列であり、各位置は表示される画像の1点(すなわち1
画素)に対応する。ラスタオペレーションとして知られ
るプロセスにおいて、画素フラグメントが作られる。フ
ラグメントはフラグメントに対応したフレームバッファ
位置を更新するのに使用される。
【0027】グラフィックスシステム100が動作する
環境により、画素フラグメントは、異なる態様で発生さ
れる。OpenGLTMとして知られる一実施形態によれ
ば、フラグメントはラスタオペレーションの結果として
作られる。OpenGLTMのラスタオペレーションにお
いて、プロセッサ104は基本立体を2次元画像に変換
する。この画像の各点は、色および奥行き等の情報を含
む。ラスタオペレーションは、一般に2つのステップで
実行される。:(1)格子の四角形が基本立体により占
有されているか否かを判断する。(2)この情報に基づ
きフレームバッファ116内の適当な位置を更新する。
色、奥行き(Z)およびテキスチャ値が割り付けられた
格子四角形は、フラグメントと呼ばれる。
環境により、画素フラグメントは、異なる態様で発生さ
れる。OpenGLTMとして知られる一実施形態によれ
ば、フラグメントはラスタオペレーションの結果として
作られる。OpenGLTMのラスタオペレーションにお
いて、プロセッサ104は基本立体を2次元画像に変換
する。この画像の各点は、色および奥行き等の情報を含
む。ラスタオペレーションは、一般に2つのステップで
実行される。:(1)格子の四角形が基本立体により占
有されているか否かを判断する。(2)この情報に基づ
きフレームバッファ116内の適当な位置を更新する。
色、奥行き(Z)およびテキスチャ値が割り付けられた
格子四角形は、フラグメントと呼ばれる。
【0028】ラスタオペレーションにより作られたフラ
グメントを使用して、フレームバッファ116に格納さ
れた画像情報を更新することができる。フラグメントが
実際にこの画素情報を変更するか否かは、フラグメント
に対して行われる1つ以上のテストにより判断できる。
これらのテストとしては、例えば、画素所有テスト、シ
ザーテスト、αテスト、ステンシルテスト、および奥行
きバッファテストがあるが、これらのテストに限定され
るものではない。画素所有テストは、フレームバッファ
116内の対応する位置の画素がコンテクストにより現
在所有されているどうか判断する。シザーテストは、シ
ザー矩形として知られる4値により定義される矩形内に
フラグメントがあるかどうか判断する。αテストは、R
GBAモードで使用され、入力されるフラグメントのα
値を基準α値と比較する。
グメントを使用して、フレームバッファ116に格納さ
れた画像情報を更新することができる。フラグメントが
実際にこの画素情報を変更するか否かは、フラグメント
に対して行われる1つ以上のテストにより判断できる。
これらのテストとしては、例えば、画素所有テスト、シ
ザーテスト、αテスト、ステンシルテスト、および奥行
きバッファテストがあるが、これらのテストに限定され
るものではない。画素所有テストは、フレームバッファ
116内の対応する位置の画素がコンテクストにより現
在所有されているどうか判断する。シザーテストは、シ
ザー矩形として知られる4値により定義される矩形内に
フラグメントがあるかどうか判断する。αテストは、R
GBAモードで使用され、入力されるフラグメントのα
値を基準α値と比較する。
【0029】ステンシルテストは、フラグメントのステ
ンシル値と、ステンシルバッファ112の対応する位置
の基準との比較に基づいて、フラグメントを条件により
破棄する。とりわけ、ステンシルテストは、共面多角形
を描画するのに有効である。Zバッファテスト(奥行き
テスト)は、入力するフラグメントのZ値(奥行き値)
をZバッファ108内の対応する位置に格納されたZ値
と比較する。フラグメントが後方、すなわちフレームバ
ッファ116内の対応する画素の面により隠されている
ことを比較結果が示している場合には、このフラグメン
トは破棄される。
ンシル値と、ステンシルバッファ112の対応する位置
の基準との比較に基づいて、フラグメントを条件により
破棄する。とりわけ、ステンシルテストは、共面多角形
を描画するのに有効である。Zバッファテスト(奥行き
テスト)は、入力するフラグメントのZ値(奥行き値)
をZバッファ108内の対応する位置に格納されたZ値
と比較する。フラグメントが後方、すなわちフレームバ
ッファ116内の対応する画素の面により隠されている
ことを比較結果が示している場合には、このフラグメン
トは破棄される。
【0030】この発明は、このような例示的環境下で記
述される。このような条件での記述は、便宜的なものに
すぎない。従って、この発明がこの例示的環境での適用
に限定されるものではない。事実、以下の文章を読むこ
とにより、別の実施形態でこの発明を実現できること
は、当業者には明らかである。
述される。このような条件での記述は、便宜的なものに
すぎない。従って、この発明がこの例示的環境での適用
に限定されるものではない。事実、以下の文章を読むこ
とにより、別の実施形態でこの発明を実現できること
は、当業者には明らかである。
【0031】デルタZ比較 上述したように、ほとんどあるいはすべてのグラフィッ
クスシステムにおいて、いくつかのテストを行い、フラ
グメントがフレームバッファ内にすでに格納されている
対応画素値と結合されるかどうか判断される。この発明
によれば、フラグメントが同じ画素位置に対応する既存
のフラグメントに結合されるか否かを判断する前に特別
のテストが行われる。一般的に言えば、このテストは、
新しく入力されたフラグメントの奥行き範囲値と対象画
素の既存のフラグメントの奥行き範囲値とを比較する。
新しいフラグメントの範囲値が既存のフラグメントの範
囲値と重なる場合には、この新しいフラグメントは既存
のフラグメントと結合される。特に、この発明の一実施
形態によれば、フラグメントの奥行き範囲値がフラグメ
ント間の絶対距離以上である場合にのみ、新しいフラグ
メントを既存のフラグメントに結合する。
クスシステムにおいて、いくつかのテストを行い、フラ
グメントがフレームバッファ内にすでに格納されている
対応画素値と結合されるかどうか判断される。この発明
によれば、フラグメントが同じ画素位置に対応する既存
のフラグメントに結合されるか否かを判断する前に特別
のテストが行われる。一般的に言えば、このテストは、
新しく入力されたフラグメントの奥行き範囲値と対象画
素の既存のフラグメントの奥行き範囲値とを比較する。
新しいフラグメントの範囲値が既存のフラグメントの範
囲値と重なる場合には、この新しいフラグメントは既存
のフラグメントと結合される。特に、この発明の一実施
形態によれば、フラグメントの奥行き範囲値がフラグメ
ント間の絶対距離以上である場合にのみ、新しいフラグ
メントを既存のフラグメントに結合する。
【0032】結合動作が完了すると、既存のフラグメン
トは、新しいフラグメントの値と前回の既存のフラグメ
ントの値との結合値を有する。一実施形態では、色(あ
るいは濃度)値のみが既存のフラグメントに結合され
る。この結合により、奥行き値あるいは奥行き範囲値が
変わることは無い。他の実施形態では、他の画素値も同
様に結合される。
トは、新しいフラグメントの値と前回の既存のフラグメ
ントの値との結合値を有する。一実施形態では、色(あ
るいは濃度)値のみが既存のフラグメントに結合され
る。この結合により、奥行き値あるいは奥行き範囲値が
変わることは無い。他の実施形態では、他の画素値も同
様に結合される。
【0033】一実施形態によれば、比較動作および結合
動作は、その画素位置における視点に最も近い面に対し
てのみ行われる。説明を容易にするために、この実施形
態を単一面実施形態と呼ぶ。別の実施形態では、比較動
作は種々の奥行き値を持ついくつかの異なる面に対して
行われ、新しく入力されたフラグメントは同じ面に対応
する既存のフラグメントと結合される。この別の実施形
態においては、複数のフラグメントが保持され、望まし
くは、1つの面に対して1つのフラグメントが保持され
る。説明を容易にするために、この別の実施形態を多面
実施形態と呼ぶ。
動作は、その画素位置における視点に最も近い面に対し
てのみ行われる。説明を容易にするために、この実施形
態を単一面実施形態と呼ぶ。別の実施形態では、比較動
作は種々の奥行き値を持ついくつかの異なる面に対して
行われ、新しく入力されたフラグメントは同じ面に対応
する既存のフラグメントと結合される。この別の実施形
態においては、複数のフラグメントが保持され、望まし
くは、1つの面に対して1つのフラグメントが保持され
る。説明を容易にするために、この別の実施形態を多面
実施形態と呼ぶ。
【0034】単一面実施形態についてさらに詳述する。
多面実施形態についても適宜参照する。この記述を読め
ば、単一面実施形態あるいは多面実施形態をどのように
実現するかは、当業者には明白である。
多面実施形態についても適宜参照する。この記述を読め
ば、単一面実施形態あるいは多面実施形態をどのように
実現するかは、当業者には明白である。
【0035】図2は、この発明の一実施形態に基づく動
作を示す動作フロー図である。図2において、一般にグ
ラフィックスシステムは、画像に対してラスタオペレー
ションを行い、その結果、種々の画素位置に対するフラ
グメントを発生する。これは、プロセスボックス204
で示される。このステップでは、プロセッサ104は、
各フラグメントの適当な値を計算する。一実施形態で
は、プロセッサ104は、x方向の範囲値の変化(dz
/dx)、y方向の範囲値の変化(dz/dy)、並び
に色、不透明値および奥行き値を計算する。例えば、プ
ロセッサ104は、各画素の赤、緑、青の各値、不透明
値のα値および奥行き値に対するz値を計算することが
できる。さらに、プロセッサ104は、画素中心におけ
る各フラグメントに対する画素値を計算することが望ま
しい。プロセスボックス204により示されるこのステ
ップは、プロセッサ104のような一般的なプロセッサ
により実行できる公知のステップである。
作を示す動作フロー図である。図2において、一般にグ
ラフィックスシステムは、画像に対してラスタオペレー
ションを行い、その結果、種々の画素位置に対するフラ
グメントを発生する。これは、プロセスボックス204
で示される。このステップでは、プロセッサ104は、
各フラグメントの適当な値を計算する。一実施形態で
は、プロセッサ104は、x方向の範囲値の変化(dz
/dx)、y方向の範囲値の変化(dz/dy)、並び
に色、不透明値および奥行き値を計算する。例えば、プ
ロセッサ104は、各画素の赤、緑、青の各値、不透明
値のα値および奥行き値に対するz値を計算することが
できる。さらに、プロセッサ104は、画素中心におけ
る各フラグメントに対する画素値を計算することが望ま
しい。プロセスボックス204により示されるこのステ
ップは、プロセッサ104のような一般的なプロセッサ
により実行できる公知のステップである。
【0036】この発明によれば、フラグメントに対する
奥行き値は、範囲値dz/dxおよびdz/dyから計
算される。特に、この発明の一実施形態によれば、範囲
値は以下の式により計算される。 範囲値=z±{ABS(dz/dx)+ABS(dz/
dy)} 但し、ABSは絶対値を表す。
奥行き値は、範囲値dz/dxおよびdz/dyから計
算される。特に、この発明の一実施形態によれば、範囲
値は以下の式により計算される。 範囲値=z±{ABS(dz/dx)+ABS(dz/
dy)} 但し、ABSは絶対値を表す。
【0037】一実施形態では、xおよびy方向の奥行き
範囲値は、そのフラグメントの単一の奥行き範囲値につ
ぶされる。換言すれば、dz/dxおよびdz/dy
は、結合されて単一の範囲値dz/dscreenが作られ
る。このステップは、多くの異なる技術を用いて行うこ
とができる。例えば、このつぶしは、単純に2つの値の
大きい方をとる方法や、2つの値の2乗値の加算をとる
方法や、他の技術により行うことができる。この実施形
態では、範囲値は以下の式により計算される。 範囲値=z±{ABS(dz/dscreen)}
範囲値は、そのフラグメントの単一の奥行き範囲値につ
ぶされる。換言すれば、dz/dxおよびdz/dy
は、結合されて単一の範囲値dz/dscreenが作られ
る。このステップは、多くの異なる技術を用いて行うこ
とができる。例えば、このつぶしは、単純に2つの値の
大きい方をとる方法や、2つの値の2乗値の加算をとる
方法や、他の技術により行うことができる。この実施形
態では、範囲値は以下の式により計算される。 範囲値=z±{ABS(dz/dscreen)}
【0038】フラグメントの範囲値を計算するステップ
は、図2のプロセスボックス208により示される。
は、図2のプロセスボックス208により示される。
【0039】一度フラグメントの範囲値が決定される
と、この奥行き範囲値が既存のフラグメントの奥行き範
囲値と比較される。これは、プロセスボックス212に
より示される。範囲値が重なる場合には、新しいフラグ
メントが既存のフラグメントに結合される。これは、プ
ロセスボックス216および220により示される。重
なりが無い場合には、新しいフラグメントは破棄され
る。これは、プロセスボックス216および224によ
り示される。多面実施形態においては、新しく入力され
たフラグメントは、1つのフラグメントが既存の1つの
面を表す複数の既存のフラグメントと比較される。これ
らのフラグメントの1つと重なる場合には、この新しい
フラグメントは結合される。
と、この奥行き範囲値が既存のフラグメントの奥行き範
囲値と比較される。これは、プロセスボックス212に
より示される。範囲値が重なる場合には、新しいフラグ
メントが既存のフラグメントに結合される。これは、プ
ロセスボックス216および220により示される。重
なりが無い場合には、新しいフラグメントは破棄され
る。これは、プロセスボックス216および224によ
り示される。多面実施形態においては、新しく入力され
たフラグメントは、1つのフラグメントが既存の1つの
面を表す複数の既存のフラグメントと比較される。これ
らのフラグメントの1つと重なる場合には、この新しい
フラグメントは結合される。
【0040】他の実施形態では、範囲値が決定され比較
される前に、フラグメントの奥行き範囲値がチェックさ
れる。単一面実施形態においては、フラグメントが最も
近い面の一部でないことを範囲値が示す場合には、この
フラグメントは奥行き範囲値の比較を行わずに破棄され
る。多面実施形態においては、フラグメントが、保持さ
れている複数の面の1つでないことを範囲値が示す場合
には、このフラグメントは奥行き範囲値の比較を行わず
に破棄される。
される前に、フラグメントの奥行き範囲値がチェックさ
れる。単一面実施形態においては、フラグメントが最も
近い面の一部でないことを範囲値が示す場合には、この
フラグメントは奥行き範囲値の比較を行わずに破棄され
る。多面実施形態においては、フラグメントが、保持さ
れている複数の面の1つでないことを範囲値が示す場合
には、このフラグメントは奥行き範囲値の比較を行わず
に破棄される。
【0041】この発明の一実施形態によれば、フラグメ
ントの奥行き範囲値がフラグメント間の絶対距離以上で
ある場合にのみ、新しいフラグメントを既存のフラグメ
ントに結合する。望ましくは、フラグメント間の距離が
零の場合には、常に結合される。さらに、一実施形態で
は、フラグメント同士が非常に近接する場合、重なりが
あるか否かに関わらず、フラグメントを結合することが
重要であると考えられる。この“常に結合する”条件に
対して設定される実際の最大距離限界値は、システム設
計者あるいはアプリケーション開発者の目的に応じて変
えることができる。
ントの奥行き範囲値がフラグメント間の絶対距離以上で
ある場合にのみ、新しいフラグメントを既存のフラグメ
ントに結合する。望ましくは、フラグメント間の距離が
零の場合には、常に結合される。さらに、一実施形態で
は、フラグメント同士が非常に近接する場合、重なりが
あるか否かに関わらず、フラグメントを結合することが
重要であると考えられる。この“常に結合する”条件に
対して設定される実際の最大距離限界値は、システム設
計者あるいはアプリケーション開発者の目的に応じて変
えることができる。
【0042】図3は、この発明の一実施形態による構成
例を示すブロック図である。図3において、この構成に
よる発明は、奥行き範囲値の計算および比較機能304
およびフレーム結合機能308を有する。図3に示すよ
うに、これらのエレメントは、プロセッサ104および
フレームバッファ116と相互作用する。特に、奥行き
範囲値の計算および比較機能304は、プロセッサ10
4からフラグメントを受け取り、結合したフラグメント
をフレームバッファ116に格納する。この発明の機能
をブロック図で示す代表的な構成は例示に過ぎない。こ
の発明の精神から逸脱しない他の構成を実現することも
可能である。
例を示すブロック図である。図3において、この構成に
よる発明は、奥行き範囲値の計算および比較機能304
およびフレーム結合機能308を有する。図3に示すよ
うに、これらのエレメントは、プロセッサ104および
フレームバッファ116と相互作用する。特に、奥行き
範囲値の計算および比較機能304は、プロセッサ10
4からフラグメントを受け取り、結合したフラグメント
をフレームバッファ116に格納する。この発明の機能
をブロック図で示す代表的な構成は例示に過ぎない。こ
の発明の精神から逸脱しない他の構成を実現することも
可能である。
【0043】上述したように、一実施形態においては、
結合プロセスはフラグメントの色値および不透明値のみ
を結合した。この実施形態においては、奥行き値および
奥行き範囲値は結合されない。結合プロセスは、加算、
平均、混合その他のプロセスにより実現可能である。
結合プロセスはフラグメントの色値および不透明値のみ
を結合した。この実施形態においては、奥行き値および
奥行き範囲値は結合されない。結合プロセスは、加算、
平均、混合その他のプロセスにより実現可能である。
【0044】一実施形態では、不透明値が監視され、不
透明値がある値(例えば100%)になると混合が用い
られる。この実施形態の一態様によれば、混合は新規の
現在のα値によってのみ制御され、奥行き値の混合はフ
ラグメントが100%になるまで無視される。これによ
り透視面に作用した場合の混合エラーを防止することが
できる。
透明値がある値(例えば100%)になると混合が用い
られる。この実施形態の一態様によれば、混合は新規の
現在のα値によってのみ制御され、奥行き値の混合はフ
ラグメントが100%になるまで無視される。これによ
り透視面に作用した場合の混合エラーを防止することが
できる。
【0045】他の付加機能により移し絵のような特殊な
状況にも対処できる。例えば、入力されたフラグメント
が移し絵のフラグメントである場合には、入力された移
し絵のフラグメントの範囲値が既存のフラグメントの既
存の範囲値に優先する。新規かつ既存の範囲値の合計値
は、100%より大きいので、単純に現在の範囲値を用
いて混合が行われる。
状況にも対処できる。例えば、入力されたフラグメント
が移し絵のフラグメントである場合には、入力された移
し絵のフラグメントの範囲値が既存のフラグメントの既
存の範囲値に優先する。新規かつ既存の範囲値の合計値
は、100%より大きいので、単純に現在の範囲値を用
いて混合が行われる。
【0046】フラグメントの合計範囲値が100%を超
える場合には、奥行き値およびα情報の両方を用いて混
合係数を作ることが望ましい。一実施形態においては、
奥行き値の混合が最初に計算され、次にアルファ(不透
明)値に基づいて変更される。
える場合には、奥行き値およびα情報の両方を用いて混
合係数を作ることが望ましい。一実施形態においては、
奥行き値の混合が最初に計算され、次にアルファ(不透
明)値に基づいて変更される。
【0047】既存のフラグメントが移し絵のフラグメン
トの場合には、フラグメントの範囲値は入力されるフラ
グメントの範囲値に優先することが望ましい。新規かつ
既存の範囲値の合計値は、100%より大きいので、1
マイナス現在の範囲値を用いて混合が行われる。
トの場合には、フラグメントの範囲値は入力されるフラ
グメントの範囲値に優先することが望ましい。新規かつ
既存の範囲値の合計値は、100%より大きいので、1
マイナス現在の範囲値を用いて混合が行われる。
【0048】この発明の種々の実施形態について述べた
が、上述した実施形態は、例示に過ぎず、この発明を限
定するものではない。したがって、この発明の範囲は、
上述したいずれの実施形態によっても限定されず、以下
のクレームおよびその均等物によってのみ限定される。
が、上述した実施形態は、例示に過ぎず、この発明を限
定するものではない。したがって、この発明の範囲は、
上述したいずれの実施形態によっても限定されず、以下
のクレームおよびその均等物によってのみ限定される。
【図1】この発明の一例としてのグラフィックスシステ
ムを示すブロック図である。
ムを示すブロック図である。
【図2】この発明の一実施形態による奥行き範囲値に基
づいてフラグメントを結合すべきか否かを決定するプロ
セスを示す動作フローチャートである。
づいてフラグメントを結合すべきか否かを決定するプロ
セスを示す動作フローチャートである。
【図3】この発明の一実施形態によるデルタ−Z比較の
代表的な構成を示すブロック図である。
代表的な構成を示すブロック図である。
100…グラフィックスシステム 104…プロセッサ 108…Zバッファ 112…ステンシルバッファ 116…フレームバッファ 304…比較機能 308…フレーム結合機能
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596016535 2011 North Shoreline Boulevard Mountain View,California 94039 U.S.A. (72)発明者 カート・ビー・エイケレイ アメリカ合衆国 カリフォルニア州94040, マウンテン・ビュー,ミルトン・コート, 3360番 (72)発明者 カロル・フィリップ・ゴセット アメリカ合衆国 カリフォルニア州94043, マウンテン・ビュー,バーゴイン,1169番
Claims (25)
- 【請求項1】 新しいフラグメントを既存のフラグメン
トと結合するための方法であって、 新しいフラグメントの奥行き範囲値を決定するステップ
と、 前記新しいフラグメントの奥行き範囲値を既存のフラグ
メントの奥行き範囲値と比較して、前記新しいフラグメ
ントの奥行き範囲値が前記既存のフラグメントの奥行き
範囲値と重なるか否かを判断するステップと、 前記新しいフラグメントの奥行き範囲値が前記既存のフ
ラグメントの奥行き範囲値と重なる場合には、前記新し
いフラグメントを前記既存のフラグメントに結合するス
テップとを備える、フラグメント結合方法。 - 【請求項2】 前記新しいフラグメントの奥行き範囲値
が前記既存のフラグメントの奥行き範囲値と重ならない
場合には、前記新しいフラグメントを破棄するステップ
をさらに備える、請求項1に記載のフラグメント結合方
法。 - 【請求項3】 前記新しいフラグメントの奥行き範囲値
を判断するステップは、 z±{ABS(dz/dx)+ABS(dz/dy)} により前記新しいフラグメントの奥行き範囲値を計算す
るステップを備える、請求項1に記載のフラグメント結
合方法。 - 【請求項4】 前記新しいフラグメントの奥行き範囲値
を判断するステップは、 z±{ABS(dz/dscreen)} により前記新しいフラグメントの奥行き範囲値を計算す
るステップを備える、請求項1に記載のフラグメント結
合方法。 - 【請求項5】 前記dz/dscreenはdz/dxおよび
dz/dyの最大値として決定される、請求項4に記載
のフラグメント結合方法。 - 【請求項6】 前記dz/dscreenはdz/dxおよび
dz/dyの2乗値の合計値として決定される、請求項
4に記載のフラグメント結合方法。 - 【請求項7】 前記新しいフラグメントと前記既存のフ
ラグメントとの間の距離が零である場合には、前記新し
いフラグメントは常に既存のフラグメントと結合され
る、請求項1に記載のフラグメント結合方法。 - 【請求項8】 前記新しいフラグメントが前記既存のフ
ラグメントの最大距離限界値内にある場合には、前記新
しいフラグメントは常に既存のフラグメントと結合され
る、請求項1に記載のフラグメント結合方法。 - 【請求項9】 前記結合ステップは、前記新しいフラグ
メントのフラグメント値と前記既存のフラグメントのフ
ラグメント値とを加算するステップを備える、請求項1
に記載のフラグメント結合方法。 - 【請求項10】 前記結合ステップは、前記新しいフラ
グメントのフラグメント値と前記既存のフラグメントの
フラグメント値との平均値をとるステップを備える、請
求項1に記載のフラグメント結合方法。 - 【請求項11】 前記既存の不透明値を監視するステッ
プをさらに備え、前記結合ステップは、前記不透明値が
所定値に達した場合に、前記新しいフラグメントのフラ
グメント値と前記既存のフラグメントのフラグメント値
とを混合するステップを備える、請求項1に記載のフラ
グメント結合方法。 - 【請求項12】 前記所定値は、100%の不透明値で
ある、請求項11に記載のフラグメント結合方法。 - 【請求項13】 前記新しいフラグメントの奥行き範囲
値を前記既存のフラグメントの奥行き範囲値と比較する
ステップは、各フラグメントが別個の面を表す複数の既
存のフラグメントに対して実行され、前記新しいフラグ
メントを前記既存のフラグメントに結合するステップ
は、重なりのある前記複数の既存のフラグメントの1つ
に対して実行される、請求項1に記載のフラグメント結
合方法。 - 【請求項14】 プロセッサにより発生された新しいフ
ラグメントの奥行き範囲値を決定する手段と、 前記新しいフラグメントの奥行き範囲値を既存のフラグ
メントの奥行き範囲値と比較する手段と、 前記新しいフラグメントの奥行き範囲値が前記既存のフ
ラグメントの奥行き範囲値と重なる場合には、前記新し
いフラグメントを前記既存のフラグメントに結合する手
段とを備える、画像の描画システム。 - 【請求項15】 前記新しいフラグメントの奥行き範囲
値が前記既存のフラグメントの奥行き範囲値と重ならな
い場合には、前記新しいフラグメントを破棄する手段を
さらに備える、請求項14に記載の画像の描画システ
ム。 - 【請求項16】 前記新しいフラグメントの奥行き範囲
値を決定する手段は、 z±{ABS(dz/dx)+ABS(dz/dy)} により前記新しいフラグメントの奥行き範囲値を計算す
る手段を備える、請求項14に記載の画像の描画システ
ム。 - 【請求項17】 前記新しいフラグメントの奥行き範囲
値を決定する手段は、 z±{ABS(dz/dscreen)} により前記新しいフラグメントの奥行き範囲値を計算す
る手段を備える、請求項14に記載の画像の描画システ
ム。 - 【請求項18】 前記新しいフラグメントを結合する手
段は、前記新しいフラグメントと前記既存のフラグメン
トとの間の距離が零である場合に、範囲値の重なりに関
係無く前記新しいフラグメントを既存のフラグメントに
結合する手段を備える、請求項14に記載の画像の描画
システム。 - 【請求項19】 前記新しいフラグメントを結合する手
段は、前記新しいフラグメントが前記既存のフラグメン
トの最大距離限界値内にある場合に、範囲値の重なりに
関係無く前記新しいフラグメントを既存のフラグメント
に結合する手段を備える、請求項14に記載の画像の描
画システム。 - 【請求項20】 前記新しいフラグメントを結合する手
段は、前記新しいフラグメントのフラグメント値に前記
既存のフラグメントのフラグメント値を加算する手段を
備える、請求項14に記載の画像の描画システム。 - 【請求項21】 前記新しいフラグメントを結合する手
段は、前記新しいフラグメントのフラグメント値と前記
既存のフラグメントのフラグメント値との平均値を取る
手段を備える、請求項14に記載の画像の描画システ
ム。 - 【請求項22】 前記既存の不透明値を監視する手段を
さらに有し、前記結合手段は、前記不透明値が所定値に
達した場合に、前記新しいフラグメントのフラグメント
値と前記既存のフラグメントのフラグメント値とを混合
する手段を備える、請求項14に記載の画像の描画シス
テム。 - 【請求項23】 前記所定値は、100%の不透明値で
ある、請求項22に記載の画像の描画システム。 - 【請求項24】 前記既存のフラグメントを格納するフ
レームバッファをさらに備える、請求項14に記載の画
像の描画システム。 - 【請求項25】 前記新しいフラグメントの奥行き範囲
値を前記既存のフラグメントの奥行き範囲値と比較する
手段は、各フラグメントが別個の面を表す複数の既存の
フラグメントに対して実行され、前記新しいフラグメン
トを前記既存のフラグメントに結合する手段は、重なり
のある前記複数の既存のフラグメントの1つに対して実
行される、請求項14に記載の画像の描画システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/562283 | 1995-11-22 | ||
US08/562,283 US5854631A (en) | 1995-11-22 | 1995-11-22 | System and method for merging pixel fragments based on depth range values |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09326043A true JPH09326043A (ja) | 1997-12-16 |
Family
ID=24245617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8352108A Pending JPH09326043A (ja) | 1995-11-22 | 1996-11-21 | 画素フラグメントの結合システムおよび方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5854631A (ja) |
EP (1) | EP0775982B1 (ja) |
JP (1) | JPH09326043A (ja) |
DE (1) | DE69632013T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002529870A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング及びテクスチャリング |
JP2004272928A (ja) * | 1998-08-20 | 2004-09-30 | Apple Computer Inc | 進歩したディファード・シェーディング・グラフィクス・パイプライン・プロセッサ |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115049A (en) * | 1996-09-30 | 2000-09-05 | Apple Computer, Inc. | Method and apparatus for high performance antialiasing which minimizes per pixel storage and object data bandwidth |
FR2767329B1 (fr) * | 1997-08-13 | 1999-09-24 | Ceca Sa | Procede pour la preparation d'enrobes denses a l'emulsion, et emulsion pour y parvenir |
US6104407A (en) * | 1997-09-23 | 2000-08-15 | Ati Technologies, Inc. | Method and apparatus for processing fragment pixel information in a three-dimensional graphics processing system |
JP3580682B2 (ja) * | 1997-09-26 | 2004-10-27 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置および方法 |
US6204859B1 (en) * | 1997-10-15 | 2001-03-20 | Digital Equipment Corporation | Method and apparatus for compositing colors of images with memory constraints for storing pixel data |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US6577317B1 (en) | 1998-08-20 | 2003-06-10 | Apple Computer, Inc. | Apparatus and method for geometry operations in a 3D-graphics pipeline |
US6429876B1 (en) * | 1998-08-28 | 2002-08-06 | Ati International Srl | Method and apparatus for video graphics antialiasing with memory overflow optimization |
JP2000293705A (ja) * | 1999-04-01 | 2000-10-20 | Mitsubishi Electric Corp | 3次元グラフィックス用描画装置、3次元グラフィックス用描画方法および3次元グラフィックス用描画プログラムを記録した媒体 |
US6445392B1 (en) * | 1999-06-24 | 2002-09-03 | Ati International Srl | Method and apparatus for simplified anti-aliasing in a video graphics system |
US6617544B1 (en) | 2000-05-19 | 2003-09-09 | Mitsubishi Denki Kabushiki Kaisha | Control apparatus for a three-dimensional laser working machine and three-dimensional laser working machine |
US7145564B1 (en) * | 2000-06-01 | 2006-12-05 | Ati International, Srl | Method and apparatus for tessellation lighting |
US6633297B2 (en) | 2000-08-18 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | System and method for producing an antialiased image using a merge buffer |
US8692844B1 (en) * | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
US6704026B2 (en) * | 2001-05-18 | 2004-03-09 | Sun Microsystems, Inc. | Graphics fragment merging for improving pixel write bandwidth |
US7091971B2 (en) * | 2001-10-29 | 2006-08-15 | Ati Technologies, Inc. | System, method, and apparatus for multi-level hierarchical Z buffering |
JP3637031B2 (ja) * | 2002-04-03 | 2005-04-06 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
US6788307B2 (en) * | 2002-04-09 | 2004-09-07 | Evans & Sutherland Computer Corporation | System and method for improved pixel rendering performance |
US7508398B1 (en) | 2002-08-27 | 2009-03-24 | Nvidia Corporation | Transparent antialiased memory access |
US7145565B2 (en) * | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8788996B2 (en) * | 2003-09-15 | 2014-07-22 | Nvidia Corporation | System and method for configuring semiconductor functional circuits |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US7599044B2 (en) | 2005-06-23 | 2009-10-06 | Apple Inc. | Method and apparatus for remotely detecting presence |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US7577930B2 (en) | 2005-06-23 | 2009-08-18 | Apple Inc. | Method and apparatus for analyzing integrated circuit operations |
US9298311B2 (en) | 2005-06-23 | 2016-03-29 | Apple Inc. | Trackpad sensitivity compensation |
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 |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US7791617B2 (en) * | 2005-12-19 | 2010-09-07 | Nvidia Corporation | Method and system for rendering polygons having abutting edges |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US8928676B2 (en) * | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US8477134B1 (en) | 2006-06-30 | 2013-07-02 | Nvidia Corporation | Conservative triage of polygon status using low precision edge evaluation and high precision edge evaluation |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
CN101617354A (zh) | 2006-12-12 | 2009-12-30 | 埃文斯和萨瑟兰计算机公司 | 用于校准单个调制器投影仪中的rgb光的系统和方法 |
ITMI20070038A1 (it) * | 2007-01-12 | 2008-07-13 | St Microelectronics Srl | Dispositivo di renderizzazione per grafica a tre dimensioni con architettura di tipo sort-middle. |
US8724483B2 (en) * | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8063903B2 (en) * | 2007-11-09 | 2011-11-22 | Nvidia Corporation | Edge evaluation techniques for graphics hardware |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US8698799B2 (en) | 2009-01-20 | 2014-04-15 | Adobe Systems Incorporated | Method and apparatus for rendering graphics using soft occlusion |
US20110063309A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | User interface for co-processing techniques on heterogeneous graphics processing units |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US8643666B2 (en) * | 2011-02-25 | 2014-02-04 | Adobe Systems Incorporated | Stenciled layer peeling graphics processing |
US9477597B2 (en) | 2011-03-25 | 2016-10-25 | Nvidia Corporation | Techniques for different memory depths on different partitions |
US8701057B2 (en) | 2011-04-11 | 2014-04-15 | Nvidia Corporation | Design, layout, and manufacturing techniques for multivariant integrated circuits |
US9529712B2 (en) | 2011-07-26 | 2016-12-27 | Nvidia Corporation | Techniques for balancing accesses to memory having different memory types |
US8730264B1 (en) | 2011-09-26 | 2014-05-20 | Google Inc. | Determining when image elements intersect |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
US10681325B2 (en) | 2016-05-16 | 2020-06-09 | Google Llc | Continuous depth-ordered image compositing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4825391A (en) * | 1987-07-20 | 1989-04-25 | General Electric Company | Depth buffer priority processing for real time computer image generating systems |
US4970499A (en) * | 1988-07-21 | 1990-11-13 | Raster Technologies, Inc. | Apparatus and method for performing depth buffering in a three dimensional display |
US4951232A (en) * | 1988-09-12 | 1990-08-21 | Silicon Graphics, Inc. | Method for updating pipelined, single port Z-buffer by segments on a scan line |
US5038297A (en) * | 1988-09-13 | 1991-08-06 | Silicon Graphics, Inc. | Method and apparatus for clearing a region of Z-buffer |
US5265198A (en) * | 1989-10-23 | 1993-11-23 | International Business Machines Corporation | Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system |
US5245700A (en) * | 1989-11-21 | 1993-09-14 | International Business Machines Corporation | Adjustment of z-buffer values for lines on the surface of a polygon |
JPH07118025B2 (ja) * | 1990-06-29 | 1995-12-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・グラフィックス処理方法及びシステム |
US5265199A (en) * | 1991-05-22 | 1993-11-23 | Silicon Graphics, Inc. | Method and apparatus for accomplishing Z-buffering by prediction |
JPH0589253A (ja) * | 1991-09-27 | 1993-04-09 | Sony Corp | 画像描画装置 |
US5583974A (en) * | 1993-05-10 | 1996-12-10 | Apple Computer, Inc. | Computer graphics system having high performance multiple layer Z-buffer |
-
1995
- 1995-11-22 US US08/562,283 patent/US5854631A/en not_active Expired - Lifetime
-
1996
- 1996-11-21 JP JP8352108A patent/JPH09326043A/ja active Pending
- 1996-11-21 EP EP96308415A patent/EP0775982B1/en not_active Expired - Lifetime
- 1996-11-21 DE DE69632013T patent/DE69632013T2/de not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004272928A (ja) * | 1998-08-20 | 2004-09-30 | Apple Computer Inc | 進歩したディファード・シェーディング・グラフィクス・パイプライン・プロセッサ |
JP4516350B2 (ja) * | 1998-08-20 | 2010-08-04 | アップル インコーポレイテッド | 進歩したディファード・シェーディング・グラフィクス・パイプライン・プロセッサ |
JP2002529870A (ja) * | 1998-11-06 | 2002-09-10 | イマジネイション テクノロジーズ リミテッド | 3次元コンピュータ生成画像のシェーディング及びテクスチャリング |
Also Published As
Publication number | Publication date |
---|---|
DE69632013T2 (de) | 2004-08-05 |
EP0775982A3 (en) | 1998-02-25 |
EP0775982B1 (en) | 2004-03-31 |
EP0775982A2 (en) | 1997-05-28 |
DE69632013D1 (de) | 2004-05-13 |
US5854631A (en) | 1998-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09326043A (ja) | 画素フラグメントの結合システムおよび方法 | |
US7292242B1 (en) | Clipping with addition of vertices to existing primitives | |
US6690372B2 (en) | System, method and article of manufacture for shadow mapping | |
US10140750B2 (en) | Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program | |
US7215344B2 (en) | Triangle clipping for 3D graphics | |
US6509897B1 (en) | Method and system for providing implicit edge antialiasing | |
KR102637736B1 (ko) | 그래픽스 처리 방법 및 시스템 | |
US6573893B1 (en) | Voxel transfer circuit for accelerated volume rendering of a graphics image | |
US7812837B2 (en) | Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method | |
US7711162B2 (en) | Accelerated texture-based fusion renderer | |
US20070268291A1 (en) | Occlusion Culling Method and Rendering Processing Apparatus | |
US6304265B1 (en) | System for distinguishing front facing and back facing primitives in a computer graphics system using area calculations in homogeneous coordinates | |
EP1659539A1 (en) | Method for efficient anti-aliasing of 3D graphics | |
US8654122B2 (en) | Method, apparatus, and computer program product for improved graphics performance | |
US5926182A (en) | Efficient rendering utilizing user defined shields and windows | |
Wang et al. | Second-depth shadow mapping | |
US7576746B1 (en) | Methods and systems for rendering computer graphics | |
JP4209129B2 (ja) | グラフィックスモデルを表す複数のポリゴンを含むメッシュをレンダリングする方法 | |
US7834879B2 (en) | Drawing apparatus for displaying image data about a plurality of objects including semitransparent object and opaque object on computer display screen | |
US6690369B1 (en) | Hardware-accelerated photoreal rendering | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
US5649078A (en) | Efficient two-pass rasterization scheme utilizing visibility information | |
US20190139291A1 (en) | Method, Display Adapter and Computer Program Product for Improved Graphics Performance by Using a Replaceable Culling Program | |
KR0164160B1 (ko) | 그래픽 처리장치 | |
WO1998006067A1 (en) | Hardware-accelerated photoreal rendering |