JP2001109457A - 画像処理方法および画像処理装置 - Google Patents

画像処理方法および画像処理装置

Info

Publication number
JP2001109457A
JP2001109457A JP29160899A JP29160899A JP2001109457A JP 2001109457 A JP2001109457 A JP 2001109457A JP 29160899 A JP29160899 A JP 29160899A JP 29160899 A JP29160899 A JP 29160899A JP 2001109457 A JP2001109457 A JP 2001109457A
Authority
JP
Japan
Prior art keywords
coordinate value
intersection
deformation
horizontal
dda
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
JP29160899A
Other languages
English (en)
Inventor
Shuhei Ito
周平 伊藤
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP29160899A priority Critical patent/JP2001109457A/ja
Priority to US09/689,580 priority patent/US6697081B1/en
Priority to TW089121315A priority patent/TW499667B/zh
Publication of JP2001109457A publication Critical patent/JP2001109457A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 乗算処理や除算処理を一切用いずに、変形後
の図形の各点に対応した変形前の図形上の点を求め、そ
の点に対応した画像データを用いて変形後の図形の描画
を行う。 【解決手段】 水平走査線を垂直方向に進めながら、い
わゆるDDAにより、変形後の図形の各辺との交点E、
Fの座標値を求め、これらの交点を結ぶ直線上の点Gに
対応した変形前の図形における点の座標値を求める。こ
の変形前の図形における点の座標値に対応した画像デー
タを画像メモリから読み出して、変形後の図形の点Gに
対応した画像データとしてフレームバッファに書き込
む。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】この発明は、画像メモリに記
憶された図形の画像を変形して表示装置に表示するため
の画像処理方法および画像処理装置に関する。
【0002】
【従来の技術】ビデオゲームなどの装置では、画像メモ
リに記憶された各種の図形の画像データの中から1画面
を構成するのに必要な部品となる図形の画像データを読
み出し、これらの各画像データ毎に、各々の画面内での
位置に対応した書き込みアドレスを発生し、フレームバ
ッファにおける当該書き込みアドレスに対応したエリア
への書き込みを行うことにより画面の構成が行われる。
この画面構成の際に、画像メモリにおける当該図形の画
像データの読み出しアドレスやフレームバッファにおけ
る書き込みアドレスを制御することにより、画面内の図
形に回転、変形などを与えることが一般に行われてい
る。この種の技術は、2次元レンダリング技術と呼ばれ
ている。なお、この明細書では、説明の便宜上、「変
形」なる用語を通常の意味よりも広義に解し、通常の変
形の他に回転などをも含むものの総称として用いる。特
許請求の範囲における「変形」もこの広義の変形であ
る。
【0003】
【発明が解決しようとする課題】ところで、上述した2
次元レンダリング技術は、変形後の図形の各位置を変形
前の図形の各位置に写像する変換用関数を求め、この変
換用関数を用いることにより、表示画面における変形後
の図形の各位置をこれに対応した変形前の図形の各位置
に変換し、これらの位置に対応した画像データを画像メ
モリから読み出すという手順により実施されるのが一般
的である。しかしながら、この2次元レンダリング技術
に用いる変換用関数は乗算や除算を含んでいる。従っ
て、2次元レンダリング技術に対応したVDPは、乗算
や除算を高速に実行する機能が求められ、VDP自体が
高価なものになってしまうという問題があった。
【0004】この発明は以上説明した事情に鑑みてなさ
れたものであり、乗算処理や除算処理を行わずに図形を
変形した画像を生成することができる画像処理方法およ
びそのような画像処理方法を実施するための画像処理装
置を提供することを目的としている。
【0005】
【課題を解決するための手段】この発明に係る画像処理
方法または画像処理装置は、画像メモリに記憶された図
形の画像データから当該図形を変形した図形の画像デー
タを生成してフレームバッファに格納する画像処理方法
において、水平走査線を垂直方向に単位量ずつ進めなが
ら、変形後の図形を囲む各辺のうちの2辺の各々につい
て、当該辺と前記水平走査線との交点の水平方向の座標
値をDDA処理により逐次求める変形後交点座標値算出
処理と、前記2辺の各々について、当該辺に対応した前
記変形前の図形の辺における前記交点に対応した点の水
平方向の座標値および垂直方向の座標値をDDA処理に
より逐次求める変形前交点座標値算出処理とを実行する
とともに、前記変形後交点座標値算出処理および前記変
形前交点座標値算出処理が1回実行されるのに合わせ
て、水平方向の座標値を前記変形後交点座標値算出処理
によって算出された一方の交点の水平方向の座標値から
他方の交点の水平方向の座標値に向けて単位量ずつ進め
ながら、前記一方の交点と他方の交点とを結ぶ水平線分
上における単位量ずつ離れた各点に対応した前記変形前
の図形上の各点の水平方向および垂直方向の座標値をD
DA処理により求める最終座標値算出処理と、前記変形
後交点座標値算出処理によって座標値が算出された前記
2つの交点間を結ぶ水平線分上の単位量ずつ離れた各点
について、前記変形前の図形の画像データのうち、前記
最終座標値算出処理によって算出された水平方向および
垂直方向の各座標値によって特定される位置の画像デー
タを前記画像メモリから読み出し、前記変形後の図形に
おける当該点に対応した画像データとして前記フレーム
バッファに書き込む画像データ転送処理とを実行するこ
とを特徴としている。
【0006】
【発明の実施の形態】以下、本発明を更に理解しやすく
するため、実施の形態について説明する。かかる実施の
形態は、本発明の一態様を示すものであり、この発明を
限定するものではなく、本発明の範囲で任意に変更可能
である。 A.実施形態の構成 (1)動画表示システムの全体構成 図1はこの発明の一実施形態であるVDP100を用い
た動画表示システムの構成を示すブロック図である。
【0007】図1において、画像メモリ3には、各種の
スプライトやパターンの画像データが格納されている。
ここで、スプライトとは、画面を移動するキャラクタな
どの画像である。本実施形態において用いられる各スプ
ライトはその外形が矩形である。これらの矩形のスプラ
イトの画像データが画像メモリ3に記憶されているので
ある。また、パターンは、これらのスプライトの背景と
して用いられる画像である。以上説明したスプライトお
よびパターンは、上述した画面の部品に相当するもので
ある。
【0008】フレームバッファ4は、1または複数のス
プライトを配置したスプライト画面を作成するために使
用されるバッファである。VDP100は、画像メモリ
3内のスプライトやパターンの表示位置、表示態様、カ
ラー演算係数等の属性値を管理している。VDP100
は、フレーム毎に、これらのスプライトやパターンの属
性値を参照し、必要なスプライトやパターンを用いて1
画面分の画像データを構成し、この画像データを同期信
号に同期して表示装置2に供給する。また、VDP10
0は、CPU1からの要求に従い、スプライトやパター
ンの属性値を更新する。
【0009】本実施形態におけるVDP100は、画像
メモリ3に記憶されたスプライトの画像データをそのま
まフレームバッファ4に書き込む他、このスプライトを
変形したものの画像データをフレームバッファ4に書き
込み、多様なスプライト画面を構成して表示することが
できる。
【0010】図2(a)〜(c)は本実施形態における
スプライトの表示例を示すものである。図2(a)にお
ける最も左上のスプライトは、画像メモリ3から読み出
され、何等回転や変形を加えることなく表示されたスプ
ライトである。図2(a)における他のスプライトは、
画像メモリ3に記憶された本来の画像を回転させた状態
で表示されている。図2(b)に示す例では、同一のス
プライトに対して異なった態様で変形を加え、各々を組
み合わせて表示することにより立体的な表現を行ってい
る。また、図2(c)に示す各例では、スプライトに対
して自由な変形が施されている。これらのスプライトの
変形は、VDP100がスプライトの画像データを画像
メモリ3からフレームバッファ4に移し替える際に行わ
れる。 (2)VDP100の構成 図3は、本実施形態に係るVDP100の構成を示すブ
ロック図である。なお、同図には、VDP100の構成
の理解を容易にするため、画像メモリ3およびフレーム
バッファ4が併せて図示されている。
【0011】以下、この図3を参照し、本実施形態に係
るVDP100の構成について詳述する。
【0012】まず、表示コントローラ101は、CPU
1から与えられる所定周波数のクロックを分周して水平
同期信号HSYNCおよび垂直同期信号VSYNCを生
成する回路である。これらの水平同期信号HSYNCお
よび垂直同期信号VSYNCは、VDP100の外部の
表示装置2に供給される。また、垂直同期信号VSYN
Cは、スプライト属性テーブルアドレスカウンタ103
にも供給される。
【0013】スプライト属性テーブル102は、表示装
置2に表示すべき各スプライト毎に、スプライト名、表
示装置2における表示位置(X、Y座標値)など各種属
性値を記憶したテーブルである。これらの属性値の中に
は、スプライト画面を構成する際にスプライトに変形を
施す際に参照される各種の属性値がある。
【0014】ここで、図4(a)および(b)を参照
し、このスプライトの変形に関連した各属性値について
説明する。
【0015】図4(a)は、画像メモリ3に記憶された
変形前のスプライトを例示するものである。また、図4
(b)は表示画面上における変形後のスプライトを例示
するものである。図4(a)および(b)に示すよう
に、スプライトは、4個の頂点を有する矩形である。以
下、これらの各頂点については、変形前のスプライトに
おいて左上の頂点から反時計廻りに頂点A、B、C、D
と呼ぶ。
【0016】スプライトの変形に関連した各属性値を列
挙すると次の通りである。 a.変形後のスプライトの4頂点の表示画面上での座標
値 図4(b)における頂点Aの座標値(DAX、DA
Y)、頂点Bの座標値(DBX、DBY)、頂点Cの座
標値(DCX、DCY)および頂点Dの座標値(DD
X、DDY)である。 b.変形後のスプライトを構成する各画素のY座標値の
最小値ymin 図4(b)に示す例では、頂点DのY座標値DDYがy
minとなる。 c.変形後のスプライトを構成する各画素のY座標値の
最大値ymax 図4(b)に示す例では、頂点BのY座標値DBYがy
maxとなる。 d.変形後のスプライトの4頂点のうち最も上方にある
頂点(すなわち、Y座標値が最も小さく、最初に描画対
象となる頂点)に対応した番号pn_min本実施形態
においてスプライトの頂点Aには頂点番号「0」、頂点
Bには頂点番号「1」、頂点Cには頂点番号「2」、頂
点Dには頂点番号「3」が各々付与されている。図4
(b)に示す例では、変形後のスプライトの各頂点のう
ち頂点Dが最も上の方(すなわち、Y座標値が最小)に
あるので、この頂点Dの頂点番号「3」がpn_min
として設定される。 e.変形後のスプライトの4頂点のうち最も下の方にあ
る頂点(すなわち、Y座標値が最も大きく、最後に描画
対象となる頂点)に対応した番号pn_max 図4(b)に示す例では、変形後のスプライトの頂点の
うち頂点Bが最も下の方にある(すなわち、Y座標値が
最大)ので、この頂点Bの頂点番号「1」がpn_ma
xとして設定される。f.変形前のスプライトのX方向
のサイズSZXおよびY方向のサイズSZYこれらの各
サイズの意味するところは、図4(a)から明らかであ
ろう。
【0017】以上がスプライトの変形に関連した属性値
である。
【0018】これらのスプライト属性テーブル102に
記憶内容は、CPU1が必要に応じて書き換える。
【0019】メモリインタフェース104は、VDP1
00が画像メモリ3から所望のスプライトまたはパター
ンの画像データを読み出す場合あるいはVDP100が
画像メモリ3に対してスプライトやパターンの画像を書
き込む場合に、VDP100と画像メモリ3との間の画
像データの引き渡しの制御を行う回路である。上述した
スプライト属性テーブル102から読み出されたスプラ
イト名は、このメモリインタフェース104を介するこ
とにより、アドレスデータとして画像メモリ3に供給さ
れる。この結果、当該スプライト名に対応したスプライ
トの画像データが画像メモリ3から読み出され、メモリ
インタフェース104を介してフレームバッファコント
ローラ105に供給される。
【0020】フレームバッファコントローラ105は、
このようにして供給されるスプライトの画像データをフ
レームバッファ4に書き込み、1または複数のスプライ
トが配置された一画面分のスプライト画面の画像データ
をフレームバッファ4内に生成する。このスプライトの
画像データの書き込みの際、フレームバッファコントロ
ーラ105は、スプライト属性テーブル102から読み
出された属性値を参照し、必要に応じて特定の属性値を
自動生成し、このようにして得られる属性値に従ってス
プライトの画像データの書き込みアドレスの制御、画像
データそのものの加工を行う。なお、属性値の自動生成
の際には、関数テーブル106内に記憶された各種の周
期関数波形が参照される場合がある。
【0021】スプライト属性テーブル102から読み出
された属性値にスプライトの変形に関連する属性値が含
まれている場合、フレームバッファコントローラ105
は、2次元レンダリング処理を伴ったスプライト描画処
理を実行し、当該スプライトを変形したスプライトの画
像データをフレームバッファ4に格納する。
【0022】ここで、図4(a)および(b)を参照
し、本実施形態における2次元レンダリング処理を伴っ
たスプライト描画処理の原理について説明する。
【0023】まず、図4(b)において、Y=DGYな
る水平線と、変形後のスプライトの左辺との交点Eの座
標値を(DEX、DEY)、右辺との交点Fの座標値を
(DFX、DFY)とすると、これらの各交点の座標値
は、以下の式により与えられる。 DEY=DGY ……(1) DEX=(DAX-DDX)×(DGY-DDY)/(DAY-DDY)+DDX ……(2) DFY=DGY ……(3) DFX=(DBX-DCX)×(DGY-DCY)/(DBY-DCY)+DCX ……(4) 一方、変形前のスプライトにおいて、変形後のスプライ
ト上の点E(DEX、DEY)およびF(DFX、DF
Y)に対応した点をeおよびfとすると、点eの座標値
(SEX、SEY)および点fの座標値(SFX、SF
Y)は、以下の式により与えられる。 SEY=0 ……(5) SEX=(0-SZX)×(DGY-DDY)/(DAY-DDY)+SZX ……(6) SFY=SZY ……(7) SFX=(0-SZX)×(DGY-DCY)/(DBY-DCY)+SZX ……(8) 次に、変形後のスプライトの上記水平線上の任意の点G
の座標値を(DGX、DGY)とし、この点Gに対応し
た変形前のスプライト上の点Gの座標値を(SGX、S
GY)とする。
【0024】ここで、変形前のスプライトにおける線分
EFと線分EGの長さの比は、変形後のスプライトにお
ける水平線分EFと水平線分EGの長さの比(DGX−
DEX)/(DFX−DEX)に等しい。このため、変
形前のスプライトにおいて、線分EGの長さは、線分E
Fの長さに比(DGX−DEX)/(DFX−DEX)
を乗じたものとなる。そして、変形前のスプライトにお
けるベクトルEFのY成分は(SFY−SEY)であ
り、ベクトルEGのY成分は(SGY−SEY)とな
る。変形前のスプライトにおいて、これらの各Y成分の
長さの比(SGY−SEY)/(SFY−SEY)は、
線分EGと線分EFの長さの比(DGX−DEX)/
(DFX−DEX)に等しい。また、変形前のスプライ
トにおけるベクトルEFのX成分は(SFX−SEX)
であり、ベクトルEGのX成分は(SGX−SEX)と
なる。これらの各X成分の長さの比(SGY−SEY)
/(SFY−SEY)も、上記各Y成分の長さの比と同
様、線分EGと線分EFの長さの比(DGX−DEX)
/(DFX−DEX)に等しくなる。
【0025】このため、次式が成立することとなる。 SGY=(SFY-SEY)×(DGX-DEX)/(DFX-DEX)+SEY ……(9) SGX=(SFX-SEX)×(DGX-DEX)/(DFX-DEX)+SEX ……(10) 以上を総合すると、あるY座標値DGYについて上記式
(1)〜(8)の演算を行って、各座標値DEX、DE
Y、DFX、DFY、SEX、SEY、SFXおよびS
FYを求め、これらの各座標値と、水平成分EF上の各
点GのX座標値DGXを式(9)および(10)に代入
すれば、これらの各点Gに対応した点gの座標値(SG
X、SGY)が得られることが分かる。
【0026】しかし、この方法により座標値(SGX、
SGY)を求めるとすると、式(1)〜(10)から明
らかなように、乗算や除算を何回も繰り返さなければな
らず、演算処理能力の低いVDPだとそのような演算を
行うことは困難である。
【0027】そこで、本実施形態におけるフレームバッ
ファコントローラ105は、いわゆるDDAアルゴリズ
ムに従い、乗算や除算を行うことなく、加減算のみを繰
り返すことにより上記DEX、DEY、DFX、DF
Y、SEX、SEY、SFX、SFY、SGXおよびS
GYを逐次求める。
【0028】このDDAアルゴリズムは、2次元座標系
(ここではxy座標系とする)において始点start
(xstart、ystart)から終点end(xe
nd、yend)に至る直線が与えられている場合に、
整数のx、y座標値に対応した複数の格子点であって、
この直線を近似する各格子点をystartからyen
dまで変化させながら逐次求めるアルゴリズムである。
【0029】本実施形態において用いられるDDAアル
ゴリズムは、始点startから終点endに至る直線
のx方向の変位とy方向の変位のどちらが大きいかによ
り異なっている。
【0030】最初に、図5(a)および(b)を参照
し、始点startから終点endに至る直線のx方向
の変位がy方向の変位よりも大きい場合におけるDDA
アルゴリズムについて説明する。
【0031】図5(a)に示すx、y座標系には、始点
start(xstart、ystart)から終点e
nd(xend、yend)に至る直線が描かれてい
る。この直線の勾配dx/dyは、 dx/dy =(|xend−xstart|+1)/(|yend
−ystart|+1) によって与えられる。
【0032】従って、図5(a)に示す直線に沿って、
y座標値を「1」だけ変化させた場合におけるx座標の
変化量△xは次のようになる。
【0033】△x =(dx/dy)×1 =(|xend−xstart|+1)/(|yend
−ystart|+1) そこで、y座標値をystartから順次「1」ずつ増
加させつつ、その度に上記△xを順次累算し、累算結果
をx座標値とすると、始点startから終点endに
至る直線上の各点、すなわち、図5(a)においてプロ
ット“○”により表された各点のx、y座標値を求める
ことができる。
【0034】しかしながら、これらの各点のうち多くの
ものは、整数のx、y座標値に対応した格子点ではな
い。
【0035】また、この方法を実行するためには、上記
△xを求める除算を行わなければならない。
【0036】そこで、図5(a)に示す座標系を図5
(b)に示すようにy軸方向にmi=(|yend−y
start|+1)倍に引き伸ばす。
【0037】この引き伸ばしを行うと、図5(a)にお
けるx軸方向の単位長「1」は、図5(b)ではmi=
(|yend−ystart|+1)の長さとなる。従
って、図5(b)では、x方向に沿って長さmi毎に、
図5(a)における格子点がある。
【0038】また、この引き伸ばしにより、図5(a)
における△xは、図5(b)では次式により与えられる
mjとなる。
【0039】mj ={(|xend−xstart|+1)/(|yen
d−ystart|+1)}×(|yend−ysta
rt|+1) =|xend−xstart|+1 そして、DDAアルゴリズムでは、このようにx座標の
引き伸ばしが行われた図5(b)の2次元座標系におい
て、初期値x=xstart、y=ystartから以
下の操作を繰り返すことにより、始点startから終
点endに至る直線を近似する各格子点の位置を求め
る。 mjを累算する。 x座標値を「1」だけ増加させ、miの累算を行う。
これを、miの累算結果がmjの累算結果を越えるまで
繰り返す。 y座標値を「1」だけ増加させる。
【0040】図5(b)におけるプロット“○”は、各
y座標値に対応したmjの累算結果を表している。ま
た、図5(b)におけるプロット“×”は、各y座標値
において、上記の操作によりmiの累算結果がmjの
累算結果を越えたときのx座標値に対応した点である。
【0041】次に、図6(a)および(b)を参照し、
始点startから終点endに至る直線のx方向の変
位がy方向の変位よりも小さい場合におけるDDAアル
ゴリズムについて説明する。
【0042】図6(a)に示すx、y座標系には、始点
start(xstart、ystart)から終点e
nd(xend、yend)に至る直線が描かれてい
る。この直線の勾配dy/dxは、 dy/dx =(|yend−ystart|+1)/(|xend
−xstart|+1) によって与えられる。
【0043】従って、図6(a)に示す直線に沿って、
x座標値を「1」だけ変化させた場合におけるy座標値
の変化量△yは次のようになる。
【0044】△y =(dy/dx)×1 =(|yend−ystart|+1)/(|xend
−xstart|+1) そこで、x座標値をxstartから順次「1」ずつ増
加させつつ、その度に上記△yを順次累算し、累算結果
をy座標値とすると、始点startから終点endに
至る直線上の各点、すなわち、図6(a)においてプロ
ット“○”により表された各点のx、y座標値を求める
ことができる。
【0045】しかしながら、これらの各点のうち多くの
ものは、整数のx、y座標値に対応した格子点ではな
い。
【0046】また、この方法を実行するためには、上記
△yを求める除算を行わなければならない。
【0047】そこで、図6(a)に示す座標系を図6
(b)に示すようにy軸方向にmi=(|xend−x
start|+1)倍に引き伸ばす。
【0048】この引き伸ばしを行うと、図6(a)にお
けるy軸方向の単位長「1」は、図6(b)ではmi=
(|xend−xstart|+1)の長さとなる。従
って、図6(b)では、y方向に沿って長さmi毎に、
図6(a)における格子点がある。
【0049】また、この引き伸ばしにより、図6(a)
における△yは、図6(b)では次式により与えられる
mjとなる。
【0050】mj ={(|yend−ystart|+1)/(|xen
d−xstart|+1)}×(|xend−xsta
rt|+1) =|yend−ystart|+1 そして、DDAアルゴリズムでは、このようにy軸方向
の引き伸ばしが行われた図6(b)の2次元座標系にお
いて、初期値x=xstart、y=ystartから
以下の操作を繰り返すことにより、始点startから
終点endに至る直線を近似する各格子点の位置を求め
る。 mjを累算する。 miを累算する。 miの累算結果がmjの累算結果を越えたらx座標値
を「1」だけ増加させる。 y座標値を「1」だけ増加させる。
【0051】図6(b)におけるプロット“○”は、m
jの累算結果を越えたときのmiの累算結果を表してい
る。また、図6(b)におけるプロット“×”は、各x
座標値において、上記の操作によりmiの累算結果が
mjの累算結果を越えたときのy座標値に対応した点で
ある。
【0052】このようにDDAアルゴリズムによれば、
乗算や除算を実行することなく、加減算のみを繰り返す
ことにより、2次元座標系における始点start(x
start、ystart)から終点end(xen
d、yend)に至る直線を近似する各格子点の座標値
を求めることができる。
【0053】フレームバッファコントローラ105は、
上記DEX、DEY、DFX、DFY、SEX、SE
Y、SFX、SFY、SGXおよびSGYの各点につい
て、それらの各点が属する直線の始点start(xs
tart、ystart)と終点end(xend、y
end)とを指定して上記DDAアルゴリズムを実行す
ることにより、それらの各点のx、y座標値を演算する
のである。
【0054】フレームバッファコントローラ105は、
以上説明したDDAアルゴリズムを含むスプライト描画
処理により、変形後のスプライトの水平走査線上の各点
Gに対応した変形前のスプライト上の点gの座標値(S
GX、SGY)を求め、この座標値に対応した画像デー
タを画像メモリ3から読み出してフレームバッファ4に
格納する。このようになスプライト描画処理により、フ
レームバッファ4内に変形後のスプライトの画像データ
が格納されることとなる。
【0055】そして、1画面分のスプライト画面の画像
データが書き込まれると、フレームバッファコントロー
ラ105は、このスプライト画面の画像データをフレー
ムバッファ4から読み出して表示データコントローラ1
08に供給する。このフレームバッファコントローラ1
05による1画面分のスプライト画面の画像データの作
成および表示データコントローラ108への供給は、各
フレーム毎に行われる。
【0056】メモリアドレスジェネレータ107は、画
像メモリ3から背景画面を構成するためのパターンの画
像データを読み出すために、各画像データの読み出しア
ドレスを生成し、メモリインタフェース104に送る。
メモリインタフェース104は、読み出しアドレスを画
像メモリ3に供給し、これにより画像メモリ3から読み
出されるパターンの画像データを表示データコントロー
ラ108に供給する。
【0057】表示データコントローラ108は、メモリ
アドレスジェネレータ107によって画像メモリ3から
読み出されたパターンの画像データを用いて背景画面の
画像データを構成する。また、表示データコントローラ
108は、このようにして得られた背景画面の画像デー
タに対して、フレームバッファ4から読み出されるスプ
ライト画面の画像データを重ね書きし、表示用画面の画
像データを生成する。このようにして得られた画像デー
タは、そのままデジタル画像信号DRGBとして、ある
いはD/A変換器109によってアナログ画像信号RG
Bに変換されて、表示装置2に供給される。
【0058】CPUインタフェース110は、CPU1
とこのVDP100内の各部との間の情報の引き渡しの
制御をするための回路である。例えばCPU1は、この
CPUインタフェース110を介することにより、スプ
ライト属性テーブル102の任意のスプライトに対応し
た属性値を書き換えることができる。
【0059】以上が本実施形態に係るVDP100の詳
細である。B.実施形態の動作以下、図4(b)に示す
ようにスプライトの表示を行う場合を例に挙げ、本実施
形態の動作を説明する。
【0060】上述したように、本実施形態では、フレー
ムバッファコントローラ105がスプライトの画像デー
タをフレームバッファ4に格納することによりスプライ
ト画面が構成されるが、その際にスプライトに変形を加
える場合には、フレームバッファコントローラ105に
より、図7にフローを示すスプライト描画処理が実行さ
れる。
【0061】このスプライト描画処理において、フレー
ムバッファコントローラ105は、まず、当該スプライ
トの属性値をスプライト属性テーブル102から取得す
る(ステップS1)。
【0062】次にフレームバッファコントローラ105
は、図8にフローを示すライン番号初期値取得処理ルー
チンを実行する(ステップS2)。このライン番号初期
値取得処理ルーチンは、水平走査線を下方に移動してい
った場合において、水平走査線が最初に交差することと
なる変形後のスプライトの2辺を求めるルーチンであ
る。
【0063】このライン番号初期値取得処理ルーチンに
おいて、フレームバッファコントローラ105は、ま
ず、属性値pn_minの内容が「0」〜「3」のいず
れかか、すなわち、変形後のスプライトにおいて最も上
の方にある頂点がA〜Dのいずれかを判定する(ステッ
プS101)。図4(b)に示すように、変形後のスプ
ライトにおいて頂点Dが最も上の方にある場合には、p
n_min=「3」となっているため、このステップS
101からステップS140に進み、ステップS140
〜S144の処理を実行する。
【0064】このステップS140〜S144では、ス
テップS101において判定した最も上の方にある頂点
に対応したライン番号の設定処理を行う。このライン番
号の設定処理について詳述すると次の通りである。
【0065】まず、本実施形態では、図9に示すよう
に、スプライトの辺ABにはライン番号「0」、辺BC
にはライン番号「1」、辺CDには「2」、辺DAには
ライン番号「3」が各々付与されている。
【0066】変形後のスプライトにおいて頂点Dが最も
上の方にある場合、通常は図10(d)に示すように、
頂点Dの左側には辺DA(ライン番号「3」)が、頂点
Dの右側には辺CD(ライン番号「2」)がある。従っ
て、水平走査線を上方から下方に移動した場合におい
て、この水平走査線は頂点Dを通過した後、これらの辺
DAおよび辺CDと最初に交差することとなる。
【0067】そこで、ステップS140では、水平走査
線が最初に交差する2辺のうち左側の辺のライン番号l
n_leftを「3」とし、右側の辺のライン番号ln
_rightを「2」とするのである。
【0068】ところで、図10(d1)に示すように、
変形後のスプライトの頂点Dと頂点Aとが同じ水平走査
線上に位置しており、DAY=DDYとなっている場合
があり得る。このような場合、水平走査線が頂点Dを通
過した後、最初に交差する2辺は、辺ABと辺CDにな
る。そこで、水平走査線が最初に交差する2辺のうち左
側の辺のライン番号ln_leftを「3」から「0」
に変更する(ステップS141、S142)。
【0069】また、図10(d2)に示すように、変形
後のスプライトの頂点Dと頂点Cとが同じ水平走査線上
に位置しており、DCY=DDYとなっている場合があ
り得る。このような場合、水平走査線が頂点Dを通過し
た後、最初に交差する2辺は、辺DAと辺BCになる。
そこで、水平走査線が最初に交差する2辺のうち右側の
辺のライン番号ln_rightを「2」から「1」に
変更する(ステップS143、S144)。
【0070】以上が変形後のスプライトにおいて頂点D
が最も上の方にある場合に実行されるライン番号設定処
理(ステップS140〜S144)の詳細である。
【0071】他の場合についても同様であり、最も上の
方にある頂点がAである場合にはステップS110〜S
114のライン番号設定処理が、Bである場合にはステ
ップS120〜S124のライン番号設定処理が、Cで
ある場合にはステップS130〜S134のライン番号
設定処理が実行されることとなる。これらの各場合にお
けるライン番号設定処理の内容は、図10(a)(a
1)(a2)〜(c)(c1)(c2)に示す通りであ
る。
【0072】以上が図7に示すフローのステップS2に
おいて実行されるライン番号初期値取得処理ルーチンの
詳細である。
【0073】次にステップS3では、DDA初期化処理
を行う。このDDA初期化処理では、DDAの実行に先
立つ初期設定を行う。
【0074】本実施形態では、後述するステップS22
においてDDAによりDEX、DFX、SEX、SE
Y、SFXおよびSFYの各座標値を逐次演算し、後述
するステップS15においてDDAによりSGXおよび
SGYの各座標値を逐次演算する。
【0075】これらのDDAを実行するためのサブルー
チンとして、DEX、DFX、SEX、SEY、SF
X、SFY、SGXおよびSGYの各座標値に対応した
8個のサブルーチンが用いられる。これらのサブルーチ
ンは、同一アルゴリズムによるものであるが、座標値の
逐次演算のために使用する各種の変数を各座標値毎に区
別する必要があるため、座標値の種類毎に設けられてい
る。なお、DDAを実行するためのサブルーチンについ
ては後述する。
【0076】ステップS3のDDA初期化処理では、ス
テップS22において行われるDEX、DFX、SE
X、SEY、SFXおよびSFYの各座標値に対応した
6種類のDDAにおいて用いられる各変数が初期化の対
象となる。
【0077】図11はステップS3において実行される
DDA初期化ルーチンの処理内容を示すフローチャート
である。このDDA初期化ルーチンも、DDAを実行す
るためのルーチンと同様、DEX、DFX、SEX、S
EY、SFX、SFY、SGXおよびSGYの各座標値
に対応した8個のものが用意されている。ステップS3
では、これらのうち6個のDDA初期化ルーチンを実行
する。
【0078】各DDA初期化ルーチンを実行するために
は、引数として、始点startの座標値xstart
およびystartと、終点endの座標値xendお
よびyendとを与える必要がある。図12は、ステッ
プS3において座標値DEX、DFX、SEX、SE
X、SFXおよびSFYの各々に対応したDDA初期化
ルーチンを実行する際に、xstart、ystar
t、xendおよびyendとして与える各情報の一覧
を示すものである。この図12に示すように、各引数と
して与えられる情報は、いずれの座標値に対応したDD
A初期化ルーチンであるかと、ライン番号ln_lef
tおよびln_rightの内容により異なっている。
図4(b)に示す変形後のスプライトの描画を行う場
合、ライン番号ln_leftは「3」、ライン番号l
n_rightは「2」となる。従って、この場合に
は、図12におけるln_left=「3」に対応した
エリアに示される条件に従って、DEX、SEXおよび
SEYに対応した各DDA初期化ルーチンの引数の設定
が行われ、ln_rightは「2」に対応したエリア
に示される条件に従って、DFX、SFXおよびSFY
に対応した各DDA初期化ルーチンの引数の設定が行わ
れる。
【0079】図13(a)〜(f)は、図4(b)に示
す変形後のスプライトの描画を行う場合、ステップS3
において各DDA初期化ルーチンに引数として設定され
る始点startおよび終点endの各x、y座標値を
示すものであある。
【0080】なお、ステップS3において座標値DE
X、DFX、SEX、SEX、SFXおよびSFYの各
々に対応したDDA初期化ルーチンを実行する際に、図
13(a)〜(f)に示す引数の設定を行う理由につい
ては、これらに対応したDDAを実行するステップS2
2の説明の際に併せて説明する。
【0081】次に、DEXに対応したDDA初期化処理
を例に、図11のフローに示されるDDA初期化ルーチ
ンの処理内容を説明する。図4(b)に示す変形後のス
プライトの描画を行う場合、引数xstart、yst
art、xendおよびyendとして、DDX、DD
Y、DAXおよびDAYが設定される(図10において
ln_left=「3」におけるDEXに対応したエリ
アを参照)。
【0082】この引数の設定の後、図11に示すフロー
に従い、DEXに対応したDDA初期化処理が行われ
る。
【0083】まず、ステップS201では、引数sta
rtの内容、すなわち、この場合においては図4(b)
における頂点DのX座標値DDXを変数dxに、DDA
の対象であるDEXの初期値として設定する。
【0084】次にステップS202に進むと、xend
−xstartの絶対値がyend−ystartの絶
対値よりも小さいか否かを判断する。このステップS2
02は、2次元座標系において始点(xstart、y
start)から終点(xend、yend)に至る線
分の勾配の絶対値が1より大きいか否かを判定するもの
である。
【0085】図4(b)に示す例の場合、始点Dから終
点Aに至る線分の勾配は「1」より大きく、xend−
xstart=DDX−DAXの絶対値は、yend−
ystart=DDY−DAYの絶対値よりも小さい。
【0086】従って、ステップS202の判断結果は
「YES」となり、ステップS203に進む。そして、
ステップS203では、フラグmajに“1”を設定
し、yend−ystart(この例ではDDY−DA
Y)の絶対値に「1」を加えたものをmjに設定し、x
end−xstart(この例ではDDX−DAX)の
絶対値に「1」を加えたものをmiに設定する。これら
のmjおよびmiは、後述するステップS22において
DEXに対応したDDAを実行する際に用いられる変数
であり、その用途については既に図5を参照して概略説
明した通りである。
【0087】次にステップS205に進み、xend−
xstartが0より大きいか否か、すなわち、始点
(xstart、ystart)から見て終点(xen
d、yend)が右側(X座標値が大きくなる方向)に
あるか否かを判断する。
【0088】図4(b)に示す例の場合、始点Dから見
て終点Aは左側にあり、xend−xstart=DD
X−DAXは負である。従って、ステップS205の判
断結果は「NO」となり、ステップS207に進む。そ
して、ステップS207では、フラグdixに“1”を
設定する。
【0089】次にステップS208に進み、yend−
ystartが0より大きいか否か、すなわち、始点
(xstart、ystart)から見て終点(xen
d、yend)が下方(Y座標値が大きくなる方向)に
あるか否かを判断する。
【0090】図4(b)に示す例の場合、始点Dから見
て終点Aは下側にあり、yend−ystart=DA
Y−DDYは正である。従って、ステップS208の判
断結果は「YES」となり、ステップS209に進む。
そして、ステップS209では、フラグdiyに“0”
を設定する。
【0091】次にステップS211に進み、−mjをレ
ジスタaccに設定し、図5に示すスプライト描画ルー
チンに戻る。
【0092】以上がDEXに対応したDDA初期化処理
の実行例である。この実行例における初期設定の結果を
一覧にまとめると次のようになる。 dx=DDX(DDAの対象であるDEXの初期値) (ステップS201) maj=“1” (ステップS203) mj=|DAY−DDY|+1 (ステップS203) mi=|DAX−DDX|+1 (ステップS203) dix=“1” (ステップS207) diy=“0” (ステップS209) acc=−mj (ステップS211) なお、以上の実行例では説明しなかったが、図11に示
すフローにおいて、ステップS202の判断結果が「N
O」である場合には、maj=0、mj=|xend−
xstart|+1およびmi=|yend−ysta
rt|+1なる初期設定が行われ(ステップS20
4)、ステップS205の判断結果が「YES」である
場合にはdix=“0”なる初期設定が行われ(ステッ
プS206)、ステップS208の判断結果が「NO」
である場合にはdiy=“1”なる初期設定が行われる
(ステップS210)。
【0093】他の座標値SEX、SEY、DFX、SF
XおよびSFYに対応したDDA初期化ルーチンも同様
であり、図13(b)〜(f)に示すように各引数の設
定が行われてから実行される。
【0094】以上説明したDDA初期化処理が実行され
ることにより、後述するステップS22において実行さ
れるDEX、SEX、SEY、DFX、SFXおよびS
FYに対応した各DDAにおける変数dx、maj、m
i、mj、acc、dix、diyの初期設定が完了す
る。
【0095】この時点において、DEX、SEX、SE
Y、DFX、SFXおよびSFYの各初期値(DDA初
期化ルーチンにおける変数dx)は次のようになってい
る。 DEX=DDX SEX=SZX SEY=0 DFX=DDX SFX=SZX SFY=SZY これらの初期値は、引数xstartとしてDEX、S
EX、SEY、DFX、SFXおよびSFXに対応した
各DDA初期化ルーチンに引き渡され、DDA初期化ル
ーチンにおける変数dxに設定されたものである(図1
1におけるステップS201参照)。
【0096】ステップS3が終了してステップS4に進
むと、図14にフローを示すymin、ymax取得ル
ーチンを実行する。
【0097】ここで、yminは、変形後のスプライト
の描画を開始するときの水平走査線のY座標値、yma
xは、変形後のスプライトの描画を終了するときの水平
走査線のY座標値である。すなわち、yminおよびy
maxは、変形後のスプライトのY軸方向における描画
範囲を定めるものである。
【0098】図14に示すように、このymin、ym
ax取得ルーチンでは、次のように、pn_minの値
に応じてyminを設定し(ステップS300〜S30
4)、pn_maxの値に応じてymaxを設定する
(ステップS310〜S314)。 pn_min=「0」 → ymin=DAY pn_min=「1」 → ymin=DBY pn_min=「2」 → ymin=DCY pn_min=「3」 → ymin=DDY pn_max=「0」 → ymax=DAY pn_max=「1」 → ymax=DBY pn_max=「2」 → ymax=DCY pn_max=「3」 → ymax=DDY このような設定が妥当であることは、図9を参照すれば
明らかである。
【0099】このymin、ymax取得ルーチンの実
行が終了すると、図7におけるステップS5に進み、描
画(フレームバッファへの画像データの書き込み)を行
う水平走査線のY座標値をyminに設定する。そし
て、ステップS11〜S23の処理を、Yを「1」ずつ
インクリメントしながら(ステップS24)、Y=ym
axとなるまで実行する(ステップS23)。
【0100】以下、その詳細について説明する。
【0101】まず、ステップS11では、次のように引
数の設定を行って、座標値SGX、SGYに対応した各
DDA初期化ルーチンを実行する。 <SGXに対応したDDA初期化ルーチンへの引数の設
定> xstart=SEX ystart=DEX xend=SFX yend=DFX <SGYに対応したDDA初期化ルーチンへの引数の設
定> xstart=SEY ystart=DEX xend=SFY yend=DFX ここで、図4(b)に示す変形後のスプライトの描画を
行う場合、スプライト描画処理の開始後、最初にステッ
プS11に進んだときには、上記DEX等はステップS
3における初期化により次のような内容になっている。 DEX=DDX SEX=SZX SEY=0 DFX=DDX SFX=SZX SFY=SZY 従って、このときにおける各DDA初期化ルーチンの引
数は次のように設定される。 <SGXに対応したDDA初期化ルーチンへの第1回目
の引数設定> xstart=SEX=SZX ystart=DEX=DDX xend=SFX=SZX yend=DFX=DDX <SGYに対応したDDA初期化ルーチンへの第1回目
の引数設定> xstart=SEY=0 ystart=DEX=DDX xend=SFY=SZY yend=DFX=DDX 次にステップS12に進み、描画位置のX座標値とし
て、その時点におけるDEXを設定する。ここで、図4
(b)に示すスプライトの描画を行う場合において最初
にステップS12に進んだときには、上記ステップS3
における初期化により、DEX=DDXとなっている。
従って、最初はDDXがXに設定されることとなる。
【0102】次にステップS13に進むと、描画すべき
スプライトにおける座標値SGXおよびSGYに対応し
た部分の画像データを画像メモリ3から読み出す。ここ
で、図4(b)に示すスプライトの描画を行う場合にお
いて最初にステップS13に進んだときには、SGX=
SZX、SGY=0となっている。
【0103】次にステップS14に進むと、ステップS
13において読み出した座標値SGXおよびSGYに対
応した部分の画像データを座標値X、Yに対応した画像
データとしてフレームバッファ4に書き込む。ここで、
図4(b)に示すスプライトの描画を行う場合において
最初にステップS14に進んだときには、SGX=SZ
X、SGY=0に対応した点、すなわち、図4(a)に
おける頂点Dに対応した画像データが、X=DEX=D
DX、Y=ymin=DDYに対応した点、すなわち、
図4(b)における頂点Dの画像データとしてフレーム
バッファ4に書き込まれることとなる。
【0104】次にステップS15に進むと、SGXに対
応したDDAおよびSGYに対応したDDAを実行す
る。ここで、図4(b)に示すスプライトの描画を行う
場合において最初にステップS15に進んだときには、
SGXおよびSGYは、いずれもxstartとxen
dおよびystartとyendが一致しているため、
SGXおよびSGYについてのDDAは行われない。
【0105】次にステップS16に進むと、X=DFX
か否かを判断する。ここで、図4(b)に示すスプライ
トの描画を行う場合において最初にステップS14に進
んだときには、X=DEX=DFXとなっている。従っ
て、この場合にはステップS16の判断結果が「YE
S」となってステップS18に進む。
【0106】次にステップS18に進むと、DDAの実
行により頂点Dの左側の辺に沿って進む点Eが、その辺
の終点である頂点(図4(b)の例では頂点A)に到達
したか否かを判断する。この判断結果が「NO」である
場合にはステップS20に進む。
【0107】次にステップS20に進むと、DDAの実
行により頂点Dの右側の辺に沿って進む点Fが、その辺
の終点である頂点(図4(b)の例では頂点C)に到達
したか否かを判断する。この判断結果が「NO」である
場合にはステップS22に進む。
【0108】このステップS22では、DEX、DF
X、SEX、SEY、SFXおよびSFYについて各々
DDAを実行する。このDDAを実行するためのルーチ
ンのフローは図15に示す通りである。
【0109】DEXについてのDDAでは、Y座標値を
順次インクリメント(ステップS24)して点Eを始点
D(DDX、DDY)から終点A(DAX、DAY)に
向けて移動させたときの当該点EのX座標値DEXを求
める。このDDAを行うために、既に説明したステップ
S3では、始点D(DDX、DDY)および終点A(D
AX、DAY)の各x、y座標値を引数xstart、
ystart、xendおよびyendとして設定し、
DEXに対応したDDA初期化ルーチンを実行した(図
13(a)参照)。このDDA初期化ルーチンの実行に
より、DDAにおいて用いられる各変数は次のように初
期設定されている。 dx=DDX(DDAの対象であるDEXの初期値) maj=“1” mj=|DAY−DDY|+1 mi=|DAX−DDX|+1 dix=“1” diy=“0” acc=−mj 以下、図15を参照し、この初期設定の下で実行される
DEXについてのDDAの処理内容を説明する。
【0110】まず、ステップS401では、maj=
“0”か否かを判断する。
【0111】この例では、maj=“1”となっている
ことから、ステップS401の判断結果は「NO」とな
って、ステップS402に進む。
【0112】次にステップS402に進むと、accに
miを加えたものをaccに格納する。すなわち、mi
の累算を行う。
【0113】次にステップS403に進むと、acc≧
0であるか否かを判断する。
【0114】この判断結果が「NO」の場合は、DDA
処理ルーチンを終了し、図7に示すスプライト描画処理
に戻る。
【0115】このようにしてスプライト描画処理に戻る
と、Y座標値が「1」だけインクリメントされ(ステッ
プS24)、ステップS11〜S20を経た後、ステッ
プS22において、再びDEXについてのDDAが実行
される。
【0116】この場合も、maj=“1”であることか
ら、ステップS401からステップS402に進み、a
ccにmiを加えたものをaccに格納する。
【0117】そして、acc≧0であるか否かを判断し
(ステップS403)、この判断結果が「NO」である
場合にはスプライト描画処理に戻る。
【0118】このようにacc<0である間、DEXに
ついてのDDAが実行される毎に、DEXに対応したd
xを変化させずにaccに対するmiの加算が行われ、
その都度、Y座標値が「1」ずつインクリメントされ
る。
【0119】そして、DEXについてのDDAの実行
時、acc≧0となると、ステップS403の判断結果
が「YES」となり、ステップS404に進む。
【0120】そして、ステップS404では、accか
らmjを減算したものをaccに格納する。すなわち、
−mjの累算を行うのである。
【0121】このステップS404が終了すると、ステ
ップS405に進み、dix=“0”か否かを判断す
る。
【0122】この例では、dix=“1”となっている
ことから、ステップS405の判断結果は「NO」とな
って、ステップS406に進む。
【0123】次にステップS406に進むと、DEXに
対応したdxの内容を「1」だけ減らす。
【0124】このステップS405が終了すると、図7
に示すスプライト描画処理に戻る。そして、スプライト
描画処理に戻ると、Y座標値が「1」だけインクリメン
トされ(ステップS24)、ステップS11〜S20を
経た後、ステップS22において、再びDEXについて
のDDAが実行されるのである。
【0125】以上のように、Y座標値のインクリメント
を行いつつDEXについてのDDAが実行され、このD
DAでは、accに対するmiの加算が行われ、acc
<0である間はDEXに対応したdxを変化させず、a
cc≧0となったときには、accからmjが減じられ
るのである。
【0126】図16は、以上説明したDEXについての
DDAが実行されたときのacc、dxの内容の推移を
例示したものである。この例では、次のような処理が行
われている。 まず、ステップS3における初期設定により、acc
には−mjが設定されている。 その後、最初にステップS22に進んだとき、DEX
についてのDDAでは、accにmiが加算されるが
(ステップS402)、加算後のaccは0より小さい
ので、dxは変化しない。 次にステップS22に進んだとき、DEXについての
DDAでは、accにmiが加算されるが(ステップS
402)、加算後のaccは0より小さいので、dxは
変化しない。 次にステップS22に進んだとき、DEXについての
DDAにおいてaccにmiが加算された結果、加算後
のaccが0以上になる。 この結果、accに対し、−mjが加算される。 また、dxが「1」だけ減じられる(ステップS40
6)。
【0127】以後、同様に〜が繰り返される。
【0128】このようにして既に図6(a)および
(b)を参照して説明したDDAが進められ、Y座標値
のインクリメントに伴って、始点D(DDX、DDY)
から終点A(DAX、DAY)に向かって移動する点E
のX座標値DEXが逐次求められるのである。
【0129】次にステップS22において実行されるD
FXについてのDDAについて説明する。このDFXに
ついてのDDAでは、Y座標値を順次インクリメント
(ステップS24)して点Fを始点D(DDX、DD
Y)から終点C(DCX、DCY)に向けて移動させた
ときの当該点FのX座標値DFXを求める。このDDA
を行うために、既に説明したステップS3では、始点D
(DDX、DDY)および終点C(DCX、DCY)の
各x、y座標値を引数xstart、ystart、x
endおよびyendとして設定し、DFXに対応した
DDA初期化ルーチンを実行した(図13(c)参
照)。このDDA初期化ルーチンの実行により、DDA
において用いられる各変数は次のように初期設定されて
いる。 dx=DDX(DDAの対象であるDFXの初期値) maj=“0” mi=|DCY−DDY|+1 mj=|DCX−DDX|+1 dix=“0” diy=“0” acc=−mj 以下、図15を参照し、この初期設定の下で実行される
DFXについてのDDAの処理内容を説明する。
【0130】まず、ステップS401では、maj=
“0”か否かを判断する。
【0131】この例では、maj=“0”となっている
ことから、ステップS401の判断結果は「YES」と
なって、ステップS411に進む。
【0132】次にステップS411に進むと、dix=
“0”か否かを判断する。この場合、dix=“0”で
あることからステップS411の判断結果は「YES」
となってステップS412に進む。次にステップS41
2に進むと、DFXに対応したdxを「1」だけ増加さ
せる。このステップS412が終了すると、ステップS
414に進み、accにmiを加えて、その結果をac
cに格納する。すなわち、miの累算を行うのである。
このステップS414が終了すると、ステップS415
に進み、acc≧0となったか否かを判断する。この判
断結果が「NO」である場合には、ステップS411に
戻り、dxのインクリメント(ステップS412)、a
ccによるmiの累算(ステップS414)を繰り返
す。
【0133】そして、acc≧0となってステップS4
15の判断結果が「YES」になると、ステップS41
6に進み、accからmjを減じる。そして、図7に示
すスプライト描画処理に戻る。このようにしてスプライ
ト描画処理に戻ると、Y座標値が「1」だけインクリメ
ントされ(ステップS24)、ステップS11〜S20
を経た後、ステップS22において、再びDFXについ
てのDDAが実行される。
【0134】以上のように、Y座標値のインクリメント
を行いつつDFXについてのDDAが実行され、このD
DAでは、acc≧0となるまで、dxのインクリメン
ト(ステップS412)およびaccに対するmiの加
算(ステップS414)が行われ、acc≧0となった
ときには、accからmjが減じられるのである(ステ
ップS416)。
【0135】図17は、以上説明したDFXについての
DDAが実行されたときのacc、dxの内容の推移を
例示したものである。この例では、次のような処理が行
われている。 まず、ステップS3における初期設定により、acc
には−mjが設定されている。 その後、最初にステップS22に進んだとき、DFX
についてのDDAでは、DFXに対応したdxのインク
リメント(ステップS412)およびaccに対するm
iの加算(ステップS414)が、acc≧0となるま
で繰り返される。 そして、acc≧0となると、accに対して−mj
が加算され(ステップS416)、スプライト描画処理
に戻ってY座標値がインクリメントされる(ステップS
24)。
【0136】以後、同様におよびが繰り返される。
【0137】このようにして既に図5(a)および
(b)を参照して説明したDDAが進められ、Y座標値
のインクリメントに伴って、始点D(DDX、DDY)
から終点C(DCX、DCY)に向かって移動する点F
のX座標値DFXが逐次求められるのである。
【0138】なお、以上のDEX、DFXに関する各実
行例では説明しなかったが、図15に示すフローにおい
て、ステップS402の判断結果が「YES」である場
合には、dxを「1」だけインクリメントし(ステップ
S407)、スプライト描画処理に戻る。ステップS4
05の判断結果が「NO」である場合、終点は始点から
みて右側、すなわち、X座標値が大きい側にあるからで
ある。また、ステップS411の判断結果が「NO」で
ある場合には、dxを「1」だけデクリメントし(ステ
ップS413)、ステップS415に進む。ステップS
412の判断結果が「NO」である場合、終点は始点か
らみて左側、すなわち、X座標値が小さい側にあるから
である。
【0139】さて、図7においてステップS22では、
以上説明したDEX、DFXについてのDDAの他、S
EX、SEY、SFXおよびSFYについて各々DDA
を実行する。これらのDDAの実行態様は、DEX、D
FXについてのDDAと同様であるので、その具体的な
処理内容の説明は省略する。ここでは、図4(a)およ
び(b)、図13(a)〜(f)を参照し、これらのD
DAによって何が求められるかを説明する。
【0140】まず、SEX、SEYに対応した各DDA
では、図4(a)において変形前のスプライトの頂点D
から頂点Aに向けて移動する点EのX座標値SEXを求
める。ここで、変形前のスプライトにおける点Eは、変
形後のスプライトの点Eに対応している。従って、変形
後のスプライトにおいて点Eが頂点Dから頂点Aに移動
する間、変形前のスプライトにおいても点Eが頂点Dか
ら頂点Aに移動する。そこで、本実施形態では、変形後
のスプライトの頂点Dから頂点Aに向けて点Eを移動さ
せたときの当該点EのX座標値DEXをDDAにより逐
次演算する間、これと同期して、変形前のスプライトの
頂点Dから頂点Aに向けて点Eを移動させたときの当該
点Eの座標値SEXおよびSEYをDDAにより逐次演
算する。
【0141】ここで、SEXについてのDDAに関して
は、ステップS3により次のような初期設定がなされて
いる(図13(b)参照)。 xstart=SZX ystart=DDY xend=0 yend=DAY このため、SEXについてのDDAは、Y座標値がys
tart=DDYからyend=DAYまで移動する期
間を要して、dx=SEXがSZXから「0」まで直線
的に変化することとなる(厳密には、dxは整数値しか
とらないので、時間経過(ステップS22の実行回数)
に対して階段状に変化する)。
【0142】ここで、Y座標値がystart=DDY
からyend=DAYまで移動する期間、上述したDE
XについてのDDAにより、変形後のスプライトの頂点
Dから頂点Aに向かって進む点EのX座標値DEXが求
められる。
【0143】SEXについてのDDAは、このDEXに
ついてのDDAと同じ期間を要し、同じY座標値の範囲
内において行われる。
【0144】このため、DEXについてのDDAにおい
て、変形後のスプライトの頂点EのX座標値が求められ
るとき、SEXについてのDDAでは、変形後のスプラ
イトの頂点Eに対応した変形前のスプライトの頂点Eの
X座標値SEXが求められるのである。
【0145】また、SEYについてのDDAに関して
は、ステップS3により次のような初期設定がなされて
いる(図13(c)参照)。 xstart=0 ystart=DDY xend=0 yend=DAY このため、SEYについてのDDAでは、Y座標値がy
start=DDYからyend=DAYまで移動する
期間、dx=SEYについては変化させず「0」に保
つ。
【0146】このSEYについてのDDAは、このDE
XについてのDDAと同じ期間を要し、同じY座標値の
範囲内において行われる。
【0147】このため、DEXについてのDDAにおい
て、変形後のスプライトの頂点EのX座標値が求められ
るとき、SEXについてのDDAでは、変形後のスプラ
イトの頂点Eに対応した変形前のスプライトの頂点Eの
X座標値SEY=0が常に求められることとなる。
【0148】次に、SFX、SFYに対応した各DDA
では、図4(a)において変形前のスプライトの頂点D
から頂点Cに向けて移動する点FのX座標値SFXを求
める。ここで、変形前のスプライトにおける点Fは、変
形後のスプライトの点Fに対応している。従って、変形
後のスプライトにおいて点Fが頂点Dから頂点Cに移動
する間、変形前のスプライトにおいても点Eが頂点Dか
ら頂点Cに移動する。そこで、本実施形態では、変形後
のスプライトの頂点Dから頂点Cに向けて点Fを移動さ
せたときの当該点Fの座標値DFXをDDAにより逐次
演算する間、これと同期して、変形前のスプライトの頂
点Dから頂点Cに向けて点Fを移動させたときの当該点
Fの座標値SFXおよびSFYをDDAにより逐次演算
する。
【0149】ここで、SFXについてのDDAに関して
は、ステップS3により次のような初期設定がなされて
いる(図13(e)参照)。 xstart=SZX ystart=DDY xend=SZX yend=DCY このため、SFXについてのDDAでは、Y座標値がy
start=DDYからyend=DCYまで移動する
期間、dx=SFYについては変化させずSZXに保
つ。
【0150】このSFYについてのDDAは、このDF
XについてのDDAと同じ期間を要し、同じY座標値の
範囲内において行われる。
【0151】このため、DFXについてのDDAにおい
て、変形後のスプライトの点FのX座標値が求められる
とき、SFXについてのDDAでは、当該点Fに対応し
た変形前のスプライトの点FのX座標値SFX=SZX
が常に求められることとなる。
【0152】また、SFYについてのDDAに関して
は、ステップS3により次のような初期設定がなされて
いる(図13(f)参照)。 xstart=0 ystart=DDY xend=SZY yend=DCY このため、SFYについてのDDAは、Y座標値がys
tart=DDYからyend=DCYまで移動する期
間を要して、dx=SFYが「0」からSZYまで直線
的に変化することとなる(厳密には、dxは整数値しか
とらないので、時間経過(ステップS22の実行回数)
に対して階段状に変化する)。
【0153】ここで、Y座標値がystart=DDY
からyend=DCYまで移動する期間、上述したDF
XについてのDDAにより、変形後のスプライトの頂点
Dから頂点Aに向かって進む点FのX座標値DFXが求
められる。
【0154】SFXについてのDDAは、このDFXに
ついてのDDAと同じ期間を要し、同じY座標値の範囲
内において行われる。
【0155】このため、DFXについてのDDAにおい
て、変形後のスプライトの頂点FのX座標値が求められ
るとき、SFYについてのDDAでは、当該点Fに対応
した変形前のスプライトの点EのY座標値SFYが求め
られるのである。
【0156】以上がステップS22において実行される
DEX、DFX、SEX、SEY、SFXおよびSFY
についての各DDAの処理内容である。
【0157】このようにスプライト描画処理において、
このステップS22のDDAが繰り返されることによ
り、図4(b)において水平線をY=yminから下方
に移動させたときの変形後のスプライトの2辺との交点
E(DEX、DEY)およびF(DFX、DFY)の各
X座標値が求められ、これらの2点に対応した変形前の
スプライトにおける点E(SEX、SEY)およびF
(SFX、SFY)の各座標値が求められる。
【0158】そして、ストライプ描画処理におけるステ
ップS11では、このようにして求められた各座標値に
基づいて、以下のような引数の設定が行われ、SGXお
よびSGYについての各DDAの初期化が行われる。 <SGXに対応したDDA初期化ルーチンの引数の設定
> xstart=SEX ystart=DEX xend=SFX yend=DFX <SGYに対応したDDA初期化ルーチンへの引数の設
定> xstart=SEY ystart=DEX xend=SFY yend=DFX そして、ストライプ描画処理におけるステップS15で
は、この初期設定の下で、SGXおよびSGYについて
の各DDAが実行される。
【0159】まず、SGXについてのDDAでは、X座
標値をystart=DEXからyend=DFXまで
「1」ずつ移動させ(ステップS16およびS17)、
これと同じ期間を要して、変形前のスプライトの点Gの
X座標値dx=SGXをxstart=SEXからxe
nd=SFXまで移動させ、点GのX座標値SGXを逐
次求める。
【0160】また、SGYについてのDDAでは、X座
標値をystart=DEXからyend=DFXまで
「1」ずつ移動させ(ステップS16およびS17)、
これと同じ期間を要して、変形前のスプライトの点Gの
Y座標値dx=SGYをxstart=SEYからxe
nd=SFYまで移動させ、点GのX座標値SGXを逐
次求める。
【0161】スプライト描画処理では、このようにして
求められた変形前のスプライトの点G(SGX、SG
Y)に対応した画像データが画像メモリ3から読み出さ
れ(ステップS13)、変形後のスプライトにおける点
Gに対応した画像データとしてフレームバッファ4に格
納されるのである(ステップS14)。
【0162】ところで、スプライト描画処理においてY
座標値のインクリメント(ステップS24)が進み、Y
=DCYになると、ステップS13〜S17からなる処
理の実行が終了した時点においてX座標値は、X=DF
X=DCXとなる。
【0163】このため、ステップS16からステップS
18を介してステップS20に進んだとき、ステップS
20の判断結果が「YES」となってステップS21に
進む。何故ならば、その時点におけるX座標値DCXが
頂点Dの右側の辺DC上の頂点Cのものだからである。
【0164】そして、ステップS21では、ライン番号
ln_rightから「1」を減算し、図12に示す各
条件のうち減算後のライン番号ln_rightに対応
した条件に従ってDFX、SFX、SFYについてのD
DAの初期設定を行い、ステップS22に進む。
【0165】ここで、ステップS21の実行前における
ライン番号ln_rightは「2」となっていた。従
って、ステップS21ではこのライン番号が「1」とさ
れ、変形後のスプライトにおける辺BCに対応したもの
となる。
【0166】そして、ステップS21では、図12に示
す各条件のうちライン番号ln_right=「1」に
対応した条件に従ってDFX、SFX、SFYについて
のDDAの初期設定が行われる。
【0167】この初期設定が行われることにより、以
後、ステップS22では、Y座標値のインクリメントに
伴って頂点Cから頂点Bに移動する点FのX座標値DF
XがこのDFXに対応したDDAにより逐次演算され、
当該点Fに対応した変形前のスプライトにおける点Fの
座標値SFXおよびSFYが各々に対応したDDAによ
り演算される。
【0168】また、スプライト描画処理においてY座標
値のインクリメント(ステップS24)がさらに進み、
Y=DAYになると、ステップS22におけるDEXに
対応したDDAにおいて、図4(b)に示す変形後のス
プライトの頂点AのX座標値DAXがDEXとして求め
られる。従って、その後、ステップS18に進んだと
き、ステップS18の判断結果が「YES」となってス
テップS19に進む。何故ならば、その時点におけるD
EXが頂点Dの左側の辺DA上の頂点Aのものだからで
ある。
【0169】そして、ステップS19では、ライン番号
ln_leftを「1」だけ進め、図12に示す各条件
のうち減算後のライン番号ln_leftに対応した条
件に従ってDEX、SEX、SEYについてのDDAの
初期設定を行い、ステップS20に進む。
【0170】ここで、ステップS19の実行前における
ライン番号ln_leftは「3」となっていた。従っ
て、ステップS21ではこのライン番号が「0」とされ
(ライン番号の上限は「3」であり、この「3」の次は
「0」となる)、変形後のスプライトにおける辺ABに
対応したものとなる。
【0171】そして、ステップS19では、図12に示
す各条件のうちライン番号ln_left=「0」に対
応した条件に従ってDEX、SEX、SEYについての
DDAの初期設定が行われる。
【0172】この初期設定が行われることにより、以
後、ステップS22では、Y座標値のインクリメントに
伴って頂点Aから頂点Bに移動する点EのX座標値DE
XがこのDEXに対応したDDAにより逐次演算され、
当該点Eに対応した変形前のスプライトにおける点Eの
座標値SEXおよびSEYが各々に対応したDDAによ
り演算される。
【0173】以上説明した処理がY座標値をインクリメ
ントさせつつ進められ、変形後のスプライト上の各点
(X、Y)に対応した変形前のスプライト上の点G(S
GX、SGY)が求められ、この点に対応した画像デー
タが画像メモリ3から読み出され、変形後のスプライト
上の点G(X、Y)に対応した画像データとしてフレー
ムバッファ4に書き込まれる。
【0174】そして、Y=ymaxに達すると、ステッ
プS23の判断結果が「YES」となり、スプライト描
画処理が終了する。
【0175】
【発明の効果】以上説明したように、この発明によれ
ば、乗算処理や除算処理を一切用いずに、変形後の図形
の各点に対応した変形前の図形上の点を求め、その点に
対応した画像データを用いて変形後の図形の描画を行う
ので、VDPの演算処理能力が乏しい場合であっても、
図形を変形させて描画を行うことができるという効果が
ある。
【図面の簡単な説明】
【図1】 この発明の一実施形態であるVDPを用いた
動画表示システムの全体構成を示すブロック図である。
【図2】 同実施形態においてフレームバッファ内の描
画される各種のスプライト画面を例示する図である。
【図3】 同実施形態に係るVDPの構成を示すブロッ
ク図である。
【図4】 同実施形態において変形を伴ったスプライト
描画処理が行われる場合の変形前のスプライトと変形後
のスプライトを例示する図である。
【図5】 同実施形態において用いられるDDAの原理
を説明する図である。
【図6】 同実施形態において用いられるDDAの原理
を説明する図である。
【図7】 同実施形態において実行されるスプライト描
画処理の処理内容を示すフローチャートである。
【図8】 同実施形態において実行されるライン番号取
得処理ルーチンの処理内容を示すフローチャートであ
る。
【図9】 同実施形態におけるライン番号の定義を示す
図である。
【図10】 同実施形態におけるライン番号取得処理ル
ーチンの処理内容を示す図である。
【図11】 同実施形態において実行されるDDA初期
化ルーチンの処理内容を示すフローチャートである。
【図12】 同実施形態において行われるDDA初期化
の条件を示す図である。
【図13】 同実施形態において行われるDDA初期化
の条件のうち図4に対応したものを示す図である。
【図14】 同実施形態において実行されるymin、
ymax取得ルーチンの処理内容を示すフローチャート
である。
【図15】 同実施形態において実行されるDDA処理
ルーチンの処理内容を示すフローチャートである。
【図16】 同DDA処理ルーチンの実行例を示す図で
ある。
【図17】 同DDA処理ルーチンの実行例を示す図で
ある。
【符号の説明】
100……VDP(画像処理装置)、101……表示コ
ントローラ、102……スプライト属性テーブル、10
3……スプライト属性テーブルアドレスカウンタ、10
4……メモリインタフェース、105……フレームバッ
ファコントローラ、106……関数テーブル、107…
…メモリアドレスジェネレータ、108……表示データ
コントローラ、109……D/A変換器、110……C
PUインタフェース、1……CPU、2……表示装置、
3……画像メモリ、4……フレームバッファ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 画像メモリに記憶された図形の画像デー
    タから当該図形を変形した図形の画像データを生成して
    フレームバッファに格納する画像処理方法において、 水平走査線を垂直方向に単位量ずつ進めながら、変形後
    の図形を囲む各辺のうちの2辺の各々について、当該辺
    と前記水平走査線との交点の水平方向の座標値をDDA
    処理により逐次求める変形後交点座標値算出処理と、 前記2辺の各々について、当該辺に対応した前記変形前
    の図形の辺における前記交点に対応した点の水平方向の
    座標値および垂直方向の座標値をDDA処理により逐次
    求める変形前交点座標値算出処理とを実行するととも
    に、 前記変形後交点座標値算出処理および前記変形前交点座
    標値算出処理が1回実行されるのに合わせて、 水平方向の座標値を前記変形後交点座標値算出処理によ
    って算出された一方の交点の水平方向の座標値から他方
    の交点の水平方向の座標値に向けて単位量ずつ進めなが
    ら、前記一方の交点と他方の交点とを結ぶ水平線分上に
    おける単位量ずつ離れた各点に対応した前記変形前の図
    形上の各点の水平方向および垂直方向の座標値をDDA
    処理により求める最終座標値算出処理と、 前記変形後交点座標値算出処理によって座標値が算出さ
    れた前記2つの交点間を結ぶ水平線分上の単位量ずつ離
    れた各点について、前記変形前の図形の画像データのう
    ち、前記最終座標値算出処理によって算出された水平方
    向および垂直方向の各座標値によって特定される位置の
    画像データを前記画像メモリから読み出し、前記変形後
    の図形における当該点に対応した画像データとして前記
    フレームバッファに書き込む画像データ転送処理とを実
    行することを特徴とする画像処理方法。
  2. 【請求項2】 画像メモリに記憶された図形の画像デー
    タから当該図形を変形した図形の画像データを生成して
    フレームバッファに格納する画像処理方法において、 第1の座標値を定める第1の座標軸と第2の座標値を定
    める第2の座標軸とを有する2次元座標系に配置された
    直線について、各々整数である第1の座標値および第2
    の座標値によって特定される当該2次元座標系の各格子
    点のうち前記直線を近似するものの第1の整数座標値を
    逐次求める処理であって、起動される毎に、前記直線の
    第1の座標軸方向の長さに対応した第1の数値が前記直
    線の第2の座標軸方向の長さに対応した第2の数値より
    も大きいまたは前記第2の数値以上である場合には、前
    記第1の数値の累算を行い、累算結果が前記第1の数値
    の累算結果以上になるまで前記第2の数値の累算を行う
    とともに前記第1の整数座標値を前記始点に対応した第
    1の整数座標値から前記終点に対応した第1の整数座標
    値に向けて単位量だけ進める処理を繰り返し、前記第1
    の数値が前記第2の数値以下または前記第2の数値未満
    である場合には、前記第2の数値の累算を行うととも
    に、累算結果が前記第2の数値の累算結果以上になるま
    で前記第1の数値の累算を繰り返して前記第1の整数座
    標値を前記始点に対応した第1の整数座標値から前記終
    点に対応した第1の整数座標値に向けて単位量だけ進め
    るDDA処理を含み、 変形後の図形を囲む各辺のうち水平走査線を垂直方向に
    移動させたときに通過する2辺の各々について、当該辺
    の両端点のうち最初に前記水平走査線が通過するものの
    端点を始点とし、他の端点を終点とし、当該始点の水平
    方向の座標値を前記DDA処理における前記第1の整数
    座標値の初期値とし、当該終点の水平方向の座標値を前
    記DDA処理における前記終点に対応した第1の整数座
    標値として、当該辺の始点に対応した垂直方向の座標値
    から終点に対応した垂直方向の座標値まで垂直方向の座
    標値を単位量ずつ進めながら、前記DDA処理を逐次実
    行し、前記DDA処理の実行時における垂直方向の座標
    値を前記水平走査線と当該辺との交点の垂直方向の座標
    値として求め、前記DDA処理の実行により得られる第
    1の整数座標値を当該交点の水平方向の座標値として求
    める変形後交点座標値算出処理と、 前記変形後の図形を囲む各辺のうち前記水平走査線を垂
    直方向に移動させたときに通過する2辺の各々につい
    て、当該辺に対応した前記変形前の図形の辺における前
    記始点に対応した端点の水平方向の座標値を前記DDA
    処理における第1の整数座標値の初期値とし、当該辺に
    対応した前記変形前の図形の辺における前記終点に対応
    した端点の水平方向の座標値を前記DDA処理における
    前記終点に対応した第1の整数座標値とし、垂直方向の
    座標値を当該辺の両端点のうち最初に前記水平走査線が
    通過するものの端点の垂直方向の座標値から他の端点の
    垂直方向の座標値に向けて単位量ずつ進めながら、前記
    DDA処理を実行し、前記DDA処理の実行により得ら
    れる第1の整数座標値を前記変形後交点座標値算出処理
    によって水平方向の座標値が算出された前記交点に対応
    した前記変形前の図形上の交点の水平方向の座標値とし
    て求める第1の変形前交点座標値算出処理と、 前記変形後の図形を囲む各辺のうち前記水平走査線を垂
    直方向に移動させたときに通過する2辺の各々につい
    て、当該辺に対応した前記変形前の図形の辺における前
    記始点に対応した端点の垂直方向の座標値を前記DDA
    処理における第1の整数座標値の初期値とし、当該辺に
    対応した前記変形前の図形の辺における前記終点に対応
    した端点の垂直方向の座標値を前記DDA処理における
    前記終点に対応した第1の整数座標値とし、垂直方向の
    座標値を当該辺の両端点のうち最初に前記水平走査線が
    通過するものの端点の垂直方向の座標値から他の端点の
    垂直方向の座標値に向けて単位量ずつ進めながら、前記
    DDA処理を実行し、前記DDA処理の実行により得ら
    れる第1の整数座標値を前記変形後交点座標値算出処理
    によって水平方向の座標値が算出された前記交点に対応
    した前記変形前の図形上の交点の垂直方向の座標値とし
    て求める第2の変形前交点座標値算出処理とを実行する
    とともに、 前記変形後交点座標値算出処理、前記第1の変形前交点
    座標値算出処理および前記第2の変形前交点座標値算出
    処理が1回実行されるのに合わせて、 前記第1の変形前交点座標値算出処理によって水平方向
    の座標値が算出された変形前の図形を囲むいずれかの辺
    上の2つの交点のうち一方の交点の水平方向の座標値を
    前記DDA処理における第1の整数座標値の初期値と
    し、他方の交点の水平方向の座標値を前記DDA処理に
    おける終点に対応した第2の整数座標値とし、水平方向
    の座標値を前記変形後交点座標値算出処理によって算出
    された前記一方の交点に対応した変形後の図形を囲む辺
    上の交点の水平方向の座標値から前記他方の交点に対応
    した変形後の図形を囲む辺上の交点の水平方向の座標値
    に向けて単位量ずつ進めながら、前記DDA処理を繰り
    返し、前記DDA処理の繰り返し実行により順次得られ
    る第1の整数座標値を、前記変形後交点座標値算出処理
    によって算出された前記2辺に対応した2つの交点間を
    結ぶ水平線分上における単位量ずつ離れた各点に対応し
    た前記変形前の図形上の各点の水平方向の座標値として
    求める水平座標値算出処理と、 前記第2の変形前交点座標値算出処理によって垂直方向
    の座標値が算出された変形前の図形を囲むいずれかの辺
    上の2つの交点のうち一方の交点の垂直方向の座標値を
    前記DDA処理における第1の整数座標値の初期値と
    し、他方の交点の垂直方向の座標値を前記DDA処理に
    おける終点に対応した第2の整数座標値とし、水平方向
    の座標値を前記変形後交点座標値算出処理によって算出
    された前記一方の交点に対応した変形後の図形を囲む辺
    上の交点の水平方向の座標値から前記他方の交点に対応
    した変形後の図形を囲む辺上の交点の水平方向の座標値
    に向けて単位量ずつ進めながら、前記DDA処理を繰り
    返し、前記DDA処理の繰り返し実行により順次得られ
    る第1の整数座標値を、前記変形後交点座標値算出処理
    によって算出された座標値が求められた2つの交点間を
    結ぶ水平線分上における単位量ずつ離れた各点に対応し
    た前記変形前の図形上の各点の水平方向の座標値として
    求める水平座標値算出処理と、 前記変形後交点座標値算出処理によって座標値が算出さ
    れた前記2つの交点間を結ぶ水平線分上の単位量ずつ離
    れた各点について、前記変形前の図形の画像データのう
    ち、前記水平座標値算出処理によって算出された水平方
    向の座標値および前記垂直座標値算出処理によって算出
    された垂直方向の座標値によって特定される位置の画像
    データを前記画像メモリから読み出し、前記変形後の図
    形における当該点に対応した画像データとして前記フレ
    ームバッファに書き込む画像データ転送処理とを実行す
    ることを特徴とする画像処理方法。
  3. 【請求項3】 画像メモリに記憶された図形の画像デー
    タから当該図形を変形した図形の画像データを生成して
    フレームバッファに格納する画像処理装置において、 水平走査線を垂直方向に単位量ずつ進めながら、変形後
    の図形を囲む各辺のうちの2辺の各々について、当該辺
    と前記水平走査線との交点の水平方向の座標値をDDA
    処理により逐次求める変形後交点座標値算出処理と、 前記2辺の各々について、当該辺に対応した前記変形前
    の図形の辺における前記交点に対応した点の水平方向の
    座標値および垂直方向の座標値をDDA処理により逐次
    求める変形前交点座標値算出処理とを実行するととも
    に、 前記変形後交点座標値算出処理および前記変形前交点座
    標値算出処理が1回実行されるのに合わせて、 水平方向の座標値を前記変形後交点座標値算出処理によ
    って算出された一方の交点の水平方向の座標値から他方
    の交点の水平方向の座標値に向けて単位量ずつ進めなが
    ら、前記一方の交点と他方の交点とを結ぶ水平線分上に
    おける単位量ずつ離れた各点に対応した前記変形前の図
    形上の各点の水平方向および垂直方向の座標値をDDA
    処理により求める最終座標値算出処理と、 前記変形後交点座標値算出処理によって座標値が算出さ
    れた前記2つの交点間を結ぶ水平線分上の単位量ずつ離
    れた各点について、前記変形前の図形の画像データのう
    ち、前記最終座標値算出処理によって算出された水平方
    向および垂直方向の各座標値によって特定される位置の
    画像データを前記画像メモリから読み出し、前記変形後
    の図形における当該点に対応した画像データとして前記
    フレームバッファに書き込む画像データ転送処理とを実
    行することを特徴とする画像処理装置。
JP29160899A 1999-10-13 1999-10-13 画像処理方法および画像処理装置 Pending JP2001109457A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP29160899A JP2001109457A (ja) 1999-10-13 1999-10-13 画像処理方法および画像処理装置
US09/689,580 US6697081B1 (en) 1999-10-13 2000-10-12 Image processing method and device, and storage medium storing a program therefor
TW089121315A TW499667B (en) 1999-10-13 2000-10-12 Image processing method and device, and storage medium storing a program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29160899A JP2001109457A (ja) 1999-10-13 1999-10-13 画像処理方法および画像処理装置

Publications (1)

Publication Number Publication Date
JP2001109457A true JP2001109457A (ja) 2001-04-20

Family

ID=17771160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29160899A Pending JP2001109457A (ja) 1999-10-13 1999-10-13 画像処理方法および画像処理装置

Country Status (3)

Country Link
US (1) US6697081B1 (ja)
JP (1) JP2001109457A (ja)
TW (1) TW499667B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376894B2 (en) * 2004-11-18 2008-05-20 Microsoft Corporation Vector path merging into gradient elements
JP2006157580A (ja) * 2004-11-30 2006-06-15 Ricoh Co Ltd 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
JP2006268787A (ja) * 2005-03-25 2006-10-05 Fuji Xerox Co Ltd 統計量表示装置および方法
US7742063B2 (en) * 2005-07-07 2010-06-22 Lsi Corporation Efficient and high speed 2D data transpose engine for SOC application
JP2007025862A (ja) * 2005-07-13 2007-02-01 Sony Computer Entertainment Inc 画像処理装置
US20080158223A1 (en) * 2007-01-02 2008-07-03 International Business Machines Corporation Method and system for dynamic adaptability of content and channels
US20080159328A1 (en) * 2007-01-02 2008-07-03 International Business Machines Corporation Method and system for in-context assembly of interactive actionable insights and modalities in physical spaces
US20080163052A1 (en) * 2007-01-02 2008-07-03 International Business Machines Corporation Method and system for multi-modal fusion of physical and virtual information channels

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2845946B2 (ja) * 1989-06-14 1999-01-13 株式会社日立製作所 画像データ変換装置
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
US6014125A (en) * 1994-12-08 2000-01-11 Hyundai Electronics America Image processing apparatus including horizontal and vertical scaling for a computer display

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186786A (ja) * 2010-03-09 2011-09-22 Fujitsu Ltd 図形描画装置および方法

Also Published As

Publication number Publication date
TW499667B (en) 2002-08-21
US6697081B1 (en) 2004-02-24

Similar Documents

Publication Publication Date Title
JP3514947B2 (ja) 3次元画像処理装置及び3次元画像処理方法
US7898549B1 (en) Faster clears for three-dimensional modeling applications
JPH03250272A (ja) 図形描画方法およびその装置
JPH09161100A (ja) 表示方法及び装置
JP2006503365A (ja) 2次元表示装置を用いて擬似3次元表示を生成する方法及びシステム
WO2019163129A1 (ja) 仮想物体表示制御装置、仮想物体表示システム、仮想物体表示制御方法、及び仮想物体表示制御プログラム
JP2001109457A (ja) 画像処理方法および画像処理装置
JP2000011204A (ja) 画像処理方法及び画像処理プログラムを記録した記録媒体
KR101227155B1 (ko) 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
KR20050112111A (ko) 화상표시장치, 화상표시방법 및 화상표시시스템
JP3165094B2 (ja) 画像処理装置及び画像処理方法
JP3324580B2 (ja) 画像処理装置
JP2768370B2 (ja) 図形描画方法
JP2899838B2 (ja) 記憶装置
JP2003187260A (ja) 描画処理プログラム、描画処理プログラムを記録した記録媒体、描画処理装置及び方法
JP2004078994A (ja) 描画方法
JP3861463B2 (ja) 画像表示制御方法および装置
US8363053B2 (en) Method and apparatus for rendering outline of multimedia character image
JP2009009428A (ja) ベクター画像描画回路およびベクター画像描画方法
JP2011044022A (ja) 画像処理装置、画像処理方法、及びプログラム
JPH01200481A (ja) 三次元図形のピック方法
JP4461965B2 (ja) 文字画像生成装置、文字画像生成プログラムおよび文字画像生成方法
WO2015083279A1 (ja) 情報処理装置
JP3776416B2 (ja) 画像生成装置及び画像生成方法
KR101360592B1 (ko) 애니메이션 생성방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080325