JPS62237579A - 走査変換器 - Google Patents

走査変換器

Info

Publication number
JPS62237579A
JPS62237579A JP8022386A JP8022386A JPS62237579A JP S62237579 A JPS62237579 A JP S62237579A JP 8022386 A JP8022386 A JP 8022386A JP 8022386 A JP8022386 A JP 8022386A JP S62237579 A JPS62237579 A JP S62237579A
Authority
JP
Japan
Prior art keywords
data
edge
polygon
vertex
line
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
JP8022386A
Other languages
English (en)
Other versions
JPH0544712B2 (ja
Inventor
Takayoshi Yoshida
隆義 吉田
Yasushi Wauke
和宇慶 康
Ikuo Oya
大宅 伊久雄
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP8022386A priority Critical patent/JPS62237579A/ja
Publication of JPS62237579A publication Critical patent/JPS62237579A/ja
Publication of JPH0544712B2 publication Critical patent/JPH0544712B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、3次元画像表示装置で使用される多角形の走
査変換器に関するものである。
(従来の技術) 3次元の色彩付き画像をラスター走査型CR7表示装置
の表示画面上に生成表示する方式に、多角形モデルのZ
バッファ法を用いた表示処理方式がある。まずその方法
を順を追って述べる。
(r)形状モデリング 物体形状を3次元世界座標系内に定義する。多角形モデ
ルでは、3次元物体の表面を多角形の集合として表現す
る。物体表面が曲面を含む場合は、曲面を多角形に分割
して近似する。
(II)座標変換 3次元世界座標系内に投影面及び投影方法(平行投影か
中心投影か)を指定し、投影面上に設定した2次元座標
系に投影変換する。多角形モデルでは、多角形のすべて
の頂点を投影変換する。このとき、後述する隠面消去の
ために頂点毎に投影面に至る奥行きの値(深度Z)も求
める。次にクリッピングを行うことがある。これは、t
2影面上に矩形の窓枠を設定し、投影図の窓枠内部にあ
る部分のみを表示するために、窓枠の外部にある多角形
を除去し、窓枠と交差する多角形は窓枠の内部に含まれ
る部分のみ残す処理である。
(DI)走査変換 頂点の系列で表現された多角形を表示画面上の画素の系
列に変換する。それには、多角形の頂点座標からその稜
線」二の画素を補間して生成し、次に多角形の内部の画
素を生成する。隠面消去のためには、画素毎に投影面か
ら当該多角形に至る深度Zも計算する。
(rV)lff1面消去を伴う画像メモリ更新複数個の
多角形が表示画面上で重なる場合に、社、視点側から見
て最も手+ifにある多角形を優先に対して三原色の強
度(R,G、B)を記憶する画像メモリの他に、深度Z
を記憶するZバッファメモリ(デプスバッファメモリと
も呼ぶ)を使用し、予め画像メモリ(R,G、B)を背
景色で。
Zバッファメモリを深度の最大値Z aia、、で満た
しておく。多角形を走査変換して、深度及び三原色をも
つ画素の系列(X i、yi、Z t、Ri、G i、
B i )i=1.2,3.=に展開し、画像メモリの
アドレス(xH,yl)に三原色強度(R,、G、、B
、)を書き込む以前に、Zバッファメモリのアドレス(
x+、yi)における深度ZMを読み出し、Z、4と2
1の大小を比較し、2.<2.4のときに限り、前記(
R,、G、、B、)の書き込みを行うと共に、Zバッフ
ァメモリZMの値をZ、で置き換える。すなわち、Zバ
ッファメモリは現在までに描画された最も視点に近い多
角形の深度を記憶し、これより深度の大きい画素の書き
込みを抑制する。以上の処理をすべての多角形の走査変
換されたすべての画素について順次実行すれば、最終的
に正しく隠面消去された画素が画像メモリ(R。
G、B)に得られる。
以上の処理方式はアルゴリズムが単純で、ハードウェア
による高速処理が可能であるから、画像メモリの他に、
座標変換器、走査変換器、Zバッファメモリを装備した
3次元画像表示装置が存在する。このような装置は例え
ば、I EEEコンピュータ グラフィックス アンド
 アプリケーションズ(NEEE Computer 
Graphics andApplications)
 、 vol、4. No、6. (1984) P、
1l−23に開示されたものがあり、その構成図を第1
1図に示す。また、座標変換された多角形の種類を示す
図を第12図(a)〜(d)に示す。セグメントメモリ
lotに記憶された多角形データは、座標変換器35に
より前述したように2次元座標系の投影面に投影して座
標変換される(中心投影の場合は除算器105も使用す
る)。
次に、座標変換された多角形は走査変換器112内の三
角形分割器103により三角形に分割される。例えば第
12図(a)に示すような6角形vIV2 V3V4 
Vs Vsは3本の対角線V、V3゜V+ Va 、V
+ Vsにより4個の3角形に分割される。これらの分
割された三角形の1つであるV1V2v3の座標をV 
+(X i+yt、Z +)、V2(X2゜y21 Z
 2)、V:+(X3.ya、Z3)とすると、走査変
換器112内の初期化器【04及び除算器105は次式
により増分値を計算する。
これらの値は三角形内部におけるX方向、y方向に関す
る深度Zの傾斜を示す。増分器101iとメモリ更新器
107が三角形内部の連続する画素を塗りつぶす際に、
画素を左右上下に移動する毎に深により、画素の深度Z
を正しく計算できるようにしている。
このようにして得られた多角形の内部の深度Zを含む画
素データは、前述のようにメモリ更新器107、Zバッ
ファメモリ108、画像メモリ109により隠面消去さ
れた画像となり、ビデオリフレッシュ110を介してC
RTIIIの表示画面上に表示される。
なお、第12図(b)に示すような凹頂点を2個以上含
む凹多角形は三角形分割器103では処理できないので
制御プロセッサ100に戻して分割している。
(発明が解決しようとする問題点) しかしながら、前記従来装置の走査変換器では前述のよ
うな凹多角形や第12図(C)のような穴のある多角形
や第12図(d)のような複数の島に分かれた多角形は
処理することができない問題点があった。また、初期化
のために式■、■に示すように複雑な増分値計算を行う
のに高錆度の乗除算を伴う四則計算が必要となるので、
処理時間が長くかかるという問題点があった。
本発明は以上述べた問題点を解決し、多角形の形状に制
約されず、任意形状の多角形の走査変換が可能であると
共に、比較的単純な構成で高機能かつ高速の走査変換器
を提供することを目的とする。
(問題点を解決するための手段) 本発明は前記問題点を解決するために、3次元画像表示
装置における多角形の走査変換器において、深度Zの付
与された多角形の頂点データの系列に対し、当該多角形
を囲む稜線を左側稜線と右側稜線に分類して左側及び右
側の稜線データを作成する稜線データ作成手段と、前記
左側稜線データを記憶し更新するための左エツジプロセ
ッサと、前記右側稜線データを記憶し更新するための右
エツジプロセッサと、前記左エツジプロセッサ及び右エ
ツジプロセッサの内容を用いて、当該多角形と交差する
走査線冬画面の垂直方向に掃引し、現在の走査線と交差
する左側稜線及び右側稜線に対して画面の水平方向に掃
引することにより、当該多角形の内部領域に属する走査
線分データを作成する走査変換手段と、前記稜線データ
のうち稜線方向の増分値及び前記走査線分データのうち
線分方向の深度Zの増分値を演算するための除算器とを
有するものである。
好ましくは前記除算器が入力の逆数を発生する逆数表と
、該逆数表の出力と入力を乗算する乗算器とを存するも
のである。
(作用) 本発明によれば以上のように走査変換器を構成したので
、技術的手段は次のように作用する。
稜線データ作成手段は多角形の頂点データから左側及び
右側の稜線データを作成してそれぞれ左右のエツジプロ
セッサに記憶する。この際、稜線x  dz データに含まれる稜線方向の増分値(++、 −)dy
  cty を除算器にて演算する。次に走査変換手段は当該多角形
と交差する走査線を画面の垂直方向(下から上、又は上
から下)へ順次掃引し、走査線を更新する毎に左右のエ
ツジプロセッサより左側稜線データ及び右側稜線データ
を読出し更新しつつ当該走査線と当該多角形との交点か
ら走査線分データを作成して出力する。この際、走査線
分データz に含まれる線分方向の深度Zの増分値(□)をx 前記従来技術の問題点を解決できるのである。
(実施例) 第1図は本発明の一実施例を示す走査変換器のブロック
図である。同図において、1は入力端子、2は内部バス
、3−1,3−2.3−3.3−4.3−5はバスドラ
イバ、4はバスレシーバ、5は先入れ先出しメモリ(F
IFO)、6は出力端子である。内部バス2には点線で
囲んだ左エツジプロセッサ29、右エツジプロセッサ3
0、除算器31、マイクロプログラムコントローラ32
が接続されている。左エツジプロセッサ29内には左側
稜線データメモリDM1 (12−1)があって、その
アドレス線には進入頂点ポインタV P 1 (7−1
) 、前エツジポインタPEPi (a−i) 、エツ
ジポインタE P 1 (9−1)が、アドレスマルチ
プレクサM X A 1 (10−1)、アドレス加算
器(ii−i)を経由して接続されている。DMI(1
2−1)の出力データはデータマルチプレクサMXD 
1 (13−1)及びレジスタS 1 (14−1)、
又はレジスタR1(15−1)を通り演算器ALU 1
 (16−1)を経由してD M ! (12−1)の
入力データとなるか、またす29と同じ構成をもつ(参
照符号はハイフォン2で示す)。除算器31は、除数レ
ジスタR3(17)、逆数テーブルI N V (18
)、逆数レジスタR4(19)、被除数レジスタR5(
20)、乗算器(21)、商レジスタR6(22)から
成り、同図から明らかなようにR5/R3の値を求める
。マイクロプログラムコントローラ32は、マイクロプ
ログラムシーケンサ5EQ23、マイクロプログラムメ
モリMPM24、マイクロプログラムレジスタMPR2
5から成り、MPM24に記憶されたマイクロプログラ
ムを実行することにより、走査変換器全体を制御する。
MPR25の出力からの一方のデータ線26はバスドラ
イバ3−4を経由して内部バス2に定数データを供給す
るか、または5EQ23に飛び先アドレスを供給する。
他方のデータ線27はアドレス加算器xi−i及び11
2に共通のアドレス加算量を供給する。制御線28は走
査変換器の各部に制御信号を供給する。
次に動作を説明する。本実施例の走査変換器の走査変換
する処理手順は入力処理を行った後は、て説明する。
第2図(a)〜(e)は多角形データの説明図であって
、同図(a)は多角形の具体例、同図(b) 、 (C
)はそれぞれD M 1 (12−1)、 D M 2
 (12−2)に格納された同図(a)の多角形データ
を記憶する記憶ブロック、同図(d) 、 (cりは同
図(b) 、 (C)の各記憶ブロック内部要素を示す
ものである。
第2図(a)の多角形データは、入力端子1から、内部
バス2、M X D 1 (13−1)及びMXD 2
(1:1−2)、A L U l (16−1)及びA
 L U2 (1B−2)を経由してデータメモリD 
M ! (12−1)及びD M 2 (12−2)に
転送され、第2図(b) 、 (C)に示すようにDM
l (12−1)とD M 2 (12−2)に同一の
多角形データが格納される。多角形データは固定長の記
憶ブロック(ここでは仮に8語×20ビットとする)の
集まりで表現さね、第2図(b) 、 (C)のように
1個の共通データブロックCと頂点個数だけの頂点デー
タブロック■、〜v9から成り、各ブロックの内容は第
2図(d) 、 (e)の形式をもつとする。メモリ内
の記憶ブロックとブロック内の要素には第2図(b)〜
(d)のようにOから始まる番号をflけておき、例え
ば第3記憶ブロツクの第■要素は頂点v3のy座標を示
している。この例では頂点番号〜図においてM X A
 1 (10−1)及びM X A 2 (10−2)
の出力データが指定し、第2図(d) 、 (e)の要
素番号はデータ線27が指定するように結線されている
1記憶ブロツクの語数を2の累乗とすれば、アドレス加
算器11−1及び11−2を用いる必要はない。6個の
頂点V、−V、は多角形の外側境界ループを、3個の頂
点■7〜v9は内側境界ループを形成するが、これらの
頂点ループは多角形の内部領域(横線を施した部分)を
右側に見込むように方向づけられている。即ち、外側境
界ループは詩語回り、内側境界ループは反時計回りとな
っている。
。頂点データ内の頂点ポインタvpが次の頂点の番号を
記憶している(第2図(d)の第◎要素)頂点ポインタ
vpによる頂点ループの形成の模様を第2図(b)の実
線の矢印で示す。共通データ領域Cの中にはこれらのル
ープへのポインタである第1〜第3ループポインタが記
憶されている(第2図(d)の第■要素から第■要素)
、これを第2図(b) 、 (C)の破線の矢印で示す
。また、第2図(d)の第◎要素の色Cは3原色R,G
、Bの値またはコード化された色情報をもつ。
(下から上)に向きが付けられ、X座標と2座標の初期
値と増分が付与される。頂点ループに沿って頂点V、か
ら頂点vJに至る稜線において、頂点VIのX座標3/
lが頂点vJのy座標yJより小さければ(即ちY i
 < ’/ j ) 、Viを視点としVJを終点とす
る順方向の稜線データV、VJ=EiJを左側稜線デー
タメモリD M 1 (12−1)に作成する。またy
r > 3’ Jならば逆方向の稜線データV、V、=
E、、を右側稜線データメモリDM2(12−2) i
、:作成する。頂点V4.VB、V9(7)ように左側
稜線と右側稜線の共通の視点となる頂点を進入頂点と呼
び、進入頂点データE V4.E V6.E V9をD
 M 1 (12−1)の第1O記憶ブロツクから第1
2記憶ブロツクに作成する(第3図(b))。例えばE
V4には左側稜線E41iと右側稜線E43へのポイン
タが記憶される。すべての進入頂点はX座標の昇順に、
すなわちE V a 、 E V 4 、 E V t
の順にソーティングされ、進入頂点のX座標の差分とし
てh64=y4 VsがEV6に、h′4s=hs−h
4がEv4に記憶される。頂点V2.V、、V、のよう
に左こうして作成された左側稜線リスト、右側稜線リス
ト、進入頂点リストを第3図(b)に示し、稜線データ
と進入頂点データの内容を第3図(C)に示す。稜線デ
ータEiJは両端点のうちX座標の大きくない方の頂点
V、と同じ記憶ブロックに作成するものとする。但し、
稜線データと頂点データの記憶ブロック内の対応関係は
考慮していない。
進入頂点V4を始点とする左側稜線E44はDMl(1
2−1)(7) V 4領域に、右側稜線E43はD 
M 2 (12−2)のV4領域に作成される。退出頂
点V 2.V e、。
v7の領域は空になる。
第4図は稜線リスト及び進入頂点リストを作成する処理
のフローチャートを示す。ステップ40は第1頂点ルー
プの頂点番号を変数10に設定する。点線で囲んだステ
ップ42の処理は、頂点10からループをたどり、最初
の水平でない稜線Eムjを求め、その稜線EiJの始点
iを再めて10に設定し、その稜線EijがX座標の増
加する上昇ベクトルならばSp =S g n (yj
−yt ) >Oとし、EiJが下降ベクトルならばs
p<0とする。
ここにsgnは正、負または0の符号を与える関(12
−2)に作成する。引き続く2つの稜線の符号SPとS
とが異符号のときは、EiJの始点V、が−タEV、を
作成し、ステップ54でspの符号を負から正に変えて
次の稜線に進む。sp>O,sく0のときは稜線の向き
が上昇(または水平)から下降に移るから、ステップ5
6で今回作成した下降する右側稜線と、ステップ57で
前回作成した上昇する(または水平の)左側稜線とをい
ずれも邂出稜線とし、ステップ58でspの符号を正か
ら負に変えて次の稜線に進む。ステップ60は稜線Ei
jの始点iが頂点ループの出発点に戻ったかどうかを判
定する。ループ60aは頂点ループに含まれる頂点の個
数回実行され、ループ61aは頂点ループの個数回実行
される。ステップ41でi。二〇ならばすべての頂点ル
ープの処理が終了したことを示すから、ステップ62で
進入頂点データEV、のソ−ティングを行う。
次に第3図(C)の稜線データE ijと第3図(d)
の進入頂点データEV、の内容について説明する。進入
頂点データEV、の差分h;、(第■要素)は非負の整
数で次の進入頂点までの走査線の本数を示すから、走査
線を更新する毎にh;jを1びZ、。、y座標が1だけ
増加したときの増分値2つのポインタsep及びaep
を含んでいる(第◎要素から第■要素)。稜線データE
ijにおけるsep及び進入頂点データEV、における
eVρは、進入頂点から退出頂点に至る稜線の結合を示
すポインタであり、この結合を第3図(b)に示す。退
出稜線であることは5ep=oとすることによって示す
。稜線データE ijのポインタaepは後述する走n
変換処理でアクティブLッジリスト(AEL)を形成す
るために用いら第1る。
稜線データE ijの諸要素の計算法を第5図を用いて
説明f6゜始点V i(X 1−yi、Z i)と終点
V 。
(XJ、ylZJ)の座標値はすべ”〔整数であるもの
とし、y、≦y、とする。また、走査線はy座標が整数
である水平線で区画された水平な帯状領域であるとすれ
ば、稜線E iJはYJ  3’1=FliJ(本)の
走査線を横切る。これらの走査線を第5y、z)の値を
線形内挿したい。そのために、初期値としてptにおけ
る値(X、。、yi。+Zio)を次式によって求める
hlJ=’jよ −y、            ・・
・ ■’/ io= 3’ i  ” 0.5    
         … ■稜線データE ijは式■の
y、。以外のこれらの値を時運のように記憶する(第3
図(C))。l’1iJ=0である水平な稜線について
は、分点P l * P 2 * ””が存在しないか
らh ij以外の上記の値を記憶する必要はない。
値i。をD M 1 (12−1)から読み出し、第1
図のレジスタR1(15−1)、演算器A L U 1
 (16−1)、バスドライバ3−3、内部バス2を経
てレジスタEPJ(9−1)に設定してE P 1 (
9−1)の値をiとする。
1次にE P 1 (9−1)の指すD M 1 (1
2−1)の記憶ブタE P 2 (9−2)に設定して
EP2の値をjとし、0M2の頂点データVJを指す。
以後の説明ではデータの転送経路は省略する。
第4図のステップ44の処理は、第1図においてE P
 1 (9−1)の指すD M 1 (12−1)の頂
点データV1のy座iytと、E P 2 (9−2)
の指す0M2の頂点データvJのy座標yJを読み出し
、y。
をレジスタR1(1’5−1)に、yJをレジスタ51
(14−1)に設定し、演算器A L U 1 (16
−1)でyi −ylを計算し、その符号をS、とじて
ALUi内に設けた状態レジスタに設定する。第4図の
ステップ47及び48の処理は、第1図においてEPI
(9−1)の値iをP E P 1 (8−1)に、E
 P 2 (9−2)の値jをP E P 2 (8−
2)に移動し、次にE P 1. (9−i)の指すD
 M 1 (+2−1)の頂点データV、のポインタV
 P iをE P 1 (9−1)に転送し、E P 
2 (9−2)ノ指すD M 2 (12−2)(7)
頂点データvJのポインタvPJをEP2に転送するこ
とにより、i。
jの値を更新する。PEP 1 (8−1) 、PEP
2(8−2)は前回処理した稜線のi、jの値を保持す
二る。第4図のステップ46の処理は、E P 1 (
9−1)14.J 、め値iをD M 1 (12−1)内のループポイン
タに再設置iする。第4図のステップ49の処理は、ス
テップ6イ4と同様にyJ−y、の符号Sを求め、演算
器AL U 1 (1B−1)内の状態レジスタに設定
する。yj−yi >0の場合はステップ51で左側稜
線データEijをE P 1 (9−1)の指すDMI
の記憶ブロックに作成する。まず弐〇のh ij= 3
’ J −yiの値を第3図(C)の稜線データE r
Jのh ijとして記憶する。次に、11iJを除算器
31内のレジスタR3(17)ニ設定し、逆数表(I 
NV)18でl/h、、を求める。次に式■において、
X、をD M 1 (12−1)から読み出してR1(
+5−1)に、X、をD M 2 (12−2)から読
み出してS 1 (14−1)に設定し、ALUI(1
6−1)でxJ−Xiを計算してその結果をレジス=X
j−Xiを求め、この値を第3図(C)のEiJ1J (14−1)に読み出し、A L U 1 (16−1
)においてR1(15−1)を右に1ビツト算術シフト
した値とSL (14−1)の値を加算してX ro=
 X I+ 0.5 XデータE ijのXiOとして
記憶する。式■の210はxl。と同様に求める。YJ
  yl<Oの場合はステップ55で右側稜線データE
 JiをE P 2 (9−2)の指すD M 2 (
12−2)の記憶ブロックに作成する。この場合、添字
iとjを交換し、以下の値を求め、D M 2 (12
−2)に記憶する。
h ji” ’/ i  −yj          
  ””  ■。
左側稜線データE ijのポインタsepは頂点ループ
のポインタvpをそのまま用いればよいが、右側稜線デ
ータE jiのポインタsepは頂点ループはポインタ
vpとは逆向きにする必要がある。それにはE P 1
 (9−1)の値iをE P 2 (9−2)の指すD
 M 2 (12−2)の第j記憶ブロックのsepに
転送する。第4図のステップ53の進入頂点データEV
1を作成するには進入頂点の記憶ブロック番号をV P
 1 (7−1)に設定し、E P 1 (9−1)の
値iをV P 1 (7−1)の指すD M t (1
2−1)の記憶ブロックEV、のポインタvpに設定し
、E P 1 (9−1)の指すD M 1 (12−
1)の記憶ブロックの頂点■□のy座標y1をV P 
1 (7−1) (7)指すE V t (7) yt
oニ設定する。第4図のステップ56と57の処理は、
EP2 (9−2)の指す右側稜線データEjlとPE
PI(8−1)の指す前回作成した左側稜線データE 
ijとの稜線属性を「退出」にする。これはポインタs
epの値を0にすることによって表示する。第4図のス
テップ60の処理はE P 1 (9−1)のiとDM
I(12−1)内の共通データ領域のループポインタi
をA L U 1 (16−1)で比較する。第4図の
ステップ62の侵入頂点リストのソーティングを行うに
は、第1図(7) V P 1 (7−1)とE P 
1 (9−1)をソーティングのための2つのポインタ
として用い、y、。をキーとして昇順に並べ変え、その
後h:Jを計算する。
以上が左右稜線リスト及び進入頂点リストの作成手順で
ある。次に走査変換を行うためのアクティブエツジリス
ト(AELとも呼ぶ)及びエツジポインタ(EPとも呼
ぶ)について説明する。AELとは一本の走査線と交差
するすべての左側稜線と右側稜線をX座標の昇順に並べ
たもので、稜着データE ijのアクティブエツジポイ
ンタaepを使って、D M i (12−1)内に左
アクティブエツジリスト(左AEL)を、D M 2 
(12−2)内に右アクティブエツジリスト(:tJf
iAEL)を形成する。AELの例を第6図(a) 、
 (b)に示す。第6図(a)において、D M i 
(12−1)の共通データ領域C1内の左アクティブエ
ッジルードポインタaepiが第1の左側稜線E61を
指し、このE61のアクティブエツジポインタE6..
aepが第2の左側稜線E97を指し、このE97のア
クティブエツジポインタE9..aepが第3の左側稜
線E4gを指す。このE4sのアクティブエツジポイン
タE45.sepには終端を示す0が記されている。第
6図(b)においては、D M 2 (1,2−2)の
共通データ領域C2内の右アクティブエツジルートポイ
ンタaep2も同様に第1、第2、第3の右側稜線E9
81 Eas。
E43を順に指して右アクティブエツジリストを形成し
ている。多角形と走査線の交差線分(走査セグメン]・
またはセグメントとも呼ぶ)を生成するには、アクティ
ブエツジリストAELの第1の左側稜線EGIと第1の
右側稜線E9gを対にし7 :!、 K亥走査線どの2
つの交点を求め、こわらを両端点として第1の走査セグ
メントを生成シフ、同様に第2の左右稜線E97とEr
asの対が第2の走査セグメントを、第3の左右稜線E
<iどE4に、の対が第3の走査セグメントを生成する
。左アクティブエッミンノト一トポインタaeplはD
 M 1 (i2−1)の共通j′夕領領域C1内、君
アクティブエツジルートポインタaep2はD M 2
 (1,2−2)の共通データ領域(」2内に設けるも
のとする。次に、工ヶジボ・rツタEPとはAELを走
査するポインタであっ゛C1第6図(a) 、 (b)
に示1ように、左面ツジポインタドP1、左面エツジポ
インタに’ E P 1、h工、ツジポインタEP2、
右面エツジポインタPEP2O4個があり、それぞれ第
1図走査変換器における同名のレジスタを使用する。第
6図(a) 、 (b)ではEPlとEP2が第2の左
右稜線E97とE85を指lノており、PEPlとPE
P2か第1の左ノーi′稜線E、lとEoを指している
状態にある。
次に第3図のように作成した左右稜線リス1−女び進入
頂点リストを使って多角形の走査変換を行う処理手順を
第7図、第8図及び第9図のフローチャートと第10図
の処理内容の説明図によって説明する。これらの処理手
順では説明を簡単にするため、多角形は水平稜線を含ま
ないものと仮定する。第7図のスキャンライン初期化(
ステップ64)は第10図■に示すように、進入頂点リ
ストの先頭アドレス■pOをレジスタV P 1 (7
−1)に設定し、v p l (7−1)の指し示す進
入頂点E V aのy座標y+minを読み出して共通
データ領域C2内の変数yに設定する。さらにaepl
=aep2−0とすることによってAELを空にする。
次に第7図のエツジ進入処理(ステップ65)を実行す
るとaepuがE 61をaep2がEFi!5を指す
。エツジ進入処理の詳細は後に述べる。次に第7図のス
テップ66でAELはすでに空でなくなったから、ステ
ップ67のEP初期化に進む。このEP初期化(ステッ
プ67)は第10図■のようにEPI(9−1)が第1
の左側稜線を指し、E P 2 (9−2)が第1の右
側稜線を指すようにし、P E P 1 (8−1)及
びP E P 2 (8−2)をOに設定する操作であ
る1゜また、EP更新(ステップ70)は第10図■の
ようにE P 1 (9−1) 、E P 2 (9−
2)をそれぞれPEPl (8−1) 、  P E 
P 2 (8−2)に移動し、E P I C9−1)
 、 E P 2 (9−2)の指す稜線データのae
pをそれぞれE P 1 (9−1) 、E P 2 
(9−2)に再設定することにより、AEL上を右に1
段階進める操作である。また、EP終了判定(ステップ
69)はEP 1 (9−1)またはE P 2 (9
−2)の指ず36pの値の0判定を行う操作である。
第7図のステップ68のセグメント発生処理は、第8図
に示すように左ニー、Iジプロセッサ29ともエツジプ
ロセッサ30が並行して動作し、協同してセグメントデ
ータな発生する。すなわちE P 1 (9データの計
算と出力、左右稜線データの更新、左右AELの更新を
行う。セグメントデータとして走査線のy座標、多角形
の色C1左端点のX座標X1%セグメントの長さx、−
Xi 、左端点の25に書き込み、出力する(ステップ
74〜80及び86.87 )。加減算は演算器A L
 U 1 (16−1)を使用し、除算は除算器3【を
使用して計算する。左右稜線データの中でXl、X、、
Zl、Z、、hl、h、は次の走査線に更新される。h
、=oまたはり、=oになるとエツジの更新またはエツ
ジ退出処理を行う(ステップ82〜85)。左エツジ更
新(ステップ84a)は第10図■の上段に示すように
、EPI(9−1)の指す現エツジをポインタEP1.
sepの指す更新エツジに置き換えるべく、PEPI(
8−1)の指す左前エツジ及び更新エツジのポインタs
epを書き換える。左エツジ退出(ステップ85a)は
第10図@の上段に示すように、左現エツジを除去すべ
く左前エツジのaepを書き換え、E P 1 (9−
1)にはP E P 1 (8−1)の値を移す。君エ
ツジ更新(ステップ84b)、右エツジ退出(ステップ
85b)も第1θ図■■の下段に示すように同様である
。第7図のステップ71のスキャンライン更新は第10
図のに示すように共通データ領域のyと進入頂点データ
のhoを変更する。ステップ72でh′=0のときエツ
ジ進入処理(ステップ65)を実行する。このエツジ進
入処理は進入頂点番号をiとし、左進入エツジをEll
、右進入エツジをE lrとすると、E目を左AELに
、Eirを右AELにX座標が昇順となるように挿入す
る。
Eil及びE irのエツジ進入処理手順を第9図に示
す。この処理手順では左右エツジプロセッサ(29,3
0)が並行動作しているが両プロセッサの干渉はない。
ステップ89でV P 1 (7−1)の指示する進入
頂点データから頂点番号iを読み出しているが、このi
の値はE目及びE irを指し、AEL探索処理で両エ
ツジプロセッサ(29,30)によって使用されるから
、進入頂点ポインタV P 1 (7−1)を共通デー
タ領域に退避し、iの値をV P 1 (7−1)及び
V P 2 (7−2)に設定し、ステップ96の判定
処理の直前で進入頂点ポインタをV P 1 (7−1
)に復帰させるものとする。左エツジプロセッサ29は
EP 1 (9−1)及びP E P 1 (8−1)
を使って左AELを走査し、ステップ92a ”C’ 
E P 1 (9−1)の指す稜線のX座標がEilの
X座標を初めて超えたところでステップ93aに進み、
Eil及びP E P 1 (8−1)のaepを書き
換えることによりEilの挿入を行う。ステップ96で
は走査線以上に進入頂点が複数個存在するときh′=0
が記憶されているからステップ97を通って次の進入頂
点の進入処理を繰り返す。右エツジプロセッサ30も同
様である(ステップ90b〜95b)。次に第7図のス
テップ66でaeplまたはaep2のゼロ判定を行い
、ステップ73ではVPl、h’  (VPI(7−1
)の指示するD M 1 (12−1)内のh’ )の
ゼロ判定を行い、共にゼロのとき走査変換処理を終了す
る。
(発明の効果) 以上、詳細に説明したように、本発明による走査変換器
は、任意形状の多角形を直接走査線分に分解できるから
、三角形等に分割するための煩雑な手続きを必要としな
いこと、多角形の左側稜線と右側稜線を左右のエツジプ
ロセッサで並列処理していること、増分値計算式が簡単
で逆数衣と乗算器を用いて即座に求められることにより
、高速な走査変換器が実現できる。任意形状の多角形が
取り扱えるから、平面上に描かれた文字バタンや地図領
域等の閉じた領域で穴や島のあるものも多角形近似すれ
ば走査変換できる。本発明の実施例では多角形の頂点上
の深度Zを内挿する方法を述べているが、曲面を多面体
近似したとき、その頂点上での輝度値■を深度Zと同様
に線形内挿することによって滑らかな陰影付け(スムー
ズシェーディング)の高速処理もできる。また、出力デ
ータとして互いに独立した多数の走査線分データを出力
するので、画像メモリを走査線単位で分割して並列にメ
モリ更新処理を行うマルチプロセッサに接続すれば高性
能の画像表示装置を実現できる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す走査変換器の構成図、
第2図(a)〜(e)は多角形データの説明図、第3図
(a)〜(d)は稜線リストと進入頂点リストの説明図
、第4図は稜線リスト作成処理のフローチャート、第5
図は稜線データの計算法の説明図、第6図(a) 、 
(b)はアクティブエツジリストの説明図、第7図は走
査変換処理のフローチャート、第8図は第7図のセグメ
ント発生処理のフローチャート、第9図は第7図のエツ
ジ進入処理のフローチャート、第1O図は処理内容の説
明図、第11図は従来の3次元画像表示装置の構成図、
第12図(a)〜(d)は多角形の種類を示す図である
。 1・・・入力端子、     2・・・内部バス、3−
I〜3−5−・バスドライバ、4・・−バスレシーバ、
5・・−先入れ先出しメモリ(FIFO)、6・・・出
力端子、 7−1.7−2−・・進入頂点ポインタ(VI’l、V
F6)、8−1.8−2−・・前エツジポインタ(PE
PI、PEP2)9−1.9−2−・・エツジポインタ
(EPI、EP2)10−1.10−2−7 トレスマ
ルfブレク4.) (MX八へ、MX八へ)、)i−1
,11−2・−・アドレス加算器、12−1.12−2
−・・データメモリ(DMI、DM2)、13−1.1
3−2−・・データマルチプレクサ(MXDI、MXD
2)、14−1.14−2・・・レジスタ(Sl、S2
)、15−1.15−2−・・レジスタ(旧、R2)、
16−1.16−2−・・演算器(AL[Jl 、A1
.tj2)、17.19,20.22−・レジスタ(R
3,旧、R5,R6)、ia−・・逆数テーブル(IN
V)、 21−・・乗算器、 423−・・マイクロプログラムシーケンサ(SEQ)
、24−=マイクロプログラムメモリ(Mi’M)、2
5−・・マイクロプログラムレジスタ(MPR)、26
.27・・・データ線、    28−・・制御線、2
9・・・左エツジプロセッサ、 30−・・右エツジプロセッサ、 31・・・除算器、 32−・・マイクロプログラムコントローラ。

Claims (2)

    【特許請求の範囲】
  1. (1)3次元画像表示装置における多角形の走査変換器
    において、 深度Zの付与された多角形の頂点データの系列に対し、
    当該多角形を囲む稜線を左側稜線と右側稜線に分類して
    左側及び右側の稜線データを作成する稜線データ作成手
    段と、 前記左側稜線データを記憶し更新するための左エッジプ
    ロセッサと、 前記右側稜線データを記憶し更新するための右エッジプ
    ロセッサと、 前記左エッジプロセッサ及び右エッジプロセッサの内容
    を用いて、当該多角形と交差する走査線を画面の垂直方
    向に掃引し、現在の走査線と交差する左側稜線及び右側
    稜線に対して画面の水平方向に掃引することにより、当
    該多角形の内部領域に属する走査線分データを作成する
    走査変換手段と、 前記稜線データのうち稜線方向の増分値及び前記走査線
    分データのうち線分方向の深度Zの増分値を演算するた
    めの除算器とを有することを特徴とする走査変換器。
  2. (2)前記除算器は入力の逆数を発生する逆数表と、該
    逆数表の出力と入力を乗算する乗算器とを有することを
    特徴とする特許請求の範囲第1項記載の走査変換器。
JP8022386A 1986-04-09 1986-04-09 走査変換器 Granted JPS62237579A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8022386A JPS62237579A (ja) 1986-04-09 1986-04-09 走査変換器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8022386A JPS62237579A (ja) 1986-04-09 1986-04-09 走査変換器

Publications (2)

Publication Number Publication Date
JPS62237579A true JPS62237579A (ja) 1987-10-17
JPH0544712B2 JPH0544712B2 (ja) 1993-07-07

Family

ID=13712364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8022386A Granted JPS62237579A (ja) 1986-04-09 1986-04-09 走査変換器

Country Status (1)

Country Link
JP (1) JPS62237579A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0357087A (ja) * 1989-07-25 1991-03-12 Seiko Instr Inc 多角形ぬりつぶし装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0357087A (ja) * 1989-07-25 1991-03-12 Seiko Instr Inc 多角形ぬりつぶし装置

Also Published As

Publication number Publication date
JPH0544712B2 (ja) 1993-07-07

Similar Documents

Publication Publication Date Title
JP3313221B2 (ja) 画像生成方法及び画像生成装置
EP0360155B1 (en) Image transformation method and device
JPH0916806A (ja) 立体画像処理装置
JP3359401B2 (ja) 図形編集装置およびその方法
JP2001507838A (ja) 線形補間を用いて非同次2次遠近テクスチャマッピング座標を決定する回路
JP2000348206A (ja) 画像生成装置および画像優先度決定方法
JPS62237579A (ja) 走査変換器
JP2883523B2 (ja) 画像合成装置及び画像合成方法
JP3448930B2 (ja) 画像表示装置
JP3522714B2 (ja) 画像生成方法
JPH0696231A (ja) グラフィックス表示方法および装置
JPH07105404A (ja) 立体画像処理装置及びその処理方法
JPH05298456A (ja) テクスチャ・マッピング方式
JPS63113785A (ja) 図形表示方法
JPH02132572A (ja) 画像表示装置
JP3344675B2 (ja) 立体画像処理装置
JP3146031B2 (ja) セグメントデータ管理方法及びこの管理方法を使用したクリッピング処理方法
JPH06231276A (ja) 3次元物体表示のためのポリゴン生成方法
CN114529671A (zh) 基于gpu并行计算和哈希表的变电站施工现场三维重建方法
JPH10261095A (ja) 画像処理装置及び画像処理方法
JPH0944697A (ja) 図形描画装置
JP3358891B2 (ja) Z値の透視変換処理方法及び画像処理装置
JPH0535912B2 (ja)
JPH06348859A (ja) 立体画像処理装置
JPH10162162A (ja) 画像処理装置と画像処理システム

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term