JPH02132572A - 画像表示装置 - Google Patents
画像表示装置Info
- Publication number
- JPH02132572A JPH02132572A JP63285698A JP28569888A JPH02132572A JP H02132572 A JPH02132572 A JP H02132572A JP 63285698 A JP63285698 A JP 63285698A JP 28569888 A JP28569888 A JP 28569888A JP H02132572 A JPH02132572 A JP H02132572A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- pixel
- depth value
- value
- clipping
- 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
Links
- 239000000872 buffer Substances 0.000 claims abstract description 127
- 238000000034 method Methods 0.000 abstract description 68
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 101000680658 Homo sapiens Tripartite motif-containing protein 16 Proteins 0.000 description 4
- 102100022349 Tripartite motif-containing protein 16 Human genes 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 235000019832 sodium triphosphate Nutrition 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A.産業上の利用分野
この発明は画像表示装置に関し、特に任意の三次元の領
域へのクリッピングを簡易な構成で高速に実現できるよ
うにしたものである。
域へのクリッピングを簡易な構成で高速に実現できるよ
うにしたものである。
B.従来技術
従来、二次元のクリッピングについて、盛んに研究がな
され、色々な手法が考案されてきた。近年、CAD(コ
ンピュータ支援設計)やCG (:2冫ビュータ・グラ
フィックス)で三次元データの取扱いが一般的に行なわ
れるようになり、不必要なデータの削除や画像の加工の
ために三次元領域へのクリッピングが重要になっている
。三次元のクリッピングについても、いくつか手法が考
案されている。しかし、これらはピクセル毎の処理で済
まない手法であるため、ハードウェア化が難しく高速化
が困難である。すなわち、最近の高速三次元画像表示装
置はポリゴンをピクセル毎のデータに変換する高速ハー
ドウェアを持っているので、このハードウェア上で三次
元領域へのクリッピングの処理も同時に行なえるような
手法が望ましい。
され、色々な手法が考案されてきた。近年、CAD(コ
ンピュータ支援設計)やCG (:2冫ビュータ・グラ
フィックス)で三次元データの取扱いが一般的に行なわ
れるようになり、不必要なデータの削除や画像の加工の
ために三次元領域へのクリッピングが重要になっている
。三次元のクリッピングについても、いくつか手法が考
案されている。しかし、これらはピクセル毎の処理で済
まない手法であるため、ハードウェア化が難しく高速化
が困難である。すなわち、最近の高速三次元画像表示装
置はポリゴンをピクセル毎のデータに変換する高速ハー
ドウェアを持っているので、このハードウェア上で三次
元領域へのクリッピングの処理も同時に行なえるような
手法が望ましい。
しかし、従来の手法ではこれを満たしていない。
例えば、任意の凸の三次元領域にクリッピングする手法
としてCyrus−Beakアルゴリズムがある。これ
は領域の境界面の内向法線を使って線分をクリッピング
する手法で、これを使ってポリゴンからピクセルへの展
開時にクリッピングを実行しようとすると、ピクセル毎
にすべての境界面の内向法線を参照し内積計算をする必
要がある。これではピクセル毎の計算としては複雑すぎ
てハードウェア化は困難である。
としてCyrus−Beakアルゴリズムがある。これ
は領域の境界面の内向法線を使って線分をクリッピング
する手法で、これを使ってポリゴンからピクセルへの展
開時にクリッピングを実行しようとすると、ピクセル毎
にすべての境界面の内向法線を参照し内積計算をする必
要がある。これではピクセル毎の計算としては複雑すぎ
てハードウェア化は困難である。
tt オ、Cyrus−Beakアルゴリズムや他のク
リッピング手法の詳細については、例えばDavid
F.Rogersの”PROCEDURAL ELEM
ENTS FOR COMPUTERGRAPHICS
”McGrav−Hill Book Compan
y, 1985年のクリッピングの章を参照されたい。
リッピング手法の詳細については、例えばDavid
F.Rogersの”PROCEDURAL ELEM
ENTS FOR COMPUTERGRAPHICS
”McGrav−Hill Book Compan
y, 1985年のクリッピングの章を参照されたい。
C.発明が解決しようとする問題点
この発明は以上の事情を考慮してなされたものであり、
少ない計算量のピクセル毎の処理で高速に三次元のクリ
ッピングを施した画像を生成することのできる画像表示
装置を提供することを目的としている。
少ない計算量のピクセル毎の処理で高速に三次元のクリ
ッピングを施した画像を生成することのできる画像表示
装置を提供することを目的としている。
D.問題点を解決するための手段
この発明では、以上の目的を達成するために、表示物体
上の構成面のデプス値をピクセル毎に展開し、このデプ
ス値を参考にして陰面消去しながら画像生成するいわゆ
るZパッファ法(デプス・バッファ法)をクリッピング
に展開、拡張するようにしている。すなわちスクリーン
のピクセル毎にデプス値を格納する複数のバッファを用
意し、これらのパッファにクリッピング領域の境界面の
デプス値を表示物体の構成面の展開と同様の手順で展開
して格納する。その後、表示対象となる物体をピクセル
毎のデータに展開し、バッファ内の境界面のデプス値を
使って、そのデータがクリッビング領域内にある物体の
ものであるかどうか判定する。領域内ならば実際にスク
リーンに表示される可能性があるので、さらに陰面消去
してスクリーンに表示するかどうか決定する。領域外で
あれば、そのピクセルについてはその物体は表示される
可能性がないので、データを捨てる。この処理を物体毎
、ピクセル毎に繰り返して、三次元領域へのクリッピン
グが施された画像を生成する。
上の構成面のデプス値をピクセル毎に展開し、このデプ
ス値を参考にして陰面消去しながら画像生成するいわゆ
るZパッファ法(デプス・バッファ法)をクリッピング
に展開、拡張するようにしている。すなわちスクリーン
のピクセル毎にデプス値を格納する複数のバッファを用
意し、これらのパッファにクリッピング領域の境界面の
デプス値を表示物体の構成面の展開と同様の手順で展開
して格納する。その後、表示対象となる物体をピクセル
毎のデータに展開し、バッファ内の境界面のデプス値を
使って、そのデータがクリッビング領域内にある物体の
ものであるかどうか判定する。領域内ならば実際にスク
リーンに表示される可能性があるので、さらに陰面消去
してスクリーンに表示するかどうか決定する。領域外で
あれば、そのピクセルについてはその物体は表示される
可能性がないので、データを捨てる。この処理を物体毎
、ピクセル毎に繰り返して、三次元領域へのクリッピン
グが施された画像を生成する。
E.実施例
以下、この発明の一実施例について図面を参照しながら
説明しよう。なお、以下の実施例では、実用性の観点か
ら任意の凸の三次元領域へのクリッピングに限定し、さ
らにZバッファ法による陰面消去法との効率よい融合を
図り、ピクセル毎のバッファの数を極力減らしている。
説明しよう。なお、以下の実施例では、実用性の観点か
ら任意の凸の三次元領域へのクリッピングに限定し、さ
らにZバッファ法による陰面消去法との効率よい融合を
図り、ピクセル毎のバッファの数を極力減らしている。
しかし、ピクセル毎のバッファの数に制限を設けなけれ
ば、凹の領域を含む任意の三次元領域へのクリッピング
が可能である。また、従来の高速画像表示装置と同様に
、曲面は複数のポリゴン(多角形)で近似されているも
のとする。
ば、凹の領域を含む任意の三次元領域へのクリッピング
が可能である。また、従来の高速画像表示装置と同様に
、曲面は複数のポリゴン(多角形)で近似されているも
のとする。
El.クリッピング に関する 条件三次元凸クリ
ッピング領域と視線は二回交わるか、交わらないかのい
ずれかである(第1図参照)。ただし、境界は領域に含
まないものとする。
ッピング領域と視線は二回交わるか、交わらないかのい
ずれかである(第1図参照)。ただし、境界は領域に含
まないものとする。
ある物体上の一点がクリッピング領域内にあり、実際に
スクリーン上のあるピクセルに投影されて表示される場
合は、そのピクセルを通る視線はクリッピング領域と二
回交わっており、投影される点のデプス値はその二つの
交点のデプス値の間の値でなくてはならない。
スクリーン上のあるピクセルに投影されて表示される場
合は、そのピクセルを通る視線はクリッピング領域と二
回交わっており、投影される点のデプス値はその二つの
交点のデプス値の間の値でなくてはならない。
もう少し具体的に例を挙げて説明する。今、第2図のよ
うな直方体をクリッピング領域とし、その内部の物体の
みを表示するものとし、物体上の点Pがスクリーン上の
点Sに投影されるとする。
うな直方体をクリッピング領域とし、その内部の物体の
みを表示するものとし、物体上の点Pがスクリーン上の
点Sに投影されるとする。
あらかじめクリッピング領域の直方体と点Sを通る視線
との2交点L1、L2のデプス値ZLI、ZL2を点S
のピクセルに対して求めて保持してあれば、点Pのデプ
ス値をZPとして、ZLI<ZP<ZL2 という条件が成立する点Pのみをスクリーンへの表示対
象とすればよい。よって、図中の点Q, Hのような点
は条件を満たさず表示されない。なお今後、デプス値は
小さいほど手前側を示すと決めておく。
との2交点L1、L2のデプス値ZLI、ZL2を点S
のピクセルに対して求めて保持してあれば、点Pのデプ
ス値をZPとして、ZLI<ZP<ZL2 という条件が成立する点Pのみをスクリーンへの表示対
象とすればよい。よって、図中の点Q, Hのような点
は条件を満たさず表示されない。なお今後、デプス値は
小さいほど手前側を示すと決めておく。
E2.クリッピング
節E1に従ってクリッピングを行なうためには明らかに
、ピクセル毎にデプス値を格納するバッファがZLI、
ZL2に対応して二つ必要であるが、後ろ側の点のバッ
ファつまりZL2に対応するバッファは、従来の陰面陰
線消去のためのZバッファで兼用できる。そこで、ピク
セル毎にZLIに対応するデプス値を格納するバッファ
を設けることにし、Lバッファ(リミットZバッファ)
と呼ぶことにする。結局、各ピクセルはカラー・バッフ
ァ、Zバッファ、Lバッファで構成される(第3図参照
)。以下、クリッピング手法を二通り示す。手法(−)
は計算量の少なさを特徴としており、手法(二)は複数
のクリッピング領域を用いると、それらの共通領域への
クリッピングが行なえることを特徴としている。
、ピクセル毎にデプス値を格納するバッファがZLI、
ZL2に対応して二つ必要であるが、後ろ側の点のバッ
ファつまりZL2に対応するバッファは、従来の陰面陰
線消去のためのZバッファで兼用できる。そこで、ピク
セル毎にZLIに対応するデプス値を格納するバッファ
を設けることにし、Lバッファ(リミットZバッファ)
と呼ぶことにする。結局、各ピクセルはカラー・バッフ
ァ、Zバッファ、Lバッファで構成される(第3図参照
)。以下、クリッピング手法を二通り示す。手法(−)
は計算量の少なさを特徴としており、手法(二)は複数
のクリッピング領域を用いると、それらの共通領域への
クリッピングが行なえることを特徴としている。
クリッピング (一)
手順を順に述べると、
(1)クリッピング領域の境界面を見える境界面( F
B P : Front−facing Bound
ary Polygon)つまり視点から見て手前側の
境界面と見えない境界面( B B P : Back
−facing Boundary Polygon)
つまり視点から見て後ろ側の境界面とに分ける。第4図
を使ってもう少し説明する。六面体ABCDEFGHの
内部がクリッピング領域で、スクリーンにこの6面体を
仮に表示した場合に第4図のように見えるとする。図中
の点線は他の面の裏側で実際には表示されない。四角形
ABCD,BCGF1CDHGの三つがFBPで四角形
ABFE,EFGH,ADHEの三つがBBPである。
B P : Front−facing Bound
ary Polygon)つまり視点から見て手前側の
境界面と見えない境界面( B B P : Back
−facing Boundary Polygon)
つまり視点から見て後ろ側の境界面とに分ける。第4図
を使ってもう少し説明する。六面体ABCDEFGHの
内部がクリッピング領域で、スクリーンにこの6面体を
仮に表示した場合に第4図のように見えるとする。図中
の点線は他の面の裏側で実際には表示されない。四角形
ABCD,BCGF1CDHGの三つがFBPで四角形
ABFE,EFGH,ADHEの三つがBBPである。
(2)カラー・バッファと2バッファとLバッファをす
べてのピクセルについて適当な値に初期化する。例えば
、カラー・バッファは背景色に、Zバッファは最遠点の
値に、Lバッファは最近点の値に初期化する。
べてのピクセルについて適当な値に初期化する。例えば
、カラー・バッファは背景色に、Zバッファは最遠点の
値に、Lバッファは最近点の値に初期化する。
(3)Zバッファ法等で用いる通常のポリゴン展開法で
、FBPのすべてのポリゴンをピクセル毎のデータに展
開する。この時、カラー・バッファとZバッファは変更
せずに、ピクセルにおけるデプス値がそのピクセルのL
バッファの現在の値より遠くにあることを示す値であっ
たときのみ、Lバッファの値を新しいデプス値で更新す
る。同様に、BBPのポリゴンもすべてピクセル毎のデ
ータに展開する。この時、カラー・バッファとLバッフ
ァは変更せずに、ピクセルにおけるデプス値がそのピク
セルのZバッファの現在の値より手前にあることを示す
値であったときのみ、2バッファの値を新しいデプス値
で更新する。
、FBPのすべてのポリゴンをピクセル毎のデータに展
開する。この時、カラー・バッファとZバッファは変更
せずに、ピクセルにおけるデプス値がそのピクセルのL
バッファの現在の値より遠くにあることを示す値であっ
たときのみ、Lバッファの値を新しいデプス値で更新す
る。同様に、BBPのポリゴンもすべてピクセル毎のデ
ータに展開する。この時、カラー・バッファとLバッフ
ァは変更せずに、ピクセルにおけるデプス値がそのピク
セルのZバッファの現在の値より手前にあることを示す
値であったときのみ、2バッファの値を新しいデプス値
で更新する。
(4)FBPとBBPのポリゴンの展開に用いたのと同
じ方法で、すべての表示対象(ポリゴン、直線、点)を
ピクセル毎のデータに展開する。この時、Lバッファは
変更せずに、各ピクセルにおいて以下の三つの条件が成
立したときのみ、そのピクセルのカラー・バッファとZ
バッファの値を新たに展開された値で更新する。
じ方法で、すべての表示対象(ポリゴン、直線、点)を
ピクセル毎のデータに展開する。この時、Lバッファは
変更せずに、各ピクセルにおいて以下の三つの条件が成
立したときのみ、そのピクセルのカラー・バッファとZ
バッファの値を新たに展開された値で更新する。
a.展開されたデプス値がZバッファ内に保持された値
よりも手前を意味する値である。
よりも手前を意味する値である。
b.展開されたデプス値がLバッファ内に保持された値
よりも奥側を意味する値である。
よりも奥側を意味する値である。
C.そのピクセルがFBPまたはBBPのポリゴンの展
開時に少なくとも一度はアクセスされているつまり処理
対象となっている。
開時に少なくとも一度はアクセスされているつまり処理
対象となっている。
なお、この手法(−)においては複数のクリッピング領
域の組み合わせられた領域へのクリッピングも考慮され
ている。もし、クリッピング領域が単一の凸多面体領域
であれば、上記の手順(3)においてFBP18BPの
ポリゴンを展開する際、LバッファやZバッファの現在
の値と比較することなしに単に新しいデプス値をセット
すればよい。
域の組み合わせられた領域へのクリッピングも考慮され
ている。もし、クリッピング領域が単一の凸多面体領域
であれば、上記の手順(3)においてFBP18BPの
ポリゴンを展開する際、LバッファやZバッファの現在
の値と比較することなしに単に新しいデプス値をセット
すればよい。
また、手順(4)の条件Cをチェックするためにはピク
セル毎に手順(3)でそのピクセルに対し処理がなされ
たかどうかが記憶されてなければならない。このために
実現上は1ビットのフラグをピクセル毎に用意する。
セル毎に手順(3)でそのピクセルに対し処理がなされ
たかどうかが記憶されてなければならない。このために
実現上は1ビットのフラグをピクセル毎に用意する。
クリッピング (二)
手順を順に述べると、
(1)クリッピング領域の境界面を見える境界面( F
B P : Front−facing Bound
ary Polygon)つまり視点から見て手前側の
境界面と見えない境界面(BBP:Backイacin
g Boundary Polygon)つまり視点か
ら見て後ろ側の境界面とに分ける。
B P : Front−facing Bound
ary Polygon)つまり視点から見て手前側の
境界面と見えない境界面(BBP:Backイacin
g Boundary Polygon)つまり視点か
ら見て後ろ側の境界面とに分ける。
(2)境界面を以下のようにして拡張する。各FBPに
ついて、全スクリーンまたはスクリーン上にピューポー
トがある場合はビューポートを、対象としているFBP
を含む平面に逆方向に射影して、その像であるE F
B P (Extended Front−facin
gBoundary Polygon)を求める。この
時、逆射影するための視線とFBPを含む平面が視点よ
りもスクリーン側で交点を持たず、射影できない部分が
スクリーンまたはビューポート上にある場合がある。そ
の場合は、スクリーンまたはピューポート上の射影でき
ない部分についてはデプス値が最遠値をとるEFBPが
存在するとみなし、結局一枚のFBPから二枚のEFB
Pを作ることにする(第5図参照)。同様に、すべての
BBPについて%E B B P (Extended
Back−facing BoundaryPoly
gon) を求める。
ついて、全スクリーンまたはスクリーン上にピューポー
トがある場合はビューポートを、対象としているFBP
を含む平面に逆方向に射影して、その像であるE F
B P (Extended Front−facin
gBoundary Polygon)を求める。この
時、逆射影するための視線とFBPを含む平面が視点よ
りもスクリーン側で交点を持たず、射影できない部分が
スクリーンまたはビューポート上にある場合がある。そ
の場合は、スクリーンまたはピューポート上の射影でき
ない部分についてはデプス値が最遠値をとるEFBPが
存在するとみなし、結局一枚のFBPから二枚のEFB
Pを作ることにする(第5図参照)。同様に、すべての
BBPについて%E B B P (Extended
Back−facing BoundaryPoly
gon) を求める。
(3) カラー・バッファと2バッファとLバッファを
すべてのピクセルについて適当な値に初期化する。例え
ば、カラー・バッファは背景色に、Zバッファは最遠点
の値に、Lバッファは最近点の値に初期化する。
すべてのピクセルについて適当な値に初期化する。例え
ば、カラー・バッファは背景色に、Zバッファは最遠点
の値に、Lバッファは最近点の値に初期化する。
(4)Zバッファ法等で用いる通常のポリゴン展開法で
、EFBPのすべてのポリゴンをピクセル毎のデータに
展開する。この時、カラー・バッファと2バッファは変
更せずに、ピクセルにおけるデプス値がそのピクセルの
しバッファの現在の値より遠くにあることを示す値であ
ったときのみ、Lバッファの値を新しいデプス値で更新
する。同様に、EBBPのポリゴンもすべてピクセル毎
のデータに展開する。この時、カラー・パッフTとLバ
ッファは変更せずに、ピクセルにおけるデプス値がその
ピクセルのZバッファの現在の値より手前にあることを
示す値であったときのみ、Zバッファの値を新しいデプ
ス値で更新する。
、EFBPのすべてのポリゴンをピクセル毎のデータに
展開する。この時、カラー・バッファと2バッファは変
更せずに、ピクセルにおけるデプス値がそのピクセルの
しバッファの現在の値より遠くにあることを示す値であ
ったときのみ、Lバッファの値を新しいデプス値で更新
する。同様に、EBBPのポリゴンもすべてピクセル毎
のデータに展開する。この時、カラー・パッフTとLバ
ッファは変更せずに、ピクセルにおけるデプス値がその
ピクセルのZバッファの現在の値より手前にあることを
示す値であったときのみ、Zバッファの値を新しいデプ
ス値で更新する。
(5)EFBPとEBBPのポリゴンの展開に用いたの
と同じ方法で、すべての表示対象(ポリゴン、直線、点
)をピクセル毎のデータに展開する。この時、Lバッフ
ァは変更せずに、各ピクセルにおいて以下の二つの条件
が成立したときのみ、そのピクセルのカラー・バッファ
と2バッファの値を新たに展開された値で更新する。
と同じ方法で、すべての表示対象(ポリゴン、直線、点
)をピクセル毎のデータに展開する。この時、Lバッフ
ァは変更せずに、各ピクセルにおいて以下の二つの条件
が成立したときのみ、そのピクセルのカラー・バッファ
と2バッファの値を新たに展開された値で更新する。
a.展開されたデプス値がZバッフT内に保持された値
よりも手前を意味する値である。
よりも手前を意味する値である。
b.展開されたデプス値がLバッファ内に保持された値
よりも奥側を意味する値である。
よりも奥側を意味する値である。
E3. ゛のム
節E2では凸の三次元多面体領域内へのクリッピングを
行なう基本手法を述べた。これらの手法は少し手を加え
るだけで、スクリーン上のビューポートへのビューボー
ト・クリッピングや凸の三次元領域外へのクリッピング
やクリッピングを応用した画像の三次元での合成なども
行なえる。ここでは、そのための拡張法について述べる
。
行なう基本手法を述べた。これらの手法は少し手を加え
るだけで、スクリーン上のビューポートへのビューボー
ト・クリッピングや凸の三次元領域外へのクリッピング
やクリッピングを応用した画像の三次元での合成なども
行なえる。ここでは、そのための拡張法について述べる
。
ビューポート・クリッピング
手法(−)、(二)ともに、ZバッファとLバッファの
初期化の時に、ビューポートの外側のピクセルについて
はすべて、Zバッファのデプス値がLバッファの値の間
のデプス値より手前を意味する値であるように初期化す
る。これにより、ビューボートの外側のピクセルにおい
ては、LバッファとZバッファの値の間のデプス値は存
在せず、表示対象物体が書き込まれることがなくなり、
ビューボート・クリッピングが行なえる。
初期化の時に、ビューポートの外側のピクセルについて
はすべて、Zバッファのデプス値がLバッファの値の間
のデプス値より手前を意味する値であるように初期化す
る。これにより、ビューボートの外側のピクセルにおい
ては、LバッファとZバッファの値の間のデプス値は存
在せず、表示対象物体が書き込まれることがなくなり、
ビューボート・クリッピングが行なえる。
また、手法(一)に関しては、ピクセルを更新する際に
そのピクセルが境界面(FBPまたはBBP)の展開時
にアクセスされていなければならないという条件がある
。通常、これを調べるためにピクセル毎にフラグを用意
して、境界面の展開時に『アクセスした』という値にフ
ラグをセットする。よって、表示対象物体のピクセルへ
の展開の直前に、ビューボートの外側のすべてのピクセ
ルにおいて『アクセスしていない』という値にフラグを
セットすれば、ビューポート・クリッピングが行なえる
。
そのピクセルが境界面(FBPまたはBBP)の展開時
にアクセスされていなければならないという条件がある
。通常、これを調べるためにピクセル毎にフラグを用意
して、境界面の展開時に『アクセスした』という値にフ
ラグをセットする。よって、表示対象物体のピクセルへ
の展開の直前に、ビューボートの外側のすべてのピクセ
ルにおいて『アクセスしていない』という値にフラグを
セットすれば、ビューポート・クリッピングが行なえる
。
の外側へのクリッピング
凸の三次元多面体領域の外側は凹の領域であり、前にも
述べたようにデプス値を格納するバッファがピクセル毎
に視線とその領域との交点の数以上あれば、E2で述べ
た手順と同様にして、凹の領域のクリッピングが可能で
ある。凸の領域の外側の領域は視線と最高2回しか交わ
らない。しかし、この場合はE2の領域内へのクリッピ
ングとは異なり、通常の2バッファで後方の交点のデプ
ス値に対するバッファを兼用することはできない。もち
ろん、Lバッファに相当するものをピクセル毎に二つ用
意して、更新しようとするデータのデプス値が手前の値
よりもさらに手前にあるか、奥の値よりもさらに奥にあ
るかのどちらかの条件を満たし、その上にZバッファの
値より手前にある時のみ更新するという方法でこのクリ
ッピングが実行できる。けれども、ここではハードウエ
ア量のことも考慮して、少し手間は増えるが、Zバッフ
ァとLバッファそれぞれ一つずつで済む手法について述
べる。
述べたようにデプス値を格納するバッファがピクセル毎
に視線とその領域との交点の数以上あれば、E2で述べ
た手順と同様にして、凹の領域のクリッピングが可能で
ある。凸の領域の外側の領域は視線と最高2回しか交わ
らない。しかし、この場合はE2の領域内へのクリッピ
ングとは異なり、通常の2バッファで後方の交点のデプ
ス値に対するバッファを兼用することはできない。もち
ろん、Lバッファに相当するものをピクセル毎に二つ用
意して、更新しようとするデータのデプス値が手前の値
よりもさらに手前にあるか、奥の値よりもさらに奥にあ
るかのどちらかの条件を満たし、その上にZバッファの
値より手前にある時のみ更新するという方法でこのクリ
ッピングが実行できる。けれども、ここではハードウエ
ア量のことも考慮して、少し手間は増えるが、Zバッフ
ァとLバッファそれぞれ一つずつで済む手法について述
べる。
ここでは、手法(一)を手法の基本として使用し、手法
(−)をクリッピングのためのしバッファとZバッファ
への値の設定を変えて2回繰り返し実行することで凸の
三次元領域の外側の領域へのクリッピングを実現する。
(−)をクリッピングのためのしバッファとZバッファ
への値の設定を変えて2回繰り返し実行することで凸の
三次元領域の外側の領域へのクリッピングを実現する。
まず、1回目の実行では手法(一)の手順(3)におい
て、凸の三次元領域のBBPを展開して、Lバッファに
値をセットする。つまり、手順(3)のFBPをBBP
に置き換えて実行する。Zバッファについては、すべて
のピクセルにおいて最遠点の値にしておく。初期化で最
遠点の値になっていれば、Zパッファは手順(3)では
操作しない。残りは手法(一)のまま実行する。2回目
の実行では1回目の実行結果を残すため、(2)でカラ
ー・バッファの初期化は行なわない。手順(3)におい
て、今度はLバッファは最近点の値にしておき、凸の三
次元領域のFBPを展開してZバッファに値をセットす
る。また、手順(4)においてはC.の条件を外して、
二つの条件で実行する。これらの変更を行なって2回目
の手法(一)の実行を行なう。第6図のように、1回目
の実行で凸の三次元領域の後ろの境界面(B B P)
より後ろ側の物体が描画され、2回目の実行で手前の境
界面(FBP)より手前側と視線と凸の三次元領域が交
わらない領域にある物体が描画され、クリッピングが完
了する。
て、凸の三次元領域のBBPを展開して、Lバッファに
値をセットする。つまり、手順(3)のFBPをBBP
に置き換えて実行する。Zバッファについては、すべて
のピクセルにおいて最遠点の値にしておく。初期化で最
遠点の値になっていれば、Zパッファは手順(3)では
操作しない。残りは手法(一)のまま実行する。2回目
の実行では1回目の実行結果を残すため、(2)でカラ
ー・バッファの初期化は行なわない。手順(3)におい
て、今度はLバッファは最近点の値にしておき、凸の三
次元領域のFBPを展開してZバッファに値をセットす
る。また、手順(4)においてはC.の条件を外して、
二つの条件で実行する。これらの変更を行なって2回目
の手法(一)の実行を行なう。第6図のように、1回目
の実行で凸の三次元領域の後ろの境界面(B B P)
より後ろ側の物体が描画され、2回目の実行で手前の境
界面(FBP)より手前側と視線と凸の三次元領域が交
わらない領域にある物体が描画され、クリッピングが完
了する。
画 の三゛元合
ビューポート・クリッピングを応用すれば、平面的な画
像の重ね合せによる画像の合成は簡単に実現できる。こ
こで扱うのは三次元のモデルのある場所に他のモデルの
一部分を三次元的に埋め込んだ画像を生成する方法であ
る。一つの方法として、別々に画像をデプス値と一緒に
複数組生成して、ピクセル毎にデプス値を使ってどの絵
が可視であるか判定しながら合成する方法がある。しか
し、ここではバッファ類を一組で済ませる方法を述べる
。
像の重ね合せによる画像の合成は簡単に実現できる。こ
こで扱うのは三次元のモデルのある場所に他のモデルの
一部分を三次元的に埋め込んだ画像を生成する方法であ
る。一つの方法として、別々に画像をデプス値と一緒に
複数組生成して、ピクセル毎にデプス値を使ってどの絵
が可視であるか判定しながら合成する方法がある。しか
し、ここではバッファ類を一組で済ませる方法を述べる
。
埋め込もうとする部分の領域(ただし、ここでは凸に限
定)とそれを埋め込み先に置いた場合の外側の領域を、
それぞれ埋め込む部分を含むモデルと埋め込み先のモデ
ルのクリッピング領域として用いて、手法(一)と前記
領域の外側へのクリッピングの手法を利用する。計3回
、手法(一)を手直しした手順を繰り返すことにより、
合成が完了する。1回目の実行においては、埋め込み先
のモデル内の物体を描画対象として前記の外側の領域へ
のクリッピングの前半つまり手順の1回目を実行する。
定)とそれを埋め込み先に置いた場合の外側の領域を、
それぞれ埋め込む部分を含むモデルと埋め込み先のモデ
ルのクリッピング領域として用いて、手法(一)と前記
領域の外側へのクリッピングの手法を利用する。計3回
、手法(一)を手直しした手順を繰り返すことにより、
合成が完了する。1回目の実行においては、埋め込み先
のモデル内の物体を描画対象として前記の外側の領域へ
のクリッピングの前半つまり手順の1回目を実行する。
2回目の実行においては、埋め込む部分を含むモデル内
の物体を描画対象として埋め込もうとする部分の領域を
クリッピング領域として用いて、カラー・バッファの初
期化だけは行なわないで手法(一)を実行する。ただし
、クリッピング領域の境界面がスクリーン上で1回目と
一致するように座標変換しておく。3回目の実行におい
ては、再び、埋め込み先のモデル内の物体を描画対象と
して前記の外側の領域へのクリッピングの後半つまり手
順の2回目を実行する。この手順により、第7図のよう
に三次元的に合成された画像が生成できる。
の物体を描画対象として埋め込もうとする部分の領域を
クリッピング領域として用いて、カラー・バッファの初
期化だけは行なわないで手法(一)を実行する。ただし
、クリッピング領域の境界面がスクリーン上で1回目と
一致するように座標変換しておく。3回目の実行におい
ては、再び、埋め込み先のモデル内の物体を描画対象と
して前記の外側の領域へのクリッピングの後半つまり手
順の2回目を実行する。この手順により、第7図のよう
に三次元的に合成された画像が生成できる。
E4.システムの概要
第8図はこの発明の実施例のシステム構成を示している
。以下では主な部分をハードウェアで実現したシステム
について述べているけれども、節E2で述べた手法をそ
のままソフトウェアで実現できることはもちろんである
。このシステムでは節E2で述べた手法にスキャンライ
ン法を組み合わせ、ZパッファとLバッファの量をスキ
ャンライン1本分のピクセル数に抑えている。また、ス
パン(ポリゴンのスキャンラインに掛かっている部分)
をピクセルに展開する処理は、スキャンライン上のピク
セル数分の処理装置(ピクセル・プロセッサ)を持つピ
クセル・プロセッサ・アレイで高速並列処理している。
。以下では主な部分をハードウェアで実現したシステム
について述べているけれども、節E2で述べた手法をそ
のままソフトウェアで実現できることはもちろんである
。このシステムでは節E2で述べた手法にスキャンライ
ン法を組み合わせ、ZパッファとLバッファの量をスキ
ャンライン1本分のピクセル数に抑えている。また、ス
パン(ポリゴンのスキャンラインに掛かっている部分)
をピクセルに展開する処理は、スキャンライン上のピク
セル数分の処理装置(ピクセル・プロセッサ)を持つピ
クセル・プロセッサ・アレイで高速並列処理している。
この画像表示装置の基本的な機能は陰面消去、グーロー
・シェーディング及び三次元領域へのクリッピングであ
る。なお、以下のシステムは手法(−)、(二)の両方
に対応している。
・シェーディング及び三次元領域へのクリッピングであ
る。なお、以下のシステムは手法(−)、(二)の両方
に対応している。
ホスト・コンピュータ1上ではグラフィックス・アブリ
ケーシロンが実行され、ジオメトリック・プロセッサ2
にワールド座標表示のポリゴン・データ、すなわちポリ
ゴンの各頂点の座標及び色情報と、手前の境界面(FB
P)、後ろの境界面(BBP)のデータ、すなわち境界
面の各頂点の座標が供給されている。ジオメトリック・
プロセッサ2はワールド座標を透視変換、スケール変換
して、スクリーン上の座標及びデプス値に変換する。ま
た、手法(二)の場合はFBP1BBPからEFBPX
EBBPへの変換も行なう。スパン・データ生成部3は
DDA (デジタル・ディファレンシャル・アナライザ
)等の手法でスクリーン上のポリゴン・データからその
ポリゴンが掛かっているスキャンライン毎のスパン・デ
ータを生成している。
ケーシロンが実行され、ジオメトリック・プロセッサ2
にワールド座標表示のポリゴン・データ、すなわちポリ
ゴンの各頂点の座標及び色情報と、手前の境界面(FB
P)、後ろの境界面(BBP)のデータ、すなわち境界
面の各頂点の座標が供給されている。ジオメトリック・
プロセッサ2はワールド座標を透視変換、スケール変換
して、スクリーン上の座標及びデプス値に変換する。ま
た、手法(二)の場合はFBP1BBPからEFBPX
EBBPへの変換も行なう。スパン・データ生成部3は
DDA (デジタル・ディファレンシャル・アナライザ
)等の手法でスクリーン上のポリゴン・データからその
ポリゴンが掛かっているスキャンライン毎のスパン・デ
ータを生成している。
ピクセル・プロセッサ・アレイ5はスキャンライン法に
基づきスキャンライン毎にスパン・データをまとめて処
理する。よって、スパン・データ生成部3はスパン・デ
ータを表示リスト・メモリ4に出力する際に、パケット
・ソート法等を用いてスパン・データがスキャンライン
毎にまとまるようにする。つまり、表示リスト・メモリ
4はスパン・データをスキャンライン毎にまとめるため
のワーク・エリアである。スキャンライン毎にまとまっ
たスパン・データを1本のスキャンライン内で最初にF
BPのスパン・データ、次にBBPのスパン・データ、
次に表示対象すべてのスパン・データという順序(第9
図)でピクセル・プロセッサ・アレイ5に入力する。ピ
クセル・プロセッサ・アレイ5はE2で述べた手法に従
って、スパン・データを処理する。スキャンライン1本
分のスパン・データの処理が済んだら、結果のピクセル
毎の色情報がフレーム・バッファ6に出力される。
基づきスキャンライン毎にスパン・データをまとめて処
理する。よって、スパン・データ生成部3はスパン・デ
ータを表示リスト・メモリ4に出力する際に、パケット
・ソート法等を用いてスパン・データがスキャンライン
毎にまとまるようにする。つまり、表示リスト・メモリ
4はスパン・データをスキャンライン毎にまとめるため
のワーク・エリアである。スキャンライン毎にまとまっ
たスパン・データを1本のスキャンライン内で最初にF
BPのスパン・データ、次にBBPのスパン・データ、
次に表示対象すべてのスパン・データという順序(第9
図)でピクセル・プロセッサ・アレイ5に入力する。ピ
クセル・プロセッサ・アレイ5はE2で述べた手法に従
って、スパン・データを処理する。スキャンライン1本
分のスパン・データの処理が済んだら、結果のピクセル
毎の色情報がフレーム・バッファ6に出力される。
ピクセル・プロセッサ・アレイ5は次々にスキャンライ
ンの処理を行ない、1スクリーン分の処理を終えると画
像が完成する。
ンの処理を行ない、1スクリーン分の処理を終えると画
像が完成する。
処理の中心になっているピクセル・プロセッサ・アレイ
5における処理について、もう少し詳しく述べることに
しよう。まず、スバンデータと表記法を説明する。スキ
ャンライン単位で処理を行なうので、各ポリゴンのある
スキャンライン上のデータ(スパンデータ)として以下
のものを用いることとする。
5における処理について、もう少し詳しく述べることに
しよう。まず、スバンデータと表記法を説明する。スキ
ャンライン単位で処理を行なうので、各ポリゴンのある
スキャンライン上のデータ(スパンデータ)として以下
のものを用いることとする。
(Attr,XL,XR,ZL,dZ.IL,dI)X
L,XRはスパンの両端のX座標を表わし、今は便宜上
それぞれ左端、右端とする。ZL1 ILはそれぞれX
Lにおけるデプス値、輝度値(カラー表示の場合は三原
色に応じて三つの輝度値を必要とするが、ここでは一つ
に略記する)を表わす。
L,XRはスパンの両端のX座標を表わし、今は便宜上
それぞれ左端、右端とする。ZL1 ILはそれぞれX
Lにおけるデプス値、輝度値(カラー表示の場合は三原
色に応じて三つの輝度値を必要とするが、ここでは一つ
に略記する)を表わす。
dZ,dlはXL側からXR側へスキャンライン上で、
1ピクセルずれたときのデプス値、輝度値の変化量(差
分二線形補完なので定数)を表わす。
1ピクセルずれたときのデプス値、輝度値の変化量(差
分二線形補完なので定数)を表わす。
よって、スバンデータの展開はXLからXRに向かって
、デプス値と輝度値にそれぞれdZ1dIをピクセル毎
に加算することによって行なわれる。
、デプス値と輝度値にそれぞれdZ1dIをピクセル毎
に加算することによって行なわれる。
FBP.!:BBPと普通のポリゴンを区別したり、ピ
クセル・プロセッサ・アレイの初期化や出力のための若
干の情報を付加したりするために、属性項A t t
r (attribute) が含まれている。At
trの実際に取りうる値(属性)は以下のものである。
クセル・プロセッサ・アレイの初期化や出力のための若
干の情報を付加したりするために、属性項A t t
r (attribute) が含まれている。At
trの実際に取りうる値(属性)は以下のものである。
OP:クリッピング領域の境界面でない普通のポリゴン
のスパン(Ordinary Polygon)FP:
クリッピング領域の手前側の境界面(FBP) BP:クリッピング領域の後ろ側の境界面(BBP) IT:ピクセル・プロセッサへの初期化指令(Init
ialize Token)OT:ピクセル・プロセッ
サへの出力指令(Output Token) NT:ピクセル・プロセッサへの無動作指令(No o
peration Token)手法(二)で用いられ
るEFBP1EBBPはそれぞれFP,BPの属性で兼
用される。なお、AttrがIT10T1NTのスパン
−データでは他のスパン・データの要素は意味を持たず
、FP,BPのスパン・データではIL1cllは意味
を持たない。スキャンライン毎に第9図のような順序で
ピクセル・プロセッサ・アレイに入力されて、処理され
る。
のスパン(Ordinary Polygon)FP:
クリッピング領域の手前側の境界面(FBP) BP:クリッピング領域の後ろ側の境界面(BBP) IT:ピクセル・プロセッサへの初期化指令(Init
ialize Token)OT:ピクセル・プロセッ
サへの出力指令(Output Token) NT:ピクセル・プロセッサへの無動作指令(No o
peration Token)手法(二)で用いられ
るEFBP1EBBPはそれぞれFP,BPの属性で兼
用される。なお、AttrがIT10T1NTのスパン
−データでは他のスパン・データの要素は意味を持たず
、FP,BPのスパン・データではIL1cllは意味
を持たない。スキャンライン毎に第9図のような順序で
ピクセル・プロセッサ・アレイに入力されて、処理され
る。
次にピクセル・プロセッサ・アレイを説明する。
第10図にピクセル・プロセッサ・アレイの構成を示し
、第11図にピクセル・プロセッサの構成を示す。ピク
セル・プロセッサ拳アレイはピクセル・プロセッサがス
キャンライン上のピクセル数(例えば、1024個)だ
け連なった構造を持っており、ピクセル・プロセッサは
前段のピクセル・プロセッサからデータをもらい、処理
をして、次段のピクセル・プロセッサにデータをわたす
。すべてのピクセル・プロセッサは同一クロックで同期
しながら、並列に動作する。これにより、クロック毎に
一つのスパン・データをピクセル・プロセッサ・アレイ
に入力できる。
、第11図にピクセル・プロセッサの構成を示す。ピク
セル・プロセッサ拳アレイはピクセル・プロセッサがス
キャンライン上のピクセル数(例えば、1024個)だ
け連なった構造を持っており、ピクセル・プロセッサは
前段のピクセル・プロセッサからデータをもらい、処理
をして、次段のピクセル・プロセッサにデータをわたす
。すべてのピクセル・プロセッサは同一クロックで同期
しながら、並列に動作する。これにより、クロック毎に
一つのスパン・データをピクセル・プロセッサ・アレイ
に入力できる。
第11図に沿ってピクセル・プロセッサの説+1Jlを
する。
する。
アドレス部8はピクセル・プロセッサ毎に固有の識別番
号(pixel ID) を持っており、その値はスキ
ャンライン上でのX座標に対応している。つまり、pi
xel IDが0番のピクセル・プロセッサはスキャン
ライン上で一番最初のピクセル(ここでは、左端とする
)担当のピクセル・プロセッサであり、100番のピク
セル・プロセッサは101番目の物である。スキャンラ
インが1024個のピクセルから成るとすると、pix
el IDは0から1023までとなる。アドレス部8
はこのpixel IDを使って、入力されるスパン・
データのXL1XRの間に自分の担当するピクセルが含
まれているかチェックする。すなわち、 XL,1pixel ID≦XR の条件をチェックする。また、アドレス部は入力された
XL1XRの値をそのまま次段のピクセル・プロセッサ
に出力する。
号(pixel ID) を持っており、その値はスキ
ャンライン上でのX座標に対応している。つまり、pi
xel IDが0番のピクセル・プロセッサはスキャン
ライン上で一番最初のピクセル(ここでは、左端とする
)担当のピクセル・プロセッサであり、100番のピク
セル・プロセッサは101番目の物である。スキャンラ
インが1024個のピクセルから成るとすると、pix
el IDは0から1023までとなる。アドレス部8
はこのpixel IDを使って、入力されるスパン・
データのXL1XRの間に自分の担当するピクセルが含
まれているかチェックする。すなわち、 XL,1pixel ID≦XR の条件をチェックする。また、アドレス部は入力された
XL1XRの値をそのまま次段のピクセル・プロセッサ
に出力する。
アトリビュート部9は入力されるスパン・データのAt
trの部分を解析し、ピクセル・プロセッサの他の部分
の動作をコントロールする。また、アトリピュート部は
入力されたAttrの値をそのまま次段に出力する。
trの部分を解析し、ピクセル・プロセッサの他の部分
の動作をコントロールする。また、アトリピュート部は
入力されたAttrの値をそのまま次段に出力する。
デプス部10はZバッファとLバッファを持っており、
デプス値に関する条件のチェックとZバッファ、Lバッ
ファの管理とデプス値の補完を行なう。デプス値に関す
る条件のチェックとZバッファ、Lバッファの管理につ
いては、Attrの値によってデプス部の動作が異なる
ので、Attrの値別に記述する。Zバッファ、Lバッ
ファの現在の値をそれぞれZ bur1Z Lとし
、ピクセル・プロセッサに入力されるスパン・データの
デプス値を2とする。
デプス値に関する条件のチェックとZバッファ、Lバッ
ファの管理とデプス値の補完を行なう。デプス値に関す
る条件のチェックとZバッファ、Lバッファの管理につ
いては、Attrの値によってデプス部の動作が異なる
ので、Attrの値別に記述する。Zバッファ、Lバッ
ファの現在の値をそれぞれZ bur1Z Lとし
、ピクセル・プロセッサに入力されるスパン・データの
デプス値を2とする。
(1)AttrがOT,NTのとき:
何もしない。
(2)AttrがITのとき:
Zバッファ、Lバッファを初期化する。
(3)AttrがFPのとき:
Z>Z Lの条件をチェックし、条件を満たしていれ
ば、LバッファをZで更新する。
ば、LバッファをZで更新する。
(4)AttrがBPのとき:
Z≦Z bufの条件をチェックし、条件を溝たして
いれば、ZバッファをZで更新する。
いれば、ZバッファをZで更新する。
(4)AttrがOPのとき:
Z L<Z:aZ bufの条件をチェックし、条
件を溝たしていれば、ZバッファをZで更新する。
件を溝たしていれば、ZバッファをZで更新する。
また、デプス値の補完に関しては、入力スパン・データ
のピクセル毎のデプス値の変化量をdZとすると、デプ
ス部はアドレス部の条件チェックが溝たされていなけれ
ば、デプス値としてZをそのまま次段のピクセル・プロ
セッサに出力し、満たされていれば% Z+dZを次段
に出力する。デプス値の変化量としては条件にかかわら
ず、dZをそのまま次段に出力する。
のピクセル毎のデプス値の変化量をdZとすると、デプ
ス部はアドレス部の条件チェックが溝たされていなけれ
ば、デプス値としてZをそのまま次段のピクセル・プロ
セッサに出力し、満たされていれば% Z+dZを次段
に出力する。デプス値の変化量としては条件にかかわら
ず、dZをそのまま次段に出力する。
アクセス・コントロール部11BAF
(Boundary polygon Access
Flag) N O A F(Ordinary po
lygon Access Flag)の二つのフラグ
を持っている。BAFは手法(−)の手順(4)のC.
の条件チェックに使うためのフラグで、OAFはE3(
二)、(三)のような手法を実現する際に用いるフラグ
である。アクセス・コントロール部はBAF,OAFの
管理を行なう。動作はAttrの値によって異なるので
、値ごとに述べる。
Flag) N O A F(Ordinary po
lygon Access Flag)の二つのフラグ
を持っている。BAFは手法(−)の手順(4)のC.
の条件チェックに使うためのフラグで、OAFはE3(
二)、(三)のような手法を実現する際に用いるフラグ
である。アクセス・コントロール部はBAF,OAFの
管理を行なう。動作はAttrの値によって異なるので
、値ごとに述べる。
(1)AttrがNTのとき:
何もしない。
(2)AttrがITのとき:
BAF10AFを0に初期化する。
(3)AttrがOTのとき:
OAFをアレイ外部に出力する。
(4)AttrがFP1BPのとき:
アドレス部の条件を満たしていれば、BAFに1をセッ
トする。
トする。
(5)AttrがOPのとき:
アドレス部とデプス部の条件とBAF= 1を共に満た
していれば、OAFに1をセットする。
していれば、OAFに1をセットする。
OAFの使用法を述べる。ピクセル・プロセッサ・アレ
イがスキャンライン法に基づいているため、E3(二)
、(三)のように手法(一)の変形したものを繰り返し
て実行する手法はピクセル・プロセッサ・アレイ上では
実現が難しい。そこで、フレーム・バッファ上で最終的
な画像を合成することにして、この困難を回避する。つ
まり、画像の合成等を行なうときは、ピクセル・プロセ
ッサ・アレイからフレーム・バッファへ輝度値を出力す
,るときに、OAFに従って、OAFが1のピクセルの
みをフレーム・バッファ上で更新する。
イがスキャンライン法に基づいているため、E3(二)
、(三)のように手法(一)の変形したものを繰り返し
て実行する手法はピクセル・プロセッサ・アレイ上では
実現が難しい。そこで、フレーム・バッファ上で最終的
な画像を合成することにして、この困難を回避する。つ
まり、画像の合成等を行なうときは、ピクセル・プロセ
ッサ・アレイからフレーム・バッファへ輝度値を出力す
,るときに、OAFに従って、OAFが1のピクセルの
みをフレーム・バッファ上で更新する。
輝度部12はカラー・バッファ(ここでは、三原色に対
応する三つの輝度値の記憶場所)を持うている。輝度部
はカラー・バッフTの管理とスパン・データの輝度値の
補完を行なう。カラー・バッファの管理動作はAttr
の値によって異なるので、値毎に述べる。ピクセル・プ
ロセッサに入力されるスパン・データの輝度値をI(三
つの値を一つで代表させる)とする。
応する三つの輝度値の記憶場所)を持うている。輝度部
はカラー・バッフTの管理とスパン・データの輝度値の
補完を行なう。カラー・バッファの管理動作はAttr
の値によって異なるので、値毎に述べる。ピクセル・プ
ロセッサに入力されるスパン・データの輝度値をI(三
つの値を一つで代表させる)とする。
(1)AttrがNTXFP1BP(7)とき:何もし
ない。
ない。
(2)AttrがITのとき:
カラー・バッファを初期化する。
(3)AttrがOTのとき:
カラー・バッファの値をアレイ外部に出力する。
(4)AttrがOPのとき:
アドレス部とデプス部の条件とBAF= 1を共に溝た
していれば、カラー・バッファを■で更新する。
していれば、カラー・バッファを■で更新する。
また、輝度値の補完に関しては、入力スパン・デ二夕の
ピクセル毎の輝度値の変化量をdIとすると、輝度部は
アドレス部の条件チェックが満たされていなければ、輝
度値として■をそのまま次段のピクセル・プロセッサに
出力し、溝たされていれば、I+dIを次段に出力する
。輝度値の変化量としては条件にかかわらず、dIをそ
のまま次段に出力する。
ピクセル毎の輝度値の変化量をdIとすると、輝度部は
アドレス部の条件チェックが満たされていなければ、輝
度値として■をそのまま次段のピクセル・プロセッサに
出力し、溝たされていれば、I+dIを次段に出力する
。輝度値の変化量としては条件にかかわらず、dIをそ
のまま次段に出力する。
アレイ外部に出力されたカラー・バッファの値がフレー
ム・バッファの対応するピクセルに書き込まれて画像が
生成される。
ム・バッファの対応するピクセルに書き込まれて画像が
生成される。
F.発明の効果
以上説明したように、この発明によればピクセルへの表
示対象物体の展開時にデプス値をバッファ内の値と比較
するだけで、任意の三次元領域へのクリッピングを行な
うようにしているため、計算量が少なく高速に画像が生
成でき、また実施例のシステムのようなピクセル・プロ
セッサ・アレイを使ったハードウェア化が容易にできる
。
示対象物体の展開時にデプス値をバッファ内の値と比較
するだけで、任意の三次元領域へのクリッピングを行な
うようにしているため、計算量が少なく高速に画像が生
成でき、また実施例のシステムのようなピクセル・プロ
セッサ・アレイを使ったハードウェア化が容易にできる
。
第1図、第2図はこの発明の原理を説明するための図、
第3図は実施例で採用するピクセル当りのバッファ構成
を示す図、第4図はFBP,BBPを説明するための図
、第5図はEI?’BP,EBBPを説明するための図
、第6図は凸領域外へのクリッピングを説明するための
図、第7図は画像の三次元合成を説明する図、第8図は
この発明のー実施例のシステム構成を示す図、第9図は
スパン・データのピクセル・プロセッサ・アレイへの入
力順序を示す図、第10図はピクセル・プロセッサ・ア
レイの構成を示す図、第11図はピクセル・プロセッサ
の構成を示す図である。 10・・・・Zバッファ及びLバッファを具備するデプ
ス部、12・・・・輝度部である。 出願人 日本アイ・ビー・エム株式会社復代理人 弁
理士 澤 田 俊 夫M1図 第2図 第3図 票6図 第7図
第3図は実施例で採用するピクセル当りのバッファ構成
を示す図、第4図はFBP,BBPを説明するための図
、第5図はEI?’BP,EBBPを説明するための図
、第6図は凸領域外へのクリッピングを説明するための
図、第7図は画像の三次元合成を説明する図、第8図は
この発明のー実施例のシステム構成を示す図、第9図は
スパン・データのピクセル・プロセッサ・アレイへの入
力順序を示す図、第10図はピクセル・プロセッサ・ア
レイの構成を示す図、第11図はピクセル・プロセッサ
の構成を示す図である。 10・・・・Zバッファ及びLバッファを具備するデプ
ス部、12・・・・輝度部である。 出願人 日本アイ・ビー・エム株式会社復代理人 弁
理士 澤 田 俊 夫M1図 第2図 第3図 票6図 第7図
Claims (3)
- (1)クリッピング領域の手前側境界面の各位置のデプ
ス値を画面上のピクセル位置と関連付けてストアする第
1バッファと、 上記クリッピング領域の後ろ側境界面の各位置のデプス
値を上記画面上のピクセル位置と関連付けてストアする
第2バッファと、 表示対象上の各位置のデプス値を上記画面上のピクセル
位置と関連付けて生成する手段と、上記生成されたデプ
ス値を上記第1バッファの対応するデプス値及び上記第
2バッファの対応するデプス値とそれぞれ比較する比較
手段と、上記比較手段の比較結果に基づいて上記表示対
象上の各位置が上記クリッピング領域内にあるかどうか
を判別する手段とを有することを特徴とする画像表示装
置。 - (2)ピクセルデータを画面上のピクセル位置と関連付
けてストアするピクセルデータバッファと、クリッピン
グ領域の手前側境界面の各位置のデプス値を上記画面上
のピクセル位置と関連付けてストアする第1バッファと
、 上記クリッピング領域の後ろ側境界面の各位置のデプス
値を上記画面上のピクセル位置と関連付けてストアする
第2バッファと、 表示対象上の各位置のピクセルデータ及びデプス値を上
記画面のピクセル位置と関連付けて生成する手段と、 上記生成されたデプス値が上記第1バッファの対応する
デプス値より大きく、かつ上記第2バッファのデプス値
より小さいときに、上記第2バッファの対応するデプス
値を上記生成されたデプス値で置き換え、かつ上記ピク
セルデータバッファの対応するピクセルデータを上記生
成したピクセルデータで置き換える手段とを有すること
を特徴とする画像表示装置。 - (3)上記第1バッファまたは上記第2バッファにスト
アされているデプス値に関連する上記画面上のピクセル
位置を指示するフラグバッファを具備し、上記指示され
たピクセル位置でのみ上記表示対象のピクセルデータ及
びデプス値を生成するようにした特許請求の範囲第1項
または第2項記載の画像表示装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63285698A JPH02132572A (ja) | 1988-11-14 | 1988-11-14 | 画像表示装置 |
DE68926843T DE68926843D1 (de) | 1988-11-14 | 1989-10-31 | Bildanzeigegerät |
EP89850379A EP0369965B1 (en) | 1988-11-14 | 1989-10-31 | Image display apparatus |
US07/876,815 US5249264A (en) | 1988-11-14 | 1992-04-29 | Image display method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63285698A JPH02132572A (ja) | 1988-11-14 | 1988-11-14 | 画像表示装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02132572A true JPH02132572A (ja) | 1990-05-22 |
Family
ID=17694873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63285698A Pending JPH02132572A (ja) | 1988-11-14 | 1988-11-14 | 画像表示装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0369965B1 (ja) |
JP (1) | JPH02132572A (ja) |
DE (1) | DE68926843D1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05258077A (ja) * | 1991-12-26 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | 画素処理方法及び装置並びにグラフィックバッファ |
WO1995009405A1 (fr) * | 1993-09-28 | 1995-04-06 | Namco Ltd. | Processeur de detourage, simulateur tridimensionnel et procede de traitement de detourage |
KR20200025395A (ko) * | 2018-08-30 | 2020-03-10 | 삼성중공업 주식회사 | 3d 클리핑 기능을 가진 3d 뷰어 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2378108B (en) | 2001-07-24 | 2005-08-17 | Imagination Tech Ltd | Three dimensional graphics system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63251870A (ja) * | 1987-04-08 | 1988-10-19 | Seiko Instr & Electronics Ltd | 図形処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2043972B (en) * | 1979-01-26 | 1983-09-01 | Thomas A L | Display processors |
JPS62165279A (ja) * | 1986-01-17 | 1987-07-21 | Fanuc Ltd | 図形抽出方式 |
-
1988
- 1988-11-14 JP JP63285698A patent/JPH02132572A/ja active Pending
-
1989
- 1989-10-31 DE DE68926843T patent/DE68926843D1/de not_active Expired - Lifetime
- 1989-10-31 EP EP89850379A patent/EP0369965B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63251870A (ja) * | 1987-04-08 | 1988-10-19 | Seiko Instr & Electronics Ltd | 図形処理装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05258077A (ja) * | 1991-12-26 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | 画素処理方法及び装置並びにグラフィックバッファ |
US5559937A (en) * | 1993-08-28 | 1996-09-24 | Namco Ltd. | Clipping processing device, three-dimensional simulator device, and clipping processing method |
WO1995009405A1 (fr) * | 1993-09-28 | 1995-04-06 | Namco Ltd. | Processeur de detourage, simulateur tridimensionnel et procede de traitement de detourage |
GB2288523A (en) * | 1993-09-28 | 1995-10-18 | Namco Ltd | Clipping processing device, three-dimensional simulator device, and clipping processing method |
GB2288523B (en) * | 1993-09-28 | 1998-04-01 | Namco Ltd | Clipping processing device, three-dimensional simulator device, and clipping processing method |
KR20200025395A (ko) * | 2018-08-30 | 2020-03-10 | 삼성중공업 주식회사 | 3d 클리핑 기능을 가진 3d 뷰어 |
Also Published As
Publication number | Publication date |
---|---|
EP0369965A3 (en) | 1992-07-01 |
EP0369965B1 (en) | 1996-07-17 |
DE68926843D1 (de) | 1996-08-22 |
EP0369965A2 (en) | 1990-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5249264A (en) | Image display method and apparatus | |
EP0870282B1 (en) | Method for a span and subspan sorting rendering system | |
US6333747B1 (en) | Image synthesizing system with texture mapping | |
US6650327B1 (en) | Display system having floating point rasterization and floating point framebuffering | |
US5898437A (en) | Method for fast rendering of three-dimensional objects by generating lists of like-facing coherent primitives | |
US20020030693A1 (en) | Triangle clipping for 3d graphics | |
JP2001357410A (ja) | 別々に生成された3次元イメージを合成するグラフィックス・システム | |
JPH0757117A (ja) | テクスチャマップへの索引を生成する方法及びコンピュータ制御表示システム | |
WO1997005576A9 (en) | Method and apparatus for span and subspan sorting rendering system | |
US20050231506A1 (en) | Triangle identification buffer | |
JP2006503355A5 (ja) | ||
JP2006503355A (ja) | 3次元画像処理 | |
JPH0916806A (ja) | 立体画像処理装置 | |
JP3349871B2 (ja) | 画像処理装置 | |
US5265198A (en) | Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system | |
JP3350473B2 (ja) | オクルージョンカリングを行う3次元グラフィックス描画装置および方法 | |
JP2001126086A (ja) | ビデオゲームにおける立体モデル表示方法及び装置、ゲーム装置並びにビデオゲーム用立体モデル表示プログラムを格納したコンピュータ読み取り可能な記録媒体 | |
US7116333B1 (en) | Data retrieval method and system | |
KR100693134B1 (ko) | 3차원 이미지 처리 | |
KR100256472B1 (ko) | 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링 | |
JPH02132572A (ja) | 画像表示装置 | |
KR100544803B1 (ko) | 영상 프리미티브의 고속 처리 | |
US7196706B2 (en) | Method and apparatus for rendering a quadrangle primitive | |
Pajarola et al. | Depth-mesh objects: Fast depth-image meshing and warping | |
JP2952585B1 (ja) | 画像生成方法 |