[go: up one dir, main page]

JPH06215143A - グラフィックス・オブジェクト表現方法と装置 - Google Patents

グラフィックス・オブジェクト表現方法と装置

Info

Publication number
JPH06215143A
JPH06215143A JP28625793A JP28625793A JPH06215143A JP H06215143 A JPH06215143 A JP H06215143A JP 28625793 A JP28625793 A JP 28625793A JP 28625793 A JP28625793 A JP 28625793A JP H06215143 A JPH06215143 A JP H06215143A
Authority
JP
Japan
Prior art keywords
processor
processors
graphics
span
spans
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP28625793A
Other languages
English (en)
Inventor
Chandrasekhar Narayanaswami
ナラヤナスワミ チャンドラセカー
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06215143A publication Critical patent/JPH06215143A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】本発明は、グラフィックス・オブジェクトの表
現、特に複数のプロセッサを用いるグラフィックス表現
を行う方法と装置を提供する。 【構成】本発明では、複数プロセッサを使用し、少くと
も1個のスパンを各プロセッサに割り当て、割り当てら
れるスパンはインターリーブされ、それらスパンの各々
に関するプリミティブの範囲内の終了点を上記各プロセ
ッサが計算し、そのプリミティブをディスプレイに表示
する方法とそれを実現する装置が提示される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、グラフィックス・オブ
ジェクトの表現、特に複数のプロセッサを用いるグラフ
ィックス表現に関するものである。
【0002】
【従来の技術】グラフィックス・オブジェクトを表現す
るために多くの既知の技法がある。典型的には、1つの
オブジェクトは多くのプリミティブ(基本体)に、通常
は三角形に、モザイク化される。各プリミティブは一組
のコーナー・ポイントによって定義される。これらの三
角形は、次に多段階プロセスにおいて個別に表現され
る。既知のGouraud陰影技法を使用して、各三角形の稜
線は、コーナー・ポイントから交差し、補間される。続
いて、三角形は、前に補間された三角形稜線ポイントか
らスパン内での画素の補間を行うため、複数の水平軸ス
パンに分割される。補間された画素は、表示のためフレ
ーム・バッファに記憶される。
【0003】この表現プロセスは、計算集約的で、多量
の処理能力を必要とする。この結果、いくつかの技法
は、並列プロセッサを使用してオブジェクト表現を実行
するように開発された。
【0004】Computer Graphics1989年7月号掲載の「プ
ロセッサ拡張メモリ使用の異質マルチプロセッサ・グラ
フィックス・システム(A Heterogeneous Multiprocess
or Graphics System Using Processor-Enhanced Memori
es)」は、各画素当たり1プロセッサを使用する並列走
査変換技法を記述している。同技法において各プロセッ
サは、三角形の境界稜線の各々を記述する一組の線形方
程式を評価する。稜線当たり1つの線形方程式を評価す
ることによって、三角形の各稜線について、画素が稜線
の左、右または線上にあるかどうかについてその画素を
類別する。プロセッサの画素が三角形の稜線の各々のオ
ブジェクト側にあるならば、その画素は、三角形の内部
にある。三角形の内部にある画素のプロセッサのみが有
効な計算を行うので、この荒っぽいアプローチのプロセ
ッサ活用度は十分ではない。残りのプロセッサは評価を
行うが、その画素が三角形の外側にあるので、結果は役
に立たない。この結果、表現される三角形の区域が小さ
くなればなるほど、このアプローチは、魅力が少なくな
る。
【0005】Computer Graphics 1988年8月号掲載の
「多角形ラスター化のための並列アルゴリズム(Paralle
l Algorithm for Polygon Rasterization)」は、画素当
たりのプロセッサを使用せずにzバッファリングおよび
カラー補間を使用する上記技法の適応を記述している。
表現される三角形の各水平軸スパン(列)について、そ
のスパンの中の画素は、各プロセッサに配分される。多
くの市販のラスター機構で行われているごとく、カラー
およびz値を並列的に補間するために別個の補間手段が
使われる。三角形の境界稜線を横切る線を引くことによ
って、そのスパンの終点が決定される。(50画素以下
の)小さい三角形では、いくつかの画素は、三角形の境
界稜線のラスタ化される画素と水平軸スパンの画素との
間で共通である。(処理能力ベンチマークに一般に使わ
れる)50画素三角形の Gouraud陰影では、これらの画
素が全体の計算時間の大きい割合を消費する。これらの
ケースにおいては、新しいスパンが並列して処理される
前に、1つのスパンのいくつかの画素が、順次処理さ
れ、並列処理と効率の度合が減少する。
【0006】
【発明が解決しようとする課題】グラフィックスの表現
を行う従来技術においては、例えば、上記各画素当たり
1プロセッサを使用する並列走査変換技法では、三角形
内部の画素についての計算のみが有効なためプロセッサ
の有効活用という点で難があり、また、改良した上記
「多角形ラスター化のための並列アルゴリズム」におい
ても、処理すべき画素のかなりの部分が順次処理される
ため並列プロセッサならびに並列アルゴリズムを用いる
グラフィックス・システムの処理能力を減殺する。従っ
て、このような問題を解決する一層効率的なグラフィッ
クス・システム、特に並列処理能力を持つグラフィック
ス・システムが必要とされる。
【0007】
【課題を解決するための手段】本発明は, 複数プロセ
ッサを用いて、各プロセッサに少くとも1つのスパンを
割り当てるステップを含め、複数スパンを持つプリミテ
ィブを表現する方法を与える。上記各プロセッサは、割
り当てられた各スパンのプリミティブの範囲内で終了点
を計算し、プリミティブを表示する。
【0008】更に本発明は, 各プロセッサが少くとも
1つのスパンを割り当てられる複数プロセッサ、装置を
含め、複数スパンを持つプリミティブを表現する装置を
提供する。上記各プロセッサは、割り当てられた各スパ
ンのプリミティブの範囲内で終了点を計算する装置を含
める。
【0009】
【実施例】図1は、本発明の好ましい実施例において利
用される典型的ディジタル・コンピュータ100のブロ
ック図である。コンピュータは、メイン・メモリ12
0、入力装置130および出力装置140に接続したメ
イン・プロセッサ110を含む。メイン・プロセッサ1
10は、1つのプロセッサまたは複数のプロセッサを含
む。入力装置130は、鍵盤、マウス、タブレットまた
はその他の入力装置を含む。出力装置140は、テキス
ト・モニタ、プロッタまたはその他の出力装置を含む。
メイン・プロセッサは、グラフィックス・アダプタ20
0を通してグラフィックス・ディスプレイのようなグラ
フィックス出力装置150を接続する。グラフィックス
・アダプタ200は、メイン・プロセッサ110からの
グラフィックスに関する命令をバス160で受け取る。
グラフィックス・アダプタは、グラフィックス・アダプ
タ・メモリ230に接続のグラフィックス・アダプタ・
プロセッサ220を使ってそれらの命令を実行する。
【0010】図3を参照の上以下記述のように、グラフ
ィックス・プロセッサが、複数の相互接続したプロセッ
サを含むのは、本発明の好ましい実施例である。
【0011】グラフィックス・アダプタの中のグラフィ
ックス・プロセッサは命令を実行し、それらの命令に基
づいてフレーム・バッファ240およびビデオルックア
ップ・テーブル(LUT)245を更新する。グラフィ
ック・プロセッサ220は、また、特殊タイプのプリミ
ティブを表現するため、特殊グラフィック表現専用ハー
ドウェアを含める場合もある。フレーム・バッファ24
0には、グラフィックス出力装置上に表示されるあらゆ
る画素の指標値が記憶される。
【0012】フレーム・バッファから読み取られる指標
値は、表示される実際のカラーに関しLUT245を読
み取るために使われる。DAC(ディジタル・アナログ
変換器)250は、LUTに記憶されたディジタル・デ
ータをグラフィックス・ディスプレイ150用のRGB
信号に変換し、これにより、要求されたグラフィックス
出力がメイン・プロセッサから与えられる。
【0013】図2は、グラフィックス機能を実行するた
めにホスト計算機およびグラフィックス・アダプタによ
って典型的に利用されるプログラムの各層を図示してい
るブロック図である。DOSのようなオペレーティング
・システム300は、ホスト計算機の主要なコントロー
ルを提供する。そのオペレーティング・システムに連係
して、オペレーティング・システム・カーネル310
は、オペレーティングシステムのハードウェアに特化し
た作業を提供する。オペレーティング・システム・カー
ネルは、ホスト計算機マイクロコード320と直接対話
する。ホスト計算機マイクロコードは、ホスト計算機プ
ロセッサによって実行される主要命令セットである。グ
ラフィックス・アプリケーション330および332
は、オペレーティング・システム300に連結されてい
る。このグラフィックス適用業務ソフトウェアには、Si
licon Graphic社のGL、IBM社のグラフィグス(graP
HIGS)、MITのPEX等のソフトウェア・パッケージ
等がある。これらソフトウェアは、2次元または3次元
グラフィックスの主要機能を提供する。
【0014】グラフィックス適用業務330および33
2はグラフィックス適用業務プログラム・インターフェ
ース(API)340および342とそれぞれ連係して
いる。APIは、グラフィックス処理のため多くの計算
集約的作業を提供し、適用業務ソフトウェアとグラフィ
ックス・アダプタに対するデバイスドライバのようなグ
ラフィックス・ハードウェアに近いソフトウェアとの間
のインターフェースを提供する。例えば、API340
および342はGAI(グラフィックス処理適用業務イ
ンターフェース)350および352とそれぞれ対話す
ることもある。GAIは、APIとグラフィックス・ア
ダプタ・デバイスドライバ370との間のインターフェ
ースを提供する。APIがGAIの機能をも実行するグ
ラフィックス・システムもある。
【0015】グラフィックス処理適用業務、APIおよ
びGAIは、オペレーティング・システムおよびデバイ
スドライバによって単一のプロセスとみなされる。すな
わち、グラフィックス処理適用業務330および33
2、API340および342、GAI350および3
52は、オペレーティング・システム300およびデバ
イスドライバ370によってそれぞれプロセス360お
よび362とみなされる。オペレーティング・システム
・カーネルによってプロセスに割り当てられるプロセス
ID(PID)によって、プロセスは、オペレーティン
グ・システムおよびデバイスドライバによって識別され
る。プロセス360および362は、2つの別々のウィ
ンドウにおける2度のプログラム実行のように、同時に
2回実行される同じコードを使用する場合もある。PI
Dは、同じコードの別々の実行を識別するために使われ
る。
【0016】デバイスドライバは、オペレーティング・
システム・カーネル310の拡張としてのグラフィック
ス・カーネルである。グラフィックス・カーネルは、グ
ラフィックス・アダプタ380のマイクロコードと直接
対話する。多くのグラフィックス・システムにおいて、
GAIか、あるいはGAI層が使用されない場合はAP
Iかが、デバイスドライバに初期要求命令を送り出すこ
とによってGAIまたはAPIからアダプタ・マイクロ
コードへの直接アクセスを要求することもある。加え
て、多くのグラフィックス・システムにおいて、初期要
求命令を送り出すことによって、アダプタ・マイクロコ
ードから、GAIかまたはGAIが使われていない場合
APIかいずれかへの直接アクセスをアダプタ・マイク
ロコードが要求できることもある。両方のプロセスを、
以後、DMA(直接メモリ・アクセス)と呼ぶ。
【0017】DMAは、大きいブロックのデータを転送
する場合典型的に使われる。DMAを設定するためのデ
バイスドライバの初期要求以外ディスプレイ・ドライバ
通過の必要を排除することによって、DMAは、ホスト
計算機とアダプタとの間のより速いデータ転送を提供す
る。いくつかの場合には、アダプタ・マイクロコード
は、文脈切り換えを用いて、アダプタ・マイクロコード
がアダプタ・マイクロコードによって利用される現在属
性を置き換えることが可能となるようにする。適応され
たマイクロコードが使用しているものとは異なる属性を
利用するグラフィックス処理適用業務からの命令をアダ
プタ・マイクロコードが受け取らねばならない場合に、
文脈切り換えが使われる。文脈切換えは、属性変化を認
識するデバイスドライバによって始動されるのが典型的
である。
【0018】ブロック300ー340は、利用されるグ
ラフィックス・アダプタの型に依存しないソフトウェア
・コード層である。ブロック350ー380は、利用さ
れるグラフィックス・アダプタの型に依存するソフトウ
ェア・コード層である。例えば、異なるグラフィックス
・アダプタがグラフィックス処理適用業務ソフトウェア
によって使われることになっているのならば、新しいG
AI、グラフィックス・カーネルおよびアダプタ・マイ
クロコードが、必要となるであろう。また、ブロック3
00ー370は、ホスト計算機におかれ、そこで実行さ
れるが、アダプタ・マイクロコード380は、グラフィ
ックス・アダプタにおかれ、そこで実行される。しかし
ながら、アダプタ・マイクロコードが、グラフィックス
・アダプタの初期状態設定の間にホスト計算機によって
グラフィックス・アダプタにロードされるケースもあ
る。
【0019】典型的グラフィックス・システムでは、ユ
ーザは、そのグラフィックス処理適用業務に対し2次元
または3次元モデルからイメージを構築するよう命令す
る。ユーザは、先ず、光源の位置およびタイプを選択す
る。ユーザは、次に、適用業務ソフトウェアに一組の定
義済みまたはユーザ定義オブジェクトから、要求された
モデルを構築するよう命令する。各オブジェクトには、
そのオブジェクトを記述しているひとつ以上の同一平面
描画プリミティブが含まれる。例えば、多くの三角形の
場合のように、オブジェクトの表面を定義するために一
組の描画プリミティブが使われるかもしれない。
【0020】次に、ユーザはそのモデルを見るためのウ
ィンドウの配景を与え、それによって要求イメージを定
義する。適用業務ソフトウェアは、オブジェクトを記述
する描画プリミティブをAPI、GAIさらにDMAが
使われていない場合デバイスドライバを通してアダプタ
・マイクロコードに送り出すことによってモデルからイ
メージを表現することを開始する。アダプタ・マイクロ
コードは、ウィンドウで見えない描画プリミティブをク
リップする(すなわち使用しない)ことによってグラフ
ィックス・ディスプレイ上のイメージを表現する。アダ
プタ・マイクロコードは、残りの描画プリミティブのそ
れぞれを、ユーザによって与えられた配景を基に、見え
る画素に分解する。
【0021】次に、それら画素は、(3次元モデルの場
合には立体バッファをしばしば使用するが)、フレーム
・バッファにロードされる。このステップは、対象とな
る描画プリミティブ、変数および画素の数が多いため、
非常に計算集約的である。結果として生成されるフレー
ム・バッファに記憶され、グラフィックス・ディスプレ
イに表示されるイメージは、その画素がどの描画プリミ
ティブまたはオブジェクトから生成されたかなどのオリ
ジナルの情報を通常は保持しない。このため、もしもウ
ィンドウ、ユーザ配景、モデル、輝度等々が修正される
場合には、イメージは、全体又は部分的に表現しなおさ
れなければならなくなる。
【0022】本発明の好ましい実施例では、グラフィッ
クス表現の技法は、アダプタ・フレーム・バッファの近
くに存在するアダプタ・マイクロコードのような場所で
利用される。このアプローチは、また、比較的迅速にか
つ簡単に実施できるであろう。このグラフィックス表現
技法は、また、グラフィックス処理応用ソフトウェアに
適用されることもできる。この場合、イメージが表現さ
れる前か又はその後に、グラフィックス処理応用ソフト
ウェアにデータを戻すグラフィックス・アダプタによっ
て、表現されるイメージは、システム・メモリに記憶さ
れる。このアプローチは、非常に遅いが、既存のグラフ
ィックス・アダプタへのこの技法の活用を可能ならしめ
ている。表現技法は、また、グラフィックス・アダプタ
・プロセッサのハードウェアで実施できる。このアプロ
ーチは、非常に迅速ではあるが、多分特殊のハードウェ
アを必要とする。本発明の技法がホスト計算機またはグ
ラフィックス・アダプタの範囲内で種々の場所で適用さ
れる可能性があることが、通常技術を持つ当業者によっ
て認められるであろう。
【0023】図3は、本発明の好ましい実施例の概略フ
ローチャートである。以下のプロセスは、三角形を表現
するように記述されているとはいえ、このプロセスは、
他の多角形にも適用できる。第1のステップ400で、
表現されるべき三角形の頂点が、xおよびy座標で最初
に分類される。この分類は、三角形がどのように別々の
スパンに分断されることになっているか(すなわち、三
角形のどの稜線が、その三角形の左側にあるのか)を決
めるのに役立つ。第2のステップ410では、補間され
る変数のxおよびyに関する偏導関数が決定される。そ
の導関数は、xおよびy方向に関する各変数の傾斜を決
定するためのものである。傾斜は、下記の補間プロセス
の中で使われる。
【0024】ステップ420では、サブステップ420
Aで並列制約的稜線交差技法を使用することによって、
当該三角形は、一組の水平軸スパンに効率的に分断さ
れ、サブステップ420Bで、それらスパンは補間さ
れ、サブステップ420Cで、フレーム・バッファが更
新される。このプロセスは、一般的に走査変換と呼ばれ
る。下記に示されるように、好ましい制約的稜線交差技
法によれば、各スパンについて唯一1個の共通の画素が
三角形の境界稜線のラスタ表示とスパンとの間に存在す
る。これは、稜線でよりもむしろスパンにおいて処理さ
れる画素の数を増加させる。これらスパンは、負荷がう
まく平準化するインターリーブ方式のプロセッサによっ
て処理されることが本発明の実施例として好ましい。こ
の好ましいプロセスは、下記に詳細に記述される。
【0025】図4は、本発明の好ましい実施例によって
利用されるグラフィックス・プロセッサのブロック図で
ある。第1のプロセッサ222は、三角形のような多角
形を表現するためにバス160上の入力を受け取る。プ
ロセッサ222は、次に、xおよびy座標で頂点を分類
することによって、上記のステップ400を実行し、デ
ータライン223上のプロセッサ224へこの情報を渡
す。プロセッサ224は、次に、補間されるべき変数の
傾斜を計算することによって、上記のステップ410を
実行する。
【0026】本発明の代替的実施例では、プロセッサ2
24は、並列して傾斜計算を実行するためにいくつかの
並列プロセッサを含むこともできる。プロセッサ224
は、データライン225Aから225Nのプロセッサ2
26にこの情報を渡す。代替実施例では、種々のプロセ
ッサにデータを発信し割り当てるために発信回路または
プロセッサが、プロセッサ224およびプロセッサ群2
26の間に使用される場合もある。プロセッサ226
は、次に、稜線交差および画素補間を並列的に実行する
ことによって、上記ステップ420を実行する。本発明
の実施例のソフトウェア実施のためのプロセッサ226
の好ましいプロセッサ数は、3から5の範囲にある。し
かし、ハードウェア実施面で、コストを減らすために、
ある特定の局面でより少ないプロセッサの使用が選択さ
れる場合がある。同様に、3個の頂点からいくつかの画
素に変換を行う時発生するデータ展開のため一層多くの
プロセッサ(5から20台)の使用を選択する場合もあ
る。また、プロセッサの各々は、代替的実施例におい
て、いくつかのパイプライン化されたまたは並列的プロ
セッサを含むかもしれない。プロセッサ226Aー22
6Nは、ついで、補間された画素をデータライン240
Aー240N上のフレーム・バッファへ転送する。
【0027】図5は、分類および傾斜計算ステップを詳
述しているフロー・チャートである。分類および傾斜計
算は、並列的に実行されることができる。ステップの間
唯一依存する点は、傾斜の正負符号が分類技法の結果に
基づいて逆にされる必要があるかもしれないことであ
る。これは、三角形の幾何図形的配列に基づいて三角形
の頂点のためのラベルを作成する。これはまた、三角形
の走査変換の結果がこの技法で頂点を指定する順序と無
関係であることを保証し、このことによって走査変換プ
ロセスが単純化される。
【0028】図6で図示される三角形を参照しながら、
本発明の好ましい実施例をこれから説明する。このプロ
セスで、最大離隔距離yをもつ稜線Q0Q1が決定され
る。Q0は、最大y座標をもつ頂点である。頂点と頂点
の間の結合線は、x座標に基づいて一貫した方法で分割
される。この稜線は、三角形の補間稜線として、また水
平軸スパンを作成するために、使われる。カラーおよび
z値は、この稜線に沿って補間される。他の2つの稜線
は、スパンの反対側の終点を決定するために使われるだ
けである。
【0029】このプロセスは、単一プロセッサで順次
に、または並列プロセッサによって実行されることがで
きる。並列的にこの分類を行うためには、3つのプロセ
ッサが、上記図4に述べられたプロセッサ222で並列
的に使われる。第1のステップ500で、すべての3個
の頂点の座標を比較することによって、第1のプロセッ
サは、最大y座標をもつ頂点を決定する。ステップ50
0と並列に実行されるかもしれないが、第2のステップ
510で、すべての3個の頂点の座標を比較することに
よって、第2のプロセッサは、最小のy座標をもつ頂点
を決定する。ステップ500と510と並列に実行され
るかもしれないが、3番目のステップ520で、3番目
のプロセッサは、他の2個のプロセッサによって決定さ
れた頂点と合致しない頂点を決定する。ステップ530
で、ベクトル(Q0Q1)とベクトル(Q0Q2)の外
積のz構成要素を評価することによって、Q2がQ0Q
1の左側にあるか右側にあるかの決定が行われる。
【0030】増分法を使用して三角形にわたる変数z
(典型的には3次元のグラフィックス適用業務での深
さ)を線形に補間するために、xおよびyに関するzの
変化率が、ステップ5400および550で計算され
る。すなわち、xに対するzの偏導関数(以下(∂z/
∂x)と記述する)およびyに対するzの偏導関数(以
下(∂z/∂y)と記述する)が、ステップ550およ
び560で計算される。
【0031】かくして、z(x,y)=z(0,0) + [x
× (∂z/∂x)]+ [y × (∂z/∂y)]であ
る。ステップ560から610で、カラー要素r、gお
よびbに対して、同様の用語が決定される必要がある。
【0032】Q0=(x0、y0、z0)、Q1=(x
1、y1、z1)、および Q2=(x2、y2、z
2)を分類プロセスの後での三角形の頂点を表わすとす
る。三角形Q0Q1Q2が存在する平面の方程式は、A
x+By+Cz+D=0である。これは、次のように書
くことができる:
【0033】
【数1】次に、平面に関する方向コサイン(正規化され
ない)は、以下の方程式によって与えられる: A = (z1-zO)(y1-y2) - (z1-z2)(y1-yO) B = (z1-z2)(x1-xO) - (z1-zO)(x1-x2) C = (x1-xO)(y1-y2) - (x1-x2)(y1-yO) 注:Dが本技法で評価される必要はない。 傾斜は、次のように与えられる: (∂z/∂x)= −A/C (∂z/∂y)= −B/C r、g、b値のような他のパラメータに対する傾斜計算
も、同様である。 注:Cの値はz、r、g、b
の傾斜計算のためには同じである。
【0034】十分な精度のビットが、傾斜の中で維持さ
れるので、補間に累算される誤差は問題とならない。例
えば、4K × 4Kのスクリーンに対し17ビットで十
分である。Gonzalez-Liang技法とは対照的に、本発明の
好ましい実施例は、カラーおよびz補間のためにBresen
ham型補間を使わない。これにより、同じレベルの正確
度を維持しながら、かつ、必要なハードウェアを単純化
する。
【0035】上述の計算を並列化するするいくつかの単
純な方法がある。1つは、z、r、gおよびbの計算を
複数プロセッサに配分するものである。もうひとつのア
プローチは、AおよびBの計算を複数プロセッサに配分
するものである。AとBの計算(加算と乗算)にかかる
時間と、傾斜の計算(割り算)にかかる時間次第では、
計算のパイプライン化は、魅力的な代替方法であるかも
しれない。3から5台のプロセッサを用いれば、これら
代替的計算方法の各々について統一的負荷平準化が達成
される。
【0036】走査変換プロセスに3つの主なステップが
ある。それらは、稜線交差、スパン補間およびフレーム
・バッファ更新である。中央が隣接三角形の稜線上に丁
度ある画素が加法(累算バッファ)または混合(混合ア
ルファ)モードで2度(三角形各々については1度)描
出される場合、望ましくない結果が起こるかもしれな
い。そのような画素を2回処理することを避けるため
に、そのような画素の所有権を隣接三角形の間で相互に
排他的とするための一貫したプロシージャが使われるこ
ともある。
【0037】そのようなプロシージャの1つは、その画
素が三角形の左の稜線上にあるならば(稜線が左右に分
類できない場合は底辺上にあるならば)、それは描出さ
れる。効率的にするために、三角形の画素の計算を複数
プロセッサに均等に配分することが好ましい。
【0038】Δ(最大)y=Q0(y)ーQ1(y)、すなわ
ちは、三角形における走査線の数と定義し、また、pを
プロセッサの数と定義する。1つの代替方法では、三角
形をp個の水平片に分断する。それら断片は、並列計算
のためプロセッサに配分される。しかし、あるプロセッ
サが他のプロセッサより長い断片を受け取ることもある
ので、このアプローチは、必ずしも負荷を均一に分配し
ない。
【0039】各々が1画素の高さの、Δ(最大)y個の断
片に三角形を分断しインターリーブ形態のp個のプロセ
ッサ間にそれらを配分する本発明にとって好ましいアプ
ローチが図6に示されている。(図6で、三角形は10
の画素分の高さであり、スパンは、三角形の各スパン側
に示される5個のプロセッサの間でインターリーブされ
ている。)注:p > Δ(最大)y ならば、上記2つの
アプローチは同じとなる。しかし、ハードウェアのコス
トのために、しばしば、Δ(最大)y は、プロセッサの
数より小さい。三角形のサイズが増大するにつれて、プ
ロセッサへのスパンのインターリーブされた配分の負荷
平準化は良くなる。大きい右の三角形は、インターリー
ブ・アプローチが非常に効果的なよい例である。
【0040】制約的稜線交差は、並列計算機構に割り付
けのため高さ1画素の断片に三角形を分断する並列技法
である。上記の制約とは、三角形の境界稜線を計算して
いる間、隣接する画素の各々は、y座標軸1単位違わな
ければならないということである。そうすることによっ
て、各スパンの左右の境界稜線上の画素について、y座
標は同じであることが保証され、それによって同期化さ
れた形でスパンが生成される。図7は、稜線Q0Q1お
よびQ0Q2に関し制約的稜線交差法によって取り扱わ
れる画素を図示する。o と x は、稜線Q0Q1によっ
て扱われる画素を示す。o と a は、稜線Q0Q2によ
って扱われる画素を示す。o は、両稜線の間で共通の画
素である。
【0041】制約的稜線交差技法には、下記のような付
加的利益がある。典型的 BresenhamまたはDDA技法
は、三角形の外側の画素を計算する。Bresenham および
DDA技法は、多次元プリミティブを表現することより
も線に最も適合するように意図されている。これは、計
算される画素の数を増やし、また、三角形を表現するた
めに必要でない画素を計算する。しかしながら、制約的
技法では、Q1およびQ2のみを取り扱い、三角形の外
側の画素を取り扱うことはしない。一般的には、Bresen
ham またはDDA技法は、ポイント(xO、yO)から(x
1、y1)を扱う場合、最大( | x1−xO |、| y1−yO |
)個の画素を処理し、1画素あたりT時間の( | x1−
xO |、| y1−yO | )倍の時間を要する。従って、所要
時間は、xおよびy各々の線の投影の長さに依存する。
制約的技法は、( | y1−yO | )個の画素のみを処理
し、、画素当たりT時間の( | y1-y01 | )倍の時間を
要し、したがって,1よりも小さい傾斜の線に関し( |x
1−xO| − |y1−yO| )個という少ない画素を処理す
る。1より小さい傾斜の線に関して、その他の (|x1−x
O|−|y1−yO|)個の画素のいくつかは、スパンで処理さ
れるが、残りの画素は処理されない。
【0042】図8は、稜線交差を記述しているフロー・
チャートである。第1のステップ700で、スパンはイ
ンターリーブ形態のプロセッサに割り当てられる。すな
わち、N個のプロセッサに関し、各プロセッサは、他の
プロセッサに割り当てられるスパンから、N番目スパン
毎に割り当てられる。この図の残りのステップは、プロ
セッサに割り当てられるスパンに関し、各プロセッサに
よって並列的に処理される。ステップ710と720
で、スパンに対する開始点が、頂点、当該プロセッサに
よって計算された以前の開始点およびエラー条件を使用
して計算される。この開始点は、プリミティブの境界の
範囲内にあるよう制約されるのが好ましい。
【0043】ステップ730で、エラー条件およびカラ
ー値は、このスパンの開始点の計算を反映して更新され
る。ステップ740と750で、頂点と、当該プロセッ
サによって計算された以前の終了点と、エラー条件とを
使用してスパンに対する終了点が、計算される。この終
了点は、また、プリミティブの境界の範囲内にあるよう
制約されるのが好ましい。ステップ760で、エラー条
件およびカラー値は、このスパンの終了点の計算を反映
して更新される。ステップ770で、このプロセッサに
関し、当該スパンが計算されるべき最後のスパンか否か
が判定される。最後でなければ、処理は次のスパンのた
めにステップ710に戻る。最後ならば、処理は補間と
フレーム・バッファの更新に進む。
【0044】以下の定義が、本発明の記述の中で使われ
る。すべての算術演算および変数は、整数(固定小数
点)であることが好ましい。 p =(プロセッサの数) (xO、yO)=(線の開始点) (x1、y1)=(線の終了点) Δx = x1 - x0 >= 0 (他のケースへの解は下記記述) Δy = y1 - y0 > 0 (他のケースへの解は下記記述) 図9は、(xO、yO)と(x1、y1)を通るラスタ線を図示
する。この線の方程式は、以下のとおりである。 (y - yO)/(x - xO) = (Δy/Δx) よって x = F(y) = y X (Δx/Δy) + xO - yO X (Δx/Δy) xj(i)およびyj(i)は、j番目の繰返しの中でi番目のプ
ロセッサのためのxおよびy座標を示す。繰返しの開始
は、0番目の繰返しである。
【0045】線上または線の右側にある画素を生成する
ために、以下の方程式が、好ましくは、使われる。 yj(i) = y0 + pj +i xj(i) = 端数切り捨て[f(yj(i))] + 1 剰余 > 0 なら
ば = x0 + [((pj + i)Δx)/(Δy)] 線上または線の左側にある画素を生成するために、以下
の方程式が、好ましくは、使われる。 yj(i) = y0 + pj + i xj(i) = 端数切り捨て[f(yj(i))] = x0 + ((pj + i)Δx)/(Δy) 画素は、その線上にまたは右側に生成される。下記のよ
うに、比較ルーチンの値が、画素が左側にあるのかまた
は線上なのか等々を示すために使われる。 b >= 0 の場合 p(Δx) = a(Δy) + b とし、 d(i) >= 0 の場合 i(Δx) = c(i)(Δy) + d(i) とす
る。従って、 ((pj + i)(Δx))/(Δy) = (pj(Δx))/(Δy) + (i(Δ x))/(Δ y) = aj + (bj)/(Δy) + c(i) + (d(i))/(Δy) = aj + c(i) + (bj)/(Δy) + (d(i))/(Δy) = aj + c(i) + (bj+d(i))/(Δy) 従って、 yj(i) = y0 + pj +i xj(i) = xO + aj + c(i) + (bj + d(i))/(Δy) 分数 (bj+d(i))/(Δy)を連続繰返し(jは変わる)計算
するために、コンピュータ・グラフィックスの順次線描
に関する標準アプローチが、利用される。この技法は、
整数および分数部として結果を維持する。その分数部
は、分子および分母を持つ。初期値として、分子は、ゼ
ロまたはそれ以下である。次の繰返しにおける結果を計
算するために、bは先ずその分数部の分子に加えられ
る。次いで、その分子は、ゼロと比較される。もしもそ
の分子がなおゼロに等しいかまたはそれより小であれ
ば、何も行われない。もしも分子がゼロより大であれ
ば、その整数部は、1加算され、分子から分母(Δy)が
引かれる。このように、分子は、常にゼロ未満である。
連続した繰返しの中で分数[(bj+d(i))/(Δy)]の計算
は、上記と同様であるが、この場合、その分子は、初期
的に、ゼロと分母(Δy)との間の値であり、比較は、上
述のゼロの代わりに分母(Δy)と行われる。
【0046】e(0)(i) = d(i)とする。定義により、 0 <
= e(0)(i) < Δy である。0番目の繰返しの中でi番目
のプロセッサによって処理される画素は、次のように与
えられる。 yO(i) = yO + i xO(i) = xO + c(i) + n1 但し e(0)(i) > 0 なら n1 = 1 または e(0)(i) <= 0 なら n1 = 0 以下の再帰関係を、j > 0 のためにここで定義するこ
とができる. yj(i) = y(j-1)(i) + P xj(i) = x(j-1)(i) + a + (bj + d(i))/(Δy) - (b(j-1) + d(i))/(Δy) = x(j-1)(i) + a + n2 但し (e(j-1)(i) + b) > 0 なら n2 = 1 または (e(j-1)(i) + b) <= 0 なら n2 = 0 ej(i) = e(j-1)(i) + b - n3 但し (e(j-1)(i) + b) > 0 なら n3 = Δy (e(j-1)(i) + b) <= 0 なら n3 = 0 どの線についても、各プロセッサは、((Δy + 1) /
p)個か ((Δy + 1 +p)/ p)個かいずれかの数の画素
を処理する。いずれの2個のプロセッサによって処理さ
れる画素の数の間の差も1であるので、作業負荷は、そ
れらプロセッサ間で均一に平準化される。
【0047】ひとたび2つのスパン開始点とそれらスパ
ンの終了点におけるカラーおよびzの値がわかれば、当
該スパンの画素に対するカラーおよびzの値は単純な補
間によって決定されねばならない。このフェーズを並列
化できる2つの単純な方法がある。1つのオプションで
は、垂直に連続するスパンが別々のプロセッサによって
取り扱われるというようなインターリーブ形態のプロセ
ッサにスパンを配分する(図6参照)。もうひとつのオ
プションでは、水平に連続する画素が別々のプロセッサ
によって取り扱われるというようなインターリーブ形態
のプロセッサに画素を配分する。両者いずれかの選択
は、メモリがどのように構成されているか、すなわち、
空間的に連続した画素が異なるメモリ・モジュールにあ
るのかまたはこの段階で使用可能な多くのプロセッサ上
にあるのかに、依存する。もしも利用されるプロセッサ
数が少なければ、最初のオプションが、好ましい。プロ
セッサの数が十分であれば、両方の方法を組み合わせる
か、または、第2の方法を使うこともできる。
【0048】グラフィックス・フレーム・バッファ・メ
モリは、隣接する画素ブロックの同時アクセスを容易に
するように構成される。使用可能メモリを有効利用する
ため、本発明にとって好ましい(たとえば、8ビット・
モードでの)グラフィックス・アダプタおよび適用業務
は、r,g,bの値を同じメモリ・バンクに記憶し、x
y空間の隣接画素を異なるバンクに記憶する。この構成
は、xy空間の隣接画素を並列的に書き込むことを可能
にする。プロセッサの間にxy空間を分割することによ
って、本発明のアプローチは、いくつかの隣接画素を1
度に生成する。従って、プロセッサによって生成される
いくつかの画素は、並列的にフレーム・バッファに書か
れる。
【0049】表1から4は、陰影を含む三角形を表現す
るための疑似コードを示す。この疑似コードは、単一の
プロセッサによって実行されることもできるが、複数の
プロセッサによって実行されるよう意図して書かれてい
る。更に、他の多角形またはプリミティブがこれらの技
法を使用して表現されるかもしれないが、この疑似コー
ドは、三角形を表現するために書かれている。表1は、
三角形が陰影をつけられ表現される高いレベルの処理に
関するものである。特定の変数は、初期化されている。
本発明で述べられているように三角形の頂点が獲得され
分類される。種々の傾斜が、陰影のためxおよびyに関
して計算される。
【0050】三角形の各稜線に対する変数が、次に計算
される。このステップは、別々のプロセッサによって実
行されることができる。疑似コードは、ΔYよりΔXが
より大きいと仮定する。そうでないならば、下記疑似コ
ードのために変数を入れ替えることがある。次に、各プ
ロセッサについての変数が計算される。このステップ
は、また、各プロセッサによって個別に実行されること
ができる。各スパンに対する終了点が、次に計算され
る。このステップは、複数のプロセッサによって実行さ
れることができる。最後に、スパンの範囲内の画素は、
補間され、フレーム・バッファにロードされる。
【0051】 表1 三角形処理に関する疑似コード: NBR_PROCS = (多角形を扱うプロセッサの数) にセット 走査変換; PID ={0から(NBR_PROCS-1)までの各プロセッサの識別番号}にセット; 深さおよびカラー情報を含め三角形の頂点を獲得する; Yの最大値およびYの最小値をもつ頂点を決定するため頂点を分類する; XおよびYに関して補間されるべき各変数の傾斜計算を行なう; for J = I to 3 initialize_triangle_edge_variables(稜線が (XO(J),YO(J)) から (X1(J),Y1(J)) の間三角形のJ番目の稜線について); next J; For K = 0 to NBR_PROCS - 1 setup_processor_variables(K番目のプロセッサに関し); next K; while more spans for processor(当プロセッサのためのスパンがまだある間 ) LR = (1 から 3 の左側稜線の値)にセット; get_edge_of_span (X(LR), Y(LR)); LR = (1 から 3 の右側稜線の値)にセット; get_edge_of_span (X(LR), Y(LR)); 補間のためスパン用プロセッサへ左右の稜線を送出; フレーム・バッファ更新; end processing; 表2は、各三角形稜線のための変数を初期化するための
疑似コードである。各稜線について垂直および水平差
が、それらの差の方向とともに、決定される。方向は、
その線がどの方向かを記述するCVALと呼ばれる値を
決定するため、使われる。もちろん、種々の方向の稜線
を扱うための代替的方式を利用することはできる。複数
スパンのインタリービングのため各プロセッサの前のス
パンからジャンプする場合に、変数AおよびBは、スパ
ンのためのXおよびY方向での軌道運動に用いられる。
以下に使われる符号関数は、、ゼロまたは正の入力に関
し、その関数に、負ー1、0または+1を与えるもので
ある。
【0052】 表2 三角形変数の初期値設定のための疑似コード: initialize_triangle_edge_variables: DELTA_X(J) = |X1(J)-XO(J)|; SIGN_DELTA_X(J) = sign (X1(J)-XO(J)); DELTA_Y(J) = |Y1(J)-YO(J)|; SIGN_DELTA_X(J) = sign (Y1(J)-YO(J)); if SIGN_DELTA_X(J) <> 0 A(J) = [NBR_PROCS*DELTA_X(J)] / DELTA_Y(J) B(J) = [NBR_PROCS*DELTA_X(J)] - [A(J)*DELTA_Y(J)]; if edge = left edge if (SIGN_DELTA_X(J) > 0) CVAL(J) = DELTA_Y(J) - 1 else CVAL(J) = 0 else if SIGN_DELTA_X(J) > 0 CVAL(J) = 0 else CVAL(J) = DELTA_Y(J) -1; return; 表3は、エラー条件および開始点を含め各プロセッサの
ための変数を初期状態にするためのものである。
【0053】 表3 プロセッサ変数の設定のための疑似コード: setup_processor_variables: for L= 1 to 3; C(K,L) = (K * DELTA_X(L))/DELTA_Y(L); D(K,L) = (K * DELTA_X(L)) - (C(K,L) * DELTA_Y(L)); E(K,L) = D(K,L); X_START(K,L) = XO(L) + SIGN_DELTA_X(L) * C(K,L); if E(K,L) > CVAL(L) X_START(K,L) = X_START(K,L) + SIGN_DELTA_X(L) E(K,L) = E(K,L) - DELTA_Y(L); Y_START(K,L) = YO(L) + SIGN_DELTA_Y(L) * K; next L; return; 表4は、各スパンの稜線値を計算するためのものであ
る。
【0054】 表4 プリミティブ処理のための疑似コード: get_edge_of_span: if first time for this edge(当稜線が最初ならば) X(PID,LR) = X_START(PID,LR) Y(PID,I,R) = Y_START(PID,LR) I(PID,LR) = DELTA_Y(LR); if I(PID,LR) < DELTA_Y(LR) INCR = SIGN_DFLTA_X(LR) * A(LR) E(PID,LR) = E(PID,LR) + B(LR) if (E(PID,LR) > CVAL(LR) INCR = INCR + SIGN_DELTA_X(LR) E(PID,LR) = E(PID,LR) - DELTA_Y(LR) X(PID,LR) = X(PID,LR) + INCR Y(PID,LR) = Y(PID,LR)+(SIGN_DELTA_Y(LR)*NBR_PROCS) I(PID,LR) = I(PID,LR) + NBR_PROCS < if 稜線LR = 稜線QOQ1, update color values(カラー値更新); else LR = (当該スパンに接する新たな稜線)にセット; return; 三角形上の変数の線形補間に対する効率的並列技法を以
上記述した。初期の解決策にはなかった付加的並列法を
導入するための制約的稜線交差技法を以上記述した。
【0055】当技法は、分子および分母が線形に補間さ
れる必要がある場合の有理数線形補間へ拡張できる。Go
uraud 陰影のみが本書の記述の中で検討されたが、本発
明の技法の結果はテクスチャ・マッピング(TEXTURE MAP
PING)やアルファ混合(ALPHABLENDING)等にも使われるこ
とができる 。同様に、三角形の頂点の下位(サブ)の
画素位置決めの問題を扱うことも可能である。
【0056】
【発明の効果】グラフィックスのプリミティブを表現す
る場合従来技術において不十分であったプロセッサ、特
に複数並列プロセッサの有効活用が本発明によって改善
され、これによりグラフィックス処理システムの処理能
力の向上が図れる。
【図面の簡単な説明】
【図1】本発明の好ましい実施例において利用される典
型的ディジタル・コンピュータのブロック図である。
【図2】グラフィックス機能を実行するためにホスト計
算機およびグラフィックス・アダプタによって典型的に
利用されるプログラムの各層を図示しているブロック図
である。
【図3】本発明の好ましい実施例の概略フローチャート
である。
【図4】本発明の好ましい実施例によって利用されるグ
ラフィックス・プロセッサのブロック図である。
【図5】分類および傾斜計算ステップを詳述しているフ
ロー・チャートである。
【図6】本発明の好ましい実施例によって表現される三
角形の図解である。
【図7】制約的稜線交差プロセスによって横切られた稜
線画素を図示する。
【図8】稜線交差を記述するフロー・チャートである。
【図9】2個のポイントを通るラスタ線を図示する。
【符号の説明】
100 ディジタル・コンピュータ 110 メイン・プロセッサ 120 メイン・メモリ 220 グラフィック・アダプタ・プロセッサ 230 グラフィック・アダプタ・メモリ 240 フレーム・バッファ 245 LUT(ルックアップ・テーブル) 250 DAC(ディジタル・アナログ変換器) 330、332 グラフィックス適用業務ソフトウエア 340、342 API 350、352 GAI 370 グラフィックス・カーネル 380 アダプタ・マイクロコード 226 並列プロセッサ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】少くとも1個のスパンを各プロセッサに割
    り当てるステップと、 割り当てられるスパンの各々に関するプリミティブの範
    囲内の終了点を上記各プロセッサが計算するステップ
    と、 上記プリミティブを表示するステップと、からなる、複
    数プロセッサを使用し、複数スパンを持つプリミティブ
    を表現する方法。
  2. 【請求項2】上記複数プロセッサに割り当てられるスパ
    ンをインターリーブするステップを含む請求項1記載の
    方法。
  3. 【請求項3】複数のプロセッサと、 各プロセッサに少くとも1個のスパンを割り当てる手段
    と、 割り当てられるスパン各々のプリミティブの範囲内の終
    了点を上記各プロセッサが計算する手段と、 を備え持つ、複数スパンを持つプリミティブを表現する
    ための装置。
  4. 【請求項4】上記複数プロセッサに割り当てられるスパ
    ンをインターリーブする手段を備え持つ請求項3記載の
    装置。
  5. 【請求項5】データを処理するプロセッサと、 処理されるデータを記憶するためのメモリと、 グラフィックス機能を実行するためのプロセッサとメモ
    リに接続され、該スパン各々のプリミティブの範囲内の
    終了点を計算する手段を各々が備え持つ複数グラフィッ
    クス・プロセッサと、上記グラフィックス・プロセッサ
    の各々に少なくとも1個のスパンを割り当てる手段とを
    備え持つアダプタと、 からなる、複数スパンを持つプリミティブを表現するた
    めのデータ処理装置。
JP28625793A 1992-11-30 1993-10-22 グラフィックス・オブジェクト表現方法と装置 Pending JPH06215143A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US98280992A 1992-11-30 1992-11-30
US07/982,809 1992-11-30

Publications (1)

Publication Number Publication Date
JPH06215143A true JPH06215143A (ja) 1994-08-05

Family

ID=25529527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28625793A Pending JPH06215143A (ja) 1992-11-30 1993-10-22 グラフィックス・オブジェクト表現方法と装置

Country Status (2)

Country Link
EP (1) EP0600204A3 (ja)
JP (1) JPH06215143A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100885875B1 (ko) * 2006-06-23 2009-02-26 엔비디아 코포레이션 래스터화 방법 및 시스템
JP2015181016A (ja) * 2015-05-07 2015-10-15 キヤノン株式会社 制御方法、システム及びプログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877779A (en) * 1995-07-06 1999-03-02 Sun Microsystems, Inc. Method and apparatus for efficient rendering of three-dimensional scenes
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7451457B2 (en) 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US7139002B2 (en) 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
US7158668B2 (en) 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
AU2013273716A1 (en) 2013-12-19 2015-07-09 Canon Kabushiki Kaisha Method, apparatus and system for rendering an image

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6186876A (ja) * 1984-10-03 1986-05-02 Fujitsu Ltd 三次元物体表示処理方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6186876A (ja) * 1984-10-03 1986-05-02 Fujitsu Ltd 三次元物体表示処理方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100885875B1 (ko) * 2006-06-23 2009-02-26 엔비디아 코포레이션 래스터화 방법 및 시스템
JP2015181016A (ja) * 2015-05-07 2015-10-15 キヤノン株式会社 制御方法、システム及びプログラム

Also Published As

Publication number Publication date
EP0600204A2 (en) 1994-06-08
EP0600204A3 (en) 1994-07-27

Similar Documents

Publication Publication Date Title
US8111260B2 (en) Fast reconfiguration of graphics pipeline state
US6359619B1 (en) Method and apparatus for multi-phase rendering
JP3344597B2 (ja) グラフィック画像をテッセレーション化する方法および装置
US5850489A (en) Linear expression evaluator
JP3840014B2 (ja) グラフィックス表示システムの走査変換実施装置
US5808690A (en) Image generation system, methods and computer program products using distributed processing
US6275235B1 (en) High precision texture wrapping method and device
US6108460A (en) Load balanced image generation
US5734806A (en) Method and apparatus for determining graphical object visibility
US6104842A (en) Geometry processing of digital video models and images
JP3030206B2 (ja) グラフィック多角形をクリップ領域にクリップする方法および装置
US6636232B2 (en) Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler
US9530241B2 (en) Clipping of graphics primitives
KR19980702804A (ko) 영상 생성 및 조작을 위한 하드웨어 아키텍처
JPH07134776A (ja) 画像レンダリング方法とその装置
WO2000002165A1 (fr) Procede permettant de produire des donnees de polygone et afficheur d&#39;images utilisant lesdites donnees
JPH0877365A (ja) 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置
GB2357412A (en) Geometry processing in a 3D graphics rendering pipeline
US5973701A (en) Dynamic switching of texture mip-maps based on pixel depth value
JPH06215143A (ja) グラフィックス・オブジェクト表現方法と装置
US6348917B1 (en) Dynamic switching of texture mip-maps based on depth
US11010939B2 (en) Rendering of cubic Bezier curves in a graphics processing unit (GPU)
JPH096967A (ja) 三角形を表わす画素データを生成する装置
JP3086426B2 (ja) オブジェクトのラスタ化方法及び装置
JPH03139781A (ja) プリミテイブ描出方法、ポリゴン・シエーデイング方法、及びデイスプレイ・プロセツサ