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
Application number
JP51109794A
Other languages
English (en)
Other versions
JPH08502845A (ja
Inventor
デレク ジェイ レンツ
デビッド アール コズモル
グレン シー プール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JPH08502845A publication Critical patent/JPH08502845A/ja
Application granted granted Critical
Publication of JP3356779B2 publication Critical patent/JP3356779B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling 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

【発明の詳細な説明】 発明の背景 1. 産業上の利用分野 本発明は、一般的にはコンピュータ・グラフィックス
に関し、より具体的にはポリゴンをラスタ化するために
どの画素(pixel)を三角形の部分として表示するかを
確定するためのシステム並びに方法に関する。
2. 関連技術 コンピュータ・グラフィックス・システムではラスタ
・ディスプレーが普通に使われている。これらのディス
プレーは、グラフィックス画像を、ディスプレー・バッ
ファに格納されている各画素を表すデータを有する画素
もしくは「ピクセル」(PELとも呼ばれる)のマトリッ
クスとして格納する。このデータは画素の輝度及び色と
いった表示画面上の各画素の属性を指定する。画像全体
は、ディスプレー・バッファから読み出され、画素デー
タの水平の行もしくは「スキャン・ライン」を順次走査
し、またこのデータを使って1個以上の電子ビーム(も
ちろんLCDなど他のディスプレー技術を用いることがで
きる)を制御することによって、表示画面上に描かれ
る。ディスプレー・バッファから画素データを一行ずつ
走査する、この処理はリフレッシュ・サイクル毎に繰り
返される。
ラスタ表示システムでは、より複雑な画像を描くため
の基本のビルディング・ブロック又は「プリミティブ」
として普通ポリゴンが使われる。三角形は最も単純なポ
リゴンで、且つより複雑なポリゴンは常に三角形の集合
として表すことができるから、三角形がポリゴン作図シ
ステム用の一般的な基本プリミティブである。画面上で
の三角形や他のジオメトリック・プリミティブ作図処理
は「ラスタ化(rasterization)」として知られる。ポ
リゴンのラスタ化は、2次元及び3次元の両グラフィッ
クス・システムにとって基本的な問題である。三角形の
ラスタ化に適用されるほとんどの技法は、任意の数の辺
を有する多面体のポリゴン用に汎用化することができ
る。
ラスタ化の重要な問題として、どの画素がある与えら
れた三角形内に入るのかを確定することがある。ラスタ
化のシステムは普通、画素から画素に進み、各画素を三
角形の部分に「表示する」(即ち、フレーム・バッファ
又は画素マップの中に描画する)か否かを確定する。次
に、これによって各画素を表すディスプレー・バッファ
のデータの設定方法が決まる。三角形内の全ての画素が
カバーされるような方法で画素から画素に進むように、
様々なトラバーサル・アルゴリズムが開発されてきてい
る。
ラスタ化のシステムでは三角形が3つのエッジ関数
(three edge−function)の集合として表されることが
ある。エッジ関数は直線を表す一次方程式で、2次元の
平面を再分割するために使われる。エッジ関数は平面内
の各点が3つの領域の1つに入るように区分する。つま
り、線の「左」側の領域、線の「右」側の領域、又は線
それ自身を表す領域である。以下に説明するタイプのエ
ッジ関数は、線の「左」側の点は正の値を、「右」側の
点は負の値を、そしてぴったり線上に位置する点はゼロ
の値を有する(第1図を参照)という特性を有してい
る。ラスタ化システムに当てはめると、2次元の平面は
グラフィックス・スクリーンによって表され、点は個々
の画素によって表され、さらにエッジ関数でグラフィッ
クス・スクリーンは分割される。
三角形は3つのエッジを結合して作られ、その各々は
エッジ関数で指定される。4つ以上のエッジの論理結合
を用いることによってより複雑なポリゴンを定義するこ
とが可能である。三角形のラスタ化にはどの画素を表示
するかを確定することが係わってくるため、普通いずれ
かのエッジ上にぴったり位置する画素にタイ・ブレーカ
規則を適用して、画素が三角形の内側にあるか又は外側
にあるかを確定する。
第2図に示すように、各画素にはエッジ変数の集合
(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の記事の
要点を転載する。
第3図に示すように、(X,Y)と(X+dX,Y+dY)の
2点によって定義されているベクトルと、両点を通る線
を考察してみよう。先に述べたように、このベクトルと
線は、2次元の空間を3つの領域、つまり、線の「左」
側に位置する全ての点、「右」側に位置する全ての点
と、ぴったり線上に位置する全ての点、に分けるために
使われる。
エッジf(x,y)は次のように定義される。
f(x,y)=(x−X)dY−(y−Y)dX この関数の点(x,y)の値は、(X,Y)と(X+dX,Y+
dY)で定義するエッジに対するその点の相対的な位置で
決まるという有益な特性を有している。
(x,y)が「右」側にある場合、f(x,y)>0 (x,y)がぴったり線上にある場合、f(x,y)=0 (x,y)が「左」側にある場合、f(x,y)<0 これが真であることをみるには、当業者は、式f(x,
y)が、(X,Y)から(X+dX,Y+dY)へのベクトルと
(X,Y)から(x,y)へのベクトルの間の外積の大きさを
表す式と同じになることに気がつけば十分であろう。外
積のよく知られている特性によって、ベクトルが同一直
線上にある場合大きさはゼロで、ベクトルが一方から他
方に横切ると符号が変化する。
単純な加算で増分的に計算できるため、既存のラスタ
化システムでは普通この関数が用いられる。
f(x+1,y)=f(x,y)+dY f(x,y+1)=f(x,y)+dX エッジ関数は、IBM Systems Journal Vol.4 No.1(19
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)と異なる。いずれにしても、両アルゴリズム
が機能する理由は基本的に同じである。
f(x,y)のこの同じ特性は、VLSI Design(第3四半
期)Vol.20 No.28(1981年)に掲載のFuchs他による「P
IXEL−PLANES」グラフィックス・システムに記述されて
いる。そのシステムで、この関数はフレーム・バッファ
内の全ての画素に対して並列でツリー構造の乗算器によ
って計算される。
様々に異なるトラバーサル・アルゴリズムが現在、レ
ンダリング処理の様々なラスタ化システムによって使わ
れている。三角形内の画素全てを確実にカバーする限り
どんなアルゴリズムを用いてもよい。第4図にトラバー
サル・アルゴリズムの2つの簡単なインプリメンテーシ
ョンを示す。第4(a)図に示すように、方形の境界を
トラバースすることは恐らく最も単純な戦略であるが、
普通最も効率的であるとはいえない。第4(b)図に示
した、よりスマートなアルゴリズムは三角形のエッジを
「通り」すぎると、次のトラバーサル・ラインに進むも
のである。よりスマートなアルゴリズムで一つ面倒なこ
とは、次のラインに進む時、それが三角形の内側の点に
進む場合があることである。その場合、次のスキャン・
ラインが開始される前に、アルゴリズムはエッジの外側
を探さなければならない。この問題の一例を表すのが、
第5図の三角形の右上の隅に示されている。
さらに一層スマートなアルゴリズムの実現を第6図に
示す。即ち開始点から下に進み、中心線から外に向か
う。このアルゴリズムが単純なアルゴリズムより優れて
いる点は、エッジを探す必要がなく、さらに折り返さな
くてよいところである。補間回路は中心線で再開始され
なければならないから、トレードオフは、外側の点を走
査している間、中心線用の補間回路の状態を保存してな
ければならないことである。図面の下の部分を見ればわ
かるように、三角形の外側に出てしまったら、「中心」
線が移動(shift over)する。
三角形内の画素をトラバースするには数多くの異なる
方法がある。各方法の効率は、表示対象となる特定の三
角形いかんによって異なる。多くのシステムでは、メモ
リ内の画素を長方形のブロック状にして編成している。
こうしたシステムの中には、CPUがデータや命令をキャ
ッシュするのと同じように、高速メモリのこれらのブロ
ックをキャッシュする場合がある。適切なトラバーサル
・アルゴリズムと共に用いると、この編成はメモリ・ア
クセスを最少限に抑えることによって性能を向上させる
ことができる。
ハードウエアの使用量や三角形内の画素をトラバース
する方法いかんに係わらず、上述の画素単位の方法を用
いる場合、画素毎に少なくとも3つの加算演算が行なわ
れなければならない。これらの3つの加算は、上述のよ
うに、隣接する画素の個々の値を確定するために、エッ
ジ変数e0、e1及びe2の値に加算されなければならない3
つの増分値に対応する。従って、現在のタスタ化の技法
では、画素が三角形内に入るか否かを確定するのに必要
な画素当たりの計算数によって効率が限定されてしま
う。この効率が限定されるということは、グラフィック
ス表示システムが遅くなるということである。画素当た
り必要とする計算数を減らす、三角形を表示するための
方法がそのために求められるのである。
発明の概要 本発明はポリゴンのラスタ化のためのシステム並びに
方法を提供するものである。ポリゴンの各エッジ(例え
ば、三角形)は、各画素をポリゴンの平面内に区分けす
る一次エッジ関数で表される。具体的には、正の値を有
する画素はエッジの片側にあり、負の値を有する画素は
その反対側にある。ポリゴンの平面内にある各画素は、
その画素とポリゴンの個々のエッジとの間の符号付き水
平距離を表すエッジ変数集合を有している。画素は、エ
ッジ関数との関連で生成されるエッジ変数の値に基づい
て表示される。
本発明によってエッジ関数を画素の線形スパンに適用
することができるようになる。先ず初めに、三角形に付
随した3個のエッジ関数の数値を求めることによって、
その三角形内の任意の画素に対するエッジ関数集合の値
を確定する。どの画素を表示するかを確定するために、
本発明ではこれら3個の変数の値に基づいてWビットの
表示マスクを生成する。本発明によって、スパン内の残
りの画素に対してさらに計算をしなくても、これらの値
を画素のスパンに適用することができるようになる。
図面の簡単な説明 本発明の上述の、さらに他の利点については、添付の
図面と共に、以下に述べる説明を参照することにより、
よりよく理解することができるであろう。
第1図は、平面内の各点が入る3つの領域の区分けを
示す。
第2図は、エッジ変数集合の、ある特定の画素との関
連を示す。
第3図は、2次元空間を3つの領域に分割するために
用いられるエッジ関数を表すベクトル及び直線をグラフ
に表したものである。
第4(a)図及び第4(b)図は、任意の三角形内の
画素をトラバースする2つの単純なアルゴリズムを示
す。
第5図は、第4(b)図に示す問題の解決法を表す。
第6図に示すのは、任意の三角形内の画素をトラバー
スするための(第4図に示したものと比較して)高性能
なアルゴリズムである。
第7図に示すのは、本発明において用いられるスキャ
ン・ハードウエアのブロック図である。
第8図に示すのは、3つのビット・フィールドに分割
されたエッジ変数である。
第9図に、表示されるべき三角形の例を示す。
第10図に示すのは、左エッジに対するマスク生成例で
ある。
第11a図及び11b図は、ポリゴンのラスタ化方法のフロ
ーチャートを示す。
第12図は、ウィンドウの外にはみ出した三角形の例を
示す。
図面においては、同じ参照番号は全く同一か又は機能
的に類似した素子を表す。さらに、参照番号の左端の数
字は、その参照番号が最初に登場した図面を示す。
発明の詳細な説明 本発明はポリゴンのラスタ化のためのシステム並びに
方法を提供するものである。本発明では、従来の画素毎
の方法の比べポリゴン内に画素を表示するための計算が
少なくてすむ。ポリゴン(例えば、三角形)の各エッジ
は、エッジの片側が正の値でその反対側が負の値を有す
る、一次エッジ関数で表される。本発明によって、スパ
ンの画素の一つに対してエッジ関数の加算演算を行なう
だけで、エッジ関数を画素の一次スパンに適用できるよ
うになる。本発明においてラスタ化のために用いられる
初期計算値(即ち、単一の線形スパンを使うラスタ化)
は画素単位のラスタ化に必要な値に類似している。それ
らは以下の通りである: ・トラバーサル・アルゴリズムの現在のスキャン位置
(即ち、事前に決められた画素)は座標(x,y)で表さ
れる。
・固定少数点2の補数整数形で表された、エッジ変数集
合e0、e1、e2は3個の個々のエッジ関数f0、f1、f2に対
応する(例えば、e0=f0(y)−x)。各エッジ変数は
整数フィールド(符号ビットを含む)と小数フィールド
から成り立つ。
・エッジが三角形の「右エッジ」又は「左エッジ」とし
て取り扱われるべきかを指定する各エッジに対する1ビ
ットのエッジ・フラグ。セット・フラグは右エッジを指
定する。エッジの右側に入り、従って、それに対応する
エッジ変数値が正の画素は三角形内にないということで
ある。右エッジに対して負の値を有する画素は三角形内
に入ることがある。クリアされたフラグは左エッジを示
し、且つ正の値を有する画素だけが三角形内に入り得る
ことを示す。従って、フラグは、任意のエッジに対する
値をどのように解釈すべきかを定める。エッジ変数がゼ
ロの値を有する場合、三角形の内側ととらえるか又は外
側ととらえるかは自由である(但し、一貫性のある決定
がなされなければならない)。
一つのフラグだけでエッジ変数の解釈ができるように、
エッジ変数を編成することが可能である。この場合、セ
ット・フラグは三角形が右寄りであることを示し、e1
左エッジ、e0とe2が右エッジであることを意味する。フ
ラグがセットされていなければ、三角形は左寄りで、エ
ッジは逆になる。全ての三角形がこの2つのケースのど
ちらか一つに当てはまる。
・各エッジ変数に対する「ステップ値」の集合(Delef
t、Deright、etc):ステップ値は、隣接する画素の値
を確定するために、エッジ変数の値に加算されたり又は
除算されたりする。各エッジ変数は、トラバーサルがス
キャンしていくどの方向に対しても増分値を有する。そ
れらも固定小数点2の補数整数値である。
本発明はW画素幅の画素スパンで機能する。Wは2の
何らかのべき乗であればよい。普通、メモリのバンド幅
の使用を減らすことになるけれども、スパンの次元は必
ずしもメモリ・システムがアクセスするデータ・ブロッ
クに対応している必要はない。
第7図において、本発明で用いるスキャン・ハードウ
エアは、(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つのビット・フィールドは、対応す
る画素がエッジの三角形側に入るか否かを確定するため
に使用される。その上、これら同じ3つのフィールド
は、水平スパンの他のW−1画素の各々がエッジの三角
形側に入るかどうか確定するために使用される。勿論、
エッジ変数値は左エッジと右エッジでは異なる解釈がな
されるが、一般的な考え方としては両方同じである。表
1及び2に左エッジ及び右エッジに対して生成されたマ
スクを示す。この表は2のべき乗のスパン・サイズなら
どれに対しても簡単に一般法則化できるが、この例にお
いてはスパン・サイズ(w=4)が使われている。この
2つの表においては、三角形のエッジ上の画素は左エッ
ジに対しては三角形の内側に入れ、右エッジに対しては
三角形の外側に来ると仮定している。
これらの表の生成については第9図及び第10図におい
て説明する。第9図に示すのは、表示されるべき三角形
を含めた画素グリッドの一例である。頂点が(5,2)、
(2,15)、(14,11)の3点である。これらの3つの頂
点は、図においてe0、e1、e2で表されたエッジを形成す
る。e0及びe2の2つのエッジが三角形の右側の境界を形
成し、1つのエッジだけが左側の境界を形成するから、
この特定の例は右寄りの三角形である。左寄りの三角形
は2つの左エッジと1つの右エッジを有する。画素グリ
ッドは4ピクセル幅のスパンに分割される。しかし、こ
こでも、2のべき乗であればどんな幅のスパンでも、以
下に説明するピクセル・スパン・メカニズムに用いるこ
とができる。
表1及び2は画素とエッジの間の水平距離としてのエ
ッジ変数の定義に基づいている。第10図は左エッジに対
するエッジ変数の様々な画素位置における異なる値を示
す。左エッジについて、負の値は、現時点の画素とその
右側の全ての画素がエッジの境界内(スパンa)にある
ことを示す。スパンaと関連するエッジ変数は−2.1
(2値1...1110)に等しい。負の値を有する全ての左エ
ッジ変数に対するマスクは1111である。言い換えれば、
このマスクは、スパン内の全ての画素が表示されるべき
ことを示す。
左エッジが負でない場合、2つのケースが考えられ
る。第1のケースは、エッジ変数の値がw未満(スパン
b)の時である。この場合、スパン・ビットは全てゼロ
になり、サブ・スパン・ビットはマスクのどのビットが
セットされているか確定するために用いられる。サブ・
スパン・ビットは00、01、10、又は11のいずれかにな
る。マスクには4個の画素が表されているから、4つの
可能性がある。各可能性は表示されなければならない画
素のいろいろ異なる集合を表している。示した例におい
て、bに対するエッジ変数は1.4(バイナリ0...0001)
になる。サブ・スパン位置ビットは01であり、従って、
マスクは0011である。言い換えれば、このマスクはマス
クの最も右端の2個の画素が表示されるという事実を表
している。
エッジ変数が負でない値を有する第2のケースは、そ
の値がw以下(スパンc)になる時である。この場合、
スパン位置ビットはゼロでなくなる。スパン内の画素は
全てエッジの左側にあるから、結果としてのマスクは、
従って、マスクに表されている画素は全て表示されるべ
きでないことを示しているはずである。例において、ス
パンcに対するエッジ変数は5.1(バイナリ0...0101)
になる。その結果、マスクの全ビットがゼロ(即ち、00
00)になる。右エッジに対するマスク生成テーブルは同
じように確定することができる。
第11図に、画素スパン技法による動作のフローチャー
トを示す。表示の対象となる三角形があると仮定して、
ステップ1110に示すように、スタートの画素を選択す
る。ステップ1115に示すように、3つのエッジ変数が選
択された画素に対応して生成される。
画素が表示されるべきか確定するためには、3つのエ
ッジのうち2つだけが使用されなければならない。つま
り、右のエッジ1つと左のエッジ1つである。例えば、
ここで対象となっている三角形が2つの右エッジを有す
る(つまり、右寄りの三角形)場合、右の境界として使
われるエッジはyの値によって異なる。yが右の2つの
エッジが接する頂点より上にある場合は、2つのエッジ
のうち上の方の右エッジが使われる。それ以外の場合
は、下の方の右エッジが使われる。ステップ1120に示す
ように、レンダリング・マスクを生成するために必要な
2つのエッジが選択される。
ステップの1125から1170までは表1及び2を使用する
ことを表している。これらのステップは使用しているス
パンの大きさによって異なる。ステップ1125に示すよう
に、右エッジに対するエッジ変数の符号が調べられる。
ステップ1130に示すように、それが負(そのスパンは三
角形の外にあるを示す)の場合、マスクは0000にセット
される。次に、ステップ1135に示すように、スパン位置
ビットが調べられる。ステップ1140に示すように、スパ
ン位置ビットがゼロでない(そのスパンは三角形内にあ
ることを示す)場合、マスクは1111にセットされる。そ
れ以外の場合は、ステップ1145に示すように、サブ・ス
パン・ビットが調べられ、適正マスクがこれらのビット
の値に基づいて選択される。
ステップの1150から1170までは左エッジに対するマス
ク生成のステップを表す。このステップは右エッジにつ
いて先に説明したステップと同じである。
ステップ1175に示すように、どの画素を表示するかを
確定する結果としてのマスクは、単に、2つのエッジ
(つまり、右エッジと左エッジ)に対して作成されたマ
スクの論理積である。ステップ1185に示すように、レン
ダリング画素マスクはレンダリング・ユニット730に引
き渡され、そこで、表示の対象となる各画素に対する適
正な制御信号がメモリ・システムに送られる。
ステップ1185と並行して、増分値がエッジ変数に加算
され、ステップ1120で次の画素に対してプロシジャが開
始される。その時点で次の画素は、使用されている特定
のトラバーサル・アルゴリズムの経路内に入っているス
パン以後最初の画素である。
三角形のトラバーサルは、先に述べた従来のラスタ化
の技法に類似した多くの方法で行なうことができる。水
平方向にトラバースする場合、データパスは(x±w,
y)にある画素に対するエッジ値を計算しなければなら
ない。この計算はnビットだけ左にシフトした単一の画
素に対する水平ステップ値を使って行なうことができ
る。その場合、w=2nである。この計算にはシフタのハ
ードウエアは要らず、シフト済みの値か未だシフトして
いない値のいずれかを選択するマルチプレクサが必要な
だけである。
往々にして、表示の対象となる三角形が水平のエッジ
を有することがある。こうした場合、本発明では、画素
スパン内のどの画素を表示すべきか確定するために、先
に概要を説明したプロシジャと共に、残る2つのエッジ
(水平のエッジではない)を使用する。言い換えれば、
画素が表示されるべきか確定するために2つのエッジだ
けが使われ、さらに右エッジ、左エッジともに1つしか
ないから、右または左の2つのエッジが交わる頂点より
上方にあるか下方にあるか確定するためにyの値を調べ
る必要はない。水平エッジを有する三角形の場合、頂点
は最初のスパン(例えば、水平エッジが三角形のトップ
・エッジである時)又は最後のスパン(例えば、水平エ
ッジが三角形のボトム・エッジである時)のいずれかに
ある。従って、残る2つのエッジだけが画素マスクの生
成に必要である。
本発明は従来の三角形のラスタ化技法により優れた、
いくつかの利点を提供する。先ず、画素当たりの計算数
が従来の技法より少なくてすむ。トラバース中にエッジ
変数を維持するために必要な算術演算数は1画素スパン
につき1セットである。これは各画素に対して余分の加
算器/除算器のハードウエアを使わずに行なえる。その
二は、本発明はパイプライン式の演算になっていること
である。整数データパス710、マスク生成ユニット720、
そしてレンダリング・ユニット730はパイプライン式に
構成することによって独立に動作させることができる。
これにより余分のハードウエアを使わずに並列処理が可
能になる。第三に、本発明は効率的なメモリ・アーキテ
クチャと一貫性を保っている。水平スパンの画素をレン
ダリングすることによって、ブロック編成の画素メモリ
と互換性のあるトラバーサル・アルゴリズムを容易に実
現することができるようになる。
以下に、グラフィックス・ハードウエア・システムに
おける三角形のラスタ化のための2つのメカニズムを説
明する。単一画素メカニズムと呼ばれる、第一のメカニ
ズムは、従来から使われている技法の一つである。これ
についてここで説明するのは、そのすぐ後に説明する本
発明による性能が向上した動作とその相違点がはっきり
わかるようにするためである。その二は、画素スパン方
式と呼ばれるものである。画素スパン技法では1画素に
つき行なう演算がより少なくて、三角形の表示が可能で
ある。
単一画素方式 三角形の表示には、三角形内の画素のスーパ集合をト
ラバースするルーチンを利用し、表示されるべきか確定
するために画素毎にテストを行なう。トラバーサルの順
序を決めるための方法についてはここでは説明しない
が、その代わり例を述べる時に、トラバーサル・アルゴ
リズムに関する単純な仮定をたてる。画素表示をするか
否かの決定は通常、画素毎に更新されるエッジ変数の集
合に基づいている。エッジ変数はe0、e1、e2で表され
る。この説明において、エッジ変数は、スキャンにおけ
る現時点での画素位置から三角形のエッジによって形成
される直線までの水平距離として定義されている。エッ
ジ変数の定義方法は様々であるが、全てが概ねこの一般
的なコンセプトから派生したものである。
あるyに対してエッジのx位置に対する関数とすれ
ば、画素(x,y)におけるエッジ変数eの値はe=f
(y)−xと定義される。f(y)はそのエッジに対す
るエッジ関数と呼ばれ、基本的な代数を用いて三角形の
座標から容易に求められる。ここで述べる例において、
3つのエッジに対するエッジ関数を次のようにする。
f0(y)=y+3 f1(y)=−0.231y+5.46 f2(y)=3y+47 エッジ変数に対する我々の定義を使うと、その値に関
して以下の解釈があてはまる。即ち、エッジ変数が正な
らば、画素(x,y)はエッジの左側にあり、負ならばエ
ッジの右になり、そしてゼロならばエッジ上にある。画
素が三角形の境界内にあるかどうかを確定するために、
エッジ変数の2つ、即ち、左の境界を定義するエッジ変
数と右の境界を定義するエッジ変数を使用する。画素に
関連するエッジ変数が負でなければ、画素は三角形の境
界内にある。与えられた画素に対するエッジ変数がゼロ
の時、その画素がエッジの境界内にあるとみなすか否か
は自由である。しかしながら、エッジ変数の値がゼロの
ケースは左エッジと右エッジに対してはそれぞれに異な
った取り扱いがなされる(例えば、右エッジでは内側、
左エッジでは外側)とすれば、それは隣接する三角形を
表示するのに有益である。
例においては、右寄りの三角形のため、右の境界を定
義するエッジが2つある。ここで取り上げている三角形
は右寄りの三角形であり、それゆえ2つの右エッジを有
している。yがその2つのエッジが接する頂点より上に
あるから、2つのうち上の方が使われる。
トラバーサル・アルゴリズムは画素のどれかからスキ
ャンを開始し、上述の関数に基づいてエッジ変数の値を
確定する。例を挙げれば、単一画素走査アルゴリズムは
開始点として画素(5,2)、つまり、トップの頂点を選
ぶ。従って、エッジ変数の初期値は次のようになる。
e0=0 e1=0 e2=36 スキャンの垂直位置は(14,11)、つまり、2つの右
エッジが合う点より上にあるから、e0が最初の画素に対
して考慮される右のエッジ変数である。変数e1は唯一の
左エッジ変数であるがために、画素のテスト全てに使わ
れる。最初の画素については、左のエッジ変数が負でな
いから、この画素は表示されない。
単一画素方式において、トラバーサル・アルゴリズム
は、別の画素に行き、そこでその画素のエッジ変数値を
計算して、それが三角形の境界内にあるかどうか調べる
ためのテストを行なう。トラバーサル中画素から画素に
移動することは「ステッピング」と呼ばれる。トラバー
サル中の次の画素は普通、その直前の画素に隣接してお
り、そのためにエッジ変数の評価が簡単になる。エッジ
関数は一次であるから、隣接する画素のエッジ変数値を
確定するということは、定数を現時点での値に加算する
ことである。これらの定数は増分値又はステップ値と呼
ばれる。エッジ変数は画素とエッジ間の水平距離と定義
されているから、水平方向のステップに対する増分値は
常に±1である。エッジ関数が先に使われている形式、
つまり、f(y)=my+cの時、垂直方向のステップに
対する増分値は±mになる。例として挙げた三角形で
は、各エッジ変数に対する増分値は次のようになる。
我々の例において、トラバーサル・アルゴリズムのス
テップ(5,3)は現時点の画素より下にある画素と仮定
する。エッジ変数の新規の値は以下のようになる。
e0=e0+Δe 0down=1 e1=e1+Δe 1down=−0.231 e2=e2+Δe 2down=66 画素(5,3)については、左エッジ変数e1は負で、右
の変数e0は負ではない。このことは、その画素が三角形
の境界内に入っており、表示されることを意味する。
トラバーサルは、画素から画素に進み、適正増分値を
エッジ変数に加算し、左右の境界の値をテストして、続
けられていく。この過程は三角形の少なくとも全ての画
素に対して行なわれなければならない。トラバースされ
た画素の総数は使用する特定のトラバーサル・アルゴリ
ズムの性能によって異なってくる。
画素スパン方式 画素スパン方式は、エッジ変数の一つの評価に基づい
て複数の画素に対してレンダリング・テストが行なえる
点を除けば、単一画素方式によく似ている。この方法で
はwビット幅の水平スパンにグループ化されている画素
に対して演算を行なう(例ではw=4を使用)。この技
法は、トラバーサル・アルゴリズムがwの単位で水平に
進む点を除いて、単一画素方式と同じようにエッジ変数
並びに増分値を解釈するため、左右の増分値は±1では
なく、±wになる。
どの画素が表示されるべきか確定する際、スパン内の
どの画素が表示されるかを示すためにマスク生成ユニッ
ト720が使用される。この情報はwビットのマスクで表
される。つまり、1は画素が表示されるべきことを示
し、0(ゼロ)は表示されるべきでないことを示す。マ
スクは(w,y)から(x+w−1,y)までの画素を表す。
上述のように、レンダリング・マスクの計算は現時点の
画素に適用される左右のエッジに対して生成されたマス
クの論理積の結果である。
マスク生成は、先の表1及び2に示したエッジ変数の
バイナリ表現である。その表で、サブ・スパン位置ビッ
トは、エッジ変数の整数部分のバイナリ表現による最下
位nビットである。この場合、w=2nである。スパン位
置ビットは符号ビットを除いた残りのビットである。符
号は、2の補数式で定義される最上位ビットである。
画素スパン方式に対してトラバーサル・アルゴリズム
は、単一画素方式を用いる時と基本的に同じように動作
する。相違点は2つあり、それは画素スパンのトラバー
サル・アルゴリズムはw画素の単位で水平に移動するこ
とと、開始のx位置がwの倍数でなければならないこと
である。このことを念頭において、第9図に示した三角
形の例を再び考察する。4はwの倍数だから、トラバー
サル・アルゴリズムは(第9図にXで示したように)画
素(4,2)からスタートする。エッジ変数の値は以下の
通りである。
e0=1 e1=1 e2=37 表1及び2を使って、左のエッジ変数e0に対するマス
クは0011で、右エッジe1は1100と確定する。これら2つ
の論理積は0000であり、従って、画素は表示されない。
トラバーサル・アルゴリズムは1スパン下に降りて画
素(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内に
あるどの画素が表示されるかを示す。
最後に、より複雑なポリゴンに対応するためにハード
ウエアを汎用化することができる。複雑なポリゴンはよ
り単純なポリゴンか三角形に分けられる。複数のエッジ
集合を使ってポリゴンをラスタ化することができる。具
体的には、ポリゴンの各エッジに対してマスクが追加で
生成され、その生成されたマスクを合わせて一つの論理
積がとられる。別の方法としては、複雑なポリゴンを複
数の三角形に分けてポリゴン・ラスタ化のハードウエア
を通らないように迂回するやり方がある。
本発明をその好適な実施例において示し説明してきた
が、本発明の精神並びに範囲から逸脱することなく、形
状並びに詳細において様々な変更が可能なことが当業者
には理解されるであろう。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 プール グレン シー アメリカ合衆国 カリフォルニア州 94555 フリーモント,ウェブフット ループ 34039 (56)参考文献 特開 平5−120446(JP,A) 欧州特許出願公開425189(EP,A 2) (58)調査した分野(Int.Cl.7,DB名) G06T 11/20 110

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】ポリゴンをラスタ化するためにどの画素を
    三角形の一部として表示するかを決定するコンピュータ
    ・ベースの方法で、その方法が、 (1)三角形の3つのエッジに対して、画素スパン内の
    第1の画素が三角形の内側に入るか外側に出るかを個々
    に示す3つのエッジ変数を生成するステップと、 (2)前記エッジ変数の値に基づき、画素スパン内の第
    1画素を前記の第1画素とする、画素のスパンを表す3
    つのマスクを生成するステップと、 (3)前記画素スパン内のどの画素が表示されるべきか
    を表すレンダ・マスクを作るために前記の3つのマスク
    を利用するステップと、 を含むことを特徴とするコンピュータ・ベースの方法。
  2. 【請求項2】前記画素スパンの後に位置する次の画素ま
    でその三角形をトラバースするステップと、前記エッジ
    変数に1つの増分値を加算するステップと、上記のステ
    ップ(2)及び(3)を繰り返すステップとをさらに含
    むことを特徴とする請求項1記載のコンピュータ・ベー
    スの方法。
  3. 【請求項3】Wビットの文字列で構成される前記レンダ
    ・マスクが、(x,y)位置の画素に対するレンダ・マス
    ク・ビットと、横の行における次のW−1の画素に対す
    るレンダ・マスク・ビットとを有することを特徴とする
    請求項1記載のコンピュータ・ベースの方法。
  4. 【請求項4】前記エッジ変数の各々が符号ビット、スパ
    ン位置ビット、及びサブ・スパン位置ビツトを包含し、
    さらに上記(2)の生成のステップが、前記符号ビット
    が負ならば、前記スパン内の全ての画素が表示されるべ
    きでないことを示すマスクを提供するステップを含むこ
    とを特徴とする請求項1記載のコンピュータ・ベースの
    方法。
  5. 【請求項5】前記エッジ変数の各々が符号ビット、スパ
    ン位置ビット、及びサブ・スパン位置ビットを包含し、
    さらに上記(2)の生成のステップが、前記スパン位置
    ビットが全てゼロでなければ、前記スパン内の全ての画
    素が表示されるべきことを示すマスクを提供するステッ
    プを含むことを特徴とする請求項1記載のコンピュータ
    ・ベースの方法。
  6. 【請求項6】前記画素スパンが2のべき乗であることを
    特徴とする請求項1記載のコンピュータ・ベースの方
    法。
  7. 【請求項7】ポリゴンをラスタ化するためにどの画素を
    三角形の一部として表示するかを決定するコンピュータ
    ・ベースのシステムで、そのシステムが、 (a)画素スパン内の第1画素が三角形の内側に入るの
    か外側に出るのかを個々に示す3つのエッジ変数を生成
    するよう構成されており、複数のレジスタと少なくとも
    1つ以上の加算/減算器とを有する整数データパスと、 (b)前記整数データパスから前記の3つのエッジ変数
    を受け取るように適性化され、そして画素スパン内のど
    の画素が三角形の一部として表示されるかを示すレンダ
    ・マスクを生成するようにさらに適性化されている画素
    マスク生成ユニットと、 (C)前記画素マスク生成ユニットから前記レンダ・マ
    スクを取り込み、メモリ・システムに対して各画素を表
    示するか否かのコマンドを発するレンダリング・ユニッ
    トと、 を含むことを特徴とするコンピュータ・ベース・システ
    ム。
  8. 【請求項8】前記画素マスク生成ユニットが、前記エッ
    ジ変数値に基づき画素スパンを表す3つのマスクを生成
    するマスク手段と、さらに前記画素スパン内のどの画素
    が表示されるべきかを表すレンダ・マスクを作るために
    前記の3つのマスクの論理積をとる手段とを含むことを
    特徴とする請求項7記載のコンピュータ・ベース・シス
    テム。
  9. 【請求項9】前記マスク手段が、前記エッジ変数値によ
    り異なるマスクを提供するルックアップ・テーブルを含
    むことを特徴とする請求項8記載のコンピュータ・ベー
    ス・システム。
  10. 【請求項10】前記画素スパンが前記メモリ・システム
    によってアクセスされるデータのブロックに対応するこ
    とを特徴とする請求項7記載のコンピュータ・ベース・
    システム。
  11. 【請求項11】前記エッジ変数が与えられた1画素と三
    角形のエッジの1つとの間の符号付きの水平距離を表す
    ことを特徴とする請求項7記載のコンピュータ・ベース
    ・システム。
JP51109794A 1992-10-30 1993-10-12 ポリゴンのラスタ化 Expired - Fee Related JP3356779B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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