JPH0589251A - 画像の描画装置 - Google Patents

画像の描画装置

Info

Publication number
JPH0589251A
JPH0589251A JP4046169A JP4616992A JPH0589251A JP H0589251 A JPH0589251 A JP H0589251A JP 4046169 A JP4046169 A JP 4046169A JP 4616992 A JP4616992 A JP 4616992A JP H0589251 A JPH0589251 A JP H0589251A
Authority
JP
Japan
Prior art keywords
register
block
value
data
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.)
Pending
Application number
JP4046169A
Other languages
English (en)
Inventor
Kazumasa Ito
和正 伊藤
Hiroshi Kato
宏 加藤
Junichi Fujita
純一 藤田
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP4046169A priority Critical patent/JPH0589251A/ja
Publication of JPH0589251A publication Critical patent/JPH0589251A/ja
Priority to US08/092,671 priority patent/US5515483A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

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

Abstract

(57)【要約】 【目的】 ラインを正しく描画し、Z値及びカラーデー
タを正しく算出する。また、隠線、隠面処理を正しく行
う。そして、トライアングルを生成する時、隣接するト
ライアングルの境界線近傍のピクセルに対する2重書き
を防止する。 【構成】 各種のアルゴリズムにて規定される判別式の
符号に対応する判別信号SCH1によって、セレクタ43
を制御し、増分値をXTレジスタ41或いはXFレジス
タ42の内から適切に選択し、出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、画像の描画装置、特
にコンピュータグラフイックスに好適な画像の描画装置
に関する。
【0002】
【従来の技術】従来の画像の描画装置には、例えば、ブ
レゼンハムのアルゴリズムを用いて画像を描画するもの
がある。
【0003】
【発明が解決しようとする課題】従来のブレゼンハムの
アルゴリズムを実現する描画装置は、マイナ軸の増分値
が、1、0、−1の何れかに限られていた。従って、こ
の描画装置は、ライン及びエッジのX、Y座標の算出だ
けを行い、Z値及びカラーを算出することは出来ないも
のであった。
【0004】このため、Z値及びカラーは、上述のライ
ン及びエッジのX、Y座標の算出を行う描画装置とは異
なる他の描画装置、即ち、増分値を逐次、加算していく
描画装置によって算出されていた。
【0005】しかしながら、増分値の精度が十分にとら
れていない場合、誤差を生ずる可能性があるという問題
点があった。
【0006】また、トライアングルの外形線に関して
は、増分値を逐次、加算していく描画装置を用いていた
ため、増分値の精度が十分にとられていない場合、誤差
を生ずる可能性があるという問題点があった。
【0007】従って、この発明の目的は、精度の高い描
画処理を行い得る画像の描画装置を提供することにあ
る。
【0008】
【課題を解決するための手段】請求項1にかかる発明で
は、3次元を構成する各軸の座標データの初期値に対
し、標準のブレゼンハムのアルゴリズム、或いは、線分
の傾きを任意の値に拡張し得るブレゼンハムのアルゴリ
ズムを適用して新たな座標データを算出するようにした
構成としている。
【0009】請求項2にかかる発明では、3次元を構成
する各軸の座標データの初期値に対し、標準のブレゼン
ハムのアルゴリズム、或いは、線分の傾きを任意の値に
拡張し得るブレゼンハムのアルゴリズムを適用して新た
な座標データを算出し、新たな座標データの内、マイナ
軸の増分に応じて、Z座標データとして任意の値を順
次、加算するようにした構成としている。
【0010】
【作用】請求項1の発明では、3次元を構成するX軸、
Y軸、Z軸の夫々の軸の座標データの初期値に対し、X
軸及びY軸の座標データに関しては、標準のブレゼンハ
ムのアルゴリズム、また、Z軸の座標データ及びカラー
データに関しては、線分の傾きを任意の値に拡張し得る
ブレゼンハムのアルゴリズムが適用される。これによっ
て、適切な増分値が選択され、新たな座標データが算出
される。
【0011】請求項2の発明では、3次元を構成するX
軸、Y軸、Z軸の夫々の軸の座標データの初期値に対
し、X軸、Y軸の座標データに関しては標準のブレゼン
ハムのアルゴリズム或いは線分の傾きを任意の値に拡張
し得るブレゼンハムのアルゴリズムが適用される。これ
によって、新たな座標データが算出される。
【0012】Z軸の座標データに関しては、新たな座標
データの内、マイナ軸の座標データの増分に応じて求め
られる。
【0013】また、カラーデータに関しては、エッジ及
びラインを描画する場合は、線分の傾きを任意の値に拡
張しうるブレゼンハムのアルゴリズムが適用され、これ
によって適切な増分値が選択され、新たな座標データに
対応するカラーデータが算出される。トライアングルの
辺を描画する場合は、新たな座標データの内、マイナ軸
の座標データの増分に応じて、適切な増分値が選択さ
れ、新たな座標データに対応するデータが求められる。
【0014】
【実施例】以下、この発明の一実施例について図1乃至
図14を参照して説明する。尚、この一実施例の説明で
は、描画装置の例として3次元プリミテイブ生成装置、
即ち、ライン・プロセッサを用いている。尚、この明細
書中、プリミテイブとは、三角形、四角形等の多角形若
しくはこれらの多角形で形成された図形を直接イメージ
するための多角形描画原素を意味するものである。
【0015】この3次元プリミテイブ生成装置、即ち、
ライン・プロセッサは、2次元及び3次元のプリミテイ
ブを高速に描画するものである。描画のパラメータを受
け取ると、例えば、最高で25Mピクセル/秒の速さで
1ピクセル毎に描画データを出力するものである。
【0016】描画するプリミテイブ〔以下、描画プリミ
テイブと称する〕としては、例えば、以下のものがあ
る。 ライン〔直線〕・・・・・・・・2次元、3次元 トライアングル〔三角形〕・・・2次元、3次元 レクタングル〔長方形〕・・・・2次元、3次元 ポリゴン〔多角形〕・・・・・・2次元、3次元 ビットマップ・・・・・・・・・2次元 ピクセルマップ・・・・・・・・2次元 スキャンライン・ピクセル・・・3次元
【0017】上述の描画プリミテイブに対して、例え
ば、5タイプのカラー出力が必要に応じて用意されてい
る。 リアル・カラー(24ビット) インデックス・カラー(10ビット) デイザ・カラー(3ビット、4ビット) XPカラー(1ビット)
【0018】更に、必要に応じて以下の属性を付加す
る。 ライン・パターン(32ビット) ハッチ・パターン(16×16ビット) 半透明パターン(4×4ビット) ライン幅(3、5)
【0019】図1に示されるように、この3次元プリミ
テイブ生成装置は、SPインターフエースブロック1、
ラインブロック2、スキャンブロック3、ライン幅ブロ
ック4、パターンブロック5、XPインターフエースブ
ロック6、コントロールブロック7等から主に構成され
ている。
【0020】SPインターフエースブロック1は、プリミ
テイブを生成するためのパラメータを受け入れるための
ブロックである。SPインターフエースブロック1は、入
力されたアドレスをデコードし各レジスタ等に対して各
種ロード信号を出力する。
【0021】各種ロード信号は、内部状態に応じて出力
が禁止される。この時は禁止が解除されるまで、前段の
回路ブロックに対してウエイト信号WAITを出力して、デ
ータDTの入力を一時、中断する。
【0022】禁止が解除されると、ロード信号を出力し
て前段の回路ブロックに対するウエイト信号WAITの出力
を停止する。
【0023】ラインブロック2は、各種のアルゴリズ
ム、例えば、ブレゼンハムのアルゴリズムを用いて、ラ
イン及び多角形の外形線を生成するブロックである。
尚、ラインブロック2の詳細については後述する。
【0024】スキャンブロック3は、多角形の内部をX
軸方向にスキャンするブロックである。即ち、受け取っ
たデータをX軸方向に補間していくブロックである。補
間回路は、X、Z、R、G、Bの各データごとに設けら
れている。
【0025】ライン幅ブロック4は、太線を生成するブ
ロックである。即ち、ラインブロック2より与えられた
X、Y座標を中心となし、該中心を囲む所定数のピクセ
ルを描画する。
【0026】パターンブロック5は、ラインパターン、
ハッチパターン、半透明パターン、デイザパターン等の
属性を生成されたプリミテイブに付加するブロックであ
る。即ち、パターンブロック5は、ラインパターン、ハ
ッチパターン、半透明パターン、デイザパターンを有す
るもので、1ピクセル毎にこれらのパターンを参照して
各データに反映させる。
【0027】XPインターフエースブロック6は、生成
されたプリミテイブをピクセル単位で、次段の回路に出
力するブロックである。
【0028】コントロールブロック7は、3次元プリミ
テイブ生成装置全体を制御するブロックである。
【0029】この発明では、主に以下のプリミテイブを
生成することができる。 (1)ライン (2)トライアングルの辺 (3)プリミテイブのエッジ
【0030】これらのプリミテイブを生成するために以
下のアルゴリズムを用いる。
【0031】以下、各アルゴリズムの実現について説明
する。 〔1〕ブレゼンハム ブレゼンハムのアルゴリズムは、整数計算でラインを描
画するものである。例えば、点Aの座標を(X1、Y
1)、点Bの座標を(X2、Y2)とし、この2点を結
ぶラインを描画することを考える。この場合に於いて、
dx,dy を以下のように定義する。 dx=X2−X1、dy=Y2−Y1
【0032】また、dx、dyを以下のように仮定する。 |dx|≧|dy|、dx≧0、dy≧0
【0033】ここに於いて、後述するレジスタの内容を
以下のように設定すれば、点Aから順次、Y座標の値
を、XAレジスタの出力として求めることができる。ま
た、X座標はステップ毎に “1”を加算していけば良
い。
【0034】EAレジスタ・・・−|dx|+2|dy| (ブレゼンハムのアルゴリズムに於ける判別式E=−|
dx|+2|dy|) ETレジスタ・・・2|dy|−2|dx| EFレジスタ・・・2|dy| XAレジスタ・・・Y1 XTレジスタ・・・1・・・・・・・(増分値) XFレジスタ・・・0・・・・・・・(増分値)
【0035】〔2〕傾きが1を越えるブレゼンハム ラインを描画する時、X、Y座標に関しては、メジャ軸
方向に1ステップ進んでもマイナ軸方向の変化分は高々
“±1”である。しかしながら、Z値及びカラーに関し
ては、変化分が“±1”以上になることがある。
【0036】傾きが1を越えるブレゼンハムのアルゴリ
ズムを説明する図が図13に示されている。
【0037】図13に示されるX−Z座標平面上に於い
て、ラインLO2を設定する。このラインLO2上に於
ける点PAから、X軸上で(+1)増加した位置には、
ラインLO2の点PTが対応する。
【0038】点PTで示される値は真値であり、実際の
Z値としては、該点PTの上側に位置する点PB1、或
いは下側に位置する点PB2のいずれかが選択される。
この点PB1、PB2のいずれを選択すべきかは、傾き
が1を越えるブレゼンハムのアルゴリズムに於ける判別
式E(後述)の正または負の符号によって決定される。
【0039】例えば、点Aの座標を(X1、Y1)、点
Bの座標を(X2、Y2)、各点のZ値をZ1、Z2と
する。この2点を結ぶラインの各ピクセルのZ値を求め
ることを考える。この場合に於いて、dx,dy,dz を以下
のように定義する。 dx=X2−X1、dy=Y2−Y1、dz=Z2−Z1
【0040】また、s、dBを以下のように定義する。 s=dz/dx dB=dz%dx 上式に於いて、“/”は、分子を分母で割り、小数部分
を切り捨てて得られる整数値である。また、“%”は、
分子を分母で割った時の剰余である。
【0041】そして、dx、dy、dzを以下のように仮定す
る。 |dx|≧|dy|、dx≧0、dz≧0
【0042】ここに於いて、後述するレジスタの内容を
以下のように設定すれば、点Aから順次、Z値を、ZA
レジスタの出力として求めることができる。
【0043】 EZAレジスタ・・・−|dx|+2|dB| (傾きが1を越えるブレゼンハムのアルゴリズムに於け
る判別式E=−|dx|+|dB|) EZTレジスタ・・・2|dB|−2|dx| EZFレジスタ・・・2|dB| ZAレジスタ・・・Z1 ZTレジスタ・・・s+1・・・・・・・(増分値) ZFレジスタ・・・s ・・・・・・・(増分値)
【0044】〔3〕特殊Yメジャのブレゼンハム 特殊Yメジャのブレゼンハムのアルゴリズムについて説
明する前に、メジャー(メジャー軸)、マイナ(マイナ
軸)について、図12を参照し概略を説明する。
【0045】図12に示されるX−Y座標平面上に於い
て、ラインL03、L04を考える。同図中、X軸に対
してなす角度が、X軸の正の方向から反時計方向に45
度以下または、135度以上225度以下または315
度以上であるラインL04についてはX軸をメジャー軸
と称し、Y軸をマイナ軸と称する。
【0046】また、X軸に対してなす角度が、X軸の正
の方向から反時計方向に45度以上135度以下または
225度以上315度以下であるラインL03について
はY軸をメジャー軸と称し、X軸をマイナ軸と称する。
【0047】メジャー軸は、例えば、ラインを描画する
に際し、ラインの始点から終点迄の間に於ける変化量
は、(+1)或いは(−1)のいずれかである。この変
化量が、若し(+1)であるとすれば常に(+1)でし
か変化せず、(+1)と(−1)の双方の変化量が生ず
るということはない。これは、変化量が(−1)の場合
でも同様である。
【0048】例えば、X−Y座標平面に於けるX軸方
向、Y軸方向の変化量の絶対値を夫々、dx、dyとした場
合、その大小比較を行うと、 dx<dy・・・Yメジャー dx>dy・・・Xメジャー と夫々称される。
【0049】特殊Yメジャのブレゼンハムのアルゴリズ
ムに於いては、線分の傾きによらず、常にY軸をメジャ
ー軸として扱う。
【0050】特殊Yメジャのブレゼンハムのアルゴリズ
ムについて説明する。三角形の辺上のピクセル及びエッ
ジ・フラグ・フイルの外郭線は、常にYメジャで行う。
従って、この場合にも傾きが“1”を越えることがあ
る。
【0051】例えば、点Aの座標を(X1、Y1)、点
Bの座標を(X2、Y2)とする。この2点を結ぶ辺を
描画することを考える。この場合に於いて、dx,dy を以
下のように定義する。 dx=X2−X1、dy=Y2−Y1
【0052】また、s、dBを以下のように定義する。 s=dx/dy dB=dx%dy 上式に於いて、“/”は、分子を分母で割り、小数部分
を切り捨てて得られる整数値である。また、“%”は、
分子を分母で割った時の剰余である。
【0053】そして、dx、dyを以下のように仮定する。 dx≧0、dy≧0
【0054】ここに於いて、後述するレジスタの内容を
以下のように設定すれば、点Aから順次、X座標の値
を、XAレジスタの出力として求めることができる。ま
た、Y座標はステップ毎に “1”を加算していけば良
い。
【0055】EAレジスタ・・・2|dB| (特殊Yメジャのブレゼンハムのアルゴリズムに於ける
判別式E=2|dB|) ETレジスタ・・・2|dB|−2|dy| EFレジスタ・・・2|dB| XAレジスタ・・・X1 XTレジスタ・・・s+1 ・・・・・・・(増分
値) XFレジスタ・・・s ・・・・・・・(増分
値)
【0056】特殊Yメジャのブレゼンハムのアルゴリズ
ムは、前述のように、例えば、三角形の辺を描画する時
に用いられる。この時、ピクセルが三角形に対応して選
択されるか否かは、ピクセルの三角形内の位置によって
異なる。以下、図14を用いて説明する。
【0057】図14には、X−Y座標平面上に描画しよ
うとする三角形TR1が示されている。この三角形TR
1の左側のラインLO5側では、三角形TR1の内側若
しくは左側のラインLO5上に位置するピクセルが選択
される。図14の例では、ピクセルPX04がラインL
O5上に位置するピクセルであり、PX02、PX0
3、PX05、PX06が三角形TR1の内側に位置す
るピクセルである。
【0058】また、三角形TR1の右側ののラインLO
6側では、全て三角形TR1の内側のピクセルPX12
〜PX16が選択される。そして、ピクセルPX02か
らピクセルPX12の方向へ、即ち、X軸方向でスキャ
ンされ、補間及び描画がなされる。他のピクセルPX0
3〜PX13、PX04〜PX14、ピクセルPX05
〜PX15、PX06〜PX16についても同様であ
る。
【0059】このようにすることによって、隣接した複
数の三角形を描画する時、同一のピクセルPXijに対
して2度書きしてしまうことを防止でき、三角形TR1
を正確に描画できる。
【0060】〔4〕選択DDA〔Digital Differential
Analyzer:デジタル微分解析法〕 選択DDAのアルゴリズムについて説明する前に、選択
DDAと、通常のDDAとの違いについて説明する。
【0061】通常のDDAでは、所定の増分値を逐次加
算してゆくのに対し、この選択DDAでは、後述のXT
レジスタとXFレジスタに保持されている値を、新たな
ピクセルのデータを求める毎に選択してXAレジスタの
値と加算し、新たなピクセルのデータを求めていること
である。
【0062】三角形の辺上のピクセルの座標が特殊Yメ
ジャのブレゼンハムのアルゴリズムで求められるので、
Z値、カラーはそれに基づいて求められなければならな
い。つまり、X座標の増分に応じてZ値とカラーは2つ
ある定数の内、何れか一方を選択しながら順次、加算さ
れる。
【0063】選択DDAは、X、Y座標を算出するため
のブレゼンハム或いは特殊Yメジャのブレゼンハムの係
数を使ってZ値またはカラーを求めるアルゴリズムであ
る。ここでは、特殊Yメジャのブレゼンハムの係数を使
って選択DDAを実現する方法を示す。
【0064】例えば、点Aの座標を(X1、Y1)、点
Bの座標を(X2、Y2)とし、点AのZ値をZ1、X
方向のZ値の傾きをZx、Y方向のZ値の傾きをZyと
するとき、この2点を結ぶ辺の各ピクセルのZ値を求め
ることを考える。この場合に於いて、 dx,dyを以下のよ
うに定義する。 dx=X2−X1、dy=Y2−Y1
【0065】また、s, dBを以下のように定義する。 s=dx/dy dB=dx%dy 上式に於いて、“/”は、分子を分母で割り、小数部分
を切り捨てて得られる整数値である。また、“%”は、
分子を分母で割った時の剰余である。
【0066】そして、dx、dyを以下のように仮定する。 dx≧0、dy≧0
【0067】ここに於いて、後述するレジスタの内容を
以下のように設定すれば、点Aから順次、Z値を、ZA
レジスタの出力として求めることができる。
【0068】EAレジスタ・・・2|dB| (選択DDAのアルゴリズムに於ける判別式E=2|d
B|) ETレジスタ・・・2|dB|−2|dy| EFレジスタ・・・2|dB| ZAレジスタ・・・Z1 ZTレジスタ・・・(s+1)Zx+Zy ・・・・・
・・(増分値) ZFレジスタ・・・sZx+Zy ・・・・・
・・(増分値)
【0069】上述の各種のアルゴリズムは主にラインブ
ロック2によって実現される。そこで、まず、図2を参
照して、ラインブロック2の構成について説明する。
【0070】図2に示されるように、ラインブロック2
は、メジャーブロック11、XSブロック12、Zブロ
ック13、Rブロック14、Gブロック15、Bブロッ
ク16、XEブロック17等から主に構成されている。
上述の各ブロック11〜17には、データバス18によ
って入力データが供給されるようになされている。
【0071】メジャーブロック11は、ライン及びエッ
ジを描画する時は、メジャー軸方向に於ける座標の
(X、Y)の各データを算出するもので、具体的には、
メジャー軸のデータに(+1)或いは(−1)を加算し
てゆくものである。また、このメジャーブロック11
は、三角形を描画する時、Y座標のデータを算出するも
のである。
【0072】XSブロック12は、判別部21と、演算
部22とから主に構成されている。23、24は端子で
ある。以下、図3を参照して、判別部21と演算部22
の夫々の構成及び作用について説明する。
【0073】このXSブロック12は、ライン及びエッ
ジを描画する時、マイナ軸方向の座標データを求めるも
のである。また、XSブロック12は、三角形を描画す
る時、X軸における始点側の座標データを算出するもの
である。
【0074】三角形の描画を、例に説明すれば、XSブ
ロック12は、3つの頂点の座標データ(X1、Y1)
〜(X3、Y3)の内、最大のY座標のデータ及び最小
のY座標のデータを有する辺を、描画するブロックであ
る。
【0075】まず、判別部21について説明する。判別
部21の構成が図4に示されている。
【0076】図4の構成に於いて、判別部21は、ブレ
ゼンハム等の描画アルゴリズムで使用される評価係数の
増分を保持し出力するETレジスタ31、EFレジスタ
32と、該レジスタ31、32からの出力の何れか一方
を選択するセレクタ33と、加算器34と、評価係数と
しての加算結果を保持し出力するEAレジスタ35と、
加算結果が零であるか否かを検出する零検出器36と、
上述のセレクタ33を制御する判別信号SCH1を出力す
るためのセレクタ37とから主に構成されている。尚、
38は上述の判別信号SCH1を取り出すための端子であ
る。
【0077】上述のETレジスタ31、EFレジスタ3
2、EAレジスタ35は、全て16ビットであり、符号
付整数データを保持する。EAレジスタ35には、2の
補数形式で表されてなる16ビットの整数データが保持
されている。この整数データは2の補数形式であるた
め、MSBが符号ビットとされている。
【0078】次に、演算部22について説明する。演算
部22の構成が図5に示されている。
【0079】図5の構成に於いて、演算部22は、描画
データの増分を保持し出力するXTレジスタ41、XF
レジスタ42と、該レジスタ41、42からの出力の何
れか一方を選択するセレクタ43と、加算器44と、加
算結果を保持し出力するXAレジスタ45とから主に構
成されている。尚、24は、演算部22の出力データを
取り出すための端子である。
【0080】上述のXTレジスタ41、XFレジスタ4
2、XAレジスタ45は、16ビット符号付整数データ
を保持する。
【0081】以下、図3乃至図5を参照し、XSブロッ
ク12の作用について説明する。最初のステップで、全
てのレジスタに初期値が入力される。このステップで
は、前述した各アルゴリズムに於いて規定されている増
分値を初め各種の初期値がセットされる。
【0082】次のステップで、ETレジスタ31或いは
EFレジスタ32の出力が、セレクタ37から出力され
る判別信号SCH1で制御されるセレクタ33によって選
択され加算器34に供給される。
【0083】加算器34では、EAレジスタ35からフ
イードバックされるデータと、セレクタ33を介して供
給されるデータとの加算がなされる。この加算結果は、
EAレジスタ35及び零検出器36に供給される。
【0084】EAレジスタ35では、新たに供給された
データが旧いデータに代わって格納される。そして、格
納された新たな16ビットのデータが加算器34にフイ
ードバックされると共に、16ビットのデータの内のM
SBのみが符号ビットとしてセレクタ37に供給され
る。
【0085】零検出器36では、加算結果が零であるか
否かが検出される。若し、加算結果が"0" であることが
検出された場合には、零検出信号SDTがセレクタ37に
供給される。
【0086】セレクタ37では、EAレジスタ35に格
納されている16ビットの内、MSBが符号ビットとし
て供給される。また、端子39を介して供給される
“0”或いは“1”の値が零処理指定ビットとしてコン
トロールブロック7から供給される。
【0087】セレクタ37では、上述の零検出器36か
ら零検出信号SDTが供給されない場合には、EAレジス
タ35から供給される符号ビットが選択され判別信号S
CH1とされてセレクタ33に供給されると共に、端子3
8を介して演算部22に供給される。また、この判別信
号SCH1は、端子23を介して他のブロック、即ち、Z
ブロック13、Rブロック14、Gブロック15、Bブ
ロック16等に供給される。
【0088】セレクタ37では、上述の零検出器36か
ら零検出信号SDTが供給された場合には、零処理指定ビ
ットが選択される。
【0089】零処理指定ビットについて、図10及び図
11について説明する。図10に於いて、始点Aの座標
データを(X1、Y1)とし、終点Bの座標データを
(X2、Y2)とし、該始点A及び終点B間でラインを
描画するとした場合には、 Δx=X2−X1>0 即ち、 Δx>0 となる。この場合には、“0”を負として扱う。
【0090】また、図11に於いて、始点Aの座標デー
タを(X1、Y1)とし、終点Bの座標データを(X
2、Y2)とし、該始点A及び終点B間でラインを描画
するとした場合には、 Δx=X2−X1<0 即ち、 Δx<0 となる。この場合には、“0”を正として扱う。
【0091】上述のように、“0”を正として扱う時に
は、零処理指定ビットとして“0”が出力され、“0”
を負として扱う時には、零処理指定ビットとして“1”
が出力される。
【0092】セレクタ37では、上述の零検出器36か
ら零検出信号SDTが供給される場合には、零処理指定ビ
ットが判別信号SCH1とされてセレクタ33に供給され
ると共に、端子38を介して演算部22に供給される。
また、この判別信号SCH1は、端子23を介して他のブ
ロック、即ち、Zブロック13、Rブロック14、Gブ
ロック15、Bブロック16等に供給される。
【0093】零処理指定ビットでEFレジスタ32とE
Tレジスタ31から出力されるデータの選択を制御する
ことにより、例えば、ラインを描画する時、始点と終点
とを入れ替えることが可能となる。
【0094】例えば、始点のX座標をX1、終点のX座
標をX2とすると、 X2−X1≧0・・・“0”の時、EFレジスタ32を
選択 X2−X1<0・・・“0”の時、ETレジスタ31を
選択 と定めることによって、始点と終点とを入れ替えてライ
ンを描画しても同じラインを描画することができる。
【0095】演算部22のセレクタ43では、前述した
各アルゴリズムに於ける判別式Eが“0”と比較され、
該判別式Eが正であるか或いは負であるかによって接続
状態が制御される。
【0096】セレクタ43では、判別信号SCH1が非負
と判断される場合にはXTレジスタ41の値を選択する
ように接続状態が制御される。また、判別信号SCH1が
負と判断される場合にはXFレジスタ42の値を選択す
るように接続状態が制御される。このセレクタ43にて
選択されたXTレジスタ41或いはXFレジスタ42に
保持されている増分値としての出力は、加算器44に供
給される。
【0097】加算器44では、XAレジスタ45からフ
イードバックされるデータと、セレクタ43を介して供
給されるデータとの加算がなされる。この加算結果は、
XAレジスタ45に供給される。
【0098】XAレジスタ45では、新たに供給された
データが、新たなX座標のデータとして旧いデータに代
わり格納される。このXAレジスタ45に格納されてい
るデータが求めるべきピクセルのX座標のデータとな
る。そして、格納された新たな16ビットのX座標のデ
ータが加算器44にフイードバックされると共に、端子
24から取出される。
【0099】XEブロック17は、図6に示されるよう
に、判別部21と、演算部22とから主に構成されてい
る。判別部21と、演算部22の夫々の構成及び作用
は、XSブロック12と同様であるので、重複する説明
を省略する。48は端子である。
【0100】このXEブロック17では、三角形を描画
する際に、XSブロック12で描画されなかった他の2
辺について描画する機能をも有するブロックである。
【0101】次いで、図7乃至図9を参照し、Zバッフ
ア法で用いられるZ値を算出するためのZブロック1
3、各ピクセル毎のカラーデータを算出するRブロック
14、Gブロック15、Bブロック16の構成について
説明する。
【0102】上述のZブロック13、Rブロック14、
Gブロック15、Bブロック16の構成はビット数を除
いて共通であるため、例としてZブロック13について
のみ説明し、他のブロックに対する説明は省略する。
【0103】Zブロック13は、判別部51と、演算部
52と、セレクタ53から主に構成されている。54、
55は端子である。以下、判別部51、演算部52、セ
レクタ53の夫々の構成及び作用について説明する。
【0104】まず、判別部51について説明する。判別
部51の構成が図8に示されている。
【0105】図8の構成に於いて、判別部51は、ブレ
ゼンハム等の描画アルゴリズムで使用される評価係数の
増分を保持し出力するEZTレジスタ61、EZFレジ
スタ62と、該レジスタ61、62からの出力の何れか
一方を選択するセレクタ63と、加算器64と、評価係
数としての加算結果を保持し出力するEZAレジスタ6
5ととから主に構成されている。尚、67は判別信号S
CH2を取り出すための端子である。
【0106】上述のEZTレジスタ61、EZFレジス
タ62、EZAレジスタ65は、全て16ビットであ
り、符号付整数データを保持する。EZAレジスタ65
には、2の補数形式で表されている16ビットの整数デ
ータが保持されている。この整数データは2の補数形式
であるため、MSBが符号ビットとされている。
【0107】次に、セレクタ53について説明する。こ
のセレクタ53は、コントロールブロック7から端子5
6を介して供給される選択信号により、判別信号SCH
1、SCH2の何れか一方を選択するものである。判別信
号SCH1、SCH2の内、選択された信号が演算部52に
供給される。
【0108】このセレクタ53が設けられていることに
よって、演算部52のセレクタ73の制御信号としての
判別信号を、上述の判別部51から出力される判別信号
SCH2或いはXSブロック12から出力される判別信号
SCH1の何れか一方を選択することができる。
【0109】次いで、演算部52について説明する。演
算部52の構成が図9に示されている。
【0110】図9の構成に於いて、演算部52は、描画
データの増分を保持し出力するZTレジスタ71、ZF
レジスタ72と、該レジスタ71、72からの出力の何
れか一方を選択するセレクタ73と、加算器74と、加
算結果を保持し出力するZAレジスタ75とから主に構
成されている。
【0111】76は、判別信号SCH1或いは判別信号S
CH2の供給される端子である。また、上述のZTレジス
タ71、ZFレジスタ72、ZAレジスタ75は、Zブ
ロック13では、32ビット符合付固定小数データを用
い、Rブロック14、Gブロック15、Bブロック16
では、16ビット符合付固定小数データを用いる。
【0112】Zブロック13の作用について説明する。
最初のステップで、全てのレジスタに初期値が入力され
る。このステップでは、前述した各アルゴリズムに於い
て規定されている増分値を初め各種の初期値がセットさ
れる。
【0113】次のステップで、EZTレジスタ61或い
はEZFレジスタ62の出力がセレクタ63に供給され
る。
【0114】このセレクタ63は、EZAレジスタ65
から供給される判別信号SCH2で制御されるものであ
る。上述の判別信号SCH2としては、EZAレジスタ6
5に格納されているデータのMSBが用いられている。
【0115】このセレクタ63は、符号ビットが正、即
ち、MSB〔=“0”〕である時、EZTレジスタ61
の出力が選択され、また、符号ビットが負、即ち、MS
B〔=“1”〕である時、EZFレジスタ62の出力が
選択される。選択されたデータは、加算器64に供給さ
れる。
【0116】加算器64では、EZAレジスタ65から
フイードバックされるデータと、セレクタ63を介して
供給されるデータとの加算がなされる。この加算結果
は、EZAレジスタ65に供給される。
【0117】EZAレジスタ65では、新たに供給され
たデータが旧いデータに代わって格納される。そして、
格納された新たな16ビットのデータが加算器64にフ
イードバックされると共に、16ビットのデータの内の
MSBが判別信号SCH2としてセレクタ63に供給され
る。上述の判別信号SCH2は、端子67を介してセレク
タ53に供給される。
【0118】セレクタ53では、コントロールブロック
7から端子56を介して供給される選択信号によって接
続状態が制御され、判別信号SCH1、SCH2の選択がな
される。
【0119】例えば、前述した選択DDAのアルゴリズ
ムが適用される時は、Zブロック13、Rブロック1
4、Gブロック15、Bブロック16の各判別部51に
は、XSブロック12の判別部21と同じ値が入力さ
れ、同じ動作を行う。
【0120】従って、初期値設定のオーバーヘッドを減
らすため、Zブロック13、Rブロック14、Gブロッ
ク15、Bブロック16の各判別部51を使用せず、X
Sブロック12の判別部21から出力される判別信号S
CH1を使用する。
【0121】また、選択DDA以外のアルゴリズムが適
用される時は、判別信号SCH2が選択される。
【0122】演算部52では、端子76を介して供給さ
れる判別信号SCH1或いはSCH2がセレクタ73に供給
される。
【0123】セレクタ73では、判別信号SCH1或いは
SCH2が非負と判断される場合にはZTレジスタ71の
値を選択するように接続状態が制御される。また、判別
信号SCH1或いはSCH2が負と判断される場合にはZF
レジスタ72の値を選択するように接続状態が制御され
る。このセレクタ73にて選択されたZTレジスタ71
或いはZFレジスタ72に保持されている増分値として
の出力は、加算器74に供給される。
【0124】加算器74では、ZAレジスタ75からフ
イードバックされるデータと、セレクタ73を介して供
給されるデータとの加算がなされる。この加算結果は、
ZAレジスタ75に供給される。
【0125】ZAレジスタ75では、新たに供給された
データが、新たなZ値として、旧いデータに代わり格納
される。このZAレジスタ75に格納されているZ値の
データが求めるべきピクセルのZ値のデータとなる。そ
して、格納された新たな32ビットのZ値のデータが加
算器74にフイードバックされると共に、端子55から
取出される。
【0126】この一実施例によれば、ラインを生成する
に際し、ブレゼンハムのアルゴリズムに基づく判別式E
の符号に対応する判別信号SCH1をXSブロック12の
判別部21にて形成し、該判別信号SCH1によって、X
Sブロック12の演算部22のXTレジスタ41或いは
XFレジスタ42に保持されている増分としての値を選
択的に取り出しているので、X座標及び/またはY座標
のデータの増分値を正しく選択でき、ラインをより正確
に描画できる。
【0127】また、この一実施例によれば、ラインを生
成するに際し、傾きが1を越えるブレゼンハムのアルゴ
リズムに基づく判別式Eの符号に対応する判別信号SCH
2をZブロック13、Rブロック14、Gブロック1
5、Bブロック16の各判別部51にて夫々形成し、該
判別信号SCH2によって、Zブロック13、Rブロック
14、Gブロック15、Bブロック16の演算部52の
ZTレジスタ71或いはZFレジスタ72に保持されて
いる増分としての値を選択的に取り出しているので、増
分値を正しく選択でき、Z値及びカラーデータを正しく
算出することができ、そして、Z値を正しく算出するこ
とができるので、隠線、隠面処理を正しく行うことがで
きる。
【0128】この一実施例によれば、三角形の辺を生成
するに際し、特殊Yメジャのブレゼンハムのアルゴリズ
ムに基づく判別式Eの符号に対応する判別信号SCH1を
XSブロック12の判別部21にて形成し、該判別信号
SCH1によって、XSブロック12の演算部22のXT
レジスタ41或いはXFレジスタ42に保持されている
増分としての値を選択的に取り出しているので、X座標
及び/またはY座標のデータの増分値を正しく選択でき
る。
【0129】また前述したように、三角形TR1の左側
のラインLO5側では、三角形TR1の内側若しくは左
側のラインLO5上に位置するピクセルが選択され、ま
た、三角形TR1の右側のラインLO6側では、全て三
角形TR1の内側のピクセルPX12〜PX16が選択
されるので、隣接した複数の三角形TR1を描画する
時、同一のピクセルPXijに対して2度書きしてしま
うことを防止でき、三角形TR1の辺をより正確に描画
できる。
【0130】この一実施例によれば、三角形の辺を生成
するに際し、選択DDAのアルゴリズムに基づく判別式
Eの符号に対応する判別信号SCH1をXSブロック12
の判別部21にて形成し、該判別信号SCH1によって、
Zブロック13、Rブロック14、Gブロック15、B
ブロック16の演算部52のZTレジスタ71或いはZ
Fレジスタ72に保持されている増分としての値を選択
的に取り出しているので、増分値を正しく選択でき、Z
値及びカラーデータを正しく算出することができる。そ
して、Z値を正しく算出することができるので、隠線、
隠面処理を正しく行うことができる。
【0131】この一実施例によれば、エッジを生成する
に際し、ブレゼンハムのアルゴリズムに基づく判別式E
の符号に対応する判別信号SCH1をXSブロック12の
判別部21にて形成し、該判別信号SCH1によって、X
Sブロック12の演算部22のXTレジスタ41或いは
XFレジスタ42に保持されている増分としての値を選
択的に取り出しているので、X座標及び/またはY座標
のデータの増分値を正しく選択できる。
【0132】また、この一実施例によれば、エッジを生
成するに際し、傾きが1を越えるブレゼンハムのアルゴ
リズムに基づく判別式Eの符号に対応する判別信号SCH
2をRブロック14、Gブロック15、Bブロック16
の各判別部51にて夫々形成し、該判別信号SCH2によ
って、Rブロック14、Gブロック15、Bブロック1
6の演算部52のZTレジスタ71或いはZFレジスタ
72に保持されている増分としての値を選択的に取り出
しているので、増分値を正しく選択でき、カラーデータ
を正しく算出することができる。
【0133】更に、こ
の一実施例によれば、エッジを生成するに際し、選択D
DAのアルゴリズムに基づく判別式Eの符号に対応する
判別信号SCH2をZブロック13の判別部51にて形成
し、該判別信号SCH2によって、Zブロック13の演算
部52のZTレジスタ71或いはZFレジスタ72に保
持されている増分としての値を選択的に取り出している
ので、増分値を正しく選択でき、Z値を正しく算出する
ことができ、Z値を正しく算出することができるので、
隠線、隠面処理を正しく行うことができる。
【0134】
【発明の効果】請求項1の発明によれば、3次元を構成
するX軸、Y軸、Z軸の夫々の軸の座標データの初期値
に対する増分値を、座標データの変化に対応して適切に
選択でき、ラインを正しく描画できる共に、Z値及びカ
ラーデータを正しく算出することが出来るという効果が
ある。
【0135】Z値を正しく算出することができるので、
隠線、隠面処理を正しく行うことができるという効果が
あり、これによって、面のエッジを生成する時、正しく
3次元面上にのせることができるという効果がある。
【0136】トライアングルを生成する時、隣接するト
ライアングルの境界線近傍のピクセルに対する2重書き
を防止でき、隣接するトライアングルが、同じピクセル
を生成することを防止できるという効果がある。また、
隣接するトライアングルの境界には、ピクセルを必ず生
成できるという効果がある。
【0137】請求項2の発明では、請求項1と同様な効
果を得ることができる。
【図面の簡単な説明】
【図1】この発明の一実施例の全体ブロック図である。
【図2】ライン・ブロックのブロック図である。
【図3】XSブロックのブロック図である。
【図4】XSブロックの判別部のブロック図である。
【図5】XSブロックの演算部のブロック図である。
【図6】XEブロックのブロック図である。
【図7】Zブロックのブロック図である。
【図8】Zブロックの判別部のブロック図である。
【図9】Zブロックの演算部のブロック図である。
【図10】始点と終点の座標に基づくラインの描画を説
明する説明図である。
【図11】始点と終点の座標に基づくラインの描画を説
明する説明図である。
【図12】メジャー軸とマイナ軸の概念を説明する説明
図である。
【図13】傾きが1を越えるブレゼンハムのアルゴリズ
ムを説明する説明図である。
【図14】三角形の辺及び、該三角形内部の補間、描画
を説明する説明図である。
【符号の説明】
2 ラインブロック 12 XSブロック 13 Zブロック 14 Rブロック 15 Gブロック 16 Bブロック 21、51 判別部 22、52 演算部 31 ETレジスタ 32 EFレジスタ 33、37、43、53、63、73 セレクタ 34、44、74 加算器 35 EAレジスタ 36 零検出器 41 XTレジスタ 42 XFレジスタ 45 XAレジスタ SCH1、SCH2 判別信号 SDT 零検出信号 LO1、LO2、LO3、LO4、LO5、LO6 ラ
イン 61 EZTレジスタ 62 EZFレジスタ 65 EZAレジスタ 71 ZTレジスタ 72 ZFレジスタ 75 ZAレジスタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 3次元を構成する各軸の座標データの初
    期値に対し、標準のブレゼンハムのアルゴリズム、或い
    は、線分の傾きを任意の値に拡張し得るブレゼンハムの
    アルゴリズムを適用して新たな座標データを算出する画
    像の描画装置。
  2. 【請求項2】 3次元を構成する各軸の座標データの初
    期値に対し、標準のブレゼンハムのアルゴリズム、或い
    は、線分の傾きを任意の値に拡張し得るブレゼンハムの
    アルゴリズムを適用して新たな座標データを算出し、 上記新たな座標データの内、マイナ軸の増分に応じて、
    Z座標データとして任意の値を順次、加算する画像の描
    画装置。
JP4046169A 1991-07-12 1992-01-31 画像の描画装置 Pending JPH0589251A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4046169A JPH0589251A (ja) 1991-07-12 1992-01-31 画像の描画装置
US08/092,671 US5515483A (en) 1991-07-12 1993-07-15 Rendering system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3-198713 1991-07-12
JP19871391 1991-07-12
JP4046169A JPH0589251A (ja) 1991-07-12 1992-01-31 画像の描画装置

Publications (1)

Publication Number Publication Date
JPH0589251A true JPH0589251A (ja) 1993-04-09

Family

ID=26386288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4046169A Pending JPH0589251A (ja) 1991-07-12 1992-01-31 画像の描画装置

Country Status (2)

Country Link
US (1) US5515483A (ja)
JP (1) JPH0589251A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014018858A (ja) * 2012-07-24 2014-02-03 Murata Mach Ltd 熱切断加工機の素材熱伝播シミュレーション装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW304254B (ja) * 1994-07-08 1997-05-01 Hitachi Ltd
US5812136A (en) * 1996-10-30 1998-09-22 Microsoft Corporation System and method for fast rendering of a three dimensional graphical object
EP1323013A2 (en) * 2000-08-24 2003-07-02 Immersive Technologies LLC Computerized image system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805116A (en) * 1986-04-23 1989-02-14 International Business Machines Corporation Interpolated display characteristic value generator
US5025405A (en) * 1986-08-15 1991-06-18 Hewlett-Packard Company Method of interpolating pixel values
US4855935A (en) * 1987-05-08 1989-08-08 Sun Microsystems, Inc. Method and apparatus for rendering vectors using bresenham parameters
US4951230A (en) * 1987-10-26 1990-08-21 Tektronix, Inc. Method and apparatus for tiling an image
US4878182A (en) * 1987-10-30 1989-10-31 International Business Machines Corporation Multiple pixel generator
US4988984A (en) * 1988-10-31 1991-01-29 International Business Machines Corporation Image interpolator for an image display system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014018858A (ja) * 2012-07-24 2014-02-03 Murata Mach Ltd 熱切断加工機の素材熱伝播シミュレーション装置

Also Published As

Publication number Publication date
US5515483A (en) 1996-05-07

Similar Documents

Publication Publication Date Title
US4862391A (en) Shading circuit for shading a plurality of polygons which constitute a solid model, and method of shading the same
US5363479A (en) System and method for rendering bezier splines
US5249264A (en) Image display method and apparatus
US6292192B1 (en) System and method for the direct rendering of curve bounded objects
JP2541539B2 (ja) 図形処理装置
EP0329101B1 (en) Three-dimensional graphic processing apparatus
US5029225A (en) Texture mapping apparatus
CA2050651C (en) Integrated hardware generator for area fill, conics and vectors in a graphics rendering processor
JP2002352254A (ja) グラフィックスモデルを表す複数のポリゴンを含むメッシュをレンダリングする方法
JPH0589251A (ja) 画像の描画装置
EP0535879A2 (en) Image processing apparatus
EP0389890B1 (en) Method and apparatus for generating figures with three degrees of freedom
JP3059739B2 (ja) 曲線描画機能を備えた情報処理装置および処理方法
JP2780496B2 (ja) 描画装置のクリッピング処理方式
EP0838786A1 (en) Method of producing polygon data, image processor to which the method is applied, and expanded function board
JPH05324921A (ja) 曲線形成方法および装置
JP2768331B2 (ja) 曲線の直線近似装置
JP3759365B2 (ja) 三次元クリップ判定処理装置
EP0212774A2 (en) Display system
EP0256488B1 (en) Method of interpolating pixel values
EP0293698B1 (en) Graphic controller having function of painting designated area
JP2686012B2 (ja) 太線描画方法
JPH06168337A (ja) 塗り潰し処理方法
JP2804028B2 (ja) レンダリングプロセツサ
JP2668867B2 (ja) 断面図描画装置