JPH08502845A - ポリゴンのラスタ化 - Google Patents

ポリゴンのラスタ化

Info

Publication number
JPH08502845A
JPH08502845A JP6511097A JP51109794A JPH08502845A JP H08502845 A JPH08502845 A JP H08502845A JP 6511097 A JP6511097 A JP 6511097A JP 51109794 A JP51109794 A JP 51109794A JP H08502845 A JPH08502845 A JP H08502845A
Authority
JP
Japan
Prior art keywords
pixel
edge
triangle
span
mask
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.)
Granted
Application number
JP6511097A
Other languages
English (en)
Other versions
JP3356779B2 (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)

Abstract

(57)【要約】 本発明はポリゴンのラスタ化のためのシステム並びに方法を提供するものである。ポリゴン(例えば、三角形)の各エッジは、ポリゴンの面内に存在する各画素を分類する一次エッジ関数で表される。具体的には、正の値を有する画素はエッジの片側に、負ならその反対側にある。ポリゴン面内の各画素は、画素とポリゴンのそれぞれのエッジとの間の符号付きの水平距離を表すエッジ変数集合と関係するようになっている。画素は、エッジ関数により生成される画素のエッジ変数の値に基づいて表示される。本発明によりエッジ関数が画素の線形スパンに適用できるようになる。先ず最初に、三角形内の与えられた画素に対するエッジ変数集合の値を、その三角形に関する3つのエッジ関数を評価することによって、確定する。どの画素を表示するかを確定するために、本発明ではこれらのエッジ変数値に基づきWビットのレンダ・マスクを生成する。本発明により、スパン内の残りの画素に対して余分の計算をせずに、これらの値を画素のスパンに適用することができるようになる。

Description

【発明の詳細な説明】 発明の名称 ポリゴンのラスタ化 (Polygon Rasterization) 発明の背景 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)、fl(x,y)そしてf2 (x,y)の数値を求めることによって任意の三角形に対する各エッジ変数の値が決 定される。1つのエッジは2つの隣接する画素と画素の間に陥る場合があるから 、エッジ変数は小数値を有する可能性がある。従って、エッジ変数を固定少数点 2の補数整数形で表すのが都合がよい。各エッジが三角形の「左」のエッジにな るのか又は「右」のエッジになるのか分かっている場合、e0、e1、e2の符号を調べ ることによって画素が三角形内に入るか否かを確定することができる。エッジの 符号は必要に応じて逆にすることができる。 どの画素が三角形内に表示されるかを確定する際、典型的なラスタ化システ ムでは、3つのエッジ関数の集合と任意の画素位置に対するエッジ変数の値(e0 ,e1,e2)を計算し、次に増分値集合(Δeleft,Δeright,etc.)を用いて隣接 する画素のエッジ変数値を確定する。ラスタ化システムでは、三角形を横切って 、トラバーサル・アルゴリズムが画素から画素に進むに伴って、現時点の値に増 分値 を加算していく。画素の3つのエッジ変数値(及びタイ・ブレーカ規則)に従っ て三角形の境界内にある画素が表示される。 単純なハードウエアのシステムでは通常、これらの計算は各画素に対して個 別に行なわれるのに対し、より多くの算術演算装置を備えたより複雑なシステム では、複数の画素の値が同時に計算される。並列で複数の画素のエッジ変数の数 値を求めると、より高速なラスタ化が行なえるが、トラバースされる画素毎に別 々にエッジ変数を確定しなければならないため、処理が限定されることには変わ りがない。三角形をラスタ化するために使われるエッジ関数や三角形をトラバー スするための様々なアルゴリズムを詳しく調べれば、先に説明した処理をよりよ く理解することができるだろう。エッジ関数やトラバーサル・アルゴリズムを用 いることについては、Computer Graphics Vol.22 No.4(1988年)の17〜20頁に 掲載のJ.Pineda著の記事「ポリゴン・ラスタ化のための並列アルゴリズム(A Parallel Algorithm for PolygonRastcrization)」に詳しく述べられている 。同記事は参照することにより本明細書に組み込まれているものとする。本明細 書を読む人のために、以下に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+l)=f(x,y)+dX エッジ関数は、IBM Systems Journal Vol.4 No.1 (1965年)の25〜30頁に掲載のJ.Bresenham著「デジタル・プロッタのコンピュ ータ制御のためのアルゴリズム( Algorithm for Computer Control of a Digital Plotter)」に記述されているB resenhamの線描画アルゴリズムのエラー値又は「作図制御変数(DCV:draw c ontrol variable)」に関連する。違いは、Brescnhamの線描画アルゴリズムは直 線から1/2(二分の一)画素以内にある画素に対してしかDCV値を保持しな いのに対し、f(x,y)は平面上の全画素に対して定義されることである。さらに、 任意の点におけるDCV値が定数オフセットの分だけf(x,y)と異なる。いずれに しても、両アルゴリズムが機能する理由は基本的に同じである。 f(x,y)のこの同じ特性は、VLSI Design(第3四半期)Vol.20 No.28(198 1年)に掲載のFuchs他による 「PIXEL-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 つのケースのどちらか一つに当てはまる。 ・各エッジ変数に対する「ステップ値」の集合(Deleft、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のべき乗のスパン・サイズならどれに対しても簡単に一般 法則化できるが、この例においてはスパン・サイズ4(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)になる。その結 果、マスクの全ビットがゼロ(即ち、0000)になる。右エッジに対するマスク生 成テーブルは同じように確定することができる。 第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+Δ 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で、右エッジe 1は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の一部はウインドウ1210の外にはみ出し、 従って三角形のウィンドウ内に収まる部分だけが表示されなければならない。画 素スパン1230がウィンドウ1210内に入るかどうかを確定するために、ウィンドウ 1210のエッジに対して別途にマスクが生成される。第12図に示されている例にお いては、エッジ1240及び1250に対してそれぞれマスクが生成される。これらのマ スクは次に、三角形1220に対して生成されたレンダリング・マスクとの論理積が とられる。その結果できたウィンドウ・バウンドのマスクは、スパン1230内にあ るどの画素が表示されるかを示す。 最後に、より複雑なポリゴンに対応するためにハードウエアを汎用化するこ とができる。複雑なポリゴンはより単純なポリゴンか三角形に分けられる。複数 のエッジ集合を使ってポリゴンをラスタ化することができる。 具体的には、ポリゴンの各エッジに対してマスクが追加で生成され、その生成さ れたマスクを合わせて一つの論理積がとられる。別の方法としては、複雑なポリ ゴンを複数の三角形に分けてポリゴン・ラスタ化のハードウエアを通らないよう に迂回するやり方がある。 本発明をその好適な実施例において示し説明してきたが、本発明の精神並び に範囲から逸脱することなく、形状並びに詳細において様々な変更が可能なこと が当業者には理解されるであろう。
【手続補正書】特許法第184条の8 【提出日】1994年10月28日 【補正内容】 特許請求の範囲 1. ポリゴンをラスタ化するためにどの画素を三角形の一部として表示する かを決定するコンピュータ・ベースの方法で、その方法は、 (1) 三角形の3つのエッジに対して、第1の画素が三角形の内側に入 るか外側に出るかを個々に示す3つのエッジ変数を生成し、前記3つのエッジ変 数はそれぞれ、前記第1画素と三角形の3つのエッジの各々との間の符号付き距 離を表す、エッジ変数生成のステップと、 (2) 前記エッジ変数の値に基づき3つのマスクを生成し、前記マスク は画素スパンを表し、前記第1画素を前記画素スパン内の最初の画素とする、マ スク生成のステップと、 そして (3) 前記画素スパン内のどの画素が表示されるべきかを表すレンダ・ マスクを得るために前記の3つのマスクの論理積をとるステップと、 から成ることを特徴とする方法。 2. 前記画素スパンの後に位置する次の画素までその三角形をトラバースす るステップと、前記エッジ変数の各々に1つの増分値を加算するステップと、上 記のステップ(2)及び(3)を繰り返すステップとからさらに成ることを特徴とする 請求項1記載の方法。 3. Wビットの文字列で構成される前記レンダ・マスクが、(x,y)位置の画 素に対するレンダ・マスクと、横の行における次のW-1の画素に対するレンダ ・マスクとを有することを特徴とする請求項1もしくは2に記載の方法。 4. 前記エッジ変数の各々が符号ビット、スパン位置ビット、及びサブ・ス パン位置ビットを包含することを特徴とする請求項1〜3の少なくとも一つに記 載の方法。 5. 前記画素スパンにおける画素数が2のべき乗であることを特徴とする請 求項1〜4の少なくとも一つに記載の方法。 6. ポリゴンをラスタ化するためにどの画素を三角形の一部として表示する かを決定するコンピュータ・ベースのシステムで、そのシステムが、 (a) 複数のレジスタと少なくとも1つ以上の加算/減算器とを有する 整数データパス(710)で、前記整数データパスは第1画素が三角形の内側に入 るのか外側に出るのかを個々に示す3つのエッジ変数を生成するように構成され 、前記の3つのエッジ変数はそれぞれ、前記第1画素と三角形の3つのエッジの 各々との間の符号付き距離を表す、整数データパス(710)と、 (b) 前記整数データパス(710)から前記の3つのエッジ変数を受け取 るように適性化された画素マスク生成ユニット(720)で、前記画素マスク生成 ユニットは前記 の3つのエッジ変数から3つのマスクを生成するようにさらに適性化され、前記 の3つのマスクは画素スパンを表し、前記第1画素を前記画素スパンにおける最 初の画素とし、画素スパン内のどの画素が三角形の一部として表示されるかを示 すレンダ・マスクを得るために前記3つのマスクは論理積をとられる、画素マス ク生成ユニット(720)と、そして (c) 前記画素マスク生成ユニット(720)から前記レンダ・マスクを取 り込み、メモリ・システムに対して各両素を表示するか否かのコマンドを発する レンダリング・ユニット(730)と、 から成ることを特徴とするシステム。 7. 前記画素マスク生成ユニット(720)が、前記エッジ変数値に基づき3 つのマスクを生成し、前記マスクは画素スパンを表す、マスク手段と、さらに前 記画素スパン内のどの画素が表示されるべきかを表すレンダ・マスクを得るため に前記の3つのマスクの論理積をとる手段(730)とから成ることを特徴とする 請求項6記載のシステム。 8. 前記マスク手段(720)が、前記エッジ変数の値により異なるマスクを 提供するルックアップ・テーブルから成ることを特徴とする請求項7記載のシス テム。 9. 前記画素スパンが前記メモリ・システムによってアクセスされるデータ のブロックに対応することを特徴とする請求項6〜8の少なくとも一つに記載の システム。 10. 前記エッジ変数が与えられた1画素と三角形のエッジの1つとの間の符 号付きの水平距離を表すことを特徴とする請求項6〜10の少なくともーつに記 載のシステム。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 プール グレン シー アメリカ合衆国 カリフォルニア州 94555 フリーモント,ウェブフット ル ープ 34039

Claims (1)

  1. 【特許請求の範囲】 特許請求の範囲は以下の通りである。 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記載のコンピュータ・ベース ・システム。
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 1992-10-30
US07/968,901 US5446836A (en) 1992-10-30 1992-10-30 Polygon rasterization
PCT/US1993/009754 WO1994010647A1 (en) 1992-10-30 1993-10-12 Polygon rasterization

Publications (2)

Publication Number Publication Date
JPH08502845A true JPH08502845A (ja) 1996-03-26
JP3356779B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520963A (ja) * 2003-03-18 2006-09-14 クゥアルコム・インコーポレイテッド 直接推定を用いた三角形レンダリング
JP2008027418A (ja) * 2006-07-20 2008-02-07 Samsung Electronics Co Ltd 半平面エッジ関数を用いたタイルビニング方法およびシステム
JP2010140101A (ja) * 2008-12-09 2010-06-24 Fujitsu Ltd 描画装置

Families Citing this family (69)

* 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 학교법인연세대학교 타일링 트래버설 방식의 주사변환 유닛
JP2006523442A (ja) * 2003-04-15 2006-10-19 ノボザイムス アクティーゼルスカブ 茶製造方法
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8775112B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for increasing die yield
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
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
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
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
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
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
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
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
US20110063309A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation User interface for co-processing techniques on heterogeneous graphics processing units
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
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
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006520963A (ja) * 2003-03-18 2006-09-14 クゥアルコム・インコーポレイテッド 直接推定を用いた三角形レンダリング
JP2008027418A (ja) * 2006-07-20 2008-02-07 Samsung Electronics Co Ltd 半平面エッジ関数を用いたタイルビニング方法およびシステム
JP4521391B2 (ja) * 2006-07-20 2010-08-11 三星電子株式会社 半平面エッジ関数を用いたタイルビニング方法およびシステム
JP2010140101A (ja) * 2008-12-09 2010-06-24 Fujitsu Ltd 描画装置

Also Published As

Publication number Publication date
EP0667018A1 (en) 1995-08-16
EP0667018B1 (en) 1997-07-23
DE69312505T2 (de) 1997-11-06
JP3356779B2 (ja) 2002-12-16
WO1994010647A1 (en) 1994-05-11
US5446836A (en) 1995-08-29
KR950704750A (ko) 1995-11-20
DE69312505D1 (de) 1997-09-04

Similar Documents

Publication Publication Date Title
JPH08502845A (ja) ポリゴンのラスタ化
US6747660B1 (en) Method and system for accelerating noise
JP3277280B2 (ja) エイリアシング除去多角形を描出する方法及び装置
US7489317B2 (en) Method and apparatus for anti-aliasing for video applications
JP4366387B2 (ja) 画像処理装置及び方法
US7425955B2 (en) Method for tracking depths in a scanline based raster image processor
US5276783A (en) Tessellating complex polygons in modeling coordinates
US8059119B2 (en) Method for detecting border tiles or border pixels of a primitive for tile-based rendering
JP4343344B2 (ja) ラスタ形式のグラフィックオブジェクトを用いたイメージの高速レンダリング方法
US5982376A (en) Three-dimensional graphic display apparatus with improved high-speed anti-aliasing
US5929862A (en) Antialiasing system and method that minimize memory requirements and memory accesses by storing a reduced set of subsample information
JP3071357B2 (ja) 曲線を描く装置及び方法
US7554546B1 (en) Stippled lines using direct distance evaluation
JPH06309466A (ja) グラフィカル・イメージの表示装置及び方法
JPH04287292A (ja) トリミングされたパラメトリック面のレンダリング方法及び装置
US6360029B1 (en) Method and apparatus for variable magnification of an image
US9530241B2 (en) Clipping of graphics primitives
JP2010092481A (ja) グラフィックス処理システム
US6437793B1 (en) System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements
JPH117546A (ja) 高速透視図ボリュームレンダリングのための光線変換方法
US5491769A (en) Method and apparatus for variable minification of an image
US8179399B2 (en) Rasterizing method
JP4311877B2 (ja) 副標本化テクスチャ端縁部のアンチエイリアシング
US7916141B2 (en) Image processing system using vector pixel
EP0574245A2 (en) Method and apparatus for variable expansion and variable shrinkage of an image

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