JPH01134579A - 隠面除去方法 - Google Patents

隠面除去方法

Info

Publication number
JPH01134579A
JPH01134579A JP88258336A JP25833688A JPH01134579A JP H01134579 A JPH01134579 A JP H01134579A JP 88258336 A JP88258336 A JP 88258336A JP 25833688 A JP25833688 A JP 25833688A JP H01134579 A JPH01134579 A JP H01134579A
Authority
JP
Japan
Prior art keywords
value
buffer
address
generator
grid point
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
JP88258336A
Other languages
English (en)
Inventor
Douglas J Doornink
ダグラス・ジェームズ・ドーニック
John C Dalrymple
ジョン・シー・ダルリンプル
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.)
Tektronix Inc
Original Assignee
Tektronix Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22347319&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH01134579(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Tektronix Inc filed Critical Tektronix Inc
Publication of JPH01134579A publication Critical patent/JPH01134579A/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/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Portable Nailing Machines And Staplers (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、コンピュータ・グラフィック・システムにお
ける隠面除去方法に関する。
[従来の技術] コンピュータ・グラフィック・システムにおいて、画像
を陰極線管(CRT)又は他の表示器のスクリーン上に
表示している。一般に、x(水平)成分及びY(垂直)
成分を有するデジタル信号の制御により、CRTの電子
ビームを偏向するので、ラスタ・パターンに応じて、格
子点(画素)′の矩形配列のピクセルを行毎にアドレス
指定する。画像を表すデータは、ホスト・コンビネータ
内で発生し、このホスト・コンピュータからフレーム・
バッファにダウンロードする。フレーノ、・バッファの
メモリ記憶位置は、CRT表示の格子点と1対1で対応
する。以下、説明を明瞭にするため、フレーム・バッフ
ァのメモリ記憶位置が、表示の格子点の配列に対応する
矩形配列に物理的に配置されていると仮定する。
CRT電子ビームの偏向を制御するのに用いたデジタル
信号を用いて、フレーム・バッファのアドレス指定を制
御し、対応するメモリ記憶位置の内容に応じて、格子点
のピクセルにおける色を表示する。よって、フレーム・
バッファは、CRTが行う表示の仮想画像を含んでいる
。ホスト・コンピュータによりフレーム・バッファに与
えられたデータは、色領域で構成された画像を表す。
データ値をフレーム・バッファ・メモリにロードして色
領域を表す処理をタイリングと呼ぶ。以下の説明におい
て、タイリング動作を、特定格子点のタイリング及び3
角形のタイリングに関連させて考察する。しかし、これ
は、特定の格子点に対応するメモリ記憶位置のタイリン
グ、及び3角形内の格子点に対応するメモリ記憶位置の
タイリングに関する簡略化した方法を単に意図している
に過ぎない。
3次元空間の3角形面は、平面式にZ=AX+BY+C
及び3つの頂点の座標で定義できる。コンピュータ・グ
ラフィック・システムを用いて、これ、ら面を2次元表
示平面(Z=O)に投射することにより、3角形面の3
次元オブジェクトを表す。表示平面に投射した際、各3
角形面は、3角形又は線を形成する。投射が線の場合は
、これ以上考察しない。3次元空間の3角形面を定義す
る情報をホスト・コンピュータに特定し、ホスト・コン
ピュータは、この情報を用いて、対応する表示平面3角
形を定義する情報を発生する。ホスト・コンビ二一夕は
、描画エンジンがこの情報を利用できるようにし、この
描画エンジンを用いて、シェーディング輝度値をフレー
ム・バッファにロードする。一般に、ホスト・コンピュ
ータは、3角形平面を順次扱う。正確な表示を行うため
に、3次元オブジェクトを観察するときに、観察者から
離れた側のオブジェクトの表面は見えないので、これら
の面を表すデータをフレーム・バッファにロードしなく
てもよいという事実を考慮する必要がある。グラフィッ
ク・システムにおいて、これは、隠面除去により実行す
る。(表示平面の格子点に対応する)3角形面の点の輝
度値■をフレーム・バッファにロードする前に、表示平
面からの点の距離を表すZ値(Z n e w)を計算
し、その点用の別のバッファ(Zバッファ)に既に存在
するZ値(Zold)と比較する。Zバッファに蓄積で
きる距離値の範囲内で、表−水平面からの最大距離を表
す各格子点のZ値をZバッファに最初にロードする。Z
n ewがZoldよりも短い距離を表す場合、この輝
度値を、フレーム・バッファの対応メモリ記憶位置に書
込み、その記憶位置に既に蓄積されている任意の輝度値
に重ね書きする。
また、Znewを、Zバッファの対応記憶位置に書込み
Zoldに重ね書きする。そうでなければ、値Zold
がZバッファに残り、フレーム・バッファに蓄積された
輝度値は変化しない。隠面除去については、(1979
年にマグロウヒル・ブック・カンパニが発行した)二ニ
ーマン及びスボウル著の「会話型コンピュータ・グラフ
ィックの原理(Principles of Inte
ractive ComputerGraphics)
 Jの第2版第369ページに記載されている。
従来のグラフィック−システムの描画エンジンは、3角
形面をZ=0平面に投射して得た3角形の各頂点の座標
(X、Y)を表すデータ、Z及び■をX及びYの値に関
連させた関数を受ける。描画エンジンは、各格子点のZ
及び■の値、並びに3角形の内側の格子点の座標を発生
ずる。描画エンジンは、フレーム・バッファ及びZバッ
ファの両方と通信する。第1動作サイクルにおいて、描
画エンジンは、格子点の座標を計算し、第2動作サイク
ルで、その格子点のZnewを計算する。
第3サイクルにて、Zバッファから対応メモリ記憶位置
のZoldを読出し、第4サイクルで、ZoldをZn
ewと比較する。ZnewがZoldよりも短い距離な
らば、Zn ewを第5サイクルで、Zバッファに書き
込む。第6サイクルにて、■の値を同じ格子点に対して
計算し、第7サイクルにて、計算した値■を、フレーム
・バッファの対応メモリ記1.α位置に書き込む。Zn
 ewがZoldよりも遠い距離を表せば、描画エンジ
ンは、第5、第6及び第7サイクルをアイドリングする
よって、各格子点に対して、7動作サイクルを実行しな
ければならない。
1984年10月2日に発行された米国特許第4475
104号明細書は、表示プロセッサを用いて隠面除去を
実行する3次元グラフィック・システノ、を開示してい
る。
[発明が解決しようとする課題] 上述の従来のコンピュータ・グラフィック・システムで
は、隠面除去のステップが多く、時間がかかり、処理速
度が低かった。
したがって、本発明の目的は、高速で隠面処理を行う隠
面除去方法の提供にある。
口課題、を解決するだめの手段及び作用]本発明によれ
ば、複数の“アドレス指定可能なメモリ記1.α位置を
有するメモリ装置にロードする方法が得られる。この記
憶位置の各々は、X成分及びY成分を有するアドレス・
ワードにより別々に定義できる。メモリ記1.α位置は
、矩形配列内の格子点に夫々対応し、X方向のピッチは
、dXで、Y方向のピッチは、dYである。この方法で
は、第1格子点に対応するメモリ記憶位置を定義する第
1アドレスを発生ずる。X及びYの関数であるZの第1
の値を計算すると同時に、第2格子点に対応するメモリ
記憶位置を定義する第2アドレス・ワードを発生する。
Zの第1の値を第1格子点のZの前の値と比較すると同
時に、第3格子点に対応するメモリ記憶位置を定義する
第3アドレス・ワードを発生し、Zの第2の値を計算す
る。2の第1の値に、Zの前の値と所定関係があれば、
X及びYの関数である■の第1の値を、第1格子点に対
応するメモリ記憶位置にロードする。
本発明を最もよく理解すると共に、本発明をいかに実施
するかを示すために、以下、添付図を参照して、本発明
の好適な実施例を説明する。
[実施例コ 第1図は、本発明を実現するコンピュータ・グラフィッ
ク・システムのブロック図である。このシステムは、画
像プロセッサ(1)を具えており、このプロセッサ(1
)は、表示リストを受け、3角形を表す情報を発生し、
これら3角形を定義する情報をXYアドレス発生器(2
)に順次供給する。xYアドレス発生器(2)は、3角
形のタイリングをイネーブルする。この3角形の頂点は
、矩形格子の格子点にあり、この3角形は、最小縦座標
4tiYmin及び最大縦座標Ymax間に伸びる2つ
の対向する側線(siding)を有する。側f!AB
及びACBを有するかかる3角形を第2図に示す。
第2図に示す3角形の場合、YminO値は、ゼロのよ
うに適当に示す。
この3角形内の格子点を行毎に下から上にタイリングす
る。行は、左から右にタイリングしてもよいし、右から
左にタイリングしてもよい。側線の1つを「メジャー」
側線として選択する。この3角形をタイリングする間、
タイリングは、メジャー側線からその反対の「マイナー
」側線に進む。
一般に、メジャー側線は、少ない辺からなる側線とする
。よって、第2図の場合、側線ABをメジャー側線とし
て選択する。両方の側線が同じ数の辺を有するならば、
即ち、3角形の1辺が水平ならば、この辺は、格子行Y
max又はYminに沿って伸び、左側線をメジャー側
線として選択する。
グラフィック・システムは、Z発生器(4)、■発生器
(6) 、Zバッファ(7)、Z比較器(8)及びフレ
ーム・バッファ(9)も具えている。Zバッファ(7)
及びフレーム・バッファ(9)は、夫々、メモリ記憶位
置が矩形配列のメモリ(70)及び(90)、Xアドレ
ス・カウンタ(72)及び(92)、Yアドレス・カウ
ンタ(74)、(94)、及び1ビツト蓄積要素(DI
R)(76)、(96)から構成される。メモIJ(7
0)は、分離して図示していないが、5個のメモリ・バ
ンクを有するので、読出し動作及び条件付き書込み動作
を実行中、各メモリ・サイクルは、5クロツク・サイク
ル期間に対応する。ブロック(2)、(4)、(6)、
(7)、(8)及び(9)は、r」−カル表示バスを介
して通信をする。第1図のグラフィック・システムの配
線表示を簡単にするため、ローカル表示バスは表示せず
、種々のブロック間の夫々の接続のみを示す。
ローカル表示バスは、32ピツト・マルチプレクサド・
アドレス/データ・バスである。アドレス・サイクル期
間中、上位4ビツト(31〜28)は、次のデータ・サ
イクルを受けるブロックを特定し、次のビット (27
)はヘジテイト(hesitate)ビットであり、ビ
ット26〜24は、現在のベクトルが存在するオクタン
トを特定して、現在のベクトルのおおよその方向を表し
、ビット23〜12はYアドレスであり、ビット11〜
0はXアドレスである。タイリング動作において、2つ
の方向のみが可能であり、タイリングの方向が変化した
とき、ビット25及び24は変化しない。よって、ビッ
ト26がタイリングを右から左に行うか(ビット26を
セット)、左から右に行うか(ビット26をセットしな
い)を決める。制御ラインの状態に応じて、バスの情報
をアドレス又はデータに解釈(インターブリット)する
タイリングする3角形の各格子行に対して、XYアドレ
ス発生器(2)は、3角形のその行の格子点の座標(X
SY)を表すアドレス・ワードを発生する。これらアド
レスをZバッファ(7)及びフレーム・バッファ(9)
に供給し、Xアドレス・カウンタ(72)、(92)及
びYアドレス・カウンタ(74)、(94)に蓄積する
。蓄積要素(76)、(96)は、方向ビット (ビッ
ト26)を受ける。
3角形をタイリングするために、XYアドレス発生器(
2)、Z発生器(4)及びI発生器(6)を、先ず初期
状態にし、次に動作状態にする。この動作は、ステート
・マシン(12)(第3図)の制御の下に、マスク・ク
ロック発生器(14)が決めた連続クロック・サイクル
における所定の状態を介して連続的に行われる。
xYアドレス発生器(2)を第3図に詳細に示す。この
XYアドレス発生器(2)は、11個のレジスタ(20
2)〜(222)、3個のカウンタ(224)〜(22
8)、定数値(1)回路(230)、1ビツト蓄積要素
(HES)(232)、加算器(234)及び減算器(
236)を具えている。カウンタ(224)〜(228
)及びレジスタ(202)〜(222)は、画像プロセ
ッサ(ホスト・コンピユータ) (1)がマルチプレク
サ(MUX)(240)を介して供給した値により初期
化される。
XYアドレス発生器を初期化するために、画像プロセッ
サ(1)は、3角形の頂点ASB及びCの座標を計算し
、最小Y座標値Ymin及び最大Y座標値Ymaxを有
するベクトルがどれかを決め、また、3角形のどの側線
がメジャー側線かを決める。画像プロセッサ(1)は、
格子行Yminから上に伸びる2辺のクロス乗積も計算
し、このクロス乗積がメジャー側線はマイナー側線の右
側であることを示すと、画像プロセッサは、ロジックl
を蓄積要素(232)に蓄積する。
点A及びBのX座標を減算して、位DXMを発生し、点
A及びBのY座標を減算して、値DYMを発生する。同
様に、点A及びCのX及びY座標から、DXm及びDY
mの座標を計算する。画像プロセッサは、これら値DY
M及びDYmをカウンタ(224)及び(226)にロ
ードする。メジャー辺AB及びマイナー辺ACに対する
(DX/DY)の値を計算し、メジャー及びマイナー辺
に対するフロアの値(DX/DY)を計算する。
(数に与えたフロア演算子を、その数を越えない最大の
整数に戻す。よって、フロア1.2=1、フロア2.0
=2及びフロア−1,2=−2である。)その結果の値
sM及びsmをレジスタ(202)及び(204)にロ
ードする。レジスタ(206)及び(208)は、最低
格子行Yminと交差するメジャー辺及びマイナー辺に
おける格子点のX座標XMO及びXmOを受ける。第2
図に示した3角形の場合、XMO及びXmOの値は、点
への各X座標である。しかし、メジャー及びマイナー側
線が、最下位の格子行又は最上位の格子行のいずれかの
頂点と一致する必要はない。マルチプレクサ(242)
を介して、レジスタ(202)、(204)、(206
)及び(208)並びに定数回路(230>を減算器(
236)に接続する。
減算器(236)の出力は、マルチプレクサ(244)
に供給する。このマルチプレクサ(244)の出力端を
レジスタ(206)、(208)  及びカウンタ(2
28)に接続する。
画像プロセッサ(ホスト・コンピュータ) (1)は、
メジャー辺AB及びマイナー辺AC用の51DX及びD
Yを更に用いて、次のようにΔErrO1PInc及び
NIncの値を計算する。
PInc=AErrO =DX−sDY−DY NInc=DX−sDY これらの値をレジスタ(210)〜(220)にロード
する。レジスタ (222)には、’/m1n(第2図
の場合、0)をロードする。マルチプレクサ(24(i
)を介して、レジスタ (210)、(212)及び(
222)を加算器(234)の一方の入力端に接続し、
マルチプレクサ(248)を介して、レジスタ(214
)〜(220)を加算器(234)の他方の入力端に接
続する。この加算器(234)の出力をマルチプレクサ
(250)に供給し、その出力端をレジスタ(210)
、(212)及び(222)に接続する。
このようにXYアドレス発生器(2)を初期化すると、
ステート・マシン(12)は、XYアドレス発生器を動
作状態にし、XYアドレス発生器が、代わりに計算ルー
チン及びカウント・ダウン・ルーチンを実行する。計算
ルーチンの開始において、ステート・マシンは、AEr
rMi 及びAErrmi の符号ビットを調べる。こ
こで、iは、0以上の整数であり、格子行の数を表す。
計算ルーチンの第1クロツク・サイクル期間中、減算器
(236)は、AErrMi<0かErrMi>=0か
に応じて、sM又はS M +lをレジスタ(206)
の内容に加算して、X Mill の値を発生ずる。こ
こで、XMi+1は、(i+1)番目の格子行を有する
メジャー辺の実際の交点のフロアである。同時に、加算
器(234)は、AErrMiく0かAErrMi>=
0かに応じて、PlncM又はNIncMをレジスタ(
210>の内容に加算して、ΔE r r Mill 
の値を得る。カウンタ(224)の計数DYMを減分す
る。第2クロツク・サイクル期間中、AEr rmiS
sm、P lnCm及びNlncmを用いて対応する動
作を実行して、Xmi+l 及びAErrmi+1 の
値を与え、計数DYmを減分する。第3クロツク・サイ
クル期間中、加算器(234)がレジスタ(222)に
蓄積された値を増分して値i+lを戻し、同時に、減算
!(236/がXmi+1からXMi+1を減算し、そ
の差Hrzi+1をカウンタ(228)にロードする。
この値Hrzi+1は、X MillがXmi+1より
小さいか大きいかに応じて、格子点の(i+1)番目の
行のメジャー辺及びマイナー辺の間の格子点の数か、そ
の数の補数である。レジスタ(206)及び(222)
に蓄積された値をラッチ(252)及び(254)にロ
ードする。そして、計算ルーチンを完了し、XYアドレ
ス発生器(2)It、Zバッファ(7)及びフレーム・
バッファ(9)にアドレス・サイクルを与える。このア
ドレス・サイクルにおいて、(i+1)番目の格子行と
の側線ABの正確な交点のフロアの座標(X Mill
、i+1)を表すラッチ(252)及び(254)の値
をビット0〜11及び12〜23として、ローカル表示
バスに供給する。菩積要!(232)の内容は、ピット
27 (ヘジティト・ピット)の状態を決める。また、
カウンタ(228)の符号ビットの状態がビット26 
(方向ビット)の状態を決める。そして、ステート・マ
シンによりxYアドレス発生器がカウンタ・ダウン・ル
ーチンを実行する。
カウンタ・ダウン・ルーチン期間中、各クロック・サイ
クルで、カウンタ (228)に蓄積された計数を増分
又は減分し、XYアドレス発生器は、計数が増分又は減
分される毎にデータ・サイクルを出力する。データ・サ
イクル期間中のローカル表示バスに出力するデータ値を
!発生器が決める。
Zバッファ(7)及びフレーム・バッファ(9)は、新
たな行のタイリングがまさに開始するのを示すようにア
ドレス・サイクルを解釈し、XMi+1及びi−ト1の
値をXアドレス・カウンタ(72)、(92)及びYア
ドレス・カウンタ(74)、(94)にロードする。蓄
積要1(232)の状態を反映したビット27の値をス
デート・マシンに供給する。ビット2Gを!7積要素(
76)及び(96)にロードする。ビット26をセット
すると、それは、タイリングを右から左に(XMi+1
がXmi+l よりも大きい)行うことを示し、各デー
タ・サイクルでカウンタ(72)及び(92)を減分す
る。そうでなければ、これらカウンタは、各データ・サ
イクルで、増分する。ヘジテイト・ビット (ビット2
7)の値は、第1データ・サイクル期間中に受けたデー
タ値をメモ!J(TO)又は(90)に書き込む前に、
カウンタ(72)及び(92)を増分(減分)するかを
決める。ピット27がセットされないと、Zバッファ(
7)又はフレーム・バッファ(9)がデータ・サイクル
を受けたとき、X・アドレス・レジスタ (72)又は
(92)に蓄積された値を増分(減分)し、そのデータ
・サイクルに受けたデータ値を新たなアドレスが示す記
憶位置に書き込む。そうでなければ、Zバッファ又はフ
レーム・バッファが第1データ・サイクルを受けたとき
、Xアドレス・カウンタ(72)又は(92)にWlさ
れた値は変化せずにそのままで、そのデータ値は、元の
アドレスが指定している記憶位置に書き込まれる。そし
て、次で、各連続したデータ・サイクルに、Xアドレス
が増分(減分)され、そのデータ値は、新たなアドレス
が指定した記憶位置に(tき込まれる。第2図に示す3
角形の場合、ビット27はセットされず、数Hr z 
i+lは、行i+1にタイリングすべき格子点の数であ
り、タイ゛リングを左がら右に行う。各クロック・サイ
クルで、カウンタ(228)に蓄積された計数が減分す
る。
ビット27がセットされて、X Mi+lがX mi+
1の右であったことを示すと、数Hrzi+l は、タ
イリングすべき格子点の数の2の補数であり、タイリン
グを右から左に実行する。各クロック・サイクルで、カ
ウンタ(228)に蓄積された計数を増分する。
カウンタ(228)がカウント・ダウンのときにボロー
を示すか、カウント・アップのときにキャリーを示すと
、行(i+1)のタイリングが完了する。各場合におい
て、行(i+1)の左側線の正確な交点のフロアに1を
足したものから、その行の右側線の正確な交点のフロア
までの格子点全部をタイリングする。そして、XYアド
レス発生器は、計算ルーチンを再び実行し、XMi+2
及びHrzi+2を戻し、カウンタ(222)に蓄積さ
れた値を増分する。
” 計算ルーチンの各反復の第1及び第2クロツク・サ
イクルにて、レジスタDYM及びDYmの内容を夫々減
分する。レジスタDYM又はDYmの内容がOになると
、頂点に達し、同じ側線上の次の通用に、DY、PIn
cSNlnc及びAErrOの新たな値を初期化する。
そして、xYアドレス発生器(2)は、計算ルーチンの
他のシーケンス、及び別のシーケンスにおけるカウント
・ダウン・シーケンスを実行する。最後に、行Ymax
 −1用のレジスタに蓄積された値を用いて、xYアド
レス発生器が、行Ymax用のXM及びHr zの値を
発生ずる。頂点Bが格子点であり、整数のフロアが整数
自体なので、値XMは、頂点BOX座標である。また、
2つの側線が行Ymaxの頂点に一致するので、値Hr
zはゼロである。3角形が、行Ymaxの辺を具えてい
ると、この行用のHr zの値は、ゼロでない。
i=0に対して、Hr zの値を計算しないので、3角
形の最下位格子性は、タイリングしないことに留意され
たい。しかし、最上位行は、タイリングする。同様に、
右側線(第2図の場合、ACB)の格子性の正確な交点
のフロアにおける格子点をタイリングするが、左側線の
格子性の正確な交点のフロアにおける格子点は、タイリ
ングしない。
よって、例えば、モザイクにて3角形が隣接するとき、
2つの隣接する3角形間の境界における格子点は、1つ
の、ぞしてたった1つの3角形として処理される。
上述のXYアドレス発生器(2)は、1987年lO月
26日に出願した米国特許出願第113031号に詳細
に開示されている。
Z発生器(4)は、2バツフア・メモ!J(70)をア
ドレス指定するのに用いる6対の座標(X。
Y)用のZ(深さ)の値を発生し、同様に、■発生器(
6)は、6対の座標(XSY)の■ (シェーディング
輝度)の値を発生する。画像プロセッサ(1)は、Z及
び!を位置(X、Y)に関係付ける関数をZ及び1発生
器に特定する。Zの値をZバッファ(7)及びZ比較器
(8)に供給する。。
Zバッファの各メモリ記憶位置の内容は、表示平面から
の距離を表す。Zの増加する値は、表示平面の観察者か
ら離れる方向で、表示平面(Z=0)からの増加する距
離を表す。Zバッファ(7)は、Zバッファに蓄積でき
る距離の値の範囲内で表示平面からの最大距離を表す各
格子点のZ値を初めにロードする。Zの値が1つの格子
点用のZバッファにより利用可能なとき、X及びYアド
レス・レジスタ(72)及び(74)に蓄積された座標
(X、Y)を用いて、その格子点用のZバッファに′a
B1されたZの存在する値(Zold)を読出し、Z比
較器(8)を用いて、ZoldをZ発生器(4)による
Zの値(Z n e w)と比較する。ZnewがZo
ld以下ならば、Zn ewをZoldの代わりにZバ
ッファに書込み、■発生器(6)が供給したIの値をフ
レーム・バッファ(9)の対応メモリ記憶位置にロード
する。
詳細には第4図に示したZ発生器(4)は、3個のレジ
スタ(102)、(104)及び(106)を具えてい
る。これら3個のレジスタは、加算器(110)に出力
端が接続されたマルチプレクサ(108)に接続する。
第2マルチプレクサ(116)の設定に応じて、レジス
タ (112)又は(114)がこの加算器の第2人力
を与える。
加算器(110)の出力は、レジスタ(112)及び(
114)に供給し、レジスタ (114)は、ローカル
表示バスに接続する。
3角形面用のZn cwは、X及びYの両方の線形関数
なので、格子行での2つの隣接した格子点用のZnew
における差DZxは、Yから独立しており、隣接する格
子点打のXの同じ値の格子点用のZn ewにおける差
DZyは、Xから独立している。
格子点の(i+1)番目の行用のXYアドレス発生器(
2)が発生したXMi+l の値は、誤差値AErrM
i<Q又はAErrMi>=0に応じて、次式で表せる
XMi+1=XMi+s 又は XM 夏+l=  XMi+  s  +  1よって
、i番目行の第1格子点用のZnewの値、及び(i+
1)番目の行の第1格子点用のZnewの値の間の差は
、DZy+5DZx、又はDZy+ (s+1)DZx
である。
初期状態において、プロセッサは、レジスタ(102)
、(104)及び(106)に値DZx、DZy+5D
Zx及びDZy+ (s+1)DZxを・夫々ロードす
る。これら値は、プロセッサが、表示すべき3角形面の
3つの頂点の座標から計算する。また、プロセッサは、
3角形のメジャー側線の低い頂点の右側の第1格子点、
即ち、第2図の場合の点への右側の第1格子点に対する
Znewの値も計算する。この値は、DZxを点へのZ
newの値に加算して得る。この値ZMOをレジスタ 
(112)及び(114)にロードする。
!発生器(6)は、Zバッファ(4)と同じであり、頂
点A用のIの値及びDIx、DIyの値を基にして、各
座標対(X、Y)用のIの値を計算することを除いて、
同じに動作する。ZバッファがZnewの各位を発生ず
ると、■発生器が■の対応値を発生する。
初期化の後、Z及び■発生器は、動作状態を入力する。
第1クロツクの際、XYアドレス発生器がアドレス(X
ML Yl)を含むアドレス・サイクルの期間中、AE
rrMO<OかΔErrMo>=0かに応じて、Z発生
器のマルチプレクサ(108)は、レジスタ(104)
又は(106)を選択し、マルチプレクサ(11(i)
は、レジスタ(112)を選択する。加算器(110)
は、選択したレジスタ(104)又は(106)が与え
る値とレジスタ(112>が与える値ZMOとの和であ
り、点(XM1+ 1 、 Yl)用のZnewを表す
出力値を発生ずる。この値を、ZMlとしてのレジスタ
 (112)及びレジスタ(114)の両方に供給する
。XYアドレス発生器(2)は、データ・サイクルであ
り、このデータ・サイクルに応答して、Z発生器は、レ
ジスタ(114)に蓄積された値を出力し、■発生器は
、■の対応値を出力する。第2クロツク・サイクルにて
、マルチプレクサ(108)及び(116)は、レジス
タ(102)及び(114)を夫々選択し、これらレジ
スタにM glされた和をレジスタ(114)に書き戻
す。この値は、点(XMl+2、Yl)用のZn ew
を表ず。XYアドレス発生器が第2データ・サイクルで
あり、Z及びI発生器が点(XMl+2、Yl)用のZ
new及びIの値を出力する。これは、次の格子行用の
Zn ew及びIの値の発、生を開始すべき旨のZバッ
ファからのコマンドをZ及びI発生器が受けるまで、持
続する。かかるコマンドを受けた後の次のサイクルで、
ΔErrM1の符号に応じて、マルチプレクサ(108
)は、レジスタ (104)又は(106)を選択し、
マルチプレクサ(116)は、レジスタ(112)を選
択する。加算器(110)が与えた出力値を2M2 と
してレジスタ(112)に、そしてレジスタ(114)
に供給する。
行iにてタイリングすべき第1格子点がXMiであるよ
うに、3角形のメジャー側線がマイナー側線の右側であ
るならば、初期化期間中にプロセッサがレジスタ(11
2)にロードした値は、頂点A用のZの値に等しい。
Zバッファ(7)及びフレーム・バッファ(9)がxY
アドレス発生器(2)からのアドレス・サイクルを受け
るとき、値XMi+l及びYi+1をZバッファ及びフ
レーム・バッファのX及びYアドレス・カウンタにロー
ドする。Zバッファ及びフレーム・バッファがデータ・
サイクルを受けるときに、Xアドレス・カウンタ (7
2)及び(92)に蓄積された!a輩を増分又は減分す
るので、タイリングすべき格子点に対応するメモリ記憶
位置を連続的にアドレス指定する。カウンタ(72)に
蓄積された値がXMi+1+j  (ただし、jは整数
)ならば、メモリ・サイクルの最初の半分の期間中に、
記憶位置(X M++1+ J 1Yi+1) !: 
テl % リ(70)に蓄積されたZoldの値を、読
出し、Z比較器に供給する。Z比較器は、Zバッファか
ら受けた値Zold及びZnewの対応値を比較し、Z
new及びIによりZ比較器が通過させた条件書込みビ
ットを発生する。この条件書込みビットがセットされて
、Zn ewがZold以下であると、メモリ・サイク
ルの後半の半サイクル期間中に、Znewの値をZバッ
ファ(7)の対応記憶位置に書き込む。そうでなければ
、Zバッファに蓄積された値を変更しない。条件書込み
ビットにより、■の値をローカル表示バスに出力し、フ
レーム・バッファに送る。ここで、同様な条件書込み動
作をフレーム・バッファ・メモ!J(90)で実行する
Zバッファが所定の格子行用の最終データ・サイクルを
受けると、次の格子行用のアドレス・サイクルを受ける
。Zバッファは、Z及び1発生器にコマンドを出力して
、アドレス・サイクルに応答し、次の格子行用のZne
w及び工の値の発生を開始する。
本発明は、上述の実施例に限定されるものではなく、本
発明の要旨を逸脱することなく種々の変更が可能である
。例えば、Zの値は、表示平面及び3角形面の点との間
の距離の補数を表してもよい。この場合、Zの増加する
値は、表示平面からの減少する距離を表す。XYアドレ
ス発生器、Z発生器、Z比較器及びZバッファ及び/又
はフレーム・バッファのパイプライン構成は、上述のX
Yアドレス発生器及びZ発生器に限定されるものではな
い。同様に、XYアドレス発生器及びZ発生器の組合わ
せは、パイプライン構成で用いることに限定されるもの
でもない。
[発明の効果コ Z発生器(4)、1発生器(6)、Zバッファ(7) 
、Z比較器(8)並びにフレーム・バッファ(10)の
機能は、パイプラインなので、計数Hrzi+l が増
分(ビット26がセットされていない)するか、減分(
ビット26がセットされている)するときに、行の第1
格子点用のIの値がバイブラインを伝播する間における
各カウント・ダウン・ルーチンの初めを除いて、フレー
ム・バッファ(10)への輝度値の条件書込みを実行す
る。よって、フレーム・バッファへのロード動作を、従
来のシステムを用いるよりも高速に実行できる。
【図面の簡単な説明】
第1図は本発明を用いるコンピユータ・グラフィック・
システムのブロック図、第2図は格子点の矩形配列及び
格子点に頂点を有する3角形を示す図、第3図は第1図
で用いるXYアドレス発生器の詳細なブロック図、第4
図は第1図で用いるZ発生器の詳細なブロック図である
。 (1)は画像プロセッサ(ホスト・コンビ二−タ)、(
2)はXYアドレス発生器、(4)はZ発生器、(6)
は!発生器、(7)はZバッファ、(8)はZ比較器、
(9)はフレーム・バッファである。

Claims (1)

  1. 【特許請求の範囲】 1、矩形配列の各格子点に対応する記憶位置を有するZ
    バッファにZ値をロードする隠面除去方法において、 第1格子点に対応する上記Zバッファの記憶位置の第1
    アドレス・ワードを発生し、 上記第1格子点の第1Z値を計算すると同時に、第2格
    子点に対応する上記Zバッファの記憶位置の第2アドレ
    ス・ワードを発生し、 上記第1Z値を上記第1格子点の以前のZ値と比較する
    と同時に、第3格子点に対応する上記Zバッファの記憶
    位置の第3アドレス・ワードを発生すると共に、上記第
    2格子点の第2Z値を計算し、 上記比較に応じて選択的に、上記第1Z値を上記Zバッ
    ファの上記第1アドレス・ワードの記憶位置にロードす
    ることを特徴とする隠面除去方法。 2、上記比較に応じて選択的に、新たな輝度値を上記第
    1格子点に対応するフレーム・バッファの記憶位置にロ
    ードすることを特徴とする請求項1記載の隠面除去方法
JP88258336A 1987-10-25 1988-10-13 隠面除去方法 Pending JPH01134579A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US113045 1987-10-25
US07/113,045 US5084830A (en) 1987-10-26 1987-10-26 Method and apparatus for hidden surface removal

Publications (1)

Publication Number Publication Date
JPH01134579A true JPH01134579A (ja) 1989-05-26

Family

ID=22347319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP88258336A Pending JPH01134579A (ja) 1987-10-25 1988-10-13 隠面除去方法

Country Status (4)

Country Link
US (1) US5084830A (ja)
EP (1) EP0314368B1 (ja)
JP (1) JPH01134579A (ja)
DE (1) DE3854073T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4985854A (en) * 1989-05-15 1991-01-15 Honeywell Inc. Method for rapid generation of photo-realistic imagery
JPH07118025B2 (ja) * 1990-06-29 1995-12-18 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・グラフィックス処理方法及びシステム
US5265199A (en) * 1991-05-22 1993-11-23 Silicon Graphics, Inc. Method and apparatus for accomplishing Z-buffering by prediction
CA2112464C (en) * 1991-06-28 2002-05-14 Lim Hong Lip Improvements in visibility calculations for 3d computer graphics
US6046746A (en) * 1996-07-01 2000-04-04 Sun Microsystems, Inc. Method and apparatus implementing high resolution rendition of Z-buffered primitives
US6115047A (en) * 1996-07-01 2000-09-05 Sun Microsystems, Inc. Method and apparatus for implementing efficient floating point Z-buffering
JP3427973B2 (ja) * 1998-12-09 2003-07-22 日本電気株式会社 オブジェクト表示記述文書変換装置及びブラウザ
US8356162B2 (en) * 2008-03-18 2013-01-15 International Business Machines Corporation Execution unit with data dependent conditional write instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63241664A (ja) * 1987-03-30 1988-10-06 Toshiba Corp 奥行き情報バツフア制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5952380A (ja) * 1982-09-17 1984-03-26 Victor Co Of Japan Ltd 補間装置
US4609917A (en) * 1983-01-17 1986-09-02 Lexidata Corporation Three-dimensional display system
US4730261A (en) * 1983-10-25 1988-03-08 Ramtek Corporation Solids modelling generator
US4697178A (en) * 1984-06-29 1987-09-29 Megatek Corporation Computer graphics system for real-time calculation and display of the perspective view of three-dimensional scenes
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
US4684990A (en) * 1985-04-12 1987-08-04 Ampex Corporation Method and apparatus for combining multiple video images in three dimensions
US4679041A (en) * 1985-06-13 1987-07-07 Sun Microsystems, Inc. High speed Z-buffer with dynamic random access memory
US4719585A (en) * 1985-08-28 1988-01-12 General Electric Company Dividing cubes system and method for the display of surface structures contained within the interior region of a solid body
FR2586838B1 (fr) * 1985-08-30 1989-07-28 Labo Electronique Physique Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions
FR2594980A1 (fr) * 1986-02-21 1987-08-28 Gen Electric Processeur de visualisation pour un systeme de visualisation graphique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63241664A (ja) * 1987-03-30 1988-10-06 Toshiba Corp 奥行き情報バツフア制御装置

Also Published As

Publication number Publication date
DE3854073D1 (de) 1995-08-03
EP0314368B1 (en) 1995-06-28
DE3854073T2 (de) 1996-04-11
US5084830A (en) 1992-01-28
EP0314368A3 (en) 1991-02-06
EP0314368A2 (en) 1989-05-03

Similar Documents

Publication Publication Date Title
US5940091A (en) Three-dimensional graphic drawing apparatus wherein the CPU and the three-dimensional drawing mechanism access memory via a memory control unit
US5274760A (en) Extendable multiple image-buffer for graphics systems
KR101349171B1 (ko) 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법
KR910009101B1 (ko) 화상합성장치
EP0366463B1 (en) Method of shading a graphics image
US5898437A (en) Method for fast rendering of three-dimensional objects by generating lists of like-facing coherent primitives
US4967392A (en) Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
US4679041A (en) High speed Z-buffer with dynamic random access memory
WO1996031844A1 (fr) Systeme graphique
US5926182A (en) Efficient rendering utilizing user defined shields and windows
US5877779A (en) Method and apparatus for efficient rendering of three-dimensional scenes
EP0329101B1 (en) Three-dimensional graphic processing apparatus
US4951230A (en) Method and apparatus for tiling an image
KR910009102B1 (ko) 화상합성 장치
EP0377639B1 (en) Quadratic interpolation for shaded image generation
JPH01134579A (ja) 隠面除去方法
JP3089792B2 (ja) 画像データの隠面判別方式
JP3086426B2 (ja) オブジェクトのラスタ化方法及び装置
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
JPH0714029A (ja) 線描画装置及び方法
JP2899838B2 (ja) 記憶装置
JP2952585B1 (ja) 画像生成方法
JPH02132572A (ja) 画像表示装置
EP0314367A2 (en) Method and apparatus for tiling an image
JP3014395B2 (ja) 立体画像表示システム