JP4125789B2 - コンピュータ画像システムにおいてポリゴンのエッジをアンチエイリアシングするための方法および装置 - Google Patents
コンピュータ画像システムにおいてポリゴンのエッジをアンチエイリアシングするための方法および装置 Download PDFInfo
- Publication number
- JP4125789B2 JP4125789B2 JP52132598A JP52132598A JP4125789B2 JP 4125789 B2 JP4125789 B2 JP 4125789B2 JP 52132598 A JP52132598 A JP 52132598A JP 52132598 A JP52132598 A JP 52132598A JP 4125789 B2 JP4125789 B2 JP 4125789B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- corner
- color
- data
- edge
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
Description
本発明はコンピュータ画像生成(CIG)システムに関し、より詳細にはディスプレイプロセッサにおいて使用するための新規な色決定手段に、そしてまたリアルタイム・イメージングシステムにおいてオブジェクト面(object face)について二次元表示をディスプレイするためのそれらオブジェクトを描く画像データを処理するための新規な方法に関する。
発明の背景
リアルタイム・コンピュータ画像システムは様々なシミュレータシステム、たとえば戦車シミュレータおよびフライトシミュレータ用にリアルな画像再生を提供するためにデザインされる。この種のシミュレータは戦闘員に対し、戦場に出掛ける必要無しに、現実的な戦闘システムを用いることにより実践をもたらすトレーニング装置として使用される。これらのシミュレータはユーザー、たとえばパイロットまたは戦車の射撃手に対し、本物のトレーニングに関する費用を伴わずに彼の技能を維持かつ向上させ得るものである。従って、トレーニングおよび実践目的に関し有益であるビデオ表示リアリズムをユーザーに提供することは非常に有利である。
代表的なリアルタイムコンピュータ画像生成システム、たとえばフライトシミュレータシステムにおいて、画像生成は3種類の別の処理段階、すなわちコントローラ、ジオメトリー・プロセッサおよびディスプレイ・プロセッサに分割することが出来る。これら3種類の処理段階またはセクションは表示すべきこれらの連続したシーンの一つを表す、あるいは連続したシーンの一つに対応するデータに対し全て独立的に作用する。コントローラはシーンまたは画像のデータを一定時間であって、16.67ミリ秒のフィールドタイムあるいは33.3ミリ秒のフレームタイムであってよく、通常は前者である一定時間に亘りデータを処理し、次いで、その処理したデータをジオメトリー・プロセッサに送る。この特有のフィールドおよびフレームタイムは典型的なテレビジョンフォーマット・ディスプレイ、すなわち30フレーム/秒によるフレーム当たり2種類のインターレースされたフィールドのための、その時間に相当する。ジオメトリー・プロセッサはその計算を行うのと等しい時間を保持し、そしてその時間の終わりにはその結果をディスプレイ・プロセッサに送る。そのディスプレイ・プロセッサはワン・フィールドタイムにおいてビデオディスプレイのために1種類のインターレースフィールドを常に処理する。各時間間隔の間、これら全てのプロセッサはビジー状態の侭なので、あらゆる任意時間においてこれらプロセッサはこれら別個のシーンに関して作業する。各セクションは入力を処理し、そしてそのインターバルの間に出力を生成するので、データはこれら3段階を経由して逐次的に流れる。コンピュータ的負荷は専門化されたプロセッサセクションの中に展開されるので、たとえそれらの結果が遅延した3種類のフィールドまたはフレームであっても、これが各フィールドまたはフレームタイムに新しいシーンを表示させる。
たとえば、フライトシミュレータシステムにおいて、パイロットの入力はコントローラにより受信され、そしてコントローラ、ジオメトリー・プロセッサおよびディスプレイ・プロセッサによって逐次的に処理された後、その出力は色シーンとしてシミュレータにおけるパイロットにより観察されるビデオディスプレイに対し送られる。パイロットにより認識されたそのデータは環境デフィニション(environment definition)に対して適用される単純な制御入力として出発し、そしてピクセルビデオディスプレイ情報に変換される。コントローラにおいて、パイロットの入力は航空機の新しい位置および方位を計算するために使用され、そしてこれから、数学的回転マトリクスが計算され、これは基準座標系からオブジェクトを回転させるために利用されて、座標系を表示する。航空機を処理するあらゆる他の情報、ターゲットの位置および他の航空機に関する情報もまたコントローラ内で計算される。或る用途において、コントローラは汎用コンピュータである。
ジオメトリー・プロセッサ(幾何プロセッサ)はデータベース、オブジェクトの記述であって、シーンについて記憶された三次元デジタル表示において潜在的に可視であるものから読出す。読出されたオブジェクトは、コントローラ内で計算された回転マトリクスを用いて、ディスプレイ座標内で回転される。これら三次元オブジェクトのエッジは、それらがビューウインドウの境界を超えて延在すれば、ジオメトリー・プロセッサによってクリップされる。ジオメトリー・プロセッサは三次元データを二次元ディスプレイウィンドウ上に投影する。ディスプレイウィンドウ境界を超えて延在するオブジェクト面は二次元イメージ空間内でクリップされる。更に、ジオメトリー・プロセッサは(デプス・バッファ[depth-buffer]等を利用することによって)どのオブジェクトが他のオブジェクトの前方または後方に存在するかを計算し、そしてこの情報をプライオリティリスト中に格納する。処理された各オブジェクトは個々の面により構成され、ここにおいて各面は真っ直ぐなエッジにより境界されたポリゴン(多角形)状である。プライオリティリストは、リスト中の第一面が最高のプライオリティ面として、またリスト中の最終面が最低のプライオリティ面としてシーン内の全ての面の順序を収録している。ディスプレイ上で2個の面がオーバーラップするときは何時でも、より高いプライオリティ面が可視となり、そしてより低いプライオリティ面は不鮮明となる。最後に、このジオメトリー・プロセッサは二次元面を境界するエッジのためにディスプレイエンド点を計算し、そしてまたこれらの境界エッジを記述するライン等式係数(coefficients of the line equations)を計算する。
ディスプレイ・プロセッサは、面色、面フェーディング情報、面プライオリティリスト、セルテクスチャリング(cell texturing)、レベル・オブ・ディーテル・ブレンディング(level-of-detail blending)、半透明性、曲率シェーディング等と共に二次元面記述を受信し、そしてこの情報を使用してカラーディスプレイに描くデータをシーン中の各画素に出力する。システム内の各カラーディスプレイは1024ラインのビデオ情報から典型的に構成され、各ラインは1024の個々の色ドットまたは画素を有している。しかしながら、ライン当たり、他のラインおよび画素の組合わせも間違いなく可能である。ディスプレイ・プロセッサは各画素に関して、どれだけの画素の色を付与すべきか、画素中に数多くの面を存在させ得るか、そして面の或る部分を他の面により被覆してもよいかを解決せねばならない。ディスプレイ内には1024x1024ピクセル存在し得るし、そしてこれら全てを1秒の1/60で計算する必要があるので、ディスプレイ・プロセッサにおける処理負荷は非常に高い。マルチ・ディスプレイシステム(単一のシステムは14台ものディスプレイを包含している)について映像を計算するために、ディスプレイ・プロセッサは秒当たり100億回を超える演算を行わねばならない。途方もなく大きな処理負荷に起因して、ディスプレイ・プロセッサは僅かに2、3台のディスプレイを駆動し得るに過ぎない。或るシステムにおいては、単一のコントローラおよびジオメトリー・プロセッサを使用して、各ディスプレイ・プロセッサに接続された数台のディスプレイを備える数台のディスプレイ・プロセッサを駆動することが出来る。従って、このディスプレイ・プロセッサはリアルタイムコンピュータ画像生成システムにおいて処理の主流を表しており、そしてこの理由故に、CIGシステムの性能およびリアリズムを改良するための努力の大部分はディスプレイ・プロセッサ領域に集中されている。
一つの持続的な問題は、アンチエイリアシング方法であって、適切な高精細度エッジ効果を可視化させる一方、その画素において不適切な色または半透明性として出現するような、望ましくない映像データ成分(歪み)が所望成分と同一性を呈することを阻止する方法において画素色強度情報を処理することであった。
発明の概要
本発明によれば、リアルタイムコンピュータ画像生成装置におけるディスプレイプロセッサは、エッジ交点計算機手段であって、表示すべき各ポリゴンの少なくとも3個の頂点のそれぞれについてのディスプレイ空間(I,J)座標を特徴づける入力データ信号を受信して、もしあれば、ディスプレイラスタの各連続画素のどのエッジがポリゴンエッジによってカットされるかを決定し、またその決定されたエッジに沿うカットの位置を測定するものと、各画素に影響を及ぼす全てのポリゴンに関するエッジ交差信号は、その画素のいずれかの部分を占める面のそれぞれについての色データと共にフレームバッファ内にピクセル単位で格納されるものとし、表示すべき各画素に関し、4個の隣接する画素の群(constellation)からなる12個のエッジを特徴づけるデータ信号を受信して、エッジ関係を解像し、かつポリゴン色強度データをミキシングして、CIGの映像データ出力を受信するディスプレイ手段により表示すべき各画素について最終の観察可能色を決定するポストプロセッサ手段とを包含する。
リアルタイムコンピュータ画像生成装置の映像データ出力を受信するディスプレイ手段によって表示すべき各画素の最終可視色を決定するための方法は、表示すべき各ポリゴン面の少なくとも3個の頂点のそれぞれについてのディスプレイ空間(I,J)座標を特徴づける入力データ信号を最初に受信する工程と、次いで、その頂点データを利用して、もしあれば、どのポリゴンエッジがディスプレイラスターを形成する画素のシーケンスの1個をカットするかを決定する工程と、更に関連するピクセルエッジに沿ってそのカットの場所を決定する工程とを含んで構成される。各画素に影響を及ぼす全てのポリゴンに関するエッジ交差データ信号は、その画素のいずれかの部分を占める各ポリゴンに関する色データと共にフレームバッファ内にピクセル単位で格納され、そして表示すべき各画素に関して選択された隣接の画素の数個(たとえば12個)の群が、エッジ関係を解像し、かつポリゴン色強度データをミキシングして各ディスプレイ画素について最終の観察可能色を決定するために処理される。
従って、本発明の目的はコンピュータ画像システムディスプレイにおいて各画素の色強度を決定するための新規な装置および方法を提供することである。
本発明のこの目的および他の目的は関連する図面を参照して考慮すれば、現在好ましい実施態様についての以下の詳細な説明を読取ることによって明らかとなるであろう。
【図面の簡単な説明】
図1は本発明の装置および方法を実施し得るコンピュータ画像生成(CIG)システムを示す概略ブロック図であり、
図2はオブジェクト空間におけるオブジェクトポリゴン面と、イメージ空間における対応する映像ポリゴン面との関係ならびにそれに対して映像面が出現するディスプレイラスターの画素(ピクセル)を示す空間図であり、
図2aは表示すべき所望のポリゴンの近傍における図2の映像ディスプレイの拡大部分であり、
図3aはそれに対して一対のポリゴン面が投影されるディスプレイ画素のアレイを示す図であり、
図3bはそれに対しポリゴン面が配置されるディスプレイ画素のアレイを示す図であり、また本発明による画素色データ決定方法のオペレーションに必要な様々なサンプリングコーナーC、画素エッジEおよびエッジ距離Dを示す、
図3cはその隣接するコーナー、エッジ交差およびエッジ距離を備える線分群における画素のコーナーCoならびに本発明の数種類の特徴を評価するために有用であるものを表す、
図4はCIGディスプレイ・プロセッサにおいて使用するための、本発明の原理による色強度サブアセンブリを示すブロック図であり、
図5a、5b、5dおよび5eは色強度サブアセンブリのオペレーションの方法において利用される各エッジ決定、線分長さ決定、小ポリゴンフィルタリングおよび色ミキシングプロセス部分のための、それぞれのフローチャートであり、
図5b′は作動される各画素の周りの8−画素、12−線分群を例示し、そしてこれら図は方法オペレーションを理解するに際し有用であり、
図5b”は本方法におけるライン長さ決定についての一特徴を例示しており、
図5cは3×3ピクセル群における混色を示しており、
図6aはパターンセレクトビット(Pattern Select bit)についての異なった半透明性レベルおよび異なった2進値に対してサンプリングされたコーナーの相補的セットを例示する一方、図6b−6gは様々な異なった半透明性動作および条件を示し、そしてこれらは全て半透明性「ルック−スルー」″look-through″が達成される方法を理解するのに有用であり、
図7は本発明による色強度サブアセンブリのための新規なポスト・プロセッサエッジ−レジスタ/リゾルバ(resolver:解像器)手段の一つのり得る実行を示す概略ブロック図であり、そして
図8a−8gは単一のポリゴンエッジによりカットされた一対のエッジを有する画素のあり得るセットの全体およびその1個の画素においてオーバーラップする4個のポリゴン間に形成されるエッジによってカットされた全て4個のエッジを有する画素の単一のあり得るケースを示している。
図示実施例の説明
最初に図1を参照にすると、航空機のコックピットのシュミレーションシステムの如きコンピュータ画像発生システム10の機能的ブロックダイアグラムが示されている。読者は、「Advanced Video Object Generator」としてBunker等に1988年2月23日に付与された米国特許第4,727,365号および「Depth Buffer Priority Processing For Real Time Computer Image Generating Systems」としてD.Merzに1989年4月25日に付与された米国特許第4,825,391号の如き開示を含む既存のCIG技術を言及され、両米国特許はその全体が引用によってここに合体される。
このシステムはコントローラユニット12、幾何プロセッサユニット14、およびディスプレイプロセッサユニット16を含む。ディスプレイプロセッサユニット16はシーン(scene)上の航空機の動きをシュミレートするためにコックピットディスプレイウィンドウに情報をディスプレイする。パイロット訓練±20は入力制御インターフェース22を通してコンピュータ画像発生システム10に結合させられる。コックピットのパイロットの作戦上の動きは入力制御インターフェース22に供給される。入力制御インターフェースは航空機の位置、航空機のロール、ピッチ、およびヨーの位置の如き適当な飛行データをパイロット色コントローラ12に変換する。
コントローラ12において、パイロットの入力は航空機の新たな位置と方向を計算するために使用され、これから、数学的回転マトリクスが計算されて基準座標システムカラーディスプレイ座標システムへ物体を回転するために使用され、これらは従来より知られている。シーン、目標の位置、あるいは他の航空機を取り扱う情報はコントローラで計算される。あるコンピュータ画像発生システムにおいて、コントローラユニットは汎用のコンピュータである。
コントローラユニット12は最新の航空機の方向によって定期的に最新化される。この方位は入力コントロールインターフェース22を経てパイロット色コントローラ12への航空機のロール、ピッチ、ヨーおよび位置を含む。コントローラ12はフィールドあるいはフレームのシーン上で動作し、それからデータを幾何プロセッサ14へ通す。
幾何プロセッサ14はシーンデータベースメモリ24から記憶された三次元の地球のデジタル表示において視認できる塔、道路、河川、航空機用シェルタ等の物体の記述を読み出す。物体はシーンデータベースから読み出され、コントローラ12で計算された回転マトリクスを使用するディスプレイ座標へ回転させられる。幾何プロセッサ14は物体空間における視覚ウィンドウの境界を越えて伸びるすべてのエッジをカットする。それは数学的に三次元の物体データを二次元のディスプレイウィンドウへ投影する。ディスプレイウィンドウの境界を越えて伸びる物体の面(face)は二次元の画像空間でカットされる。二次元の物体は点、線、閉じた凸状のポリゴン(polygon)あるいはそれらの組み合わせより成り立つ。それぞれの閉じた凸状のポリゴンは面として知られている。従って、処理された各物体は個々の面によって作られ、各面は真直なエッジ(edge)によって境界付けられる。幾何プロセッサ14で三次元の物体から計算されると、データディスプレイプロセッサ16へと通される。更に、幾何プロセッサ14は公知の技法でどの面が他の面の前後にあるかを計算してこの情報を優先リストに記憶する。優先リストは、リストの最初の面が最も優先度の低い面であるといったシーンの全ての面の順序を含んでいる。2つの面がディスプレイ上で重なるときはいつも、優先度の高い面視認でき、低い優先度の面の重なった部分は視認できない。優先リストを計算した後、幾何プロセッサは二次元面を境界付け、境界エッジを記述するライン等式の係数を計算する線分のディスプレイの端点を計算する。幾何プロセッサ14は境界付けられた面を記述する各エッジの端点と各エッジのスロープを計算する。これらのデータはディスプレイプロセッサ16へ通される。
図1において、ビデオディスプレイ18を駆動するために使用されるディスプレイプロセッサ16が示されている。あるシステムにおいて、1つのコントローラ12と幾何プロセッサ14が1つ以上のディスプレイプロセッサを駆動するために使用される。ディスプレイプロセッサ16は、リアル・タイムコンピュータ発生システムにおいて大部分の処理とハードウェアを表わし、この理由によってハードウェアのサイズと処理時間を減じる大部分の努力がディスプレイプロセッサの部分に集中されてきた。ディスプレイプロセッサはビデオディスプレイ18にディスプレイされる情報を処理することに責任がある。ディスプレイプロセッサ16は、多くの面がピクセルで存在し、面のこれらの部分が他の面によって変換されるとき、ビデオディスプレイ18の各ピクセルを分解してピクセルの色を何にすべきかについて判定する。ピクセル内の各視認面の部分が面の色によって多重化され、これら全ての重みづけされた色の和がピクセル色として出力される。ディスプレイプロセッサ16は、面の色と面の優先リストとともに幾何プロセッサ14から二次元の面の記述を受信し、カラービデオディスプレイ18にシーンを出力するためにこの情報を使用する。システムの各カラーディスプレイは1024ライン以上のビデオ情報より作られ、各ラインで典型的に1024個の個々の色ドットあるいはピクセル(画素)が存在する。ディスプレイには、百万個以上のピクセルがあるので、これらの全てが1/60秒で計算されることで必要なのでディスプレイプロセッサの処理上の負荷は非常に高い。各ピクセルにとって、ディスプレイは12ビットの赤データ信号と、12ビットの緑データ信号と、12ビットの青データ信号をピクセルの色を記述する強度情報の一部として受信する。
図2を参照すると、観察者の眼20’が視点Vpにあり、物体空間30’の視覚ウインドウ内のサンプル面30のポリゴンを視ている。視線32に沿う観察者20’に最も近い面30だけが示されている。視覚面は技術分野にとって知られている奥行きバッフア技術を使いながら視点Vpと面点Pfの間の範囲距離Rの比較によって決められる。従って、視覚ポリゴン30(ここでは、頂点Va,Vb,およびVcによって識別される三角形面)は視線32に沿って最低範囲Rminを有するポリゴンである。物体空間30’は、画像空間34’のディスプレイウインドウ34へ投影させられている。ポリゴン面30は頂点Va,VbおよびVcに相当する頂点V1,V2およびV3を有するディスプレイポリゴン36として投影されている。ディスプレイウインドウは、しばしば、ディスプレイのラスタであり、ラスタ/ウインドウの左端(J=J0)から右端(J=Jmax)まで水平線(J方向において)に沿って逐次的様式で走査されるピクセル38を有し、ラスタ/ウインドウの上端(I=I0)から下端(I=Imax)に増加する距離(I方向において)を有するラインを有する。従って、P番目のラインLpは最初(左手)のピクセルP1から最後(右手)のピクセルPrまで走査される。ピクセルPpは、ウインドウ34の面を通る視点32によって識別され、ピクセルPpはポリゴン点Pfに投影してそれに相当する画像点を含む。ポリゴン36は、ラインLpに沿って、左のライン位置において交差するJLによって識別される左端のピクセルP0から右のライン位置において交差するJRによって識別される右端のピクセルPqまでのピクセルを含む。
図2aに示されるように、検討される画像空間の部分を拡大すると、走査線34”に沿うピクセル38の行は左端のピクセル38hで出発してJ方向に逐次的に走査される。次のピクセル38iは、ピクセル38lがそのラインの左端に到達してポリゴン36によって部分的に被覆されるまで動作されられる。このピクセルは、ポリゴンの端の左端の交差線JLとJライン34”によって識別される。ポリゴンによって完全に被覆される他のピクセル38を通してラインに沿って続くと、ピクセル38rは、そのラインにとってポリゴンの右端に到達してポリゴン36によって部分的に被覆される。このピクセルは、ポリゴンの端の右端の交差線JRによって識別される。Jライン34”に沿って更に移行すると、その走査線の右端のピクセル38vに到達する。もっと遠くにあるポリゴンからの濃度のフィードスルーおよび半透明を考慮しないでポリゴン36によって完全に被覆されたピクセル38の属性、即ち、ポリゴン36の内部に完全に被覆されるピクセル38の属性は、ポリゴンの面の属性(色、強度、半透明性等)を正確に有し、一方、ポリゴン36によって部分的に被覆されたピクセル(例えば、ピクセル38lおよび38r)は、現実に被覆されているピクセルの部分にとってのみ特定のポリゴンの属性を有し、それによってピクセルの残りの属性は他の情報から得られ、色情報のポリゴン/ソースによって被覆されるピクセルの各種のパーセンテージに基づいて混合されねばならない。
これは、第3a図を参照することによって理解され、第1のポリゴン36aは画像空間において得られるように他のポリゴン36bの前方に順番付けられている(周知の奥行きバッファ処理によって行われるように)。ポリゴン36は交差線40によってピクセル境界を交差する複数のポリゴンエッジ39(例えば、エッジ39a,39b,39c,および39d)によって接続された複数の頂点(例えば、4つの頂点V1,V2,V3およびV4)を有する。画像スクリーンは次に大きな番号を有する(次に走査される)ピクセルラインを有するピクセルの各ラインLの低い境界において水平エッジEを有する水平ライン(例えば、ラインL−2,L−1,L,L+1,L+2…)に沿って垂直な列(例えば、ラインP−2,P−1,P,P+1,P+2…)において逐次的に配列された矩形のピクセルのアレイから形成される。各ピクセルはその行のラインLと列Pの指定によって順番付けられることができる。ピクセル(L,P)のごときピクセルは完全にただひとつのポリゴン(ポリゴン36a)によって被覆され、従って、そのポリゴンの属性だけを有する他のピクセルは複数のポリゴンの属性の分配/混合を有する。
本発明のひとつの特徴に基づくと、図3bに示されるように全体のピクセルを考慮することによって色の属性を決定することが好ましく、前述した米国特許第4,825,391号の奥行きバッファ処理構造(スパン/サブスパン処理方法を使用する、しないに関係なく)が使用されたとしても各ピクセル(あるいは、サブピクセル)の複数の分割された部分の色情報を処理する必要がない。我々の方法において処理される情報の各アイテムは、電子デジタルデータの信号ワードであるが、我々は簡略化した名称(例えば、コーナー,エッジ,ポリゴン等)によってこれらの信号を議論しても良く、我々はそれぞれの幾何学的な概念のそれぞれに使用されるデータ信号を意味のあるものにするためにこれらの用語を意味付ける(例えば、「コーナー」は二次元のピクセルのコーナーの位置を特定するデーターワードを意味し、「エッジ」は関連するポリゴンのエッジライン(境界線)を表すデータ信号のセットであり、「ポリゴン」は特定のポリゴンと等しいデジタルデータの構造を意味する)。我々の処理の最終結果は、ビデオディスプレイ手段18の個々のピクセルの色と強度を点灯するビデオ信号の最終的なシーケンス(デジタルビデオ,あるいはデジタルから導かれたアナログビデオ)を提供するものであり、観察者20にとって視認できるようにするものである。
ポリゴン36を、ピクセル間隔でサンプリングする。ここで、サンプル点は、各ピクセルの4つのコーナーCである。各ピクセル(L、P)について、4x4アレイのコーナー(例えば、エッジE−2についてはコーナーC11〜C14、エッジE−1についてはコーナーC21〜C24、エッジEについてはコーナーC31〜C34、エッジE+1についてはコーナーC41〜C44)を使用して、3x3列のピクセルを定義できる(次に、中央ピクセルL、P周囲の8つの隣接ピクセルを考慮する)。したがって、ピクセル配列は、ライン(L−1)に沿ってピクセル(L−1、P−1)、(L−1、P)及び(L−1、P+1)、ライン(L)に沿ってピクセル(L、P−1)、(L、P)及び(L、P+1)並びにライン(L+1)に沿ってピクセル(L+1、P−1)、(L+1、P)及び(L+1、P+1)を含んでいる。コーナー(サンプル)点Cij(但し、iはライン識別子であり、jは列識別子である(関連ピクセルについての))にあるビューワに最も近接しているポリゴン36″の色を、ディスプレイの各ピクセルについて保存する。得られた色データ信号を、ディスプレイを構成する各ピクセルの色情報を含有するビデオメモリーに保存する。
ビデオメモリーにおける各サンプルコーナー点での色情報を、CIG技術における当業者によく知られている通常の手段により演算する。色情報を得る必要があるのは、各ピクセルの一つのコーナー(例えば、I、Jディスプレイにおける各ピクセルの第一遭遇又は左上コーナー)からのみである。全ての隣接ピクセルについての全ての左上コーナーCoについてのデータが得られるときには、いずれか一つの特定のピクセルについての完全な色情報を求めることができる。コーナーの色属性により表される各ピクセルの部分を、コーナー点Coの周りの線分のあらかじめ選択された群に関してポリゴンエッジ交差40が生じるという認識を介して求めることができる。ここで、線分群の5つのコーナー(中央コーナーCo及びその中央ピクセルのコーナーCoに連携した4つのコーナー点)について、4線分「交差」群を使用する。コーナーCoの周りを12時の位置から時計回りに、線分群のこれらの4つの線分は:コーナーCoと、コーナーCoのすぐ上であって且つ前のエッジ(E−2)のトップコーナーCTとの間のトップ線分ST;コーナーCoと、スキャンエッジ(E−1)に沿ったすぐ次のコーナーであって、コーナーCoの右にある右コーナーCTとの間の右線分SR;コーナーCoと、コーナーCoのすぐ下にあり且つ次のエッジ(E)上にあるボトムコーナーCBとの間のボトム線分SB;及びコーナーCoと、同じエッジ(E−1)に沿ったすぐ前のコーナーである左コーナーCLとの間の左線分SLである。ピクセルのコーナーCoから連携する交差40までと上、右、下又は左のそれぞれの線分までとの距離Dx(但し、xはT、R、B又はLである)を、当該技術分野において公知の方法及び手段により求め、距離Dxデータ信号を、ビデオメモリーに保存する。さらに、各サンプルコーナー点Coについての半透明フラグビット(透明=0及び不透明=1として定義できる)を、ビデオメモリーに加える。
ここで、図3cについて、もし同じポリゴンがピクセルのサンプル点Coを被覆するならば、そのポリゴンのエッジを考慮して、ピクセルのサンプル点と4つの隣接サンプル線分群コーナーCxとの間の垂直及び水平エッジ交差の各々の位置40xを求める。このようにして、線分群エッジ交差40t、40r、40b及び40lを求め、対応の線分群距離DT、DR、DB及びDLを、全て演算し、ビデオメモリーに保存する。しかしながら、エッジ交差距離DXがサンプルコーナー点間の距離より大きいならば、距離DXをサンプル点間の距離に固定する。線分群の隣接コーナー間の距離を、正規化値1.0に設定できる。次に、実距離DXが、全て正規化され、0.0〜1.0の値を有する。図示するように、中央コーナーCoから中央上コーナーCTの方向へのエッジ交差40tの距離DTが1.0未満(全コーナー−コーナー距離)であり、演算される実距離についてのデータ信号として保存される。各正規化距離は線分群コーナー間距離よりも小さいので、中央コーナーCoと、それぞれの右交差40r及び左交差401との間のそれぞれの距離DR及びDLについても同様である。これは、隣接コーナーCBより下にあり、したがって、1よりも大きい距離を有する、ボトム交差40bについての場合ではない。距離値を、両方のコーナーCo及びCB上に延びていることを考慮して、ポリゴンを示す1.0に固定する。すなわち、もし距離Dxがサンプルコーナー点間の距離に等しいならば、そのときには、中央コーナー点Co上のポリゴンは、対応の隣接サンプルコーナーも被覆していると考えられる。各距離DXについてのデータワードに使用するビット数は、3〜5ビットの範囲であるが、システムごとに変更してよい。したがって、各サンプルコーナー点Cは、ビデオメモリーにおける別個の位置のアドレスである。この位置は、色、半透明フラグ並びに関連トップ、左、右及びボトム交差距離データを規定するデータを含む。また、もしサンプル点上のポリゴンが半透明であるならば、半透明フラグを設定する。
現在のところ、スクリーン距離が、通常左から右に、及びトップからボトムの方向に増加するので、サンプル線分群がコーナー間隔距離1.0を有し、且つ右及びボトム交差について交差距離が1.0であるか、左及びトップ交差について交差距離が0.0である場合には、ポリゴンが両方の隣接サンプル点を被覆すると仮定するのが好ましい。したがって、距離データワードの単純な先端切断及び固定により、距離は、左から右に、及びトップからボトムに、0.0〜1.0変化する。もしトップ又は左交差が0.0であるならば、ポリゴンは、左又はトップ隣接コーナー点を被覆し、もしボトム又は右交差が1.0であるならば、ポリゴンは、ボトム又は右コーナー点を被覆する。これは、ただ一つの適当なインプリメンテーションであり、特定の用途によって、必要に合わせて変更できる。エッジ交差距離を演算する種々の方法は、周知であり、コンピュータグラフィクスにおいて通常のことであり、当業者には公知であろう。
ここで、図4に、図5a〜図5eの流れ図に示した方法を用いて、入力頂点データ信号を処理して、ビューワ20に対して表示するためのビデオ出力データ信号を得るための、一つの典型的な色強度サブアセンブリ16aを示す。サブアセンブリの第一入力16a−1を、エッジ交点計算手段42の第一入力42aに結合し、ディスプレイプロセッサ16の残りから、(I、J)座標にディスプレイポリゴン頂点データ信号を受ける。計算手段の出力42bは、次に処理される特定のピクセルについての正規化エッジ交差データワードの組である。このピクセル(Lp、Pp)は、サブアセンブリ入力16a−2からの平均入力42cでのピクセル列番号Ppデータ、及びサブアセンブリ入力16a−3からの平均入力42dでのディスプレイラインLp番号により特定される。
エッジデータ信号は、ディスプレイの無数のピクセルの各々についての数多くのビット深さの保存位置を有するフレームバッファ(マスメモリー)手段の第一入力44aに現れる。各位置は、それぞれ入力44c及び44dでの行ライン及びピクセル列データワードにより単一に規定される(すなわち、行ラインJO≦LP≦Jmax及び列IO≦PP≦Imax)。フレームバッファも、サブアセンブリインターフェース16a−4に結合した入力44eでポリゴン色データ信号を受け取り、サブアセンブリインターフェース16a−5に結合した入力44fで半透明性データ信号を受け取る。フレームバッファ入力セクション44aは、ピクセル単位で各ピクセルについての色/半透明性、エッジ交差及びフラグ情報の全てを保存する。また、このデータを、ピクセル単位で、フレームバッファ出力44bに供給する。本バッファ手段は、次にアドレスされる一つのピクセルのみが入力データを受け、データを出力44bに供給するように単一組のピクセル指定入力44c/44dのみを有するように示されているが、同様に複数組のピクセル指定入力を設けて、入力データを一つ(又はそれ以上)のピクセル位置にローディングするとともに、記憶されたデータを受けて、一つ(又はそれ以上)の独立的に規定した異なるピクセル位置に出力できることが、理解されなければならない。
フレームバッファ出力41bは、選択されたアンチエーリアシング線分群のコーナー及びエッジ(ここでは、次に処理される中央ピクセル(LP、PP)の周りの4つの隣接ピクセルの12個のエッジ)のデジタルデータ信号を、ポストプロセッサ手段46の入力46aに供給し、行ライン及びピクセル列データ信号は、他の入力46c及び46dに供給される。エッジレジスタをエッジリゾルバ46−2によりアクセスして、ポリゴン面の色/半透明性属性により被覆される現在処理しているピクセルの部分を決定する。次に、この情報を色ミキサー46−3により使用して、本(LP、PP)ピクセルの最終配合色を設定し、このデータを、ポストプロセッサ出力46bからサブアセンブリ出力16a−6ビデオ出力データ信号(表示してもよいし、必要に応じてさらに処理してもよい)として通過させる。
エッジ交点計算器は、図5aのフローチャートに示したプロセスステップを実行する。ピクセル行ラインLP及び列PPデータ信号をステップ50で受け、そしてポリゴン36頂点データ信号をステップ51で受ける。ステップ52(ディスプレイラインLループの開始)において、計算器は、トップライン(但し、I=Io)からボトムライン(I=Imax)までのどのディスプレイラインLがポリゴンを一つのピクセルの少なくとも一部分に存在して有するかを求める。これらのライン番号Lを一時的に記録し、ライン番号LPの第一のものを設定する。このライン番号を、ステップ53に入れる。ここで、そのラインについて、左及び右ポリゴンエッジ行ライン交点JL及びJRを見いだす。これらのリミットも、一時的に保存する。ステップ54は、ステップ53で見いだされるリミット(左から右)から、ステップ52で決定されたラインLPに沿って各ピクセルJPを考慮しながら、ネストされたピクセルループを開始する。ネストされたループ内には、ステップ55、56、57及び58が見いだされる。これらにおいて、それぞれ、ピクセルの左上コーナーCoについて、4つの交差CX及びそのコーナーの線分群の連携した4つの正規化距離DXを見いだし、もし特定の距離D X が、1ピクセル距離よりも大きいならば距離DXを最大1ピクセル値にクランプ(固定)し、「被覆」フラグを設定し(ステップ55);ピクセルデータのあるアスペクトについて、ポリゴンが半透明かどうかについて動作し(半透明については、以下で詳細に検討する);コーナー点Coの色を、ポリゴンの色、テクスチャ効果(色、変調等)等の全ての関連因子の関数として演算し(ステップ57);その後、一時的に関係のあるデータ信号をビデオメモリー(フレームバッファ44)に保存する。その後、ステップ59に入り、Jループが決定する。ここで、次の順次ピクセルについてのJ値が、右側リミットJRを超えるかをみる。もし超えなければ、そのLPラインについて、さらなるピクセル処理を進める。出力59aを使用し、ステップ60に入って、ループをステップ54に戻す(J=J+1)。本ピクセルがJRであったならば、次のピクセルは、本ポリゴンの一部分をも含まず、そして出力59bを、プロセスが次のラインL=(LP+1)に移動するように出す。ステップ61に入り、ラインループは、次の順次ラインがそのポリゴンについて下のラインリミットLmaxを超えるかどうかを決定する。もし超えなければ、そのラインについてのさらなるピクセル処理を進める。出力61aを使用し、そして、ラインループが実際にここでステップ54に戻る(L=L+1)ようにステップ62に入る。この新しいラインについてのピクセルループが、トラバースされる。もしちょうど完了したラインがポリゴンのボトムにあるならば、次のラインは本ポリゴンの一部分をも含まず、そして出力61bを、プロセスが次のポリゴン36′に移動するように出す。本ポリゴン処理が完了したら、ステップ63に入り、ポリゴンループが、このビューウインドー34における全てのポリゴンが考慮されたかどうかを決定する。もし他のポリゴンが残存していて処理すべきであるならば、出口63aを取り、ポリゴン識別子をステップ64に進め、次のポリゴン頂点の組をフェッチする(ステップ51)。考慮すべき他のポリゴンが残存していなければ、そのディスプレイフレームについて、このシステム部分におけるさらなるピクセル処理は必要なく;出力61bを、プロセスがデータ信号の次のイメージウィンドーフレームに移動して、ディスプレイフレームのピクセルデータについてのエッジ交点計算プロセスを開始するように出す。
半透明性
各ポリゴン面36は、一定の公知の半透明性を有する。半透明レベルを、レベルが0.0(完全に透明)と1.0(完全に不透明)との間の数により示すことができるように正規化する。半透明性は、特定のピクセルのコーナーのサンプル点を無視するか、ディセーブルして、たとえポリゴンがサンプルコーナー点にある(すなわち、被覆している)ことがあるとしても、ポリゴン特性データがピクセルのコーナーのビデオメモリーに書き込まれないようにすることにより得られる。省略されたコーナーに関連したエッジ交差も、メモリーに書き込まれない。半透明の量に応じてサンプル点をディセーブルすることにより、半透明ポリゴンよりも視覚的に後ろのポリゴンを見ることができる。
ポリゴンがより半透明になればなるほど、より多くのサンプル点がディセーブル化(disabled)される。これは、背後にあるものを見るために半透明なポリゴン中に穴を作ることに似ている。あるパターン選択コードおよび半透明性値が、あるポリゴンに割り当てられる。半透明性値はディセーブル化されているサンプル点の数を示しており、パターン選択コードは何れのサンプル点がディセーブル化されているかを示す。
このディセーブル化プロセスは、図6aを参照して理解されるかもしれない。同図において、パターン選択(PS)ビットの2つのレベルの各々に対して、5個の異なる透明性レベルTが示されている。異なる範囲のTレベルに対して、低いバイナリレベル(PS=0)でのパターン選択ビットに対する半透明性ディセーブル化パターンは、高いバイナリレベル(PS=1)でのパターン選択ビットを有する選択されたパターンに対して相補的であることが理解されるであろう。5レベルのみの半透明性Tが図示されているが、より多くの半透明性レベルが計算できる。
Tレベルの数は、図6b−6eに示されるように、半透明性の関数として、エッジ交差(edge crossing)を修正することにより達成される。ポリゴン面をより半透明にすればするほど、1のサンプル点に割り当てられる面積は少なくなる。この手順は、各サンプルコーナー点上のポリゴンの面積を増加あるいは減少させる:図6bに示されるように、半透明性レベルTは十分低く(0<T<1/4)、1つのピクセルのコーナーCaのみが選択されたパターンの部分であり、同一のピクセルから成る他のコーナーCd、CcおよびCdがディセーブル化され且つ考慮されておらず;左および右の交差はサンプル点に向かって移動し、その結果、距離DLa、およびDRaはそれぞれ1.0、0.0となり、一方修正された底部交差(bottom crossing)距離D′Baは(4*T*DBa)となる。ここで、DBaは、コーナーCaに対する無修正の底部交差40″距離である。同様に、頂部交差(top crossing)40′距離DTaはD′Ta=1−(4*T*(D−DTa)である。ここでDは単位ピクセルエッジ線分(edge segment)距離である。半透明性レベルTが増加するにつれて、エッジ交差はサンプルコーナー点から離れて移動し、考慮されているピクセル中のポリゴン面の有効面積を増加させる。
図6cは1/4≦T<1/2である場合を示す:一対のピクセルのコーナーが用いられ(ここでは、コーナーCaおよびCc)且つ一対のコーナー(CbおよびCd)がディセーブル化され、考慮されていない。頂部コーナーCa点に対しては、左および右の交差はサンプル点に向かって移動し続け、距離DLaおよびDRaは夫々1.0および0.0であり続ける;頂部および底部交差距離DTaおよびDBaは修正されない。底部コーナーCc点に対しては、頂部および底部交差距離DTcおよびDBcは夫々1.0および0.0となり、一方修正された右交差距離D′Rcは(4*(T-1/4)*DRc)となる。ここで、DRcは、コーナーCcに対する無修正の底部交差距離である。同様に、左交差距離DLcはD′L=1−(4*(T-1/4)
*(D−DLc)に修正される。
図6dは1/2≦T<3/4である場合を示す:ピクセルの3個のコーナーが用いられ(ここでは、コーナーCa、CcおよびCd)且つ唯一のコーナー(Cb)がディセーブル化され、考慮されていない。頂部コーナーCa点の左および右の交差距離DLaおよびDRaは夫々1.0および0.0であり続け、頂部および底部交差距離DTaおよびDBaは修正されない。底部コーナーCc点の頂部および底部交差距離は夫々1.0および0.0であり続け、一方左および右交差は変更されずDLcおよびDRcであり続ける。コーナーCd距離は修正されず、左および右の交差距離は夫々1.0と0.0の値に固定されている。底部交差距離D′Bdは(4*(T-1/2)*DBd)となる。ここで、DBdは、無修正の底部交差距離である。同様に、頂部交差距離DTdは、D′Td=1−(4*(T-1/2)*(D−DTd)に修正される。
最後に、図6eは3/4≦T<0.999である場合を示す:4個すべてのコーナーの使用はT=1の不透明性を暗示するので、3個のコーナーのみが用いられ(再び、コーナーCa、CcおよびCd)、1のコーナー(Cb)がディセーブル化されている;コーナーCbのみのイネーブルを検査することは完全な不透明点(T=1.0)を決定するために考慮されている。頂部コーナーCa点の左および右の交差距離DLaおよびDRaは夫々D′La=1(4*(T-3/4)*(D−DLa)とD′Ra=(4*(T-3/4)*(D−DRa)とに修正される:頂部および底部の交差距離DTaおよびDBaは修正されない。左底部コーナーCc点の頂部および底部交差距離は夫々1.0および0.0であり続け、一方左および右交差は変更されずDLcおよびDRcであり続ける。底部右コーナーCdの右および左交差距離は夫々1.0と0.0の値に固定され、一方頂部および底部交差距離は夫々の初期値DTd,DBdであり続ける。
上述した手順の効果は、(PS=0に対する)図6fと(PS=1に対する)図6gに示されるように、サンプルコーナー点に影響を及ぼすポリゴン面積を増加させるか、あるいは減少させることである。PS=0に対しては、半透明性T値が0と1/4の間にある場合、サンプルコーナーCaの面積は、矢印Xaにより示されるように、Tが(不透明点より大きく)増加するにつれて増加する。1/4≦T<1/2である場合、サンプルコーナーCcの面積は、矢印Xbにより示されるように、Tが増加するにつれて増加する。1/2≦T<3/4である場合、サンプルコーナーCdの面積は、矢印Xcにより示されるように、Tが増加するにつれて増加する。サンプルのコーナーCcにおける増加に対する矢印Xdは、T>3/4である場合にCCWが他の矢印に対して増加するのと対照的に、時計回りの方向に増加する。反対の変化は、図6gに示されるように、PS=1に対して得られる。あるピクセルを被覆する各ポリゴン部分が、ランダムにパターン選択配列に割り当てられるかもしれない、この配列は、ピクセルに当たるすべてのポリゴンの半透明性、優先度および色に基づいて、全体のピクセル色情報の誘導を容易にするであろう。
ポスト-メモリ プロセス
フレームバッファ44に先立ってコーナーの色および半透明性の考慮を決定し、一連のデータ信号変更工程70−80が、図5aにフローチャート化されたポストプロセッサ−エッジ リゾルバ(post processor-edge resolver)プロセスにおいて実行される。これらの工程は、エッジ交差/コーナー(edge crossing/corner)データ信号変更工程50−65と共に、非時間依存性または時間依存性(好ましくは、インターリーブ(interleaved)で)の方式で行うことができる。どのようなピクセル情報がフレームバファ中に有っても使用されるであろう:従って、交点(interception)計算が失速したり遅くなった場合には、先に格納したデータ信号が用いられるであろう。エッジ解像(edge-resolution)プロセスは、4つの連続したエッジ(E+1)〜(E−2)に沿って置かれた16個のコーナーC11−C44(図5b’参照)に関連するピクセル(Lp,Pp)コーナーCo群(constellation)データ信号を得るためにフレームバッファ44がアクセスされて、工程70で開始する。12個のコーナー間エッジ線分(edge segments)S0−S11のセットが工程71において設定される;各一般化されたピクセルエッジ線分SX(図5b″参照)は一対のコーナーCVおよびCWの間に延在し、各コーナーはそれと連関する交差距離DVまたはDWを有する。各線分の長さlを得るために、先ず判定工程72に入り、DVおよびDWの両方が線分SXを被覆するかどうかに関して初期判定が下される。もしそうである場合、正規化された線分長さlは0.5でなければならない(工程73);そうでない場合には、工程74で、DVおよびDWの両方の距離がSXの距離よりも小さいかどうかを判断する。もしそうである場合、線分長さは、工程75において設定されるように、考慮されているコーナーと連関する距離である(例えば、コーナーCVに対してl=DV)。そうでない場合には、工程76に入り、両方のコーナーの半透明性が検査される。もし唯一のコーナー交差が半透明である場合、工程77で、線分長さlを連関した距離とし、また半透明性フラッグをセットする。しかし、両方の交差が半透明である場合には、工程78で、線分長さlを距離DVおよびDWの平均値に設定する。工程73、75、77および78の全ては工程79に進み、そこで、(0≦S≦11に対する)線分数SXが、更なる線分がそのピクセルに対して処理される必要があるかどうかを判定するために検査される。もしそうである場合、工程80は線分数Sをインクレメント処理し、処理を工程71に返す;そうでない場合には、線分情報データ信号は色ミキサー(color mixer)へ移送準備される。
ここで、図7をも参照して、ポストプロセッサ手段46のエッジレジスタ(edge register)およびエッジリゾルバ(edge resolver:エッジ解像器)の部分46−1、46−2は、特別にプログラムされた計算装置の代わりに、フレームバッファから入力バス上のコーナーデータ入力信号を受け取る専用の論理手段を用いることができる。3個のFIFO(first-in-first-out)データレジスタ82a-82cが逐次的に接続され、その結果、4個の連続エッジデータ信号列の一時的に異なる1つがバス81a−81dの各々に現れる。現在のピクセルラインLの下方エッジE上のコーナーに対するデータは、バス81b上にあるであろう。一方、レジスタ手段82bは格納された直前ラインのコーナーデータ信号をバス81c上で利用可能にしてエッジ(E−1)を提供する。レジスタ手段82cはエッジ(E−1)の前のエッジ(E−2)からの格納されたデータ信号をバス81d上で利用可能にしている。次いで、引き続くエッジ(E+1)は現時点でバス81a上で利用可能であり;従って、ラインL上の各ピクセルPは、データが格納された後のみに処理され次に続くエッジ(E+1)(該エッジは次のライン(L+1)の利用可能性を要求する)に対して利用可能であることが理解されるであろう。いずれにおいても、コーナーノードC44、C34、C24およびC14は現在の情報を保持し、該情報は引き続く保持レジスタ手段84の連関した1つに(次周期のクロックに応答して)入るであろう。保持レジスタ手段84において、例えば、レジスタ手段84aはその出力においてコーナーC43データを有し、レジスタ手段84bはその出力においてコーナーC33データを有し、レジスタ手段84cはその出力においてコーナーC23データを有し、レジスタ手段84dはその出力においてコーナーC13データを有する。2つの連続するレジスタセット85a−85dおよび86a−86dは、引き続く他のピクセルデータを保持し、夫々、異なる各コーナーC42、C32、C22、C12およびC41、C31、C21、C11に対するデータ信号を提供する。コーナーデータ信号ノードの適当な連関した対に結合しているのは、12個の線分計算手段88a−88lのうちの1つであり、各手段は、連関した出力88a′−88l′において算出された線分長さlデータ信号を提供する。従って、S0 線分長さlS0データ信号l0′は、C12およびC22ノード間に結合された計算手段88aにより提供され、S1 線分長さlS1データ信号l1′は、C13およびC23ノード間に結合された計算手段88bにより提供され、S2 線分長さlS2データ信号l2′は、C21およびC22ノード間に結合された計算手段88cにより提供され、S3 線分長さlS3データ信号l3′は、C22およびC23ノード間に結合された計算手段88dにより提供され;以下、S11 線分長さlS11データ信号l11′(C33およびC43ノード間に結合された計算手段88lにより提供される)まで同様に、提供される。次いで、現在処理されているピクセル(Lp,Pp)に対する、全ての12個の線分長さデータ信号は色ミキサー手段46−3に送られる。
各ピクセル36に対する適当な色情報を表示するために、16(4x4)個の隣接するサンプルコーナーC11〜C44(図5c参照)の信号データがビデオメモリから取り出され;サンプルコーナーが計算されるピクセル(Lp,Pp)を取り囲む。最終的な目標は、4つのコーナーブレンド色Bのセットを混合することである。該セットは、例えば、頂部左(tl)コーナーCtlのブレンド色Btl、頂部右(tr)コーナーCtrのブレンド色Btr、底部左(bl)コーナーCblのブレンド色Bblおよび底部右(br)コーナーCbrのブレンド色Bbrであり、各々は各コーナーCijのサンプリングした色Cij′から次式で計算される:
tl_ブレンド_色Btl=(C11′+C12′+C21′+C22′)/4
tr_ブレンド_色Btr=(C13′+C14′+C23′+C24′)/4
bl_ブレンド_色Bbl=(C31′+C32′+C41′+C42′)/4
br_ブレンド_色Bbr=(C33′+C34′+C43′+C44′)/4。
図5c、5dおよび5eを参照して、色ミキサーはスモールポリゴンフィルタリング(small polygon filtering)処理(図5d)、次いで、色計算処理(図5e)を含む。
小ポリゴン(polygon)フィルタ
ほとんどのポリゴン面(face polygons)36は複数の画素(ピクセル:pixel)38を被覆するのに十分な広さを有するが、1つの画素をちょうど被覆するポリゴンを有することも可能である。より細かくいえば、1つの画素を完全に被覆するには小さすぎるポリゴンを有することも可能である。1つの画素より小さいポリゴン、またはサンプルコーナー点(corner sample point)距離Dの間隔よりも領域が小さいポリゴンは閃光を発する。なぜなら、ポリゴンは1つのサンプルにされたコーナーに位置するときは可視であるが、他の位置、すなわちポリゴンがサンプルコーナーの間に位置するときは、不可視である。閃光を減少させるために、小ポリゴンは検出されてフィルタリングされ(除去またはぼかされ(blurred))る。このために、当該画素36の4つのコーナーCtl,Ctr,Cbl,およびCbrのそれぞれが独立に考慮される。混合(ブレンド:blend)値は、サンプルコーナー点を被覆するポリゴンの寸法に基づいて計算される。混合色(blendcolor)はサンプル点の色と混色される。線分交差長(segment crossing lengths)lは各コーナーの混合値を計算するのに使用される。コーナーCtlをステップ90aの一例として用いた場合、様々な距離をあらわす混合値を計算する以下の工程によって上記は実現できる。まず、垂直長(vertical length)lvertおよび水平長lhorzを求め(ステップ91)、第1および第2の混合係数Blend_1およびBlend_2を決定し(ステップ92)、それらの最小色Blend_tl係数を求める(ステップ93)。Blend_tl係数を値1.0と比較して標準化し(ステップ94)、必要ならば1の最大値にクランプ(clamp)する(ステップ95)。ステップ96では、上記の4つのコーナーの色の平均化をおこない、ステップ97で、半透明(translucent)ポリゴンから、部分S0,S1,S2,S3,S4,S5またはS10(拡大した場合は、部分はコーナーCtlを通過する)の交差長lSX(x=0,2,3,4,5または10)が得られるかどうかを決定する。得られた場合は、混色値は無視され(ステップ98)、0に設定される。半透明ポリゴンとは関係がない場合には、ステップ99はblended_tl_color Btl′を求め、それがfinal_tb_blend_color値Btlとなる。画素の他の3つのサンプル点の色を求めるために、この工程がステップ90bで繰り返され、すなわち、右上コーナーCtr,左下コーナーCbl,および右下コーナーにそれぞれの混色値Btr,Bbl,およびBBrを求める。
図5eを参照すると、色ミキサ46−3の最終色計算工程はステップ92から開始し、そこでは4つの画素側面(S3,S5,S6またはS8)部分の被覆されない交差の数がカウントされる。エッジカウント数(ゼロまたは2以上のどちらかでなければならない)および半透明条件がステップ93で使用される。2つのエッジ交差があり、4つのサンプルコーナーのうち、それを被覆する半透明ポリゴンを有するものがない(半透明フラッグをチェックすることで決定される)場合には、1つのポリゴンのエッジが当該画素を交差すると仮定される。ここで、2つの部分の領域(第1の被覆ポリゴンの領域A1および他の被覆ポリゴンの領域A2)を計算することが必要となる。
これは図8aから図8fを検討することで理解できるが、これらの図は2エッジ交差の状況のための6つの可能な条件を示している。図8aにおいて、エッジ39はほぼ垂直であり、部分S3を2つの部分(標準化長l3を有する左部分と、画素部分の全標準化長が同様に1であるので、(1−l3)の標準化長を有す右部分)に分割し、下部分S8は2つの部分(標準化長18を有する左部分と、(1−l8)の標準化長を有す右部分)に分割し、その結果、領域A1=0.5(l3+l8)で、(いかなる場合も)領域A2=1−A1である。画素色CPは、
CP=0.5*(Ctlの色+Cblの色)*A1
+0.5*(Ctrの色+Cbrの色)*A2
より求められる。
図8bにおいて、エッジ39はほぼ水平であり、左部分S5を2つの部分(標準化長l5を有する上部分と、画素部分の全標準化長が同様に1であるので、(1−l5)の標準化長を有する下部分)に分割し、右部分S6は2つの部分(標準化長l6を有する上部分と、(1−l6)の標準化長を有す下部分)に分割し、その結果、領域A1=0.5(l5+l6)であり、画素色CPは、
CP=0.5*(Ctlの色+Ctrの色)*A1
+0.5*(Cblの色+Cbrの色)*A2
より求められる。
同様に、図8cの場合、領域A1=0.5(l5*l3)であり、画素色CPは、
CP=(Ctlの色)*A1+1/3(Cblの色+Cbrの色+Ctrの色)*A2
より求められる。
図8dの場合、領域A1=0.5(1−l5)*l8であり、画素色CPは、
CP=(Cblの色)*A1+1/3(Ctlの色+Cbrの色+Ctrの色)*A2
より求められる。
図8eの場合、領域A1=0.5(1−l5)*l6であり、画素色CPは、
CP=(Ctrの色)*A1+1/3(Ctlの色+Cbrの色+Cblの色)*A2
より求められる。
最後に、図8fの場合、領域A1=0.5((1−l8)*(1−l6))
であり、画素色CPは、
CP=(Cbrの色)*A1+1/3(Ctlの色+Cbrの色+Cblの色)*A2より求められる。
2エッジ交差が無い場合、または半透明フラッグビットが4つのコーナーサンプリング点のいずれかに設定されている場合には、画素は4つの分離された領域A1,A2,A3,およびA4、および4つの交差を有するものとして扱われ、領域重みづけ(area-weighted)計算ステップ95を使用しなければならない。
これは図8gに図示されているが、領域は以下の用に計算される。
A1=1/4(l3+l5) A2=1/4((1−l3)+l6)
A3=1/4((1−l5)+l8) A4=1/4((1−l6)+(1−l8))
最終混合画素色CPデータは、したがって、
CP=(Ctlの色)*A1+(Ctrの色)*A2
+(Cblの色)*A3+(Cbrの色)*A4
となる。
画素要混合色CP情報は、最終的にステップ94またはステップ95のいずれかによって決定され、この画素色データ信号はディスプレイに出力され、ビューワ20に表示を行う。
コンピュータ画像発生装置の画素色の内容を決定するための装置および方法の1つの実施例をここでは詳細に説明したが、それらの多くの変形例および改良例は当業者にとって明らかである。従って、我々の意図は、添付の「請求の範囲」の範囲に限定され、ここで説明した方法で示される特定の手段および工程に限定されるものではない。
Claims (20)
- (a)少なくとも3つの頂点を有し、各異なった頂点対が異なったエッジを形成する少なくとも1個の表示すべきポリゴン面の各頂点の1組のディスプレイ空間座標(I,J)を示す入力データ信号を最初に受信する工程と、
(b)前記ポリゴン面の各エッジが、ディスプレイを構成する画素アレイの各画素の境界を成す複数個のエッジ線分のうちの連携する1個と交差するならば、その交差位置を示すデータ信号を、前記受信した頂点データ信号に応答して生成する工程と、
(c)その画素に影響を及ぼす全てのポリゴン面の前記エッジ線分との交差を示すデータ信号を、その画素の任意の部分を占める前記ポリゴン面の各々の色データと共に、画素単位で、記憶する工程と、
(d)表示すべき各画素毎に、選択された複数個の隣接する画素の群の複数個の異なったエッジ線分の記憶データを処理して、各表示可能画素の各コーナー毎に色強度データ信号を得る工程と、
(e)現在処理されている画素の全てのコーナーの色強度データ信号をミキシングし、そのディスプレイ画素の観察可能色を決定する工程とを含んで成ることを特徴とするコンピュータ画像生成装置の映像データ信号出力に応答して表示すべき画素アレイの各画素の視認可能色を決定するための方法。 - 工程(b)が、サンプル点として前記画素の1組の4個のコーナーの選択されたコーナーを利用する工程と、前記画素の前記4個のコーナーの指定されたコーナーから同一の画素の他のコーナーに延在するエッジ線分について交差位置を示すデータを決定する工程とを含む請求項1記載の方法。
- 工程(c)が、各画素毎に透明と不透明との間の半透明性値Tを決定する工程と、透明性を示すT値を有する画素に関し如何なるサンプルコーナー点のデータも記憶しない工程と、前記半透明性値Tの増加に応答して、データに記憶されるサンプルコーナー点の数を増加させる工程とを更に含む請求項2記載の方法。
- その画素が完全な不透明性の半透明性値Tを有する場合にのみ画素の4個のコーナー全てについてデータを記憶する工程を含む請求項3記載の方法。
- T値の最大値未満の複数個のT値の範囲の各範囲毎に、データに記憶されるべき画素のコーナーの複数個の相補的パターンを提供する工程と、いずれかのポリゴン面に関する前記複数個の相補的パターンのうちの異なった1個のパターンを選択する工程とを更に含む請求項3記載の方法。
- 予め選択された範囲内のT値を有し、かつ特定のディスプレイ画素と連携する各ポリゴン面毎に一対のパターンのうちの1個のパターンをランダムに選択する工程を更に含む請求項5記載の方法。
- 工程(d)が、画素群の画素を、画素のコーナーの対を結ぶ少なくとも1個のエッジ線分に隣接するべく選択する工程を含む請求項1記載の方法。
- 処理されている前記画素に隣接する4個の他の画素を包含するように前記画素群を配置する工程を含む請求項7記載の方法。
- 前記画素群の前記4個の他の画素を、処理されている前記画素の直ぐ上、下、前、および後にそれぞれ配置するように選択する工程を更に含む請求項8記載の方法。
- 複数個のポリゴン面が、処理されている前記画素の色を与え、その画素のコーナーの任意のアクティブな一つのコーナーを被覆する全てのポリゴン面からの色度データをブレンドすることにより、処理されている前記画素の色を得る工程を更に含む請求項1記載の方法。
- 色度のブレンディングに先立って、特定のポリゴン面の半透明性に応答して各被覆ポリゴン面からの前記色度データを修正する工程を更に含む請求項10記載の方法。
- 1個のディスプレイ画素の面積より小さい面積を有する全てのポリゴン面をデジタル的にフィルタリングする工程を更に含む請求項11記載の方法。
- 工程(b)が、各画素毎に透明と不透明との間の半透明性値Tを決定する工程と、その半透明性値Tの変動に応答して、データに記憶されるサンプルコーナー点の数を変化させる工程とを更に含む請求項1記載の方法。
- 前記画素の連携コーナーに連携した前記ポリゴン面の前記半透明性値の増加に応じて、前記連携するエッジ線分の交差を前記画素のそのコーナーから遠ざけるように前記エッジ線分の交差を示す前記データ信号の大きさを増加させる工程を更に含む請求項13記載の方法。
- もし、選択された方向における前記画素の前記コーナーからエッジ交差点までの距離がサンプル点間距離より大きければ、前記エッジの交差を示す前記データ信号の値を予め定めた最大値にクランプする工程を更に含む請求項14記載の方法。
- ディスプレイ空間がディスプレイのラスタであり、前記画素の前記コーナーの選択されたコーナーに関して第一のラスタ方向における前記画素の前記コーナーからエッジ交差点までの距離を修正する工程と、前記画素の前記コーナーの全ての残りのコーナーに関して前記第一のラスター方向に垂直な第二の方向における前記画素の前記コーナーからエッジ交差点までの距離を修正する工程とを含む請求項15記載の方法。
- 表示すべき多数のポリゴン面のそれぞれの少なくとも3個の各頂点の1組のディスプレイ空間座標(I,J)を示す入力データ信号を受信して、(a)前記受信された頂点データ信号の各異なった頂点対により定められるポリゴン面のエッジによって交差される逐次連続する可視ディスプレイ画素の各画素のエッジ線分、及び(b)前記画素の連携する前記エッジ線分に沿う前記交差の位置を決定するエッジ交点計算機手段と、
各画素に影響を及ぼす全てのポリゴン面の前記エッジ線分との交差を示すデータ信号を、その画素の任意の部分を占める前記ポリゴン面のそれぞれの色データと共に、画素単位で、記憶するためのフレームバッファ手段と、
表示すべき各画素毎に、複数個の隣接する画素の群の複数個のエッジ線分のデータ信号を前記フレームバッファ手段から受信して、エッジを解像し、かつ前記ポリゴン面の色強度データをミキシングして、コンピュータ画像生成装置(CIG)の映像データ出力を受信するディスプレイ手段により表示すべき各画素について観察可能色データ信号を決定するポストプロセッサ手段とを含んで成ることを特徴とするコンピュータ画像生成装置(CIG)におけるディスプレイ・プロセッサのための色強度サブアセンブリ。 - 前記ポストプロセッサ手段が更に、現在の画素の全体の色を与える各ポリゴン面の半透明性値Tを示すデータ信号を受信し、前記受信したT値に応答してその色情報信号をブレンドする請求項17記載のサブアセンブリ。
- 前記画素の群が、現在処理されている各画素に隣接する4個の追加の画素を包含する請求項17記載のサブアセンブリ。
- 前記ポストプロセッサ手段が、ディスプレイのラスターの複数本のエッジラインに沿うコーナーのデータ信号を同時に提供するコーナーデータレジスタ手段と、各エッジラインの前記データ信号を受信して前記複数本のエッジラインのそれぞれに沿う複数個のコーナーのデータ信号を同時に提供する保持レジスタ手段と、前記保持レジスタ手段に接続され前記保持レジスタ手段から前記複数個のコーナーの前記データ信号を受信して前記画素群の画素の複数個のエッジ線分のそれぞれに沿う交差長を決定する線分計算器手段とを含む請求項19記載のサブアセンブリ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1996/017659 WO1998020460A1 (en) | 1994-08-19 | 1996-11-04 | Method and apparatus for anti-aliasing polygon edges in a computer imaging system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001503545A JP2001503545A (ja) | 2001-03-13 |
JP4125789B2 true JP4125789B2 (ja) | 2008-07-30 |
Family
ID=22256075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52132598A Expired - Fee Related JP4125789B2 (ja) | 1996-11-04 | 1996-11-04 | コンピュータ画像システムにおいてポリゴンのエッジをアンチエイリアシングするための方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4125789B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7348996B2 (en) * | 2004-09-20 | 2008-03-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of and system for pixel sampling |
-
1996
- 1996-11-04 JP JP52132598A patent/JP4125789B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001503545A (ja) | 2001-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5668940A (en) | Method and apparatus for anti-aliasing polygon edges in a computer imaging system | |
US4918626A (en) | Computer graphics priority system with antialiasing | |
US6147695A (en) | System and method for combining multiple video streams | |
US5923333A (en) | Fast alpha transparency rendering method | |
US5966132A (en) | Three-dimensional image synthesis which represents images differently in multiple three dimensional spaces | |
US5363475A (en) | Image generator for generating perspective views from data defining a model having opaque and translucent features | |
WO1999052079A1 (en) | Object-based anti-aliasing | |
US5982376A (en) | Three-dimensional graphic display apparatus with improved high-speed anti-aliasing | |
JPS62151896A (ja) | 計算機画像発生システムに於ける縁平滑化方法 | |
EP0300703A3 (en) | Depth buffer priority processing for real time computer image generating systems | |
JPH04233086A (ja) | 画像生成方法 | |
JPH07152926A (ja) | 3次元像を陰影付けする方法 | |
US6163320A (en) | Method and apparatus for radiometrically accurate texture-based lightpoint rendering technique | |
GB2243523A (en) | Generating elliptical objects | |
WO2000068892A1 (en) | Method and system for efficiently using fewer blending units for antialiasing | |
US5793372A (en) | Methods and apparatus for rapidly rendering photo-realistic surfaces on 3-dimensional wire frames automatically using user defined points | |
JP4125789B2 (ja) | コンピュータ画像システムにおいてポリゴンのエッジをアンチエイリアシングするための方法および装置 | |
EP1058912B1 (en) | Subsampled texture edge antialiasing | |
JP4624617B2 (ja) | 改良されたs−バッファのアンチエイリアシング方法 | |
KR100466473B1 (ko) | 텍셀 캐시들을 사용한 영상 텍스처 맵핑 장치 | |
JP2000182073A (ja) | 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置 | |
TW318923B (ja) | ||
JP3098060B2 (ja) | 模擬視界信号発生装置 | |
WO2000010157A1 (en) | System and method for refracting a background image through a foreground object on a computer display | |
JP2001109896A (ja) | エッジ描画方法及びこれを用いた画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061121 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070130 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070402 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070521 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080221 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080422 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080509 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |