JP3356779B2 - ポリゴンのラスタ化 - Google Patents
ポリゴンのラスタ化Info
- Publication number
- JP3356779B2 JP3356779B2 JP51109794A JP51109794A JP3356779B2 JP 3356779 B2 JP3356779 B2 JP 3356779B2 JP 51109794 A JP51109794 A JP 51109794A JP 51109794 A JP51109794 A JP 51109794A JP 3356779 B2 JP3356779 B2 JP 3356779B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- edge
- span
- mask
- triangle
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
に関し、より具体的にはポリゴンをラスタ化するために
どの画素(pixel)を三角形の部分として表示するかを
確定するためのシステム並びに方法に関する。
・ディスプレーが普通に使われている。これらのディス
プレーは、グラフィックス画像を、ディスプレー・バッ
ファに格納されている各画素を表すデータを有する画素
もしくは「ピクセル」(PELとも呼ばれる)のマトリッ
クスとして格納する。このデータは画素の輝度及び色と
いった表示画面上の各画素の属性を指定する。画像全体
は、ディスプレー・バッファから読み出され、画素デー
タの水平の行もしくは「スキャン・ライン」を順次走査
し、またこのデータを使って1個以上の電子ビーム(も
ちろんLCDなど他のディスプレー技術を用いることがで
きる)を制御することによって、表示画面上に描かれ
る。ディスプレー・バッファから画素データを一行ずつ
走査する、この処理はリフレッシュ・サイクル毎に繰り
返される。
の基本のビルディング・ブロック又は「プリミティブ」
として普通ポリゴンが使われる。三角形は最も単純なポ
リゴンで、且つより複雑なポリゴンは常に三角形の集合
として表すことができるから、三角形がポリゴン作図シ
ステム用の一般的な基本プリミティブである。画面上で
の三角形や他のジオメトリック・プリミティブ作図処理
は「ラスタ化(rasterization)」として知られる。ポ
リゴンのラスタ化は、2次元及び3次元の両グラフィッ
クス・システムにとって基本的な問題である。三角形の
ラスタ化に適用されるほとんどの技法は、任意の数の辺
を有する多面体のポリゴン用に汎用化することができ
る。
れた三角形内に入るのかを確定することがある。ラスタ
化のシステムは普通、画素から画素に進み、各画素を三
角形の部分に「表示する」(即ち、フレーム・バッファ
又は画素マップの中に描画する)か否かを確定する。次
に、これによって各画素を表すディスプレー・バッファ
のデータの設定方法が決まる。三角形内の全ての画素が
カバーされるような方法で画素から画素に進むように、
様々なトラバーサル・アルゴリズムが開発されてきてい
る。
(three edge−function)の集合として表されることが
ある。エッジ関数は直線を表す一次方程式で、2次元の
平面を再分割するために使われる。エッジ関数は平面内
の各点が3つの領域の1つに入るように区分する。つま
り、線の「左」側の領域、線の「右」側の領域、又は線
それ自身を表す領域である。以下に説明するタイプのエ
ッジ関数は、線の「左」側の点は正の値を、「右」側の
点は負の値を、そしてぴったり線上に位置する点はゼロ
の値を有する(第1図を参照)という特性を有してい
る。ラスタ化システムに当てはめると、2次元の平面は
グラフィックス・スクリーンによって表され、点は個々
の画素によって表され、さらにエッジ関数でグラフィッ
クス・スクリーンは分割される。
エッジ関数で指定される。4つ以上のエッジの論理結合
を用いることによってより複雑なポリゴンを定義するこ
とが可能である。三角形のラスタ化にはどの画素を表示
するかを確定することが係わってくるため、普通いずれ
かのエッジ上にぴったり位置する画素にタイ・ブレーカ
規則を適用して、画素が三角形の内側にあるか又は外側
にあるかを確定する。
(e0,e1,e2)が対応しており、エッジ変数は画素と3つ
のそれぞれのエッジとの間の符号付き距離を表すもので
ある。画素の位置に対して3個のエッジ関数、f0(x,
y)、f1(x,y)そしてf2(x,y)の数値を求めることに
よって任意の三角形に対する各エッジ変数の値が決定さ
れる。1つのエッジは2つの隣接する画素と画素の間に
陥る場合があるから、エッジ変数は小数値を有する可能
性がある。従って、エッジ変数を固定少数点2の補数整
数形で表すのが都合がよい。各エッジが三角形の「左」
のエッジになるのか又は「右」のエッジになるのか分か
っている場合、e0、e1、e2の符号を調べることによって
画素が三角形内に入るか否かを確定することができる。
エッジの符号は必要に応じて逆にすることができる。
型的なラスタ化システムでは、3つのエッジ関数の集合
と任意の画素位置に対するエッジ変数の値(e0,e1,e2)
を計算し、次に増分値集合(Δeleft,Δeright,etc.)
を用いて隣接する画素のエッジ変数値を確定する。ラス
タ化システムでは、三角形を横切って、トラバーサル・
アルゴリズムが画素から画素に進むに伴って、現時点の
値に増分値を加算していく。画素の3つのエッジ変数値
(及びタイ・ブレーカ規則)に従って三角形の境界内に
ある画素が表示される。
算は各画素に対して個別に行なわれるのに対し、より多
くの算術演算装置を備えたより複雑なシステムでは、複
数の画素の値が同時に計算される。並列で複数の画素の
エッジ変数の数値を求めると、より高速なラスタ化が行
なえるが、トラバースされる画素毎に別々にエッジ変数
を確定しなければならないため、処理が限定されること
には変わりがない。三角形をラスタ化するために使われ
るエッジ関数や三角形をトラバースするための様々なア
ルゴリズムを詳しく調べれば、先に説明した処理をより
よく理解することができるだろう。エッジ関数やトラバ
ーサル・アルゴリズムを用いることについては、Comput
er Graphics Vol.22 No.4(1988年)の17〜20頁に掲載
のJ.Pineda著の記事「ポリゴン・ラスタ化のための並列
アルゴリズム(A Parallel Algorithm for Polygon Ras
terization)」に詳しく述べられている。同記事は参照
することにより本明細書に組み込まれているものとす
る。本明細書を読む人のために、以下にPinedaの記事の
要点を転載する。
2点によって定義されているベクトルと、両点を通る線
を考察してみよう。先に述べたように、このベクトルと
線は、2次元の空間を3つの領域、つまり、線の「左」
側に位置する全ての点、「右」側に位置する全ての点
と、ぴったり線上に位置する全ての点、に分けるために
使われる。
dY)で定義するエッジに対するその点の相対的な位置で
決まるという有益な特性を有している。
y)が、(X,Y)から(X+dX,Y+dY)へのベクトルと
(X,Y)から(x,y)へのベクトルの間の外積の大きさを
表す式と同じになることに気がつけば十分であろう。外
積のよく知られている特性によって、ベクトルが同一直
線上にある場合大きさはゼロで、ベクトルが一方から他
方に横切ると符号が変化する。
化システムでは普通この関数が用いられる。
65年)の25〜30頁に掲載のJ.Bresenham著「デジタル・
プロッタのコンピュータ制御のためのアルゴリズム(Al
gorithm for Computer Control of a Digital Plotte
r)」に記述されているBresenhamの線描画アルゴリズム
のエラー値又は「作図制御変数(DCV:draw control var
iable)」に関連する。違いは、Bresenhamの線描画アル
ゴリズムは直線から1/2(二分の一)画素以内にある画
素に対してしかDCV値を保持しないのに対し、f(x,y)
は平面上の全画素に対して定義されることである。さら
に、任意の点におけるDCV値が定数オフセットの分だけ
f(x,y)と異なる。いずれにしても、両アルゴリズム
が機能する理由は基本的に同じである。
期)Vol.20 No.28(1981年)に掲載のFuchs他による「P
IXEL−PLANES」グラフィックス・システムに記述されて
いる。そのシステムで、この関数はフレーム・バッファ
内の全ての画素に対して並列でツリー構造の乗算器によ
って計算される。
ンダリング処理の様々なラスタ化システムによって使わ
れている。三角形内の画素全てを確実にカバーする限り
どんなアルゴリズムを用いてもよい。第4図にトラバー
サル・アルゴリズムの2つの簡単なインプリメンテーシ
ョンを示す。第4(a)図に示すように、方形の境界を
トラバースすることは恐らく最も単純な戦略であるが、
普通最も効率的であるとはいえない。第4(b)図に示
した、よりスマートなアルゴリズムは三角形のエッジを
「通り」すぎると、次のトラバーサル・ラインに進むも
のである。よりスマートなアルゴリズムで一つ面倒なこ
とは、次のラインに進む時、それが三角形の内側の点に
進む場合があることである。その場合、次のスキャン・
ラインが開始される前に、アルゴリズムはエッジの外側
を探さなければならない。この問題の一例を表すのが、
第5図の三角形の右上の隅に示されている。
示す。即ち開始点から下に進み、中心線から外に向か
う。このアルゴリズムが単純なアルゴリズムより優れて
いる点は、エッジを探す必要がなく、さらに折り返さな
くてよいところである。補間回路は中心線で再開始され
なければならないから、トレードオフは、外側の点を走
査している間、中心線用の補間回路の状態を保存してな
ければならないことである。図面の下の部分を見ればわ
かるように、三角形の外側に出てしまったら、「中心」
線が移動(shift over)する。
方法がある。各方法の効率は、表示対象となる特定の三
角形いかんによって異なる。多くのシステムでは、メモ
リ内の画素を長方形のブロック状にして編成している。
こうしたシステムの中には、CPUがデータや命令をキャ
ッシュするのと同じように、高速メモリのこれらのブロ
ックをキャッシュする場合がある。適切なトラバーサル
・アルゴリズムと共に用いると、この編成はメモリ・ア
クセスを最少限に抑えることによって性能を向上させる
ことができる。
する方法いかんに係わらず、上述の画素単位の方法を用
いる場合、画素毎に少なくとも3つの加算演算が行なわ
れなければならない。これらの3つの加算は、上述のよ
うに、隣接する画素の個々の値を確定するために、エッ
ジ変数e0、e1及びe2の値に加算されなければならない3
つの増分値に対応する。従って、現在のタスタ化の技法
では、画素が三角形内に入るか否かを確定するのに必要
な画素当たりの計算数によって効率が限定されてしま
う。この効率が限定されるということは、グラフィック
ス表示システムが遅くなるということである。画素当た
り必要とする計算数を減らす、三角形を表示するための
方法がそのために求められるのである。
方法を提供するものである。ポリゴンの各エッジ(例え
ば、三角形)は、各画素をポリゴンの平面内に区分けす
る一次エッジ関数で表される。具体的には、正の値を有
する画素はエッジの片側にあり、負の値を有する画素は
その反対側にある。ポリゴンの平面内にある各画素は、
その画素とポリゴンの個々のエッジとの間の符号付き水
平距離を表すエッジ変数集合を有している。画素は、エ
ッジ関数との関連で生成されるエッジ変数の値に基づい
て表示される。
することができるようになる。先ず初めに、三角形に付
随した3個のエッジ関数の数値を求めることによって、
その三角形内の任意の画素に対するエッジ関数集合の値
を確定する。どの画素を表示するかを確定するために、
本発明ではこれら3個の変数の値に基づいてWビットの
表示マスクを生成する。本発明によって、スパン内の残
りの画素に対してさらに計算をしなくても、これらの値
を画素のスパンに適用することができるようになる。
図面と共に、以下に述べる説明を参照することにより、
よりよく理解することができるであろう。
示す。
連を示す。
用いられるエッジ関数を表すベクトル及び直線をグラフ
に表したものである。
画素をトラバースする2つの単純なアルゴリズムを示
す。
スするための(第4図に示したものと比較して)高性能
なアルゴリズムである。
ン・ハードウエアのブロック図である。
されたエッジ変数である。
ある。
ーチャートを示す。
示す。
的に類似した素子を表す。さらに、参照番号の左端の数
字は、その参照番号が最初に登場した図面を示す。
方法を提供するものである。本発明では、従来の画素毎
の方法の比べポリゴン内に画素を表示するための計算が
少なくてすむ。ポリゴン(例えば、三角形)の各エッジ
は、エッジの片側が正の値でその反対側が負の値を有す
る、一次エッジ関数で表される。本発明によって、スパ
ンの画素の一つに対してエッジ関数の加算演算を行なう
だけで、エッジ関数を画素の一次スパンに適用できるよ
うになる。本発明においてラスタ化のために用いられる
初期計算値(即ち、単一の線形スパンを使うラスタ化)
は画素単位のラスタ化に必要な値に類似している。それ
らは以下の通りである: ・トラバーサル・アルゴリズムの現在のスキャン位置
(即ち、事前に決められた画素)は座標(x,y)で表さ
れる。
合e0、e1、e2は3個の個々のエッジ関数f0、f1、f2に対
応する(例えば、e0=f0(y)−x)。各エッジ変数は
整数フィールド(符号ビットを含む)と小数フィールド
から成り立つ。
て取り扱われるべきかを指定する各エッジに対する1ビ
ットのエッジ・フラグ。セット・フラグは右エッジを指
定する。エッジの右側に入り、従って、それに対応する
エッジ変数値が正の画素は三角形内にないということで
ある。右エッジに対して負の値を有する画素は三角形内
に入ることがある。クリアされたフラグは左エッジを示
し、且つ正の値を有する画素だけが三角形内に入り得る
ことを示す。従って、フラグは、任意のエッジに対する
値をどのように解釈すべきかを定める。エッジ変数がゼ
ロの値を有する場合、三角形の内側ととらえるか又は外
側ととらえるかは自由である(但し、一貫性のある決定
がなされなければならない)。
エッジ変数を編成することが可能である。この場合、セ
ット・フラグは三角形が右寄りであることを示し、e1が
左エッジ、e0とe2が右エッジであることを意味する。フ
ラグがセットされていなければ、三角形は左寄りで、エ
ッジは逆になる。全ての三角形がこの2つのケースのど
ちらか一つに当てはまる。
t、Deright、etc):ステップ値は、隣接する画素の値
を確定するために、エッジ変数の値に加算されたり又は
除算されたりする。各エッジ変数は、トラバーサルがス
キャンしていくどの方向に対しても増分値を有する。そ
れらも固定小数点2の補数整数値である。
何らかのべき乗であればよい。普通、メモリのバンド幅
の使用を減らすことになるけれども、スパンの次元は必
ずしもメモリ・システムがアクセスするデータ・ブロッ
クに対応している必要はない。
エアは、(1)単純な整数データパス710、(2)画素
マスク生成ユニット720、及び(3)レンダリング・ユ
ニット730、の3つの部分に分けられる。整数データパ
ス710は、計算値用のレジスタ、1個以上の加算器/除
算器ユニット、及びしかるべき制御ユニットを含む単純
で簡単なユニットである。具体的には、整数データパス
710は表示しようとしている三角形の各エッジに対して
エッジ変数を生成するためのハードウエアを含んでい
る。画素マスク生成ユニット720は、整数データパス710
が提供するエッジ変数に基づいて画素マスクを生成する
ことにより、w画素スパン内のどの画素が表示されよう
としているかを確定する。このユニットは、レンダリン
グ・マスクと呼ばれる、個別のマスクを各エッジ変数に
対して生成し、最終出力として3個のマスクの論理積を
生みだす(即ち、レンダリング・マスク725)。以下に
説明するように、好適な実施例においてはレンダリング
・マスク725を作るために2個のマスクだけが使用され
る。レンダリング・マスクの各ビットは画面上の個々の
画素を表す。レンダリング・ユニット730は、マスク生
成ユニット720からレンダリング・マスク725を取り入
れ、各画素が表示されるべきか否かのコマンド735をメ
モリ・システムに対して出す。
テムは単一の画素(即ち、画素スパン内の第1画素)に
対するエッジ変数値に基づきWビットのレンダリング・
マスク725を生成する。レンダリング・マスクにセット
されているビットからどの画素が三角形の部分として表
示されようとしているかを知ることができる。任意の画
素に対するそれぞれのレンダリング・マスク・ビットを
確定するために、(発明の背景の項で説明したように)
3個のエッジ・マスク・ビットが生成され、その各々
は、画素が3個のそれぞれのエッジの一つの三角形の側
に入いるかどうかを示す。次にその3個のエッジ・マス
ク・ビットを論理積にすることによってレンダリング・
マスク・ビットが生成される。結果としてのレンダリン
グ・マスク・ビットは、その画素が三角形の部分として
表示される場合「1」で、そうでない場合「0」にな
る。Wビットのストリングから成る各レンダリング・マ
スクは、位置(x,y)における画素に対するレンダリン
グ・マスク・ビットと、水平の行における次のW−1画
素に対するレンダリング・マスク・ビットとから成る。
水平距離に代わって、画素と三角形のエッジの間の垂直
距離を用いて、本発明を容易に適用できることが分かる
はずである。各エッジ変数については、エッジ・マスク
生成において、それに関係する3つのビット・フィール
ドがある。その第1のフィールドは符号ビットである。
第2フィールドは、エッジ変数ビットの整数部分の最下
位のNビットであるサブ・スパン位置ビットから成る。
この場合、W=2Nである。第3フィールドは、エッジ変
数の整数部分の残りのビットであるスパン位置ビットか
ら成る。第8図は、4ビットのスパンに対するこれらの
フィールドを示す。結果としてのエッジ変数は、8ビッ
トの整数部分と8ビットの小数部分を有する16ビットで
ある。W=4の場合、サブ・スパン・フィールドのサイ
ズはN=W/2=2である。小数部分はマスク生成では使
用されない。むしろ、エッジ変数を増分する際、正確さ
を維持するために用いられる。
る画素がエッジの三角形側に入るか否かを確定するため
に使用される。その上、これら同じ3つのフィールド
は、水平スパンの他のW−1画素の各々がエッジの三角
形側に入るかどうか確定するために使用される。勿論、
エッジ変数値は左エッジと右エッジでは異なる解釈がな
されるが、一般的な考え方としては両方同じである。表
1及び2に左エッジ及び右エッジに対して生成されたマ
スクを示す。この表は2のべき乗のスパン・サイズなら
どれに対しても簡単に一般法則化できるが、この例にお
いてはスパン・サイズ(w=4)が使われている。この
2つの表においては、三角形のエッジ上の画素は左エッ
ジに対しては三角形の内側に入れ、右エッジに対しては
三角形の外側に来ると仮定している。
て説明する。第9図に示すのは、表示されるべき三角形
を含めた画素グリッドの一例である。頂点が(5,2)、
(2,15)、(14,11)の3点である。これらの3つの頂
点は、図においてe0、e1、e2で表されたエッジを形成す
る。e0及びe2の2つのエッジが三角形の右側の境界を形
成し、1つのエッジだけが左側の境界を形成するから、
この特定の例は右寄りの三角形である。左寄りの三角形
は2つの左エッジと1つの右エッジを有する。画素グリ
ッドは4ピクセル幅のスパンに分割される。しかし、こ
こでも、2のべき乗であればどんな幅のスパンでも、以
下に説明するピクセル・スパン・メカニズムに用いるこ
とができる。
ッジ変数の定義に基づいている。第10図は左エッジに対
するエッジ変数の様々な画素位置における異なる値を示
す。左エッジについて、負の値は、現時点の画素とその
右側の全ての画素がエッジの境界内(スパンa)にある
ことを示す。スパンaと関連するエッジ変数は−2.1
(2値1...1110)に等しい。負の値を有する全ての左エ
ッジ変数に対するマスクは1111である。言い換えれば、
このマスクは、スパン内の全ての画素が表示されるべき
ことを示す。
る。第1のケースは、エッジ変数の値がw未満(スパン
b)の時である。この場合、スパン・ビットは全てゼロ
になり、サブ・スパン・ビットはマスクのどのビットが
セットされているか確定するために用いられる。サブ・
スパン・ビットは00、01、10、又は11のいずれかにな
る。マスクには4個の画素が表されているから、4つの
可能性がある。各可能性は表示されなければならない画
素のいろいろ異なる集合を表している。示した例におい
て、bに対するエッジ変数は1.4(バイナリ0...0001)
になる。サブ・スパン位置ビットは01であり、従って、
マスクは0011である。言い換えれば、このマスクはマス
クの最も右端の2個の画素が表示されるという事実を表
している。
の値がw以下(スパンc)になる時である。この場合、
スパン位置ビットはゼロでなくなる。スパン内の画素は
全てエッジの左側にあるから、結果としてのマスクは、
従って、マスクに表されている画素は全て表示されるべ
きでないことを示しているはずである。例において、ス
パンcに対するエッジ変数は5.1(バイナリ0...0101)
になる。その結果、マスクの全ビットがゼロ(即ち、00
00)になる。右エッジに対するマスク生成テーブルは同
じように確定することができる。
トを示す。表示の対象となる三角形があると仮定して、
ステップ1110に示すように、スタートの画素を選択す
る。ステップ1115に示すように、3つのエッジ変数が選
択された画素に対応して生成される。
ッジのうち2つだけが使用されなければならない。つま
り、右のエッジ1つと左のエッジ1つである。例えば、
ここで対象となっている三角形が2つの右エッジを有す
る(つまり、右寄りの三角形)場合、右の境界として使
われるエッジはyの値によって異なる。yが右の2つの
エッジが接する頂点より上にある場合は、2つのエッジ
のうち上の方の右エッジが使われる。それ以外の場合
は、下の方の右エッジが使われる。ステップ1120に示す
ように、レンダリング・マスクを生成するために必要な
2つのエッジが選択される。
ことを表している。これらのステップは使用しているス
パンの大きさによって異なる。ステップ1125に示すよう
に、右エッジに対するエッジ変数の符号が調べられる。
ステップ1130に示すように、それが負(そのスパンは三
角形の外にあるを示す)の場合、マスクは0000にセット
される。次に、ステップ1135に示すように、スパン位置
ビットが調べられる。ステップ1140に示すように、スパ
ン位置ビットがゼロでない(そのスパンは三角形内にあ
ることを示す)場合、マスクは1111にセットされる。そ
れ以外の場合は、ステップ1145に示すように、サブ・ス
パン・ビットが調べられ、適正マスクがこれらのビット
の値に基づいて選択される。
ク生成のステップを表す。このステップは右エッジにつ
いて先に説明したステップと同じである。
確定する結果としてのマスクは、単に、2つのエッジ
(つまり、右エッジと左エッジ)に対して作成されたマ
スクの論理積である。ステップ1185に示すように、レン
ダリング画素マスクはレンダリング・ユニット730に引
き渡され、そこで、表示の対象となる各画素に対する適
正な制御信号がメモリ・システムに送られる。
され、ステップ1120で次の画素に対してプロシジャが開
始される。その時点で次の画素は、使用されている特定
のトラバーサル・アルゴリズムの経路内に入っているス
パン以後最初の画素である。
の技法に類似した多くの方法で行なうことができる。水
平方向にトラバースする場合、データパスは(x±w,
y)にある画素に対するエッジ値を計算しなければなら
ない。この計算はnビットだけ左にシフトした単一の画
素に対する水平ステップ値を使って行なうことができ
る。その場合、w=2nである。この計算にはシフタのハ
ードウエアは要らず、シフト済みの値か未だシフトして
いない値のいずれかを選択するマルチプレクサが必要な
だけである。
を有することがある。こうした場合、本発明では、画素
スパン内のどの画素を表示すべきか確定するために、先
に概要を説明したプロシジャと共に、残る2つのエッジ
(水平のエッジではない)を使用する。言い換えれば、
画素が表示されるべきか確定するために2つのエッジだ
けが使われ、さらに右エッジ、左エッジともに1つしか
ないから、右または左の2つのエッジが交わる頂点より
上方にあるか下方にあるか確定するためにyの値を調べ
る必要はない。水平エッジを有する三角形の場合、頂点
は最初のスパン(例えば、水平エッジが三角形のトップ
・エッジである時)又は最後のスパン(例えば、水平エ
ッジが三角形のボトム・エッジである時)のいずれかに
ある。従って、残る2つのエッジだけが画素マスクの生
成に必要である。
いくつかの利点を提供する。先ず、画素当たりの計算数
が従来の技法より少なくてすむ。トラバース中にエッジ
変数を維持するために必要な算術演算数は1画素スパン
につき1セットである。これは各画素に対して余分の加
算器/除算器のハードウエアを使わずに行なえる。その
二は、本発明はパイプライン式の演算になっていること
である。整数データパス710、マスク生成ユニット720、
そしてレンダリング・ユニット730はパイプライン式に
構成することによって独立に動作させることができる。
これにより余分のハードウエアを使わずに並列処理が可
能になる。第三に、本発明は効率的なメモリ・アーキテ
クチャと一貫性を保っている。水平スパンの画素をレン
ダリングすることによって、ブロック編成の画素メモリ
と互換性のあるトラバーサル・アルゴリズムを容易に実
現することができるようになる。
おける三角形のラスタ化のための2つのメカニズムを説
明する。単一画素メカニズムと呼ばれる、第一のメカニ
ズムは、従来から使われている技法の一つである。これ
についてここで説明するのは、そのすぐ後に説明する本
発明による性能が向上した動作とその相違点がはっきり
わかるようにするためである。その二は、画素スパン方
式と呼ばれるものである。画素スパン技法では1画素に
つき行なう演算がより少なくて、三角形の表示が可能で
ある。
ラバースするルーチンを利用し、表示されるべきか確定
するために画素毎にテストを行なう。トラバーサルの順
序を決めるための方法についてはここでは説明しない
が、その代わり例を述べる時に、トラバーサル・アルゴ
リズムに関する単純な仮定をたてる。画素表示をするか
否かの決定は通常、画素毎に更新されるエッジ変数の集
合に基づいている。エッジ変数はe0、e1、e2で表され
る。この説明において、エッジ変数は、スキャンにおけ
る現時点での画素位置から三角形のエッジによって形成
される直線までの水平距離として定義されている。エッ
ジ変数の定義方法は様々であるが、全てが概ねこの一般
的なコンセプトから派生したものである。
ば、画素(x,y)におけるエッジ変数eの値はe=f
(y)−xと定義される。f(y)はそのエッジに対す
るエッジ関数と呼ばれ、基本的な代数を用いて三角形の
座標から容易に求められる。ここで述べる例において、
3つのエッジに対するエッジ関数を次のようにする。
して以下の解釈があてはまる。即ち、エッジ変数が正な
らば、画素(x,y)はエッジの左側にあり、負ならばエ
ッジの右になり、そしてゼロならばエッジ上にある。画
素が三角形の境界内にあるかどうかを確定するために、
エッジ変数の2つ、即ち、左の境界を定義するエッジ変
数と右の境界を定義するエッジ変数を使用する。画素に
関連するエッジ変数が負でなければ、画素は三角形の境
界内にある。与えられた画素に対するエッジ変数がゼロ
の時、その画素がエッジの境界内にあるとみなすか否か
は自由である。しかしながら、エッジ変数の値がゼロの
ケースは左エッジと右エッジに対してはそれぞれに異な
った取り扱いがなされる(例えば、右エッジでは内側、
左エッジでは外側)とすれば、それは隣接する三角形を
表示するのに有益である。
義するエッジが2つある。ここで取り上げている三角形
は右寄りの三角形であり、それゆえ2つの右エッジを有
している。yがその2つのエッジが接する頂点より上に
あるから、2つのうち上の方が使われる。
ャンを開始し、上述の関数に基づいてエッジ変数の値を
確定する。例を挙げれば、単一画素走査アルゴリズムは
開始点として画素(5,2)、つまり、トップの頂点を選
ぶ。従って、エッジ変数の初期値は次のようになる。
エッジが合う点より上にあるから、e0が最初の画素に対
して考慮される右のエッジ変数である。変数e1は唯一の
左エッジ変数であるがために、画素のテスト全てに使わ
れる。最初の画素については、左のエッジ変数が負でな
いから、この画素は表示されない。
は、別の画素に行き、そこでその画素のエッジ変数値を
計算して、それが三角形の境界内にあるかどうか調べる
ためのテストを行なう。トラバーサル中画素から画素に
移動することは「ステッピング」と呼ばれる。トラバー
サル中の次の画素は普通、その直前の画素に隣接してお
り、そのためにエッジ変数の評価が簡単になる。エッジ
関数は一次であるから、隣接する画素のエッジ変数値を
確定するということは、定数を現時点での値に加算する
ことである。これらの定数は増分値又はステップ値と呼
ばれる。エッジ変数は画素とエッジ間の水平距離と定義
されているから、水平方向のステップに対する増分値は
常に±1である。エッジ関数が先に使われている形式、
つまり、f(y)=my+cの時、垂直方向のステップに
対する増分値は±mになる。例として挙げた三角形で
は、各エッジ変数に対する増分値は次のようになる。
テップ(5,3)は現時点の画素より下にある画素と仮定
する。エッジ変数の新規の値は以下のようになる。
の変数e0は負ではない。このことは、その画素が三角形
の境界内に入っており、表示されることを意味する。
エッジ変数に加算し、左右の境界の値をテストして、続
けられていく。この過程は三角形の少なくとも全ての画
素に対して行なわれなければならない。トラバースされ
た画素の総数は使用する特定のトラバーサル・アルゴリ
ズムの性能によって異なってくる。
て複数の画素に対してレンダリング・テストが行なえる
点を除けば、単一画素方式によく似ている。この方法で
はwビット幅の水平スパンにグループ化されている画素
に対して演算を行なう(例ではw=4を使用)。この技
法は、トラバーサル・アルゴリズムがwの単位で水平に
進む点を除いて、単一画素方式と同じようにエッジ変数
並びに増分値を解釈するため、左右の増分値は±1では
なく、±wになる。
どの画素が表示されるかを示すためにマスク生成ユニッ
ト720が使用される。この情報はwビットのマスクで表
される。つまり、1は画素が表示されるべきことを示
し、0(ゼロ)は表示されるべきでないことを示す。マ
スクは(w,y)から(x+w−1,y)までの画素を表す。
上述のように、レンダリング・マスクの計算は現時点の
画素に適用される左右のエッジに対して生成されたマス
クの論理積の結果である。
バイナリ表現である。その表で、サブ・スパン位置ビッ
トは、エッジ変数の整数部分のバイナリ表現による最下
位nビットである。この場合、w=2nである。スパン位
置ビットは符号ビットを除いた残りのビットである。符
号は、2の補数式で定義される最上位ビットである。
は、単一画素方式を用いる時と基本的に同じように動作
する。相違点は2つあり、それは画素スパンのトラバー
サル・アルゴリズムはw画素の単位で水平に移動するこ
とと、開始のx位置がwの倍数でなければならないこと
である。このことを念頭において、第9図に示した三角
形の例を再び考察する。4はwの倍数だから、トラバー
サル・アルゴリズムは(第9図にXで示したように)画
素(4,2)からスタートする。エッジ変数の値は以下の
通りである。
クは0011で、右エッジe1は1100と確定する。これら2つ
の論理積は0000であり、従って、画素は表示されない。
素(4,3)に来る。ここで関与してくるエッジ変数に対
する新規の値は、e0=2及びe1=0.769になる。ここか
ら左右のマスク1110及び0111を夫々得る。これらのマス
クの論理積は0110となり、よって、マスクでこれらの画
素に対する値はゼロだから、画素(4,3)及び(7,3)は
表示されない。しかしながら、画素(5,3)及び(6,3)
は、これらの画素に対するマスクの値が1になるから、
表示される。
ため、画素スパン方式は単一画素技法に比べて利点があ
る。上述の単一画素技法は、トラバーサル・アルゴリズ
ムが進むにつれて、1画素につき3つの加算が必要であ
る。(トラバーサル・アルゴリズムが、画素右エッジ
(三角形の「下半分」)としてe2を用いるどんな画素で
も表示する前に、右エッジとしてe0を用いる全ての画素
を表示するものである場合、画素によってはこの演算数
を減らすことは可能である。その下半分を表示する場
合、e0はもう更新する必要がないから、1画素につき2
つの演算だけ行なえばよい。しかしながら、効率の向上
を図るためにグラフィックス・ハードウエアの実際のイ
ンプリメンテーションをこのようにさらに一層複雑にす
るだけの価値が必ずしもあるとは限らない。)画素スパ
ン方式を用いると、エッジ変数はいずれのw画素に対し
ても一度だけ更新される。これは、画素スパンを表すマ
スク値を生みだすマスク生成ユニット720の支援を得て
達成される。当業者には容易に明確になるであろうが、
単純な組み合わせ論理を用いて、この機能ユニットは簡
単に実現できる。
ンを上述のポリゴン・ラスタ化技法に組み込むことがで
きる。第12図に、ウィンドウ・バウンドのマスク生成ル
ーチンを用いるウィンドウ1210及び三角形1220の例を示
す。この例において、三角形1220の一部はウィンドウ12
10の外にはみ出し、従って三角形のウィンドウ内に収ま
る部分だけが表示されなければならない。画素スパン12
30がウィンドウ1210内に入るかどうかを確定するため
に、ウィンドウ1210のエッジに対して別途にマスクが生
成される。第12図に示されている例においては、エッジ
1240及び1250に対してそれぞれマスクが生成される。こ
れらのマスクは次に、三角形1220に対して生成されたレ
ンダリング・マスクとの論理積がとられる。その結果で
きたウィンドウ・バウンドのマスクは、スパン1230内に
あるどの画素が表示されるかを示す。
ウエアを汎用化することができる。複雑なポリゴンはよ
り単純なポリゴンか三角形に分けられる。複数のエッジ
集合を使ってポリゴンをラスタ化することができる。具
体的には、ポリゴンの各エッジに対してマスクが追加で
生成され、その生成されたマスクを合わせて一つの論理
積がとられる。別の方法としては、複雑なポリゴンを複
数の三角形に分けてポリゴン・ラスタ化のハードウエア
を通らないように迂回するやり方がある。
が、本発明の精神並びに範囲から逸脱することなく、形
状並びに詳細において様々な変更が可能なことが当業者
には理解されるであろう。
Claims (11)
- 【請求項1】ポリゴンをラスタ化するためにどの画素を
三角形の一部として表示するかを決定するコンピュータ
・ベースの方法で、その方法が、 (1)三角形の3つのエッジに対して、画素スパン内の
第1の画素が三角形の内側に入るか外側に出るかを個々
に示す3つのエッジ変数を生成するステップと、 (2)前記エッジ変数の値に基づき、画素スパン内の第
1画素を前記の第1画素とする、画素のスパンを表す3
つのマスクを生成するステップと、 (3)前記画素スパン内のどの画素が表示されるべきか
を表すレンダ・マスクを作るために前記の3つのマスク
を利用するステップと、 を含むことを特徴とするコンピュータ・ベースの方法。 - 【請求項2】前記画素スパンの後に位置する次の画素ま
でその三角形をトラバースするステップと、前記エッジ
変数に1つの増分値を加算するステップと、上記のステ
ップ(2)及び(3)を繰り返すステップとをさらに含
むことを特徴とする請求項1記載のコンピュータ・ベー
スの方法。 - 【請求項3】Wビットの文字列で構成される前記レンダ
・マスクが、(x,y)位置の画素に対するレンダ・マス
ク・ビットと、横の行における次のW−1の画素に対す
るレンダ・マスク・ビットとを有することを特徴とする
請求項1記載のコンピュータ・ベースの方法。 - 【請求項4】前記エッジ変数の各々が符号ビット、スパ
ン位置ビット、及びサブ・スパン位置ビツトを包含し、
さらに上記(2)の生成のステップが、前記符号ビット
が負ならば、前記スパン内の全ての画素が表示されるべ
きでないことを示すマスクを提供するステップを含むこ
とを特徴とする請求項1記載のコンピュータ・ベースの
方法。 - 【請求項5】前記エッジ変数の各々が符号ビット、スパ
ン位置ビット、及びサブ・スパン位置ビットを包含し、
さらに上記(2)の生成のステップが、前記スパン位置
ビットが全てゼロでなければ、前記スパン内の全ての画
素が表示されるべきことを示すマスクを提供するステッ
プを含むことを特徴とする請求項1記載のコンピュータ
・ベースの方法。 - 【請求項6】前記画素スパンが2のべき乗であることを
特徴とする請求項1記載のコンピュータ・ベースの方
法。 - 【請求項7】ポリゴンをラスタ化するためにどの画素を
三角形の一部として表示するかを決定するコンピュータ
・ベースのシステムで、そのシステムが、 (a)画素スパン内の第1画素が三角形の内側に入るの
か外側に出るのかを個々に示す3つのエッジ変数を生成
するよう構成されており、複数のレジスタと少なくとも
1つ以上の加算/減算器とを有する整数データパスと、 (b)前記整数データパスから前記の3つのエッジ変数
を受け取るように適性化され、そして画素スパン内のど
の画素が三角形の一部として表示されるかを示すレンダ
・マスクを生成するようにさらに適性化されている画素
マスク生成ユニットと、 (C)前記画素マスク生成ユニットから前記レンダ・マ
スクを取り込み、メモリ・システムに対して各画素を表
示するか否かのコマンドを発するレンダリング・ユニッ
トと、 を含むことを特徴とするコンピュータ・ベース・システ
ム。 - 【請求項8】前記画素マスク生成ユニットが、前記エッ
ジ変数値に基づき画素スパンを表す3つのマスクを生成
するマスク手段と、さらに前記画素スパン内のどの画素
が表示されるべきかを表すレンダ・マスクを作るために
前記の3つのマスクの論理積をとる手段とを含むことを
特徴とする請求項7記載のコンピュータ・ベース・シス
テム。 - 【請求項9】前記マスク手段が、前記エッジ変数値によ
り異なるマスクを提供するルックアップ・テーブルを含
むことを特徴とする請求項8記載のコンピュータ・ベー
ス・システム。 - 【請求項10】前記画素スパンが前記メモリ・システム
によってアクセスされるデータのブロックに対応するこ
とを特徴とする請求項7記載のコンピュータ・ベース・
システム。 - 【請求項11】前記エッジ変数が与えられた1画素と三
角形のエッジの1つとの間の符号付きの水平距離を表す
ことを特徴とする請求項7記載のコンピュータ・ベース
・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/968,901 US5446836A (en) | 1992-10-30 | 1992-10-30 | Polygon rasterization |
US07/968,901 | 1992-10-30 | ||
PCT/US1993/009754 WO1994010647A1 (en) | 1992-10-30 | 1993-10-12 | Polygon rasterization |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08502845A JPH08502845A (ja) | 1996-03-26 |
JP3356779B2 true JP3356779B2 (ja) | 2002-12-16 |
Family
ID=25514914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51109794A Expired - Fee Related JP3356779B2 (ja) | 1992-10-30 | 1993-10-12 | ポリゴンのラスタ化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5446836A (ja) |
EP (1) | EP0667018B1 (ja) |
JP (1) | JP3356779B2 (ja) |
KR (1) | KR950704750A (ja) |
DE (1) | DE69312505T2 (ja) |
WO (1) | WO1994010647A1 (ja) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100243174B1 (ko) * | 1993-12-28 | 2000-02-01 | 윤종용 | 서브픽셀 마스크 발생방법 및 장치 |
TW304254B (ja) * | 1994-07-08 | 1997-05-01 | Hitachi Ltd | |
TW293899B (ja) * | 1994-10-18 | 1996-12-21 | Seiko Epson Corp | |
FR2735267B1 (fr) * | 1995-06-08 | 1999-04-30 | Hewlett Packard Co | Systeme et procede de convertisseur de balayage de triangles a tampons de trame entrelaces en deux dimensions |
US5758128A (en) * | 1996-06-27 | 1998-05-26 | Cirrus Logic, Inc. | Object referenced memory mapping |
US6034699A (en) * | 1997-05-01 | 2000-03-07 | Ati Technologies, Inc. | Rendering polygons |
US6141463A (en) * | 1997-10-10 | 2000-10-31 | Electric Planet Interactive | Method and system for estimating jointed-figure configurations |
US6611272B1 (en) * | 1998-07-02 | 2003-08-26 | Microsoft Corporation | Method and apparatus for rasterizing in a hierarchical tile order |
US7224364B1 (en) * | 1999-02-03 | 2007-05-29 | Ati International Srl | Optimal initial rasterization starting point |
US6421053B1 (en) * | 1999-05-24 | 2002-07-16 | International Business Machines Corporation | Block rendering method for a graphics subsystem |
US6407736B1 (en) | 1999-06-18 | 2002-06-18 | Interval Research Corporation | Deferred scanline conversion architecture |
US6795072B1 (en) * | 1999-08-12 | 2004-09-21 | Broadcom Corporation | Method and system for rendering macropixels in a graphical image |
US6504542B1 (en) * | 1999-12-06 | 2003-01-07 | Nvidia Corporation | Method, apparatus and article of manufacture for area rasterization using sense points |
US7027650B2 (en) * | 1999-12-10 | 2006-04-11 | Christian Williame | Dynamic computing imagery, especially for visceral osteopathy and for articular kinetics |
WO2001043047A2 (en) * | 1999-12-10 | 2001-06-14 | Christian Williame | Dynamic computing imagery for visceral osteopathy and for articular kinetics |
US20050052459A1 (en) * | 2000-06-07 | 2005-03-10 | Lewis Michael C. | Method and system for rendering macropixels in a graphical image |
US6636218B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
US6556203B1 (en) * | 2000-06-30 | 2003-04-29 | Intel Corporation | Tile-based digital differential analyzer rasterization |
US7126600B1 (en) * | 2000-08-01 | 2006-10-24 | Ati International Srl | Method and apparatus for high speed block mode triangle rendering |
US6784894B2 (en) * | 2000-08-24 | 2004-08-31 | Sun Microsystems, Inc. | Mapping time-sorted to direction-sorted triangle vertices |
US7061507B1 (en) * | 2000-11-12 | 2006-06-13 | Bitboys, Inc. | Antialiasing method and apparatus for video applications |
US6900800B2 (en) * | 2001-02-27 | 2005-05-31 | David Robert Baldwin | Tile relative origin for plane equations |
US7081903B2 (en) * | 2001-12-12 | 2006-07-25 | Hewlett-Packard Development Company, L.P. | Efficient movement of fragment stamp |
KR100487461B1 (ko) * | 2002-07-31 | 2005-05-03 | 학교법인연세대학교 | 타일링 트래버설 방식의 주사변환 유닛 |
US7800631B2 (en) * | 2003-03-18 | 2010-09-21 | Qualcomm Incorporated | Triangle rendering using direct evaluation |
US20060204616A1 (en) * | 2003-04-15 | 2006-09-14 | Novozymes A/S | Tea production process |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8872833B2 (en) * | 2003-09-15 | 2014-10-28 | Nvidia Corporation | Integrated circuit configuration system and method |
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 |
US7551174B2 (en) * | 2003-12-23 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for triangle rasterization with clipping and wire-frame mode support |
US7139997B1 (en) * | 2004-05-11 | 2006-11-21 | Altera Corporation | Method and system for checking operation of a mask generation algorithm |
FR2865563B1 (fr) * | 2004-06-17 | 2006-03-17 | Raphael Lemoine | Procede et dispositif de remplissage d'une forme geometrique |
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 |
US7555163B2 (en) * | 2004-12-16 | 2009-06-30 | Sony Corporation | Systems and methods for representing signed distance functions |
US7362325B2 (en) * | 2004-12-21 | 2008-04-22 | Qualcomm Incorporated | 2D/3D line rendering using 3D rasterization algorithms |
US20060235610A1 (en) * | 2005-04-14 | 2006-10-19 | Honeywell International Inc. | Map-based trajectory generation |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
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 |
JP4621617B2 (ja) * | 2006-03-28 | 2011-01-26 | 株式会社東芝 | 図形描画装置、図形描画方法、及びプログラム |
US8928676B2 (en) * | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
KR100762811B1 (ko) | 2006-07-20 | 2007-10-02 | 삼성전자주식회사 | 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템 |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8237738B1 (en) | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8139058B2 (en) * | 2006-11-03 | 2012-03-20 | Vivante Corporation | Hierarchical tile-based rasterization algorithm |
US8482567B1 (en) * | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US8724483B2 (en) * | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) * | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
KR100954638B1 (ko) * | 2008-04-03 | 2010-04-27 | 재단법인서울대학교산학협력재단 | 벡터 그래픽스 래스터라이제이션 방법 |
US8681861B2 (en) * | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) * | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
JP5151946B2 (ja) * | 2008-12-09 | 2013-02-27 | 富士通株式会社 | 描画装置 |
US20110063306A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | CO-PROCESSING TECHNIQUES ON HETEROGENEOUS GPUs INCLUDING IDENTIFYING ONE GPU AS A NON-GRAPHICS DEVICE |
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 |
US8378319B2 (en) * | 2010-03-22 | 2013-02-19 | Taiwan Semiconductor Manufacturing Company, Ltd. | System and method for generating direct-write pattern |
JP5273087B2 (ja) * | 2010-04-14 | 2013-08-28 | 株式会社Jvcケンウッド | 映像処理装置および映像処理方法 |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
CN102486870B (zh) * | 2010-12-01 | 2014-02-12 | 财团法人资讯工业策进会 | 绘图系统及其像素更新方法 |
US8860742B2 (en) | 2011-05-02 | 2014-10-14 | Nvidia Corporation | Coverage caching |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
US9501859B2 (en) | 2013-07-19 | 2016-11-22 | Adobe Systems Incorporated | Triangle rasterization |
US9832388B2 (en) | 2014-08-04 | 2017-11-28 | Nvidia Corporation | Deinterleaving interleaved high dynamic range image by using YUV interpolation |
US10410081B2 (en) * | 2014-12-23 | 2019-09-10 | Intel Corporation | Method and apparatus for a high throughput rasterizer |
CN109346028B (zh) * | 2018-11-14 | 2021-03-23 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
US10692271B1 (en) * | 2018-12-13 | 2020-06-23 | Advanced Micro Devices, Inc. | Robust ray-triangle intersection |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4962468A (en) * | 1987-12-09 | 1990-10-09 | International Business Machines Corporation | System and method for utilizing fast polygon fill routines in a graphics display system |
JPH0760465B2 (ja) * | 1989-10-23 | 1995-06-28 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 凹ポリゴン描出方法及びプロセツサ |
US5187658A (en) * | 1990-01-17 | 1993-02-16 | General Electric Company | System and method for segmenting internal structures contained within the interior region of a solid object |
-
1992
- 1992-10-30 US US07/968,901 patent/US5446836A/en not_active Expired - Lifetime
-
1993
- 1993-10-12 WO PCT/US1993/009754 patent/WO1994010647A1/en active IP Right Grant
- 1993-10-12 JP JP51109794A patent/JP3356779B2/ja not_active Expired - Fee Related
- 1993-10-12 DE DE69312505T patent/DE69312505T2/de not_active Expired - Lifetime
- 1993-10-12 EP EP93923379A patent/EP0667018B1/en not_active Expired - Lifetime
- 1993-10-12 KR KR1019950701768A patent/KR950704750A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US5446836A (en) | 1995-08-29 |
DE69312505T2 (de) | 1997-11-06 |
EP0667018B1 (en) | 1997-07-23 |
JPH08502845A (ja) | 1996-03-26 |
WO1994010647A1 (en) | 1994-05-11 |
EP0667018A1 (en) | 1995-08-16 |
KR950704750A (ko) | 1995-11-20 |
DE69312505D1 (de) | 1997-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3356779B2 (ja) | ポリゴンのラスタ化 | |
JP4366387B2 (ja) | 画像処理装置及び方法 | |
US6828985B1 (en) | Fast rendering techniques for rasterised graphic object based images | |
US7239319B2 (en) | Rendering outline fonts | |
JP3277280B2 (ja) | エイリアシング除去多角形を描出する方法及び装置 | |
US4888712A (en) | Guardband clipping method and apparatus for 3-D graphics display system | |
US6906716B2 (en) | Integrated tessellator in a graphics processing unit | |
US7292255B2 (en) | Image data acquisition optimisation | |
US5877773A (en) | Multi-pass clipping in a geometry accelerator | |
US6359619B1 (en) | Method and apparatus for multi-phase rendering | |
JPH04287292A (ja) | トリミングされたパラメトリック面のレンダリング方法及び装置 | |
US5428716A (en) | Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers | |
US5079719A (en) | Method and apparatus for clipping polygons | |
US7081903B2 (en) | Efficient movement of fragment stamp | |
JP3029878B2 (ja) | 画像を表す複数の多角形を処理する装置及び方法 | |
US5926183A (en) | Efficient rendering utilizing user defined rooms and windows | |
KR20180037839A (ko) | 그래픽스 프로세싱 장치 및 인스트럭션의 실행 방법 | |
EP0600204A2 (en) | Method and apparatus for rendering primitives with multiple processors | |
US6972760B2 (en) | Area and span based Z-buffer | |
AU744091B2 (en) | Processing graphic objects for fast rasterised rendering | |
JP2667949B2 (ja) | ピック事象の処理方法及び処理装置 | |
KR100269118B1 (ko) | 사각형을이용한래스터화방법 | |
Hermosilla et al. | NPR effects using the geometry shader | |
AU743218B2 (en) | Fast renering techniques for rasterised graphic object based images | |
KR20020059138A (ko) | 보간되지 않은 볼륨 데이터의 실시간 렌더링 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081004 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091004 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101004 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101004 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111004 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121004 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121004 Year of fee payment: 10 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121004 Year of fee payment: 10 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131004 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |