JP3609189B2 - アンチエイリアシング機能を有する画像生成装置 - Google Patents
アンチエイリアシング機能を有する画像生成装置 Download PDFInfo
- Publication number
- JP3609189B2 JP3609189B2 JP04335696A JP4335696A JP3609189B2 JP 3609189 B2 JP3609189 B2 JP 3609189B2 JP 04335696 A JP04335696 A JP 04335696A JP 4335696 A JP4335696 A JP 4335696A JP 3609189 B2 JP3609189 B2 JP 3609189B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- register
- polygon
- stored
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 419
- 238000000034 method Methods 0.000 claims description 143
- 230000008569 process Effects 0.000 claims description 119
- 238000006243 chemical reaction Methods 0.000 claims description 35
- 230000015654 memory Effects 0.000 description 294
- 238000004364 calculation method Methods 0.000 description 183
- 239000013598 vector Substances 0.000 description 163
- 238000013507 mapping Methods 0.000 description 145
- 238000010586 diagram Methods 0.000 description 98
- 230000002093 peripheral effect Effects 0.000 description 31
- 238000012937 correction Methods 0.000 description 22
- 101100459234 Caenorhabditis elegans mxl-1 gene Proteins 0.000 description 16
- 101100459235 Caenorhabditis elegans mxl-2 gene Proteins 0.000 description 16
- 101000635885 Homo sapiens Myosin light chain 1/3, skeletal muscle isoform Proteins 0.000 description 16
- 101000629029 Homo sapiens Myosin regulatory light chain 2, ventricular/cardiac muscle isoform Proteins 0.000 description 16
- 102100030740 Myosin light chain 1/3, skeletal muscle isoform Human genes 0.000 description 16
- 102100026925 Myosin regulatory light chain 2, ventricular/cardiac muscle isoform Human genes 0.000 description 16
- 102100034402 ATP-dependent RNA helicase DDX39A Human genes 0.000 description 13
- 101000923749 Homo sapiens ATP-dependent RNA helicase DDX39A Proteins 0.000 description 13
- 238000013139 quantization Methods 0.000 description 13
- XULSCZPZVQIMFM-IPZQJPLYSA-N odevixibat Chemical compound C12=CC(SC)=C(OCC(=O)N[C@@H](C(=O)N[C@@H](CC)C(O)=O)C=3C=CC(O)=CC=3)C=C2S(=O)(=O)NC(CCCC)(CCCC)CN1C1=CC=CC=C1 XULSCZPZVQIMFM-IPZQJPLYSA-N 0.000 description 10
- 238000000605 extraction Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000009271 DNA damage immune response Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 102100037417 Dexamethasone-induced protein Human genes 0.000 description 3
- 101000806442 Homo sapiens Dexamethasone-induced protein Proteins 0.000 description 3
- 101000955215 Homo sapiens Protein DDI1 homolog 1 Proteins 0.000 description 3
- 101000918642 Homo sapiens Protein DDI1 homolog 2 Proteins 0.000 description 3
- 102100038994 Protein DDI1 homolog 1 Human genes 0.000 description 3
- 102100029130 Protein DDI1 homolog 2 Human genes 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 101100009784 Homo sapiens DMXL1 gene Proteins 0.000 description 2
- 101000982054 Homo sapiens Unconventional myosin-Ib Proteins 0.000 description 2
- 101000982023 Homo sapiens Unconventional myosin-Ic Proteins 0.000 description 2
- 101000667209 Homo sapiens Vacuolar protein sorting-associated protein 72 homolog Proteins 0.000 description 2
- 101150118928 MXR1 gene Proteins 0.000 description 2
- 101001128051 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 60S ribosomal protein L3 Proteins 0.000 description 2
- 101000733871 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 60S ribosomal protein L4-A Proteins 0.000 description 2
- 101000733875 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) 60S ribosomal protein L4-B Proteins 0.000 description 2
- 101100459241 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MXR2 gene Proteins 0.000 description 2
- 102100026776 Unconventional myosin-Ib Human genes 0.000 description 2
- 102100026785 Unconventional myosin-Ic Human genes 0.000 description 2
- 101001002634 Homo sapiens Interleukin-1 alpha Proteins 0.000 description 1
- 108010002350 Interleukin-2 Proteins 0.000 description 1
- 101000757678 Xenopus laevis Apoptosis regulator R1 Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
この発明は、画像生成におけるエイリアシングを除去する機能を備えた画像生成装置に関する。
【0002】
【従来の技術】
コンピュータによる画像生成の応用分野は、各種設計、ゲーム機器、芸術、コマーシャルフィルム、アニメーション及び各種シミュレーションの可視化等多枝に亘っている。これらの分野においては、写実性を追求する要望があり、生成された画像が如何に本物らしく表現できるかが重要になってくる。
【0003】
このような画像生成においては、モデル作成や画像表示の過程におけるデジタル化されたサンプリングによってエイリアシングの問題が発生する。コンピュータによる画像生成において、エイリアシングは物体の輪郭部分がぎざぎざに見えるいわゆるジャギーなどに現れる。このジャギーは、画素と同程度或いはそれ以下の大きさに投影された物体が、無視されたり実際よりずっと大きく表示されることにより生じる。
【0004】
多くの場合、陰面消去等による計算は、画素の中の1点についてしか行われない。しかし、実際には、画素はある大きさを有するので、このままでは残りの多くの部分に関する情報が失われる。このために本来その一部に非常に明るい部分を含む画素も計算に使った部分が暗ければ全体が暗い色に塗られてしまいエイリアシングが発生することになる。
【0005】
このエイリアシングを除去するアンチエイリアシングのアルゴリズムが種々提案されている。
【0006】
例えば、スーパーサンプリング法は、CRTの1ドットにフレームバッファとして、4×4、8×8等の複数のドットを割り当て16倍、64倍のフレームバッファメモリ上に描画し、CRTに表示するときにはCRTの1ドットに対応する複数ドットの平均値を採用するものである。
【0007】
また、フィルタリング法は、フレームバッファ上の画素周辺の画素の色のフィルタリングを行うことにより、ジャギーをなくすものである。
【0008】
他の方法として、画素境界において、物体をクリッピングし、画素内の面積を正確に計算する方法や、サブスキャンラインと呼ばれる補助のスキャンラインを使用し、台形計算によって面積比を求める方法などが知られている。
【0009】
また、上記フィルタリング法を基本として全体のぼけを防止するために、Zバッファの不連続領域を検出してフィルタリングすることによりアンチエイリアシングを行う方法が特開平3−139774号(G06F 15/68)に提案されている。
【0010】
さらに、テクスチャマッピングにおけるアンチエイリアシングの方法としては、スクリーン上の1ドットに対応するマッピングパターンの色を積分する方法、スクリーン上の1ドットに対応するマッピングパターンの色を等間隔に複数個サンプリングする方法、スクリーン上の1ドットに対応するマッピングパターンの色をランダムに複数個サンプリングする方法等が知られている。
【0011】
【発明が解決しようとする課題】
上記したスーパーサンプリング法は、画像はかなり良いが、例えば1ドットを8×8ドットで構成した場合に、フレームバッファメモリの容量は64倍も必要とし、コストが高くなるという問題がある。
【0012】
また、フィルタリング法は、画面全体をフィルタリングするため画像がぼけた形になるという難点がある。
【0013】
さらに、ピクセル内の面積を正確に計算する方法は、1ドットづつクリッピングを施すため、画像は美しいが、多くの演算を必要とし、描画スピードの低下を招くという問題がある。
【0014】
また、Zバッファの不連続を検出してフィルタリングする方法は、Zバッファの不連続領域を検出するため、その領域を保存するマスクメモリが必要となり、コストの増大と全体に微分フィルタをかけるため描画スピードの低下を招くという難点がある。
【0015】
この発明は、上述した従来の難点を解消するためになされたものにして、極端なメモリの増大と描画スピードの低下を招かずにアンチエイリアシングを行える描画装置を提供することを目的とする。
【0016】
【課題を解決するための手段】
この発明の第1の画像生成装置は、ポリゴンを構成する端点情報とカラー情報を格納する第1の記憶手段と、上記第1の記憶手段からの各端点情報をスクリーン端点情報に変換する座標変換手段と、上記座標変換手段からのポリゴン端点情報に基づきポリゴン辺の対を求める手段と、上記ポリゴン端点情報に基づきポリゴン辺の方向を算出し、この算出した方向からアンチエイリアシングする方向を決定する手段と、上記ポリゴン端点情報に基づきポリゴン辺の傾きを求める手段と、ポリゴン辺の各データをデジタル微分解析で算出する手段と、ポリゴン辺の傾きとデジタル微分解析により算出したスクリーン座標の小数 部に基づきドット面積を求めるドットエリア処理手段と、ポリゴン辺の各ドットのカラー情報、ドット面積、アンチエイリアシングを行う方向の情報とを格納する第2の記憶手段と、上記第2の記憶手段に格納されたカラー情報、前記ドット面積とアンチエイリアシングを行う方向の情報からそのドットの色を演算する表示処理手段と、上記表示処理手段で得られた色を表示する表示装置と、を備えてなる。
【0017】
【0018】
また、上記ドットエリア処理手段は、ポリゴン辺の傾きにより量子化し角度を符号化する手段と、スクリーン座標の小数部を量子化し交点を符号化する手段と、符号化した角度と符号化した交点に基づきドットの面積を算出する手段と、で構成することができる。
【0019】
また、上記表示処理手段は、第2の記憶手段から処理するドットとその上下左右方向のドットを読み出し、処理するドットのポリゴン辺の方向により上下左右のどれか1つのドットを選択する手段と、処理するドットと選択されたドットに基づきそのドットの色を算出する手段と、で構成することができる。
【0020】
【0021】
【0022】
【0023】
【0024】
この発明は、ポリゴン辺にアンチエイリアシングを施すことによって、極端なメモリの増大と描画スピードの低下を招かずにアンチエイリアシングを行える。
【0025】
【0026】
【発明の実施の形態】
以下、この発明の実施の形態を図面を参照して説明する。
【0027】
図1は、この発明の第1の実施の形態が適用される画像生成装置の構成を示すブロック図である。
【0028】
この画像生成装置は、メモリ1、座標変換処理装置2、描画処理装置3、Zバッファメモリ4、フレームメモリ5、表示処理装置6及び画像を表示するCRT7を備える。
【0029】
メモリ1には、オブジェクトを構成するポリゴンの端点や法線ベクトル等が格納されている。このメモリ1からオブジェクトに対する各データが座標変換処理装置2に与えられる。座標変換処理装置2は、CPUまたはDSPで構成され、オブジェクトに対する回転、拡大、縮小等を行い、ワールド座標に配置後、視野変換を行いスクリーン投影を行う。この座標変換装置2よりスクリーン投影されたポリゴンの各データが描画処理装置3へ与えられる。
【0030】
この描画処理装置3は、座標変換処理装置2によりスクリーン座標に変換されたポリゴンをZバッファメモリ4に格納された各ドットのZ値と比較して陰面処理を行い、さらにポリゴン辺の各ドット中の面積を算出し、フレームメモリ5にそのデータを書き込む。
【0031】
フレームメモリ5は、図2に示すように、各ドットの色値(R、G、B)またはLUT(ルックアップテーブル)アドレスとドットの面積とアンチエイリアシングを行う方向コードが格納される。このアンチエイリアシングを行う方向を示す方向コードは各辺の方向ベクトルにより決定される。
【0032】
表示処理装置6は、フレームメモリ5をアクセスし、フレームメモリ5に格納された色値またはLUTアドレスとドットの面積と方向コードからそのドットの色を演算して求め、その演算で得られた色をCRT7に送り、CRT7にて画像が表示される。
【0033】
次に、この実施の形態における描画処理装置3の構成例を図3に従い説明する。
【0034】
視野変換されたポリゴン端点の視野座標上のX、Y、Z値等の各データが座標変換処理装置2より描画処理装置3内部の外部インターフェース(IF)31に与えられる。すなわち、このインターフェース31により座標変換処理装置2と描画処理装置3とのデータの受け渡しが行われる。インターフェース31を介して与えられた座標変換処理装置2からの各データがポリゴン摘出装置32に与えられる。
【0035】
このポリゴン摘出装置32は、ポリゴン辺の情報を後の処理で処理し易いように、それぞれのデータを辺テーブル33に格納させる処理を行う。このポリゴン摘出装置32は、例えば図4に示すように構成される。
【0036】
図4は、ポリゴン摘出装置32の具体的構成例を示すブロック図である。
【0037】
外部インタフェース31からポリゴン端点のX、Y、Z値、色値、属性などがポリゴン摘出装置32に与えられる。外部インタフェース31から与えられた各ポリゴン端点で構成される各ポリゴン辺のX始点(Xs)はレジスタ101に、ポリゴン辺のX終点(Xe)はレジスタ102に、ポリゴン辺のY始点(Ys)はレジスタ103に、ポリゴン辺のY終点(Ye)はレジスタ104にそれぞれ格納される。
【0038】
また、色値またはLUTアドレスのカラー情報はカラーレジスタ105に格納される。
【0039】
そして、コントローラ116は、格納されたポリゴン辺の端点のアドレスに基づいて、ポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトルを算出すると共に、そのベクトル方向に応じて、図6に示すようにポリゴン辺が右辺に属するか左辺に属するか決定する。
【0040】
この実施の形態では、ポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。そのため、例えば、図7の(a)、(b)、(c)に示すようなポリゴンの種類に対して、図8の(a)、(b)、(c)に示すポリゴン辺の対を求める。従って、上向きのポリゴン辺を逆転させる必要がある。また、図38に示すようなポリゴンに対しては、2つの辺の対になるように、ポリゴン辺を分割し、それぞれ下向きのポリゴン辺対になるように構成している。
【0041】
このために、レジスタ103、104に格納されたYs、Yeは比較器106に与えられ、この比較器106にて、Ys、Yeを比較する。そして、この比較結果は、マルチプレクサ107、108に与えられる。この比較結果により、ポリゴン辺を逆転させるか否か決定し、マルチプレクサ107、108が制御される。すなわち、図7に示すようなポリゴンの種類に対しては、図8のように、ポリゴン辺対を求めるべく上向きのポリゴン辺を逆転させ、マルチプレクサ107、108は始点、終点を入れ替えて辺テーブル33にデータを送り、ポリゴン辺を逆転させない場合には、マルチプレクサ107、108外部インタフェース33から与えられたデータをそのまま辺テーブル33に送る。
【0042】
辺テーブル33は、図10に示すようにフォーマットされ、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される。
【0043】
図9は、方向ベクトルの変更結果とそのポリゴン辺が右辺、左辺のどちらに属するかを表した図である。この図に示すように、上向きのベクトルは始点、終点の入れ替えにより下向きのベクトルに変更されるが、そのポリゴン辺の属する右辺、左辺の関係は変更しない。
【0044】
また、マルチプレクサ108から出力され、辺テーブル33の左辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ109に、辺テーブル33の右辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ110に、辺テーブル33の左辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ111に、辺テーブル33の右辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ112にそれぞれ与えられる。
【0045】
また、レジスタ109、レジスタ110に格納された左辺、右辺の0アドレスに格納されたY始点がマルチプレクサ113を介して比較器115に与えられる。さらに、レジスタ111、レジスタ112に格納された左辺、右辺の1アドレスに格納されたY始点がマルチプレクサ114を介して比較器115に与えられる。比較器115では、辺テーブル33の左辺または右辺の0、1アドレスに格納された辺情報はどちらが上の辺でどちらが下の辺であるかの判定を行いその判定結果をパラメータ演算装置34に与える。これら各回路は、コントローラ116により制御される。
【0046】
そして、辺テーブル33及びポリゴン摘出装置32並びに後述する水平テーブル37からデータがパラメータ演算装置34に与えられる。
【0047】
このパラメータ演算装置34は、ポリゴンの左辺、右辺の傾きや、左辺、右辺を水平に交叉するスキャンラインのZ値の傾きなどを演算する。このパラメータ演算装置34は、例えば、図11のように構成される。
【0048】
図11は、このパラメータ演算装置34の具体的構成例を示すブロック図である。
【0049】
図11に示すように、パラメータ演算装置34は、デジタル微分解析(DDA)に用いるパラメータとしてのポリゴン辺の傾き等を求めるもので、辺テーブル33より傾きを求めるために除算される始点、終点がレジスタ121、122に格納され、このレジスタ121、122に格納された始点、終点が減算器123に与えられ、この減算器123で除算される始点、終点の長さが求められ、その長さがレジスタ124に与えられる。
【0050】
また、辺テーブル33より除算される始点、終点がレジスタ125、126に格納され、このレジスタ125、126に格納された始点、終点が減算器127に与えられ、この減算器127で除算される始点、終点の長さが求められ、その長さがレジスタ128に与えられる。すなわち、これら、減算器123、127にて、ポリゴン辺の右辺、左辺のそれぞれに対して、DY=Ye−Ys、DX=Xe−Xs、DZ=Ze−Zsの演算が行われ、この演算結果(長さ)がレジスタ124、128に格納される。
【0051】
レジスタ124、128に格納されたそれぞれの長さは、除算器129に与えられ、この除算器129で除算することにより各辺の傾きを求め、求めた傾きをレジスタ130に格納し、DDA処理装置35に送る。
【0052】
レジスタ132には左辺のY終点が格納され、レジスタ133には右辺のY終点が格納され、これらレジスタ132、133に格納されたY終点は、比較器134及びマルチプレクサ135に与えられる。そして、比較器134にて左辺、右辺のY終点を比較して、その比較結果によりマルチプレクサ135を制御することにより、左辺、右辺の小さい方のY終点の値を求めDDA処理装置35へ送る。
【0053】
一方、レジスタ131には、辺テーブル33の各種パラメータが格納され、格納されたパラメータはDDA処理装置35に与えられる。
【0054】
パラメータ演算装置34で算出された各パラメータはDDA処理装置35及びドットエリア処理装置36にそれぞれ与えられる。
【0055】
DDA処理装置35は、ポリゴンの左辺、右辺のY、X、Z値をディジタル微分解析(DDA)により求め、Y値が1つ変わるごとに左辺、右辺のX値、Z値をDDAする。この時、DDAは左辺のDDAを行った後、水平テーブル37に求めた左辺のX値、Z値と色値またはLUTアドレスのカラー情報を書き込む。そして、右辺のDDAを行い水平テーブル37に求めた右辺のX値、Z値とY値、属性を書き込む。このDDA処理装置35は、例えば、図12ないし図14のように構成される。
【0056】
上記水平テーブル37は図15に示すようにフォーマットされており、左辺、右辺に水平に交叉するスキャンラインのX値、Y値、Z値と色値またはLUTアドレスのカラー情報などを一時的に格納し、左辺、右辺ともデータが揃った時に、パラメータ演算装置34に送り、水平方向のDDAを行うために必要なパラメータを演算させる。
【0057】
図12ないし図14は、上記DDA処理装置35の具体的構成例を示すブロック図である。図12は、X軸を基軸とするDDA処理装置、図13は、Y軸を基軸とするDDA処理装置、図14は、Z軸を基軸とするDDA処理装置である。
【0058】
次に、DDA処理装置35の具体的構成例につき図12ないし図14に従い説明する。
【0059】
図12に示すように、X軸を基軸とするDDAを行う場合には、1または−1を送るためマルチプレクサ141に1または−1が与えられる。このマルチプレクサ141からマルチプレクサ145を介して加算器147に1または−1が与えられる。パラメータ演算装置34から与えられた右辺のXの傾きがレジスタ142に、左辺のXの傾きがレジスタ143にそれぞれ格納される。レジスタ142、143からX値の傾きがマルチプレクサ145を介して加算器147に与えられる。
【0060】
マルチプレクサ144にはパラメータ演算処理装置34から送られてきた値または加算器147の加算結果が与えられ、この値をXレジスタ146に与える。すなわち、このXレジスタ146にはDDAを行うX値が格納される。加算器147はXレジスタ146の値とマルチプレクサ145により選択された値を加算する。加算器147によりDDAされ、Xレジスタ146に格納されたX値はドットエリア処理装置36に送られる。
【0061】
図13に示すように、Y軸を基軸とするDDAを行う場合には、1または−1を送るためマルチプレクサ148に1または−1が与えられる。このマルチプレクサ148からマルチプレクサ152を介して加算器154に1または−1が与えられる。パラメータ演算装置34から与えられた右辺のYの傾きがレジスタ149に、左辺のYの傾きがレジスタ150にそれぞれ格納される。レジスタ149、150からY値の傾きがマルチプレクサ154を介して加算器154に与えられる。
【0062】
マルチプレクサ151には、パラメータ演算処理装置34から送られてきた値または加算器154の加算結果が与えられ、この値をYレジスタ153に与える。すなわち、このYレジスタ153にはDDAを行うY値が格納される。加算器154はYレジスタ153の値とマルチプレクサ152により選択された値を加算する。加算器155によりDDAされ、Yレジスタ153に格納されたY値はドットエリア処理装置36に送られる。
【0063】
レジスタ156にはパラメータ演算処理装置34より与えられた辺ペアのY値の終値が格納され、この値とYレジスタ153に格納された値とが比較器157で比較される。すなわち、辺ペアのY値とY値の終値(Ye)を比較し、この結果をDDAの処理を制御するコントローラに与え、処理の終了が判断される。
【0064】
また、Yレジスタ153に格納された辺ペアのY値と、加算器154の加算結果が比較器155に与えられ、この比較器155により、X軸が基軸のDDAを行う場合に、Y値の整数が変化したかを判断し、比較結果をコントローラへ送る。
【0065】
図14に示すように、Z軸を基軸とするDDAを行う場合には、パラメータ演算処理装置34から与えられるZ値の傾きがレジスタ158に与えられる。このレジスタ158からマルチプレクサ162を介して加算器164にZ値の傾き(DDZX)が与えられる。パラメータ演算装置34から与えられた右辺のZの傾きがレジスタ159に、左辺のZの傾きがレジスタ160にそれぞれ格納される。レジスタ159、160からZ値の傾きがマルチプレクサ162を介して加算器164に与えられる。
【0066】
マルチプレクサ161にはパラメータ演算処理装置34から送られてきた値または加算器164の加算結果が与えられ、この値をZレジスタ163に与える。すなわち、このZレジスタ163にはDDAを行うZ値が格納される。加算器164はZレジスタ163の値とマルチプレクサ162により選択された値を加算する。加算器164によりDDAされ、Zレジスタ163に格納されたZ値はドットエリア処理装置36に送られる。
【0067】
パラメータ演算装置34及びDDA処理装置35で算出したそれぞれのデータはドットエリア処理装置36に与えられる。このドットエリア処理装置36はパラメータ演算処理装置34で求めた左辺、右辺の傾きとDDA処理装置35で求めたX値、Y値の小数部を受け取り、左辺、右辺のドット面積を求める。このドットエリア処理装置36は、例えば図16のように構成される。
【0068】
図16はドットエリア処理装置の具体的構成例を示すブロック図である。
【0069】
パラメータ演算処理装置34から送られたポリゴン辺の傾きがPALまたはROMで構成された量子化回路171に与えられる。この量子化回路171にて、ポリゴン辺の傾きにより図17、図18に示すように、量子化し、角度を符号化する。例えば、図17に示すような傾きで、”0.1”であれば、”4”である。そして、この量子化回路171にて角度符号化された左辺の角度符号がレジスタ173に右辺の角度符号がレジスタ174に格納される。
【0070】
DDA処理装置35から送られたX、Y値の小数部がPALまたはROMで構成された量子化回路172に与えられる。この量子化回路172にて、X、Y値の小数部により図19に示すように、量子化し、X、Y軸の交点を符号化する。例えば、図19で、0、1とあるのは、ポリゴン辺の傾きによって変えているからであり、図20のLのように各方向によってどちらを選ぶか決める。この実施の形態では、図21のように、ポリゴン辺の傾きを示す方向ベクトルにより、それぞれポリゴンを分けるとき、上側の面積部分を対象にしているのか、下側の面積を対象にしているかにより、その面積が変わるからである。そして、この量子化回路172にて符号化された左辺の交点符号がレジスタ175に右辺の交点符号がレジスタ176に格納される。
【0071】
レジスタ173、174に格納された左辺、右辺の角度符号はマルチプレクサ177に、レジスタ175、176に格納された左辺、右辺の交点符号はマルチプレクサ178に、それぞれ与えられる。このマルチプレクサ177、178は左辺、右辺を処理するごとに切り替わり、レジスタ179に各符号を与える。このレジスタは格納された符号をアドレスとして、PALまたはROMで構成された量子化回路180をアクセスする。この量子化回路180は、図21に示すように、X軸、Y軸との交点の符号値と角度の符号値から面積を量子化し、図22、図23のように数値化したものが格納されている。図22、図23は1ドットを8×8に分割して考え、最大(MAX)は64であり、図22、図23のように2つあるのは、前述したように、図21のように、仕切る時、上側か下側かの面積を考えるかにより分けるからである。これは図20のMの0、1により、上側の面積を考えるか下側の面積を考えるかを使い分ける。Mが0の時は、下側の面積をMが1の時上側の面積を選択する。
【0072】
そして、量子化回路180から読み出された、左辺、右辺のドットの面積はレジスタ181に格納され、フレームメモリZバッファ処理装置38に送られる。
【0073】
図24ないし図25に、各ポリゴン辺の方向での交点符号と角度の例を示す。
【0074】
図24(a)は、ポリゴン辺の方向ベクトルが1で、量子化された角度が2の場合を示し、この図において、[Fill」と記載されているドットは、64の最大値を表しており、「Fill]以外のドットがアンチエイリアシングされるドットである。(a)の例では、交点符号が3、7、3と求められる。この求められた交点の符号値と角度によりドットの面積が量子化される。
【0075】
(b)は、ポリゴン辺の方向ベクトルが0で、量子化された角度が1の場合を示し、この例では、交点符号が1、3、6と求められる。
【0076】
(c)は、ポリゴン辺の方向ベクトルが3で、量子化された角度が3の場合を示し、この例では、交点符号が1、4、6と求められる。
【0077】
(d)は、ポリゴン辺の方向ベクトルが2で、量子化された角度が2の場合を示し、この例では、交点符号が4、7、4と求められる。
【0078】
図25(e)は、ポリゴン辺の方向ベクトルが4で、量子化された角度が3の場合を示し、この例では、交点符号が3、4、6と求められる。
【0079】
(f)は、ポリゴン辺の方向ベクトルが5で、量子化された角度が3の場合を示し、この例では、交点符号が2、4、6と求められる。
【0080】
(g)は、ポリゴン辺の方向ベクトルが6で、量子化された角度が1の場合を示し、この例では、交点符号が6、3、0と求められる。
【0081】
(h)は、ポリゴン辺の方向ベクトルが7で、量子化された角度が2の場合を示し、この例では、交点符号が3、7、3と求められる。
【0082】
そして、ドットエリア処理装置36及びDDA処理装置35からのデータがフレームメモリZバッファ処理装置38に与えられる。このフレームメモリZバッファ処理装置38は、ドットエリア処理装置36から各ドットの面積をDDA処理装置35からX値、Y値、Z値と色値またはLUTアドレス値のカラー情報を受け取り、Zバッファメモリアドレスとフレームメモリアドレスを求め、Zバッファメモリ4に格納されたZ値と比較し、Z値が小さければ、Zバッファメモリ4を更新し、フレームメモリ5へ色値またはLUTアドレス値と面積と方向コードを書き込む。このフレームメモリZバッファ処理装置38は、例えば図26に示すように構成される。
【0083】
図26は、フレームメモリZバッファ処理装置38の具体的構成例を示すブロック図である。
【0084】
各部から受け取ったデータはレジスタ191に格納される。このレジスタ191は、パラメータ演算処理装置34からのデータはフラグ(FLAG)領域へ、DDA処理装置35からの色データがカラー領域へ、ドットエリア処理回路36からのデータはエリア領域へそれぞれ格納する。
【0085】
DDA処理装置35から受け取ったY値がフレームメモリアドレス生成回路192に与えられ。フレームメモリのアドレスを生成し、フレームメモリ5に与え、レジスタ191に格納されたデータがフレームメモリ5に転送される。
【0086】
また、Zバッファメモリ4から受け取ったZ値はレジスタに格納され、このZ値が比較器195に与えられる。またDDA処理装置35から受け取ったZ値はレジスタ194に格納され、このZ値が比較器195に与えられ、Zバッファメモリ4のZ値とDDA処理装置35のZ値を比較し、ZバッファメモリのZ値が大きければZ値を更新するため、Zレジスタ196に格納する。
【0087】
DDA処理装置35から受け取ったY値がZバッファメモリアドレス生成回路197に与えられ。Zバッファメモリのアドレスを生成し、Zバッファメモリ4に与え、レジスタ196に格納されたデータがZバッファメモリ4に転送される。
【0088】
上述した描画処理装置3の各装置はコントローラ39で制御され、このコントローラ39は図27ないし図34に示すフローチャートに従い描画処理装置3の全体を制御する。
【0089】
次に、上記フローチャートに従い描画処理装置3の動作につき説明する。
【0090】
動作を開始すると、座標変換処理装置2からポリゴン辺の始点(Xs、Ys)、終点(Xe、Ye)を読み出す(ステップS1)。そして、ポリゴン辺の始点、終点のアドレスに基づいて、ポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトル(DIR)を算出すると共に、そのベクトル方向に応じて、ポリゴン辺が右辺に属するか左辺に属するか決定する。(ステップS2)。
【0091】
この実施の形態では、ポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。このため、方向ベクトル(DIR)が4より大きいか否か判断され(ステップS4)、方向ベクトル(DIR)が4より小さい場合は、図5に示すように、方向ベクトルは上向きであるので、上向きのポリゴン辺を逆転させるため方向ベクトル(DIR)を反転させ、そして左辺、右辺の属性を示すフラグを1にセットする(ステップS4)。
【0092】
方向ベクトル(DIR)が4以上の場合は、図5に示すように、方向ベクトルは下向きであるので、方向ベクトル(DIR)はそのままの状態で、左辺、右辺の属性を示すフラグを0にセットする(ステップS5)。
【0093】
辺テーブル33に、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される(ステップS6)、すべてのポリゴン辺を読み出すまで前述の動作を繰り返し(ステップS7)、すべてのポリゴン辺の右辺、左辺のそれぞれのデータが辺テーブル33に格納されると、辺テーブル33がソートされる(ステップS8)。そして、辺テーブル33からYアドレスの終点(Ye)を求める。
【0094】
続いて、辺テーブル33の0アドレスの左辺から、X始点、Y始点、Z始点とX終点、Y終点、Z終点並びにこの方向ベクトルを読み出す(ステップS10)。
【0095】
さらに、辺テーブル33の0アドレスの右辺から、X始点、Y始点、Z始点とX終点、Y終点、Z終点並びにこの方向ベクトルを読み出す(ステップS11)。
【0096】
そして、パラメータ演算のサブルーチン処理(VPARA)(ステップS12)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS13)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS14)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS15)の演算が行われる。
【0097】
これらサブルーチン処理につき説明する。
【0098】
まず、パラメータ演算のサブルーチン処理(VPARA)について、図29に従い説明する。辺テーブル33より読み出した左辺の方向ベクトル(DIRL)が5または7か判断し(ステップS100)、方向ベクトルが5または7の場合には、左辺に対してY軸を基軸とするXの傾き及びZの傾きを求め、Xの傾きをDDXL、Zの傾きをDDZLとする(ステップS101)。
【0099】
そして、傾きDDXLを図17、図18に基づき量子化して、ADIRLとし、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS102)。すなわち、図39に示すように、(a)の方向ベクトルに基づき、(b)のように、アンチエイリアシングを行う方向が決められている。その方向ベクトルと方向コード(FLAG)との関係が図40に示されている。この図40に示すテーブルに基づき方向ベクトル(DIR)が方向コード(LFLAG)に変換される。
【0100】
また、ステップS100において、方向ベクトルが5または7以外の場合には、左辺に対してX軸を基軸とするYの傾き及びZの傾きをを求め、Yの傾きをDDYL、Zの傾きをDDZLとする(ステップS103)。
【0101】
そして、傾きDDYLを図17、図18に基づき量子化して、ADIRLとし、方向ベクトル(DIRL)を図40に示すテーブルに基づきアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS104)。
【0102】
続いて、辺テーブル33より読み出した右辺の方向ベクトル(DIRR)が5または7か判断し(ステップS105)、方向ベクトルが5または7の場合には、右辺に対してY軸を基軸とするXの傾き及びZの傾きを求め、Xの傾きをDDXR、Zの傾きをDDZRとする(ステップS106)。
【0103】
そして、傾きDDXRを図17、図18に基づき量子化して、ADIRRとし、方向ベクトル(DIRR)を図40に示すテーブルに基づきアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS107)。
【0104】
また、ステップS105において、方向ベクトルが5または7以外の場合には、右辺に対してX軸を基軸とするYの傾き及びZの傾きを求め、Yの傾きをDDYR、Zの傾きをDDZRとする(ステップS108)。
【0105】
そして、傾きDDYRを図17、図18に基づき量子化して、ADIRRとし、方向ベクトル(DIRR)を図4に示すテーブルに基づきアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS109)。
【0106】
その後、左辺のX始点をXL、Y始点をYL、Z始点をZL、X終点をXLE、Y終点をYLEとし(ステップS110)、さらに、右辺のX始点をXR、Y始点をYR Z始点をZR、X終点をXRE、Y終点をYREとし(ステップS111)として、このサブルーチンが終了する。
【0107】
パラメータ演算のサブルーチン処理(VPARA)(ステップS12)が終了すると、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS13)、が行われる。
【0108】
左辺のDDA演算のサブルーチン処理(LVDDA)について、図30を参照して説明する。
【0109】
VPARAサブルーチンで設定したXL、YL、ZLをそれぞれX、Y、Zとした後(ステップS121)、左辺の方向ベクトル(DIRL)が5または7か否か判断する(ステップS122)。
【0110】
方向ベクトル(DIRL)が5または7の場合、X及びZをDDAで算出する。すなわち、X=X+DDXL、Z=Z+DDZLの演算を行う(ステップS123)。そして、X値の小数点から図19のテーブルに基づき交点符号化を行い、その値をADIR2Lとする(ステップS124)。
【0111】
続いて、ADIRL、ADIR2Lに基づいて、図22、図23のテーブルを参照し、ピクセルの面積を求め(ステップS125)、Zバッファメモリから(X、Y)の示すZ値を読み出し、ZMとする(ステップS126)。
【0112】
そして、ZM値とZ値が比較され(ステップS127)、ZM値がZ値より大きい場合には、ZバッファメモリにZ値を書き込み、フレームメモリにカラー値と面積と方向コード(LFLAG)を書き込んだ後(ステップS128)、Y=Y+DYの演算を行う(ステップS129)。
【0113】
また、ZM値がZ値以下の時は、直ちに、Y=Y+DYの演算を行う(ステップS127、129)。
【0114】
続いて、XLをXに、YLをYに、ZLをZに設定する(ステップS130)。
【0115】
一方、ステップS122において、方向ベクトル(DIRL)が5または7でない場合には、Y及びZをDDAで算出する。すなわち、Y=Y+DDYL、Z=Z+DDZLの演算を行う(ステップS131)。そして、Y値の小数点から図19のテーブルに基づき交点符号化を行い、その値をADIR2Lとする(ステップS132)。
【0116】
続いて、ADIRL、ADIR2Lに基づいて図22、図23のテーブルを参照し、ピクセルの面積を求め(ステップS133)、Zバッファメモリから(X、Y)の示すZ値を読み出し、ZMとする(ステップS134)。
【0117】
そして、ZM値とZ値が比較され、ZM値がZ値より大きい場合には、ZバッファメモリにZ値を書き込み、フレームメモリにカラー値と面積と方向コード(LFLAG)を書き込み(ステップS136)、XLをXに、YLをYに、ZLをZに設定する(ステップS137)。
【0118】
また、ZM値がZ値以下の時は、直ちに、XLをXに、YLをYに、ZLをZに設定する(ステップS135、137)。
【0119】
続いて、Y値の整数が変化したかが判断され(ステップS138)、Y値の整数が変化しない場合には、X=X+DXの演算を行った後(ステップS139)、ステップS131に戻り前述の動作を繰り返す。
【0120】
Y値の整数が変化し、或いはステップS130の動作が終了すると、水平テーブルの左辺領域にX、Y、Z値とカラー値を書き込み(ステップS140)、このサブルーチンを終了する。
【0121】
左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS13)が終了すると、右辺のDDA演算のサブルーチン処理(LVDDA)(ステップS14)が行われる。
【0122】
右辺のDDA演算のサブルーチン処理(RVDDA)について、図31を参照して説明する。
【0123】
VPARAサブルーチンで設定したXR、YR、ZRをそれぞれX、Y、Zとし(ステップS141)た後、右辺の方向ベクトル(DIRR)が5または7か否か判断する(ステップS142)。
【0124】
方向ベクトル(DIRR)が5または7の場合、X及びZをDDAで算出する。すなわち、X=X+DDXR、Z=Z+DDZRの演算を行う(ステップS143)。そして、X値の小数点から図19のテーブルに基づき交点符号化を行い、その値をADIR2Rとする(ステップS144)。
【0125】
続いて、ADIRR、ADIR2Rに基づいて図22、図23のテーブルを参照し、ピクセルの面積を求め(ステップS145)、Zバッファメモリから(X、Y)の示すZ値を読み出し、ZMとする(ステップS146)。
【0126】
そして、ZM値とZ値が比較され(ステップS147)、ZM値がZ値より大きい場合には、ZバッファメモリにZ値を書き込み、フレームメモリにカラー値と面積と方向コード(RFLAG)を書き込んだ後(ステップS148)、Y=Y+DYの演算を行う(ステップS149)。
【0127】
また、ZM値がZ値以下の時は、直ちに、Y=Y+DYの演算を行う(ステップS147、149)。
【0128】
続いて、XRをXに、YRをYに、ZRをZに設定する(ステップS150)。
【0129】
一方、ステップS142において、方向ベクトル(DIRR)が5または7でない場合には、Y及びZをDDAで算出する。すなわち、Y=Y+DDYR、Z=Z+DDZRの演算を行う(ステップS151)。そして、Y値の小数点から図19のテーブルに基づき交点符号化を行い、その値をADIR2Rとする(ステップS152)。
【0130】
続いて、ADIRR、ADIR2Rに基づいて図22、図23のテーブルを参照し、ピクセルの面積を求め(ステップS153)、Zバッファメモリから(X、Y)の示すZ値を読み出し、ZMとする(ステップS154)。
【0131】
そして、ZM値とZ値が比較され(ステップS155)、ZM値がZ値より大きい場合には、ZバッファメモリにZ値を書き込み、フレームメモリにカラー値と面積と方向コード(RFLAG)を書き込み(ステップS156)、XRをXに、YRをYに、ZRをZに設定する(ステップS157)。
【0132】
また、ZM値がZ値以下の時は、直ちに、XRをXに、YRをYに、ZRをZに設定する(ステップS155、157)。
【0133】
続いて、Y値の整数が変化したかが判断され(ステップS158)、Y値の整数が変化しない場合には、X=X+DXの演算を行った後(ステップS159)、ステップS151に戻り前述の動作を繰り返す。
【0134】
Y値の整数が変化し、或いはステップS150の動作が終了すると、水平テーブルの左辺領域にX、Y、Z値と属性を書き込み(ステップS160)、このサブルーチンを終了する。
【0135】
右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS14)が終了すると、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS15)が行われる。
【0136】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)について、図32を参照して説明する。
【0137】
水平テーブルから読み出した左辺のX、Y、Z値をそれぞれXL、YL、ZLとし、さらに右辺のX、Y、Z値をそれぞれXR、ZRとする(ステップS161)。
【0138】
そして、X軸を基準とするZの傾きを求め、その値をDDZXとし、(ステップS162)、X=XL+1、Y=YL、Z=Z+DDZXの演算を行う(ステップS163)。
【0139】
続いて、Zバッファメモリから(X、Y)の示すZ値を読み出し、このZ値とステップS163で求めたZと比較する(ステップS164)。
【0140】
そして、ZバッファメモリのZ値がZより大きい場合には、ZバッファメモリにZ値を書き込み、フレームメモリにカラー値と面積として、Fullの64を書き込んだ後(ステップS165)、X=X+1、Z=Z+DDZXの演算を行う(ステップS166)。
【0141】
また、ZバッファメモリのZ値がZ以下の時は、直ちに、X=X+1、Z=Z+DDZXの演算を行う(ステップS164、166)。
【0142】
続いて、XがXRより小さいか否か判断され(ステップS167)、小さい場合には、ステップS164に戻り前述の動作を繰り返す。XがXR以上になるとこのサブルーチンを終了する。
【0143】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS15)が終了すると、YがYeより小さいか否か判断され(ステップS16)、YがYeより小さい場合には、ステップS13に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。
【0144】
そして、辺テーブルの1アドレスの右辺にデータがあるか否か判断され(ステップS17)、データがある場合には、辺テーブルの1アドレスの右辺から、X始点、Y始点、Z始点とX終点、Y終点、Z終点並びにこの方向ベクトルを読み出す(ステップS18)。
【0145】
次に、第2のパラメータ演算のサブルーチン処理(VPARA1)(ステップS19)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS20)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS21)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS22)の演算が行われる。これらサブルーチン処理のうちステップS20から22の処理は前述の図29ないし図32に示した処理と同じ処理が行われるので、ここでは第2のパラメータ演算のサブルーチン処理(VPARA1)につき図33に従い説明する。
【0146】
辺テーブル33の1アドレスより読み出した右辺の方向ベクトル(DIRR)が5または7か判断し(ステップS171)、方向ベクトルが5または7の場合には、右辺に対してY軸を基軸とするXの傾き及びZの傾きを求め、Xの傾きをDDXR、Zの傾きをDDZRとする(ステップS172)。
【0147】
そして、傾きDDXRを図17、図18に基づき量子化して、ADIRRとし、方向ベクトル(DIRR)を図40に示すテーブルに基づいてアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS173)。
【0148】
また、ステップS171において、方向ベクトルが5または7以外の場合には、右辺に対してX軸を基軸とするYの傾き及びZの傾きを求め、Yの傾きをDDYR、Zの傾きをDDZRとする(ステップS174)。
【0149】
そして、傾きDDYRを図17、図18に基づき量子化して、ADIRRとし、方向ベクトル(DIRR)を図40に示すアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS175)。
【0150】
その後、右辺のX始点をXR、Y始点をYR Z始点をZR、X終点をXRE、Y終点をYREとし(ステップS176)として、このサブルーチンが終了する。
【0151】
この第2のパラメータ演算のサブルーチンが終了すると(ステップS19)、続いて、LVDDAサブルーチン(ステップS20)、RVDDAサブルーチン(ステップS21)、HDDAサブルーチン(ステップS22)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS23)、YがYeより小さい場合には、ステップS20に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0152】
一方、ステップS17において、辺テーブルの1アドレスの右辺にデータがないと判断されると、続いて、辺テーブルの1アドレスの左辺にデータがあるか否か判断され(ステップS24)。データがない場合にはこの描画処理動作は終了する。
【0153】
また、データがある場合には、辺テーブルの1アドレスの左辺から、X始点、Y始点、Z始点とX終点、Y終点、Z終点並びにこの方向ベクトルを読み出す(ステップS25)。
【0154】
そして、第3のパラメータ演算のサブルーチン処理(VPARA2)(ステップS26)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS27)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS28)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS29)の演算が行われる。これらサブルーチン処理のうちステップS27から29の処理は前述の図29ないし図32に示した処理と同じ処理が行われるので、ここでは第3のパラメータ演算のサブルーチン処理(VPARA2)につき図34に従い説明する。
【0155】
辺テーブル33の1アドレスより読み出した右辺の方向ベクトル(DIRR)が5または7か判断し(ステップS181)、方向ベクトルが5または7の場合には、左辺に対してY軸を基軸とするXの傾き及びZの傾きを求め、Xの傾きをDDXL、Zの傾きをDDZLとする(ステップS182)。
【0156】
そして、傾きDDXLを図17、図18に基づき量子化して、ADIRLとし、方向ベクトル(DIRL)を図40のテーブルに基づきアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS183)。
【0157】
また、ステップS181において、方向ベクトルが5または7以外の場合には、右辺に対してX軸を基軸とするYの傾き及びZの傾きを求め、Yの傾きをDDYL、Zの傾きをDDZLとする(ステップS184)。
【0158】
そして、傾きDDYLを図17、図18に基づき量子化して、ADIRLとし、方向ベクトル(DIRL)を図40のテーブルに基づきアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS185)。
【0159】
その後、左辺のX始点をXL、Y始点をYL Z始点をZL、X終点をXLE、Y終点をYLEとし(ステップS186)として、このサブルーチンが終了する。
【0160】
この第3のパラメータ演算のサブルーチンが終了すると(ステップS26)、続いて、LVDDAサブルーチン(ステップS27)、RVDDAサブルーチン(ステップS28)、HDDAサブルーチン(ステップS29)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS30)、YがYeより小さい場合には、ステップS27に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0161】
上記のように、描画処理装置3により処理されたデータはフレームメモリ5に格納される。
【0162】
図35は、この実施の形態におけるフレームメモリ5の分割方法を示すもので、この実施の形態においては、フレームメモリ5は5つに分割されてドットデータを格納し、あるドットを中心にする十字の5点のドットが5つフレームメモリに分離されて並列に読み出しができるように構成されている。
【0163】
次に、表示処理装置6の構成につき図36のブロック図に従い説明する。
上述したように、フレームメモリ5は、0〜4の5つに分離されており、あるドットを中心にする十字の5点のドットがフレームメモリ5から並列に読み出される。フレームメモリ5から並列に読み出されたデータはフレームメモリデータ入力処理装置61に与えられる。
【0164】
この処理装置61は、フレームメモリ5から処理するドットとその上下左右のドットを並列に読み出し、処理するドットの方向コードにより、上下左右のどれか1つのドットを選び、その処理するドットと選ばれた1つの周辺ドットのLUTアドレスをルックアップテーブル64により送り、ルックアップテーブル64より色情報を読み出し、色演算処理装置63へ転送する。また、フレームメモリ5に色値を持つものはフレームメモリデータ入力処理装置61から色演算装置63にそのデータが送られる。
【0165】
なお、フレームメモリ5のアドレスはフレームメモリアドレス生成装置62にて生成され、その生成されたアドレスに従いフレームメモリ5はアクセスされる。
【0166】
色演算装置63は、フレームメモリデータ入力処理装置1からドットの面積を、ルックアップテーブル64より色情報をそれぞれ受け取り、面積によるそのドットの色を求めCRT7へ送る。
【0167】
この色演算処理装置63の具体的構成を図37に示す。表示処理装置6の色演算処理装置6の具体的構成例を図37に従い説明する。
【0168】
LUTメモリ64より与えられた周辺ドットの色情報Rがレジスタ211に格納され、フレームメモリデータ入力処理装置より与えられる処理ドットの面積がエリアレジスタ212に格納される。レジスタ212に格納された面積は減算器218の一方の入力に与えられ、この減算器218の他方の入力には、この実施の形態では8×8で行っているため64が与えられ、周辺ドットの面積が求められる。また、LUTメモリ64より与えられた処理ドットの色情報Rがレジスタ213に格納される。
【0169】
レジスタ211に格納された周辺ドットの色情報Rが乗算器219の一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのR値が算出され、この値が加算器221に与えられる。
【0170】
また、レジスタ213に格納された処理ドットの色情報Rが乗算器219の一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのR値が算出され、この値が加算器221に与えられる。この加算器221にて、周辺ドットのR値と処理ドットのR値を加算し、処理ドットのR値を求め、レジスタ222に格納する。
【0171】
LUTメモリ64より与えられた周辺ドットの色情報Gがレジスタ214に格納され、LUTメモリ64より与えられた処理ドットの色情報Gがレジスタ215に格納される。
【0172】
レジスタ214に格納された周辺ドットの色情報Gが乗算器223の一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのG値が算出され、この値が加算器225に与えられる。
【0173】
また、レジスタ215に格納された処理ドットの色情報Gが乗算器224の一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのG値が算出され、この値が加算器225に与えられる。この加算器225にて、周辺ドットのG値と処理ドットのG値を加算し、処理ドットのG値を求め、レジスタ226に格納する。
【0174】
LUTメモリ64より与えられた周辺ドットの色情報Bがレジスタ216に格納され、LUTメモリ64より与えられた処理ドットの色情報Bがレジスタ217に格納される。
【0175】
レジスタ216に格納された周辺ドットの色情報Bが乗算器227の一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのB値が算出され、この値が加算器229に与えられる。
【0176】
また、レジスタ217に格納された処理ドットの色情報Bが乗算器228の一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのB値が算出され、この値が加算器229に与えられる。この加算器229にて、周辺ドットのB値と処理ドットのB値を加算し、処理ドットのB値を求め、レジスタ230に格納する。
【0177】
図39及び図40に各辺の方向とアンチエイリアシングを行う方向が示されている。
【0178】
図41ないし図48に、ポリゴン辺の各方向(方向ベクトル)に対する描画例を示す、各図はそれぞれ(a)〜(e)の5種類の角度によりアンチエイリアシングするドット面積を求めている。これら図において、黒く塗りつぶしたものが面積を求めたドットである。
【0179】
なお、図41が方向ベクトルが0の場合、図42が方向ベクトルが1の場合、図43が方向ベクトルが2の場合、図44が方向ベクトルが3の場合、図45が方向ベクトルが4の場合、図46が方向ベクトルが5の場合、図47が方向ベクトルが6の場合、図48が方向ベクトルが0の場合を示す。
【0180】
図49、図50にZバッファ法による陰面処理を行った例を示す。この実施の形態においては、4角形のポリゴンが5角形のポリゴンより前に位置しているので、5角形のポリゴンが陰面処理されている。
【0181】
図51、図52に処理例を示す。図51は方向ベクトルが0、量子化した角度が1の場合、図52は方向ベクトルが1、量子化した角度が2の場合である。
【0182】
図51の例において、矢印Bで示すドットに対しては、Bの部分のドット面積が0.84であるので、Bカラー=(Bカラー×0.84)+(Aカラー×0.16)による演算により、このドットの色が算出される。
【0183】
図52の例において、矢印Bで示すドットに対しては、Bの部分のドット面積が0.75であるので、Bカラー=(Bカラー×0.75)+(Aカラー×0.25)による演算により、このドットの色が算出される。
【0184】
図53、図54にポリゴンを描画した例である。図53は、この発明により、アンチエイリアシングの対象となるドット面積を求めた例を示す。この図53において、黒で塗りつぶした箇所がドット面積を求めた箇所である。図53に示すように、ポイントAのようにとがったものに対しては、この実施の形態では、ミスを起こす場合があるが、全体から見ると影響はほとんどない。図54は実際のディスプレイの例を示し、クロスのハッチングが施されている箇所が、回りの色を考慮してアンチエイリアシングされたドットである。
【0185】
図55は、この発明の参考例が適用される画像生成装置の構成を示すブロック図である。
【0186】
この画像生成装置は第1の実施の形態と同様に、メモリ1a、座標変換処理装置2a、描画処理装置3a、マッピングパターンメモリ10、フレームメモリ5a、表示処理装置6a及び画像を表示するCRT7を備える。
【0187】
メモリ1aには、オブジェクトを構成するポリゴンの端点、ポリゴンに対応してテクスチャ画像を格納するマッピングパターンメモリの端点情報データや法線ベクトル等が格納されている。このメモリ1aからオブジェクトに対する各データが座標変換処理装置2aに与えられる。
【0188】
座標変換処理装置2aは、CPUまたはDSPで構成され、オブジェクトに対する回転、拡大、縮小等を行い、ワールド座標に配置後、視野変換を行いスクリーン投影を行う。この座標変換装置2aよりスクリーン投影されたポリゴン端点のX、Y値、マッピングパターンメモリ10のX、Y座標(MX、MY)値等の各データが描画処理装置3aへ与えられる。
【0189】
この描画処理装置3aは、座標変換処理装置2aによりスクリーン座標に変換されたポリゴン辺の各ドット中の面積、各ドットの色値(R、G、B)を算出し、フレームメモリ5aにそのデータを書き込む。この描画処理装置3aは、スクリーンの1ドットに対して、N×Nドット、この実施の形態では2×2ドットを対応させている。そして、ポリゴン面に対しては、2×2ドットのマッピングパターンメモリ10の色値(R、G、B)をすべて読み出し、平均化して新たなスクリーンの1ドットに対応する色値(R、G、B)を求め、その値をフレームメモリ5aに書き込む。また、ポリゴン辺に対しては、2×2ドット中のスクリーンの1ドットに何個のドットが入っているかカウントし、そのカウント値によりドット面積を簡略的に求め、フレームメモリ5aに書き込む。
【0190】
フレームメモリ5aは、前述した第1の実施の形態と同じく図2に示すように、各ドットの色値(R、G、B)とドットの面積とアンチエイリアシングを行う方向コードが格納される。このアンチエイリアシングを行う方向を示す方向コードは各辺の方向ベクトルにより決定される。
【0191】
表示処理装置6aは、フレームメモリ5をアクセスし、フレームメモリ5に格納された色値とドットの面積と方向コードからそのドットの色を演算して求め、その演算で得られた色をCRT7に送り、CRT7にて画像が表示される。
【0192】
次に、この実施の形態における描画処理装置3aの構成例を図56に従い説明する。
【0193】
視野変換されたポリゴン端点の視野座標上のX、Y値、マッピングパターンメモリのX、Y座標(MX、MY)値等の各データが座標変換処理装置2aより描画処理装置3a内部の外部インターフェース(IF)31aに与えられる。すなわち、このインターフェース31aにより座標変換処理装置2aと描画処理装置3aとのデータの受け渡しが行われる。インターフェース31aを介して与えられた座標変換処理装置2aからの各データがポリゴン摘出装置32aに与えられる。
【0194】
このポリゴン摘出装置32aは、ポリゴン辺の情報を後の処理で処理し易いように、それぞれのデータを辺テーブル33aに格納させる処理を行う。このポリゴン摘出装置32aは、例えば図57に示すように構成される。
【0195】
図57は、ポリゴン摘出装置32aの具体的構成例を示すブロック図である。
【0196】
外部インタフェース31aからポリゴン端点のX、Y値、マッピングパターンメモリのX、Y座標(MX、MY)値、色値、属性などがポリゴン摘出装置32aに与えられる。外部インタフェース31から与えられた各ポリゴン端点で構成される各ポリゴン辺のX始点(Xs)はレジスタ101aに、ポリゴン辺のX終点(Xe)はレジスタ102aに、ポリゴン辺のY始点(Ys)はレジスタ103aに、ポリゴン辺のY終点(Ye)はレジスタ104aにそれぞれ格納される。また、属性は属性レジスタ105aに格納される。
【0197】
さらに、マッピングパターンメモリのX始点(MXs)はレジスタ301に、マッピングパターンメモリのX終点(MXe)はレジスタ302に、マッピングパターンメモリポリゴンのY始点(MYs)はレジスタ303に、マッピングパターンメモリのY終点(MYe)はレジスタ304にそれぞれ格納される。
【0198】
そして、コントローラ116aは、前述の第1の実施の形態と同じく格納されたポリゴン辺の端点のアドレスに基づいて、ポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトルを算出すると共に、そのベクトル方向に応じて、図6に示すようにポリゴン辺が右辺に属するか左辺に属するか決定する。
【0199】
この実施の形態では、前述の第1の実施の形態と同じくポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。そのため、例えば、図7の(a)、(b)、(c)に示すようなポリゴンの種類に対して、図8の(a)、(b)、(c)に示すポリゴン辺の対を求める。従って、上向きのポリゴン辺を逆転させる必要がある。また、図38に示すようなポリゴンに対しては、2つの辺の対になるように、ポリゴン辺を分割し、それぞれ下向きのポリゴン辺対になるように構成している。
【0200】
このために、レジスタ103a、104aに格納されたYs、Yeは比較器106aに与えられ、この比較器106aにて、Ys、Yeを比較する。そして、この比較結果は、マルチプレクサ107a、108a、305、306に与えられる。この比較結果により、ポリゴン辺を逆転させるか否か決定し、マルチプレクサ107a、108a、305、306が制御される。すなわち、図7に示すようなポリゴンの種類に対しては、図8のように、ポリゴン辺対を求めるべく上向きのポリゴン辺を逆転させ、マルチプレクサ107a、108a、305、306は始点、終点を入れ替えて辺テーブル33aにデータを送り、ポリゴン辺を逆転させない場合には、マルチプレクサ107a、108a、305、306外部インタフェース33aから与えられたデータをそのまま辺テーブル33aに送る。
【0201】
辺テーブル33aは、図58に示すようにフォーマットされ、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される。
【0202】
前述の第1の実施の形態と同じくこの参考例においても上向きのベクトルは始点、終点の入れ替えにより下向きのベクトルに変更されるが、図9に示すように、そのポリゴン辺の属する右辺、左辺の関係は変更しない。
【0203】
また、マルチプレクサ108aから出力され、辺テーブル33aの左辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ109aに、辺テーブル33aの右辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ110aに、辺テーブル33aの左辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ111aに、辺テーブル33aの右辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ112aにそれぞれ与えられる。
【0204】
また、レジスタ109a、レジスタ110aに格納された左辺、右辺の0アドレスに格納されたY始点がマルチプレクサ113aを介して比較器115aに与えられる。また、レジスタ111a、レジスタ112aに格納された左辺、右辺の1アドレスに格納されたY始点がマルチプレクサ114aを介して比較器115aに与えられる。比較器115aでは、辺テーブル33aの左辺または右辺の0、1アドレスに格納された辺情報はどちらが上の辺でどちらが下の辺であるかの判定を行いその判定結果をパラメータ演算装置34aに与える。これら各回路は、コントローラ116aにより制御される。
【0205】
そして、辺テーブル33a及びポリゴン摘出装置32a並びに後述する水平テーブル37aからのデータがパラメータ演算装置34aに与えられる。
【0206】
このパラメータ演算装置34aは、ポリゴンの左辺、右辺のX、Y値の傾きやマッピングパターンメモリのMX、MY値の傾きなどを演算する。このパラメータ演算装置34aは、例えば、図59のように構成される。
【0207】
図59は、このパラメータ演算装置34aの具体的構成例を示すブロック図である。
【0208】
図59に示すように、パラメータ演算装置34aは、デジタル微分解析(DDA)に用いるパラメータとしてのポリゴン辺の傾き等を求めるもので、辺テーブル33aより傾きを求めるために除算される始点、終点がレジスタ121a、122aに格納され、このレジスタ121a、122aに格納された始点、終点が減算器123aに与えられ、この減算器123aで除算される始点、終点の長さが求められ、その長さがレジスタ124aに与えられる。
【0209】
また、辺テーブル33aより除算される始点、終点がレジスタ125a、126aに格納され、このレジスタ125a、126aに格納された始点、終点が減算器127aに与えられ、この減算器127aで除算される始点、終点の長さが求められ、その長さがレジスタ128aに与えられる。すなわち、これら、減算器123a、127aにて、ポリゴン辺の右辺、左辺のそれぞれに対して、DY=Ye−Ys、DX=Xe−Xs、DMX=MXe−MYs、DMY=MYe−MYSの演算が行われ、この演算結果(長さ)がレジスタ124a、128aに格納される。
【0210】
レジスタ124a、128aに格納されたそれぞれの長さは、除算器129aに与えられ、この除算器129aで除算することにより各辺の傾きを求め、求めた傾きをレジスタ130aに格納し、DDA処理装置35aに送る。
【0211】
また、レジスタ132aには左辺のY終点が格納され、レジスタ133aには右辺のY終点が格納され、これらレジスタ132a、133aに格納されたY終点は、比較器134a及びマルチプレクサ135aに与えられる。そして、比較器134aにて左辺、右辺のY終点を比較して、その比較結果によりマルチプレクサ135aを制御することにより、左辺、右辺の小さい方のY終点の値を求めDDA処理装置35aへ送る。
【0212】
一方、レジスタ131aには、辺テーブル33aの各種パラメータが格納され、格納されたパラメータはDDA処理装置35aに与えられる。
【0213】
パラメータ演算装置34aで算出された各パラメータはDDA処理装置35a及びアンチエイリアシング処理装置36aにそれぞれ与えられる。
【0214】
DDA処理装置35は、ポリゴンの左辺、右辺のスクリーンアドレス値(X、Y)及びマッピングパターンメモリアドレス値(MX、MY)値をディジタル微分解析(DDA)により求め、Y値が1つ変わるごとに左辺、右辺のX値、MX値、MY値をDDAする。この時、DDAは左辺のDDAを行った後、水平テーブル37aに求めた左辺のX値、MX値、MY値、方向ベクトルを書き込む。そして、右辺のDDAを行い水平テーブル37aに求めた右辺のX値、Y値、MX値、MY値、方向ベクトル及び属性を書き込む。このDDA処理装置35aは、例えば、図60ないし図63のように構成される。
【0215】
上記水平テーブル37aは図66に示すようにフォーマットされており、左辺、右辺に水平に交叉するスキャンラインのX値、マッピングパターンメモリアドレス値MX、MY、方向ベクトル、属性などを一時的に格納し、左辺、右辺ともデータが揃った時に、パラメータ演算装置34aに送り、水平方向のDDAを行うために必要なパラメータを演算させる。
【0216】
図60ないし図63は、上記DDA処理装置35aの具体的構成例を示すブロック図である。図60は、X軸を基軸とするDDA処理装置、図61は、Y軸を基軸とするDDA処理装置、図62は、マッピングパターンメモリアドレスのMXを求めるDDA処理装置、図63は、マッピングパターンメモリアドレスのMYを求めるDDA処理装置である。
【0217】
次に、DDA処理装置35aの具体的構成例につき図60ないし図63に従い説明する。
【0218】
図60に示すように、X軸を基軸とするDDAを行う場合には、パラメータ演算装置34aから与えられた右辺のXの傾きがレジスタ310に、左辺のXの傾きがレジスタ311にそれぞれ格納される。レジスタ310、311からX値の傾きがマルチプレクサ313を介して加算器315に与えられる。
【0219】
マルチプレクサ312にはパラメータ演算処理装置34aから送られてきた値または加算器315の加算結果が与えられ、この値をXレジスタ314に与える。すなわち、このXレジスタ314にはDDAを行うX値が格納される。加算器315はXレジスタ314の値とマルチプレクサ315により選択された値を加算する。加算器315によりDDAされ、Xレジスタ314に格納されたX値はアンチエイリアシング処理装置36aに送られる。
【0220】
図61に示すように、Y軸を基軸とするDDAを行う場合には、1または−1を送るためマルチプレクサ320に1または−1が与えられる。このマルチプレクサ320から加算器323に1または−1が与えられる。
【0221】
マルチプレクサ321には、パラメータ演算処理装置34aから送られてきたY値または加算器323の加算結果が与えられ、この値をYレジスタ322に与える。すなわち、このYレジスタ322にはDDAを行うY値が格納される。加算器323はYレジスタ322の値とマルチプレクサ320により選択された値を加算する。加算器323によりDDAされ、Yレジスタ322に格納されたY値はアンチエイリアシング処理装置36aに送られる。
【0222】
また、レジスタ324にはパラメータ演算処理装置34aより与えられた辺ペアのY値の終値(Ye)が格納され、この値とYレジスタ322に格納された値とが比較器325で比較される。すなわち、辺ペアのY値とY値の終値(Ye)を比較し、この結果をDDAの処理を制御するコントローラに与え、処理の終了が判断される。
【0223】
図62に示すように、マッピングパターンメモリアドレスのMXのDDAを行う場合には、パラメータ演算処理装置34aから与えられる右辺のMX値の傾きがレジスタ330に、左辺のMX値の傾きがレジスタ331に与えられる。このレジスタ330、331からマルチプレクサ333を介して加算器335にMX値の傾き(DDMXRまたはDDMXL)が与えられる。
【0224】
マルチプレクサ332にはパラメータ演算処理装置34aから送られてきた値または加算器335の加算結果が与えられ、この値をMXレジスタ334に与える。すなわち、このMXレジスタ334にはDDAを行うMX値が格納される。加算器335はMXレジスタ334の値とマルチプレクサ333により選択された値を加算する。加算器335によりDDAされ、MXレジスタ334に格納されたMX値はアンチエイリアシング処理装置36aに送られる。
【0225】
図63に示すように、マッピングパターンメモリアドレスのMYのDDAを行う場合には、パラメータ演算処理装置34aから与えられる右辺のMY値の傾きがレジスタ340に、左辺のMY値の傾きがレジスタ341に与えられる。このレジスタ340、341からマルチプレクサ343を介して加算器345にMY値の傾き(DDMYRまたはDDMYL)が与えられる。
【0226】
マルチプレクサ342にはパラメータ演算処理装置34aから送られてきた値または加算器345の加算結果が与えられ、この値をMYレジスタ344に与える。すなわち、このMYレジスタ344にはDDAを行うMY値が格納される。加算器345はMXレジスタ344の値とマルチプレクサ343により選択された値を加算する。加算器345によりDDAされ、MYレジスタ344に格納されたMY値はアンチエイリアシング処理装置36aに送られる。
【0227】
パラメータ演算装置34a及びDDA処理装置35aで算出したそれぞれのデータはアンチエイリアシング処理装置36aに与えられる。このアンチエイリアシング処理装置36aは、DDA処理装置35aからマッピングパターンメモリアドレス(MX、MY)を受け取り、このマッピングパターンメモリアドレスにより、マッピングパターンメモリ10をアクセスし、2×2ドットのマッピングデータをアクセスする。そして、パラメータ演算装置34aから奇数ラインと偶数ラインのスキャンライン上のポリゴンの左辺X値(XL)、右辺X値(XR)を受け取り、DDA処理装置35aから現在処理中のX値に基づきスクリーンに対応するドットの中に何ドット入っているかをカウントした値により、入力されたマッピングデータを平均化し、マッピングのアンチエイリアシングを行う。さらに、ポリゴンのエッジ判定と右辺/左辺の方向を割り振るために現在のラインの最も左の左辺X値(BXL)と最も右の右辺X値(BXR)と、前のラインの最も左の左辺X値と最も右の右辺X値とをパラメータ演算装置34aから受け取る。
【0228】
そして、XL<X<BXLの場合は、左辺のポリゴンエッジであることが分かり、アンチエイリアシングの方向を左辺の方向に選択する。また、XR<X<BXRの場合は、右辺のポリゴンエッジであることが分かり、アンチエイリアシングの方向を右辺の方向に選択する。このようにして得られたRGBとドット面積並びにアンチエイリアシングの方向をフレームメモリ制御装置38aに転送する。このアンチエイリアシング処理装置36aは、例えば図64のように構成される。
【0229】
図64は、アンチエイリアシング処理装置36aの具体的構成例を示すブロック図である。
【0230】
DDA処理装置35aから与えられたマッピングパターンメモリアドレス(MX、MY)はマッピングパターンメモリアドレス生成装置350に格納される。このマッピングパターンメモリ生成装置350は、DDA処理装置35aからマッピングパターンメモリ10のアドレス(MX、MY)を受け取り、マッピングパターンメモリ10をアクセスするアドレスを生成する。この実施の形態では、奇数、偶数ラインのアドレスを格納するため、レジスタ351に、奇数、偶数ラインのXアドレス(MXL1、MXL2)が格納され、レジスタ352に、奇数、偶数ラインのYアドレス(MYL1、MYL2)が格納される。そして、レジスタ351、352に格納されたマッピングパターンメモリ10のX、Yアドレスにより、マッピングパターンメモリ10よりRGB情報を読み出し、そのRGB情報がRGB合成装置360に与えられる。
【0231】
RGB合成装置360は、マッピングパターンメモリ10より読み出されたRGB情報を受け取り、スクリーンの1ドット内に含まれるドットを加算し、ドット面積生成装置370より受け取った何ドット含まれるかを示すドット面積値によりその平均値を求め、アンチエイリアシング処理を行うものである。
【0232】
すなわち、マッピングパターンメモリ10からのRGB情報は一旦レジスタ361に格納され、このRGB情報がマルチプレクサ363を介して加算器365に与えられる。マルチプレクサ363は、ドットが存在していないときに、マッピングパターンメモリ10からのデータの代わりに”0”値を加算器365に送る。
【0233】
加算器365からのデータは、マルチプレクサ364を介してレジスタ362に与えられる。マルチプレクサ364は初期化時に”0”値をレジスタ362に送り、その他の時には加算器365からのデータをレジスタ362に送る。レジスタ362はマッピングパターンメモリ10より読み出したRGBを加算していく値を格納するものである。このレジスタ362に格納されたデータが除算器366に与えられる。この除算器366はドット面積生成装置370から送られるドット数をレジスタ362から送られるデータから除算することにより平均化を行い、その結果がレジスタ367に転送する。レジスタ367に格納された平均化されたRGBデータがフレームメモリ制御装置38aに送られる。
【0234】
ドット面積生成装置370は、スクリーンの1ドットに対応するドットの数をカウントし、面積を算出するものである。すなわち、パラメータ演算装置34aから送られてくる奇数/偶数ラインのポリゴン辺の左辺のX値(XL1、XL2)がレジスタ371に格納され、パラメータ演算装置34aから送られてくる奇数/偶数ラインのポリゴン辺の右辺のX値(XR1、XR2)がレジスタ373に格納される。また、DDA処理装置370から与えられる現在処理中のX値がレジスタ372に与えられる。レジスタ371、372、373に格納されたデータが比較器374に与えられる。比較器374は、奇数/偶数ラインのX値を比較、すなわち、XL<X<XRの比較を行い、現在処理中のX値がポリゴンに含まれるか否か判断し、その結果をカウンタ375に与える。
【0235】
カウンタ375は、スクリーンの1ドット中に何個のドットがあるかをカウントし、そのカウント結果をRGB合成装置360及びフレームメモリ制御装置38aに送る。
【0236】
アンチエイリアシング方向生成装置380は、スキャンライン上のドットがポリゴン辺であるか否か判断するとともに、ポリゴン辺であれば右辺か左辺かを判断し、図65に示すように、その方向を決定する。
【0237】
パラメータ演算装置34aから左辺の方向ベクトルがレジスタ381に、右辺の方向ベクトルがレジスタ382に格納される。レジスタ381、382に格納された方向データがマルチプレクサ387に与えられる。
【0238】
一方、パラメータ演算装置34aから現在のラインの最も左のX値と最も右のX値がレジスタ383に、前のラインの最も左のX値と最も右のX値がレジスタ385にそれぞれ格納される。また、DDA処理装置35aから現在処理中のX値がレジスタ384に格納される。レジスタ383、384、385に格納されたデータは比較器386に与えられ、この比較器386にて、XL<X<BXLまたはXR<X<BXRの比較が行われ、XL<X<BXLの場合は、左辺のポリゴンエッジであるので、マルチプレクサ387から左辺の方向を出力するように制御する。また、XR<X<BXRの場合は、右辺のポリゴンエッジであるので、マルチプレクサ387から右辺の方向を出力するように制御する。これら各回路はコントローラ390により制御される。
【0239】
そして、DDA処理装置35a及びアンチエイリアシング処理装置36aからのデータがフレームメモリ制御装置38aに与えられる。このフレームメモリ制御装置38aは、アンチエイリアシング処理装置36aから各ドットの面積と、RGB情報と辺の方向をDDA処理装置35aからX値、Y値、Z値を受け取り、フレームメモリアドレスを求め、フレームメモリ5aへRGB情報と辺の方向とドットの面積と方向コードを書き込む。このフレームメモリ制御装置38aは、例えば図67に示すように構成される。
【0240】
図67は、フレームメモリ制御装置38aの具体的構成例を示すブロック図である。
【0241】
各部から受け取ったデータはレジスタ191aに格納される。このレジスタ191aは、パラメータ演算処理装置34aからのデータはフラグ(FLAG)領域へ、DDA処理装置35aからの色データがカラー領域へ、アンチエイリアシング処理回路36からのデータはエリア領域へそれぞれ格納する。
【0242】
DDA処理装置35aから受け取ったY値がフレームメモリアドレス生成回路192aに与えられ、この生成回路192aにてフレームメモリのアドレスを生成し、フレームメモリ5aに与え、レジスタ191aに格納されたデータがフレームメモリ5aに転送される。
【0243】
上述した描画処理装置3aの各装置はコントローラ39aで制御され、このコントローラ39aは図68ないし図76に示すフローチャートに従い描画処理装置3の全体を制御する。
【0244】
次に、上記フローチャートに従い描画処理装置3aの動作につき説明する。
【0245】
動作を開始すると、座標変換処理装置2aからポリゴン辺の始点(Xs、Ys)、終点(Xe、Ye)を読み出す(ステップS41)。そして、ポリゴン辺の始点、終点のアドレスに基づいて、前述の第1の実施の形態と同じくポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトル(DIR)を算出すると共に、そのベクトル方向に応じて、ポリゴン辺が右辺に属するか左辺に属するか決定する。(ステップS42)。
【0246】
この実施の形態においても前述の第1の実施の形態と同じく、ポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。このため、方向ベクトル(DIR)が4より大きいか否か判断され(ステップS43)、方向ベクトル(DIR)が4より小さい場合は、図5に示すように、方向ベクトルは上向きであるので、上向きのポリゴン辺を逆転させるため方向ベクトル(DIR)を反転させ、そして左辺、右辺の属性を示すフラグを1にセットする(ステップS44)。
【0247】
方向ベクトル(DIR)が4以上の場合は、図5に示すように、方向ベクトルは下向きであるので、方向ベクトル(DIR)はそのままの状態で、左辺、右辺の属性を示すフラグを0にセットする(ステップS45)。
【0248】
辺テーブル33aに、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される(ステップS46)、すべてのポリゴン辺を読み出すまで前述の動作を繰り返し(ステップS47)、すべてのポリゴン辺の右辺、左辺のそれぞれのデータが辺テーブル33aに格納されると、辺テーブル33aがソートされる(ステップS48)。そして、辺テーブル33aからYアドレスの終点(Ye)を求める(ステップS49)。
【0249】
続いて、辺テーブル33aの0アドレスの左辺から、X始点、Y始点、マッピングパターンメモリアドレスのX始点(MXs)、マッピングパターンメモリアドレスのY始点(MYs)とX終点、Y終点、マッピングパターンメモリアドレスのX終点(MXe)、マッピングパターンメモリアドレスのY終点(MYe)並びにこの方向ベクトルを読み出す(ステップS50)。
【0250】
さらに、辺テーブル33aの0アドレスの右辺から、X始点、Y始点、マッピングパターンメモリアドレスのX始点(MXs)、マッピングパターンメモリアドレスのY始点(MYs)とX終点、Y終点、マッピングパターンメモリアドレスのX終点(MXe)、マッピングパターンメモリアドレスのY終点(MYe)並びにこの方向ベクトルを読み出す(ステップS51)。
【0251】
そして、パラメータ演算のサブルーチン処理(VPARA)(ステップS52)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55)の演算が行われる。
【0252】
これらサブルーチン処理につき説明する。
【0253】
まず、パラメータ演算のサブルーチン処理(VPARA)について、図70に従い説明する。左辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXLとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXLとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYLとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS200)。
【0254】
なお、この参考例においても第1の実施の形態と同じく、図39に示すように、(a)の方向ベクトルに基づき、(b)のように、アンチエイリアシングを行う方向が決められている。その方向ベクトルと方向コード(FLAG)との関係が図40に示されている。この図40に示すテーブルに基づき方向ベクトル(DIR)が方向コード(LFLAG)に変換される。
【0255】
続いて、右辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXRとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXRとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYRとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS201)。
【0256】
その後、左辺のX始点をXL、MX始点をMXLとし、また、Y始点をYL、MY始点をMYLとすると共に、X終点をXLE、MX終点をMXLE、Y終点をYLE、MY終点をMYLEとする(ステップS202)。
【0257】
さらに、右辺のX始点をXR、MX始点をMXRとし、また、Y始点をYR、MY始点をMYRとすると共に、X終点をXRE、MX終点をMXRE、Y終点をYRE、MY終点をMYREとして(ステップS202)、このサブルーチンが終了する。
【0258】
パラメータ演算のサブルーチン処理(VPARA)(ステップS52)が終了すると、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53)が行われる。
【0259】
左辺のDDA演算のサブルーチン処理(LVDDA)について、図71を参照して説明する。
【0260】
VPARAサブルーチンで設定したXL、YL、MXL、MYLをそれぞれX、Y、MX、MYとする(ステップS210)。
【0261】
続いて、X、MX及びMYをDDAで算出する。すなわち、X=X+DDXL、MX=MX+DDMXL、MY=MY+DDMYLの演算を行った後(ステップS211)、Y=Y+DYの演算を行う(ステップS212)。
【0262】
そして、水平テーブル37aの奇数ラインの左辺の領域に求めたX、MX、MYを書き込む(ステップS213)。
【0263】
次に、偶数ラインの各データを求めるため、X、MX及びMYをDDAでさらに算出する。すなわち、X=X+DDXL、MX=MX+DDMXL、MY=MY+DDMYLの演算を行った後(ステップS214)、Y=Y+DYの演算を行う(ステップS215)。
【0264】
そして、水平テーブル37aの偶数ラインの左辺の領域に求めたX、MX、MYを書き込む(ステップS216)。
【0265】
続いて、XLをXに、YLをYに、MXLをMXに、MYLをMYに設定し(ステップS217)、このサブルーチンを終了する。
【0266】
左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53)が終了すると、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54)が行われる。
【0267】
右辺のDDA演算のサブルーチン処理(RVDDA)について、図72を参照して説明する。
【0268】
VPARAサブルーチンで設定したXR、YR、MXR、MYRをそれぞれX、Y、MX、MYとする(ステップS220)。
【0269】
続いて、X、MX及びMYをDDAで算出する。すなわち、X=X+DDXR、MX=MX+DDMXR、MY=MY+DDMYRの演算を行った後(ステップS221)、Y=Y+DYの演算を行う(ステップS222)。
【0270】
そして、水平テーブル37aの奇数ラインの右辺の領域に求めたX、MX、MYを書き込む(ステップS223)。
【0271】
次に、偶数ラインの各データを求めるため、X、MX及びMYをDDAでさらに算出する。すなわち、X=X+DDXR、MX=MX+DDMXR、MY=MY+DDMYRの演算を行った後(ステップS224)、Y=Y+DYの演算を行う(ステップS225)。
【0272】
そして、水平テーブル37aの偶数ラインの右辺の領域に求めたX、MX、MYを書き込む(ステップS226)。
【0273】
続いて、XRをXに、YRをYに、MXRをMXに、MYRをMYに設定し(ステップS227)、このサブルーチンを終了する。
【0274】
右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54)が終了すると、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55)が行われる。
【0275】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)について、図73及び図74を参照して説明する。
【0276】
水平テーブルの奇数領域から読み出した左辺のX、Y、MX、MY値をそれぞれXL1、YL1、MXL1、MYL1とし、さらに右辺のX、MX、MY値をそれぞれXR1、MXR1、MYR1とするとともに、左辺の方向ベクトルをDIRL1、右辺の方向ベクトルをDIRR1とする(ステップS230)。
【0277】
続いて、水平テーブルの偶数領域から読み出した左辺のX、Y、MX、MY値をそれぞれXL2、YL2、MXL2、MYL2とし、さらに右辺のX、MX、MY値をそれぞれXR2、MXR2、MYR2とする(ステップS231)。
【0278】
そして、XL1とXL2とを比較し、X値の小さい方をXLとし(ステップS232)、XR1とXR2とを比較し、X値の大きい方をXRとする(ステップS233)。
【0279】
次に、水平テーブルの奇数領域のX軸を基軸としてマッピングパターンメモリのXアドレスの傾きを求め、この傾きをDDMX1とすると共に、マッピングパターンメモリのYアドレスの傾きを求め、この傾きをDDMY1とする(ステップS234)。さらに、水平テーブルの偶数領域のX軸を基軸としてマッピングパターンメモリのXアドレスの傾きを求め、この傾きをDDMX2とすると共に、マッピングパターンメモリのYアドレスの傾きを求め、この傾きをDDMY2とする(ステップS235)。そして、カウンタ値(DCNT)を”0”に初期化した後(ステップS236)、XをXLとする(ステップS237)。
【0280】
続いて、現在処理中のX値がXL1とXR1との間にあるか否か、すなわち、XL1<X<XR1の判断が行われ(ステップS238)、X値がXL1<X<XR1であれば、MXL1=MXL1+DDMX1、MYL1=MYL1+DDMY1の演算が行われ(ステップS239)、カウンタ値(DCNT)を1にセットする(ステップS240)。
【0281】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL1、MYL1が示すRGBデータを読み出し、R1、G1、B1とした後(ステップS241)、現在処理中のX値がXL2とXR2との間にあるか否か、すなわち、XL2<X<XR2の判断が行われる(ステップS242)。
【0282】
一方、ステップS238で、現在処理中のX値がXL1とXR1との間にないと判断されると、直ちにステップS242でXL2<X<XR2の判断が行われる。
【0283】
ステップS242にて、X値がXL2<X<XR2と判断されると、MXL2=MXL2+DDMX2、MYL2=MYL2+DDMY2の演算が行われ(ステップS243)、カウンタ値(DCNT)を1つインクリメントする(ステップS244)。
【0284】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL2、MYL2が示すRGBデータを読み出し、R2、G2、B2とした後(ステップS245)、X=X+1の演算が行われる(ステップS246)。
【0285】
一方、ステップS242で、現在処理中のX値がXL2とXR2との間にないと判断されると、直ちにステップS246でX=X+1の演算が行われる。
【0286】
続いて、再び現在処理中のX値がXL1とXR1との間にあるか否か、すなわち、XL1<X<XR1の判断が行われ(ステップS247)、X値がXL1<X<XR1であれば、MXL1=MXL1+DDMX1、MYL1=MYL1+DDMY1の演算が行われ(ステップS248)、カウンタ値(DCNT)を1つインクリメントする(ステップS249)。
【0287】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL1、MYL1が示すRGBデータを読み出し、R3、G3、B3とした後(ステップS250)、現在処理中のX値がXL2とXR2との間にあるか否か、すなわち、XL2<X<XR2の判断が行われる(ステップS251)。
【0288】
一方、ステップS247で、現在処理中のX値がXL1とXR1との間にないと判断されると、直ちにステップS251でXL2<X<XR2の判断が行われる。
【0289】
ステップS251にて、X値がXL2<X<XR2と判断されると、MXL2=MXL2+DDMX2、MYL2=MYL2+DDMY2の演算が行われ(ステップS252)、カウンタ値(DCNT)を1つインクリメントする(ステップS253)。
【0290】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL2、MYL2が示すRGBデータを読み出し、R4、G4、B4とした後(ステップS254)、X=X+1の演算が行われる(ステップS255)。
【0291】
一方、ステップS251で、現在処理中のX値がXL2とXR2との間にないと判断されると、直ちにステップS255でX=X+1の演算が行われる。
【0292】
続いて、現在処理中のX値が、XLとBXLの間にあるか否か、すなわち、XL<X<BXL或いは、BXL<X<XLが判断され、XがXLとBXLの間にある場合には、ステップS257で、DIR=DIRLとした後、辺フラグをonにし(ステップS260)、ステップS261に進む。
【0293】
また、現在処理中のX値が、XLとBXLの間にないときは、ステップS258で、現在処理中のX値が、XRとBXRの間にあるか否か、すなわち、XR<X<BXR或いは、BXR<X<XRが判断され、XがXRとBXRの間にある場合には、ステップS259で、DIR=DIRRとした後、辺フラグをonにし(ステップS260)、ステップS261に進む。
【0294】
ステップS258において、現在処理中のX値が、XRとBXRの間にない場合には、直ちにステップS261に進み、ステップS261にて、R=(R1+R2+R3+R4)/DCNT、G=(G1+G2+G3+G4)/DCNT、B=(B1+B2+B3+B4)/DCNTの演算が行った後、その演算により求めたR、G、Bとカウンタ値(DCNT)並びに辺フラグをフレームメモリに書き込む(ステップS262)。
【0295】
続いて、BXL=XL.BXR=XRとした後(ステップS263)、X<XRが判断され、現在処理中のX値がXRより小さい場合には、ステップS238に戻り、前述の動作を繰り返す。X値がXR以上になるとこのサブルーチンが終了する。
【0296】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55)が終了すると、YがYeより小さいか否か判断され(ステップS56)、YがYeより小さい場合には、ステップS53に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。
【0297】
そして、辺テーブルの1アドレスの右辺にデータがあるか否か判断され(ステップS57)、データがある場合には、辺テーブルの1アドレスの右辺から、X始点、Y始点、マッピングパターンメモリアドレスのX始点、マッピングパターンメモリアドレスのY始点とX終点、Y終点、マッピングパターンメモリアドレスのX終点、マッピングパターンメモリアドレスのY終点並びにこの方向ベクトルを読み出す(ステップS58)。
【0298】
次に、第2のパラメータ演算のサブルーチン処理(VPARA1)(ステップS59)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS60)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS61)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS62)の演算が行われる。これらサブルーチン処理のうちステップS60から62の処理は前述の図71ないし図74に示した処理と同じ処理が行われるので、ここでは第2のパラメータ演算のサブルーチン処理(VPARA1)につき図75に従い説明する。
【0299】
右辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXRとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXRとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYRとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS270)。
【0300】
その後、右辺のX始点をXR、MX始点をMXRとし、また、Y始点をYR、MY始点をMYRとすると共に、X終点をXRE、MX終点をMXRE、Y終点をYRE、MY終点をMYREとして(ステップS271)、このサブルーチンが終了する。
【0301】
この第2のパラメータ演算のサブルーチンが終了すると(ステップS59)、続いて、LVDDAサブルーチン(ステップS60)、RVDDAサブルーチン(ステップS61)、HDDAサブルーチン(ステップS62)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS63)、YがYeより小さい場合には、ステップS60に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0302】
一方、ステップS57において、辺テーブルの1アドレスの右辺にデータがないと判断されると、続いて、辺テーブルの1アドレスの左辺にデータがあるか否か判断され(ステップS64)。データがない場合にはこの描画処理動作は終了する。
【0303】
また、データがある場合には、辺テーブルの1アドレスの左辺から、X始点、Y始点、マッピングパターンメモリアドレスのX始点、マッピングパターンメモリのY始点とX終点、Y終点、マッピングパターンメモリアドレスのX終点、マッピングパターンメモリのY終点並びにこの方向ベクトルを読み出す(ステップS65)。
【0304】
そして、第3のパラメータ演算のサブルーチン処理(VPARA2)(ステップS66)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS67)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS68)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS69)の演算が行われる。これらサブルーチン処理のうちステップS67から69の処理は前述の図71ないし図74に示した処理と同じ処理が行われるので、ここでは第3のパラメータ演算のサブルーチン処理(VPARA2)につき図76に従い説明する。
【0305】
左辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXLとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXLとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYLとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS272)。
【0306】
その後、左辺のX始点をXL、MX始点をMXLとし、また、Y始点をYL、MY始点をMYLとすると共に、X終点をXRL、MX終点をMXRL、Y終点をYLE、MY終点をMYLEとして(ステップS273)、このサブルーチンが終了する。
【0307】
この第3のパラメータ演算のサブルーチンが終了すると(ステップS66)、続いて、LVDDAサブルーチン(ステップS67)、RVDDAサブルーチン(ステップS68)、HDDAサブルーチン(ステップS69)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS70)、YがYeより小さい場合には、ステップS67に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0308】
上記のように、描画処理装置3aにより処理されたデータはフレームメモリ5aに格納される。
【0309】
次に、表示処理装置6aの構成につき図77のブロック図に従い説明する。
【0310】
表示処理装置6aは、CRT7の表示クロックに同期し、CRT7の表示するドットをフレームメモリ5aより読み出し、そのデータがポリゴンエッジであれば、その方向の1ドット隣のデータもフレームメモリ5aから読み出し、ドット面積により加重平均を行いそのドットの色を合成し、CRT7に表示するものである。すなわち、フレームメモリ5aより処理するドットとして読み出されたデータはフレームメモリデータ入力処理装置61aに与えられる。このフレームメモリデータ入力処理装置61aは読み込んだフレームメモリ5のデータに基づきポリゴン辺であるか否かを判断し、ポリゴン辺であればその方向の1ドット隣のデータを読み出し、ドット面積と処理するドットのRGB値と隣接するRGB値を色演算装置63aにそのデータが送られる。
【0311】
なお、フレームメモリ5aのアドレスはフレームメモリデータ入力処理装置61aのアドレス生成部にて生成され、その生成されたアドレスに従いフレームメモリ5aはアクセスされる。
【0312】
色演算装置63aは、フレームメモリデータ入力処理装置61aからのドットの面積と処理するドットRGB値と隣接するドットのRGB値を受け取り、加重平均を行いそのドットの色を新たに求めてCRT7へ送る。
【0313】
この色演算処理装置63aの具体的構成を図78に示す。表示処理装置6aの色演算処理装置63aの具体的構成例を図78に従い説明する。
【0314】
フレームメモリデータ入力処理装置61aより与えられた周辺ドットの色情報Rがレジスタ211aに格納され、フレームメモリデータ入力処理装置より与えられる処理ドットの面積がエリアレジスタ212aに格納される。レジスタ212aに格納された面積は減算器218aの一方の入力に与えられ、この減算器218aの他方の入力には、この実施の形態では8×8で行っているため64が与えられ、周辺ドットの面積が求められる。また、フレームメモリデータ入力処理装置61aより与えられた処理ドットの色情報Rがレジスタ213aに格納される。
【0315】
レジスタ211aに格納された周辺ドットの色情報Rが乗算器219aの一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのR値が算出され、この値が加算器221aに与えられる。
【0316】
また、レジスタ213aに格納された処理ドットの色情報Rが乗算器219aの一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのR値が算出され、この値が加算器221aに与えられる。この加算器221aにて、周辺ドットのR値と処理ドットのR値を加算し、処理ドットのR値を求め、レジスタ222aに格納する。
【0317】
フレームメモリデータ入力処理装置61aより与えられた周辺ドットの色情報Gがレジスタ214aに格納され、フレームメモリデータ入力処理装置61aより与えられた処理ドットの色情報Gがレジスタ215aに格納される。
【0318】
レジスタ214aに格納された周辺ドットの色情報Gが乗算器223aの一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのG値が算出され、この値が加算器225aに与えられる。
【0319】
また、レジスタ215aに格納された処理ドットの色情報Gが乗算器224aの一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのG値が算出され、この値が加算器225aに与えられる。この加算器225aにて、周辺ドットのG値と処理ドットのG値を加算し、処理ドットのG値を求め、レジスタ226aに格納する。
【0320】
フレームメモリデータ入力処理装置61aより与えられた周辺ドットの色情報Bがレジスタ216aに格納され、フレームメモリデータ入力処理装置61aより与えられた処理ドットの色情報Bがレジスタ217aに格納される。
【0321】
レジスタ216aに格納された周辺ドットの色情報Bが乗算器227aの一方の入力に、他方の入力には周辺ドットの面積が与えられ、周辺ドットのB値が算出され、この値が加算器229aに与えられる。
【0322】
また、レジスタ217aに格納された処理ドットの色情報Bが乗算器228aの一方の入力に、他方の入力には処理ドットの面積が与えられ、処理ドットのB値が算出され、この値が加算器229aに与えられる。この加算器229aにて、周辺ドットのB値と処理ドットのB値を加算し、処理ドットのB値を求め、レジスタ230aに格納する。
【0323】
図79、図80に処理例を示す。図79は方向ベクトルが0、角度が1の場合、図80は方向ベクトルが1、角度が2の場合である。
【0324】
図79の例において、矢印Bで示すドットに対しては、Bの部分のドット面積が0.75であるので、Bカラー=(Bカラー×0.75)+(Aカラー×0.25)による演算により、このドットの色が算出される。
【0325】
図80の例において、矢印Bで示すドットに対しては、Bの部分のドット面積が0.25であるので、Bカラー=(Bカラー×0.25)+(Aカラー×0.75)による演算により、このドットの色が算出される。
【0326】
図81は、ポリゴンを表示した例を示す模式図である。
【0327】
上述した参考例においては、陰面処理については説明していないが、陰面処理としては、Zソート法、Zバッファ法を用いることができる。例えば、Zバッファ法を用いる場合には、第1の実施の形態と同様にして、Zバッファメモリを設け、描画処理装置3aにてZ値を求め、フレームメモリ5aには、陰面処理されたデータのみ書き込むように構成すればよい。
【0328】
図82は、この発明の参考例2が適用される画像生成装置の構成を示すブロック図である。
【0329】
この画像生成装置は参考例と同様に、メモリ1b、座標変換処理装置2b、描画処理装置3b、マッピングパターンメモリ10、フレームメモリ5b、表示処理装置6b及び画像を表示するCRT7を備える。
【0330】
メモリ1bには、オブジェクトを構成するポリゴンの端点、輝度値、ポリゴンに対応してテクスチャ画像を格納するマッピングパターンメモリの端点情報データや法線ベクトル等が格納されている。さらに、この実施の形態においては、予め指定された最も明るい色情報(Re、Ge、Be)と最も暗い色情報(Rs、Gs、Bs)がメモリ1bに格納されている。このメモリ1bからオブジェクトに対する各データが座標変換処理装置2bに与えられる。
【0331】
座標変換処理装置2bは、CPUまたはDSPで構成され、オブジェクトに対する回転、拡大、縮小等を行い、ワールド座標に配置後、視野変換を行いスクリーン投影を行う。この座標変換装置2bよりスクリーン投影されたポリゴン端点のX、Y値、輝度値(I)、マッピングパターンメモリ10のX、Y座標(MX、MY)値等の各データが描画処理装置3bへ与えられる。
【0332】
この描画処理装置3bは、座標変換処理装置2bによりスクリーン座標に変換されたポリゴン辺の各ドット中の面積、各ドットの色値(R、G、B)及び輝度値(I)を算出し、フレームメモリ5bにそのデータを書き込む。この描画処理装置3bは、スクリーンの1ドットに対して、N×Nドット、この実施の形態では2×2ドットを対応させている。そして、ポリゴン面に対しては、2×2ドットのマッピングパターンメモリ10bの色値(R、G、B)をすべて読み出し、平均化して新たなスクリーンの1ドットに対応する色値(R、G、B)及び輝度値(I)を求め、その値をフレームメモリ5bに書き込む。また、ポリゴン辺に対しては、2×2ドット中のスクリーンの1ドットに何個のドットが入っているかカウントし、そのカウント値によりドット面積を簡略的に求め、フレームメモリ5bに書き込む。
【0333】
フレームメモリ5bは、前述した参考例と同じく図2に示すように、各ドットの色値(R、G、B)、輝度値(I)とドットの面積とアンチエイリアシングを行う方向コードが格納される。このアンチエイリアシングを行う方向を示す方向コードは各辺の方向ベクトルにより決定される。
【0334】
表示処理装置6bは、フレームメモリ5bをアクセスし、フレームメモリ5bに格納された色値とドットの面積と方向コードからそのドットの色を演算して求め、その演算で得られた色をCRT7に送り、CRT7にて画像が表示される。
【0335】
次に、この実施の形態における描画処理装置3bの構成例を図83に従い説明する。
【0336】
視野変換されたポリゴン端点の視野座標上のX、Y値、マッピングパターンメモリのX、Y座標(MX、MY)値、輝度値(I)等の各データが座標変換処理装置2bより描画処理装置3b内部の外部インターフェース(IF)31bに与えられる。すなわち、このインターフェース31bにより座標変換処理装置2bと描画処理装置3bとのデータの受け渡しが行われる。インターフェース31bを介して与えられた座標変換処理装置2bからの各データがポリゴン摘出装置32bに与えられる。
【0337】
このポリゴン摘出装置32bは、ポリゴン辺の情報を後の処理で処理し易いように、それぞれのデータを辺テーブル33bに格納させる処理を行う。このポリゴン摘出装置32bは、例えば図84に示すように構成される。
【0338】
図84は、ポリゴン摘出装置32bの具体的構成例を示すブロック図である。
【0339】
外部インタフェース31bからポリゴン端点のX、Y値、マッピングパターンメモリのX、Y座標(MX、MY)値、輝度値(I)、属性などがポリゴン摘出装置32bに与えられる。外部インタフェース31から与えられた各ポリゴン端点で構成される各ポリゴン辺のX始点(Xs)はレジスタ101bに、ポリゴン辺のX終点(Xe)はレジスタ102bに、ポリゴン辺のY始点(Ys)はレジスタ103bに、ポリゴン辺のY終点(Ye)はレジスタ104bにそれぞれ格納される。さらに、ポリゴン辺の始点と終点の輝度値(I)がそれぞれレジスタ117b、116bに格納される。すなわち、ポリゴン辺の始点の輝度値I始点(Is)がレジスタ117bに、終点の輝度値I終点(Ie)がレジスタ116bに格納される。また、属性は属性レジスタ105bに格納される。
【0340】
さらに、マッピングパターンメモリのX始点(MXs)はレジスタ301bに、マッピングパターンメモリのX終点(MXe)はレジスタ302bに、マッピングパターンメモリポリゴンのY始点(MYs)はレジスタ303bに、マッピングパターンメモリのY終点(MYe)はレジスタ304bにそれぞれ格納される。
【0341】
そして、コントローラ116bは、前述の第1及び参考例と同じく格納されたポリゴン辺の端点のアドレスに基づいて、ポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトルを算出すると共に、そのベクトル方向に応じて、図6に示すようにポリゴン辺が右辺に属するか左辺に属するか決定する。
【0342】
この参考例2では、前述の第1及び参考例と同じくポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。そのため、例えば、図7の(a)、(b)、(c)に示すようなポリゴンの種類に対して、図8の(a)、(b)、(c)に示すポリゴン辺の対を求める。従って、上向きのポリゴン辺を逆転させる必要がある。また、図38に示すようなポリゴンに対しては、2つの辺の対になるように、ポリゴン辺を分割し、それぞれ下向きのポリゴン辺対になるように構成している。
【0343】
このために、レジスタ103b、104bに格納されたYs、Yeは比較器106bに与えられ、この比較器106bにて、Ys、Yeを比較する。そして、この比較結果は、マルチプレクサ107b、108b、118b、305b、306bに与えられる。この比較結果により、ポリゴン辺を逆転させるか否か決定し、マルチプレクサ107b、108b、118b、305b、306bが制御される。すなわち、図7に示すようなポリゴンの種類に対しては、図8のように、ポリゴン辺対を求めるべく上向きのポリゴン辺を逆転させ、マルチプレクサ107b、108b、118b、305b、306bは始点、終点を入れ替えて辺テーブル33bにデータを送り、ポリゴン辺を逆転させない場合には、マルチプレクサ107b、108b、118b、305b、306bは、外部インタフェース33bから与えられたデータをそのまま辺テーブル33bに送る。
【0344】
辺テーブル33bは、図85に示すようにフォーマットされ、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される。
【0345】
前述の第1及び参考例と同じくこの参考例2においても上向きのベクトルは始点、終点の入れ替えにより下向きのベクトルに変更されるが、図9に示すように、そのポリゴン辺の属する右辺、左辺の関係は変更しない。
【0346】
また、マルチプレクサ108bから出力され、辺テーブル33bの左辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ109bに、辺テーブル33bの右辺の0アドレスに格納される辺情報のY始点(Ys)がレジスタ110bに、辺テーブル33bの左辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ111bに、辺テーブル33bの右辺の1アドレスに格納される辺情報のY始点(Ys)がレジスタ112bにそれぞれ与えられる。
【0347】
また、レジスタ109b、レジスタ110bに格納された左辺、右辺の0アドレスに格納されたY始点がマルチプレクサ113bを介して比較器115bに与えられる。また、レジスタ111b、レジスタ112bに格納された左辺、右辺の1アドレスに格納されたY始点がマルチプレクサ114bを介して比較器115bに与えられる。比較器115bでは、辺テーブル33bの左辺または右辺の0、1アドレスに格納された辺情報はどちらが上の辺でどちらが下の辺であるかの判定を行いその判定結果をパラメータ演算装置34bに与える。これら各回路は、コントローラ116bにより制御される。
【0348】
そして、辺テーブル33b及びポリゴン摘出装置32b並びに後述する水平テーブル37bからのデータがパラメータ演算装置34bに与えられる。
【0349】
このパラメータ演算装置34bは、ポリゴンの左辺、右辺のX、Y値、I値の傾きやマッピングパターンメモリのMX、MY値の傾きなどを演算する。このパラメータ演算装置34bは、例えば、図86のように構成される。
【0350】
図86は、このパラメータ演算装置34bの具体的構成例を示すブロック図である。
【0351】
図86に示すように、パラメータ演算装置34bは、デジタル微分解析(DDA)に用いるパラメータとしてのポリゴン辺の傾き等を求めるもので、辺テーブル33bより傾きを求めるために除算される始点、終点がレジスタ121b、122bに格納され、このレジスタ121b、122bに格納された始点、終点が減算器123bに与えられ、この減算器123bで除算される始点、終点の長さが求められ、その長さがレジスタ124bに与えられる。
【0352】
また、辺テーブル33bより除算される始点、終点がレジスタ125b、126bに格納され、このレジスタ125b、126bに格納された始点、終点が減算器127bに与えられ、この減算器127bで除算される始点、終点の長さが求められ、その長さがレジスタ128bに与えられる。すなわち、これら、減算器123b、127bにて、ポリゴン辺の右辺、左辺のそれぞれに対して、DY=Ye−Ys、DX=Xe−Xs、DI=Ie−Is、DMX=MXe−MYs、DMY=MYe−MYSの演算が行われ、この演算結果(長さ)がレジスタ124b、128bに格納される。
【0353】
レジスタ124b、128bに格納されたそれぞれの長さは、除算器129bに与えられ、この除算器129bで除算することにより各辺の傾きを求め、求めた傾きをレジスタ130bに格納し、DDA処理装置35bに送る。
【0354】
また、レジスタ132bには左辺のY終点が格納され、レジスタ133bには右辺のY終点が格納され、これらレジスタ132b、133bに格納されたY終点は、比較器134b及びマルチプレクサ135bに与えられる。そして、比較器134bにて左辺、右辺のY終点を比較して、その比較結果によりマルチプレクサ135bを制御することにより、左辺、右辺の小さい方のY終点の値を求めDDA処理装置35bへ送る。
【0355】
一方、レジスタ131bには、辺テーブル33bの各種パラメータが格納され、格納されたパラメータはDDA処理装置35bに与えられる。
【0356】
パラメータ演算装置34bで算出された各パラメータはDDA処理装置35b及びアンチエイリアシング処理装置36bにそれぞれ与えられる。
【0357】
DDA処理装置35は、ポリゴンの左辺、右辺のスクリーンアドレス値(X、Y)、輝度値(I)及びマッピングパターンメモリアドレス値(MX、MY)をディジタル微分解析(DDA)により求め、Y値が1つ変わるごとに左辺、右辺のX値、I値、MX値、MY値をDDAする。この時、DDAは左辺のDDAを行った後、水平テーブル37bに求めた左辺のX値、I値、MX値、MY値を書き込む。そして、右辺のDDAを行い水平テーブル37bに求めた右辺のX値、Y値、MX値、MY値及び属性を書き込む。このDDA処理装置35bは、例えば、図87ないし図91のように構成される。
【0358】
上記水平テーブル37bは図94に示すようにフォーマットされており、左辺、右辺に水平に交叉するスキャンラインのX値、マッピングパターンメモリアドレス値MX、MY、I値、方向ベクトルなどを一時的に格納し、左辺、右辺ともデータが揃った時に、パラメータ演算装置34bに送り、水平方向のDDAを行うために必要なパラメータを演算させる。
【0359】
図87ないし図91は、上記DDA処理装置35bの具体的構成例を示すブロック図である。図87は、X軸を基軸とするDDA処理装置、図88は、Y軸を基軸とするDDA処理装置、図89は、マッピングパターンメモリアドレスのMXを求めるDDA処理装置、図90は、マッピングパターンメモリアドレスのMYを求めるDDA処理装置、図91は、輝度値Iを求めるDDA処理装置である。
【0360】
次に、DDA処理装置35bの具体的構成例につき図87ないし図91に従い説明する。
【0361】
図87に示すように、X軸を基軸とするDDAを行う場合には、パラメータ演算装置34bから与えられた右辺のXの傾きがレジスタ310bに、左辺のXの傾きがレジスタ311bにそれぞれ格納される。レジスタ310b、311bからX値の傾きがマルチプレクサ313bを介して加算器315bに与えられる。
【0362】
マルチプレクサ312bにはパラメータ演算処理装置34bから送られてきた値または加算器315bの加算結果が与えられ、この値をXレジスタ314bに与える。すなわち、このXレジスタ314bにはDDAを行うX値が格納される。加算器315bはXレジスタ314bの値とマルチプレクサ315bにより選択された値を加算する。加算器315bによりDDAされ、Xレジスタ314bに格納されたX値はアンチエイリアシング処理装置36bに送られる。
【0363】
図88に示すように、Y軸を基軸とするDDAを行う場合には、1または−1を送るためマルチプレクサ320bに1または−1が与えられる。このマルチプレクサ320bから加算器323bに1または−1が与えられる。
【0364】
マルチプレクサ321bには、パラメータ演算処理装置34bから送られてきたY値または加算器323bの加算結果が与えられ、この値をYレジスタ322bに与える。すなわち、このYレジスタ322bにはDDAを行うY値が格納される。加算器323bはYレジスタ322bの値とマルチプレクサ320bにより選択された値を加算する。加算器323bによりDDAされ、Yレジスタ322bに格納されたY値はアンチエイリアシング処理装置36bに送られる。
【0365】
また、レジスタ324bにはパラメータ演算処理装置34bより与えられた辺ペアのY値の終値(Ye)が格納され、この値とYレジスタ322bに格納された値とが比較器325bで比較される。すなわち、辺ペアのY値とY値の終値(Ye)を比較し、この結果をDDAの処理を制御するコントローラに与え、処理の終了が判断される。
【0366】
図89に示すように、マッピングパターンメモリアドレスのMXのDDAを行う場合には、パラメータ演算処理装置34bから与えられる右辺のMX値の傾きがレジスタ330bに、左辺のMX値の傾きがレジスタ331bに与えられる。このレジスタ330b、331bからマルチプレクサ333bを介して加算器335bにMX値の傾き(DDMXRまたはDDMXL)が与えられる。
【0367】
マルチプレクサ332bにはパラメータ演算処理装置34bから送られてきた値または加算器335bの加算結果が与えられ、この値をMXレジスタ334bに与える。すなわち、このMXレジスタ334bにはDDAを行うMX値が格納される。加算器335bはMXレジスタ334bの値とマルチプレクサ333bにより選択された値を加算する。加算器335bによりDDAされ、MXレジスタ334bに格納されたMX値はアンチエイリアシング処理装置36bに送られる。
【0368】
図90に示すように、マッピングパターンメモリアドレスのMYのDDAを行う場合には、パラメータ演算処理装置34bから与えられる右辺のMY値の傾きがレジスタ340bに、左辺のMY値の傾きがレジスタ341bに与えられる。このレジスタ340b、341bからマルチプレクサ343bを介して加算器345bにMY値の傾き(DDMYRまたはDDMYL)が与えられる。
【0369】
マルチプレクサ342bにはパラメータ演算処理装置34bから送られてきた値または加算器345bの加算結果が与えられ、この値をMYレジスタ344bに与える。すなわち、このMYレジスタ344bにはDDAを行うMY値が格納される。加算器345bはMXレジスタ344bの値とマルチプレクサ343bにより選択された値を加算する。加算器345bによりDDAされ、MYレジスタ344bに格納されたMY値はアンチエイリアシング処理装置36bに送られる。
【0370】
図91に示すように、輝度値IのDDAを行う場合には、パラメータ演算処理装置34bから与えられる右辺の輝度I値の傾きがレジスタ400bに、左辺の輝度I値の傾きがレジスタ401bに与えられる。このレジスタ400b、401bからマルチプレクサ403bを介して加算器405bに輝度I値の傾き(DDIRまたはDDIL)が与えられる。
【0371】
マルチプレクサ402bにはパラメータ演算処理装置34bから送られてきた値または加算器405bの加算結果が与えられ、この値をI値レジスタ404bに与える。すなわち、このI値レジスタ404bにはDDAを行う輝度I値が格納される。加算器405bはI値レジスタ404bの値とマルチプレクサ403bにより選択された値を加算する。加算器405bによりDDAされ、I値レジスタ404bに格納された輝度I値はアンチエイリアシング処理装置36bに送られる。
【0372】
上述したパラメータ演算装置34b及びDDA処理装置35bで算出したそれぞれのデータはアンチエイリアシング処理装置36bに与えられる。このアンチエイリアシング処理装置36bは、DDA処理装置35bからマッピングパターンメモリアドレス(MX、MY)を受け取り、このマッピングパターンメモリアドレスにより、マッピングパターンメモリ10をアクセスし、2×2ドットのマッピングデータをアクセスする。そして、パラメータ演算装置34bから奇数ラインと偶数ラインのスキャンライン上のポリゴンの左辺X値(XL)、右辺X値(XR)を受け取り、DDA処理装置35bから現在処理中のX値に基づきスクリーンに対応するドットの中に何ドット入っているかをカウントした値により、入力されたマッピングデータを平均化し、マッピングのアンチエイリアシングを行う。さらに、ポリゴンのエッジ判定と右辺/左辺の方向を割り振るために現在のラインの最も左の左辺X値(BXL)と最も右の右辺X値(BXR)と、前のラインの最も左の左辺X値と最も右の右辺X値とをパラメータ演算装置34bから受け取る。
【0373】
そして、XL<X<BXLの場合は、左辺のポリゴンエッジであることが分かり、アンチエイリアシングの方向を左辺の方向に選択する。また、XR<X<BXRの場合は、右辺のポリゴンエッジであることが分かり、アンチエイリアシングの方向を右辺の方向に選択する。このようにして得られたRGBとドット面積並びにアンチエイリアシングの方向をフレームメモリ制御装置38bに転送する。このアンチエイリアシング処理装置36bは、例えば図92のように構成される。
【0374】
図92は、アンチエイリアシング処理装置36bの具体的構成例を示すブロック図である。
【0375】
DDA処理装置35bから与えられたマッピングパターンメモリアドレス(MX、MY)はマッピングパターンメモリアドレス生成装置350bに格納される。このマッピングパターンメモリ生成装置350bは、DDA処理装置35bからマッピングパターンメモリ10bのアドレス(MX、MY)を受け取り、マッピングパターンメモリ10bをアクセスするアドレスを生成する。この実施の形態では、奇数、偶数ラインのアドレスを格納するため、レジスタ351bに、奇数、偶数ラインのXアドレス(MXL1、MXL2)が格納され、レジスタ352bに、奇数、偶数ラインのYアドレス(MYL1、MYL2)が格納される。そして、レジスタ351b、352bに格納されたマッピングパターンメモリ10bのX、Yアドレスにより、マッピングパターンメモリ10bよりRGB情報を読み出し、そのRGB情報がRGB合成装置360bに与えられる。
【0376】
RGB合成装置360bは、マッピングパターンメモリ10bより読み出されたRGB情報を受け取り、スクリーンの1ドット内に含まれるドットを加算し、ドット面積生成装置370bより受け取った何ドット含まれるかを示すドット面積値によりその平均値を求め、アンチエイリアシング処理を行うものである。
【0377】
すなわち、マッピングパターンメモリ10bからのRGB情報は一旦レジスタ361bに格納され、このRGB情報がマルチプレクサ363bを介して加算器365bに与えられる。マルチプレクサ363bは、ドットが存在していないときに、マッピングパターンメモリ10bからのデータの代わりに”0”値を加算器365bに送る。
【0378】
加算器365bからのデータは、マルチプレクサ364bを介してレジスタ362bに与えられる。マルチプレクサ364bは初期化時に”0”値をレジスタ362bに送り、その他の時には加算器365bからのデータをレジスタ362bに送る。レジスタ362bはマッピングパターンメモリ10bより読み出したRGBを加算していく値を格納するものである。このレジスタ362bに格納されたデータが除算器366bに与えられる。この除算器366bはドット面積生成装置370bから送られるドット数をレジスタ362bから送られるデータから除算することにより平均化を行い、その結果がレジスタ367に転送する。レジスタ367に格納された平均化されたRGBデータがRGB補正装置40bに送られる。
【0379】
ドット面積生成装置370bは、スクリーンの1ドットに対応するドットの数をカウントし、面積を算出するものである。すなわち、パラメータ演算装置34bから送られてくる奇数/偶数ラインのポリゴン辺の左辺のX値(XL1、XL2)がレジスタ371bに格納され、パラメータ演算装置34bから送られてくる奇数/偶数ラインのポリゴン辺の右辺のX値(XR1、XR2)がレジスタ373bに格納される。また、DDA処理装置370bから与えられる現在処理中のX値がレジスタ372bに与えられる。レジスタ371b、372b、373bに格納されたデータが比較器374bに与えられる。比較器374bは、奇数/偶数ラインのX値を比較、すなわち、XL<X<XRの比較を行い、現在処理中のX値がポリゴンに含まれるか否か判断し、その結果をカウンタ375bに与える。
【0380】
カウンタ375bは、スクリーンの1ドット中に何個のドットがあるかをカウントし、そのカウント結果をRGB合成装置360b及びフレームメモリ制御装置38bに送る。
【0381】
アンチエイリアシング方向生成装置380bは、スキャンライン上のドットがポリゴン辺であるか否か判断するとともに、ポリゴン辺であれば右辺か左辺かを判断し、図93に示すように、その方向を決定する。
【0382】
パラメータ演算装置34bから左辺の方向ベクトルがレジスタ381bに、右辺の方向ベクトルがレジスタ382bに格納される。レジスタ381b、382bに格納された方向データがマルチプレクサ387bに与えられる。
【0383】
一方、パラメータ演算装置34bから現在のラインの最も左のX値と最も右のX値がレジスタ383bに、前のラインの最も左のX値と最も右のX値がレジスタ385bにそれぞれ格納される。また、DDA処理装置35bから現在処理中のX値がレジスタ384bに格納される。レジスタ383b、384b、385bに格納されたデータは比較器386bに与えられ、この比較器386bにて、XL<X<BXLまたはXR<X<BXRの比較が行われ、XL<X<BXLの場合は、左辺のポリゴンエッジであるので、マルチプレクサ387bから左辺の方向を出力するように制御する。また、XR<X<BXRの場合は、右辺のポリゴンエッジであるので、マルチプレクサ387bから右辺の方向を出力するように制御する。これら各回路はコントローラ390bにより制御される。
【0384】
アンチエイリアシング処理装置36bで算出されたポリゴン端点が持つ色情報データ(RM、GM、BM)がRGB補正装置40bに与えられる。このRGB補正装置40bは、最も明るい色情報(Re、Ge、Be)と最も暗い色情報(Rs、Gs、Bs)とDDA処理装置35bから与えられるポリゴンの端点情報の輝度値(I)に基づきRGBの補正演算を行う。
【0385】
すなわち、DDA処理装置35bからの輝度値Iは一旦レジスタ410bに格納され、この輝度値Iが減算器411bの一方に与えられる。この輝度値Iは0.0〜1.0の範囲の値を持つ。減算器411bの他方には輝度値の中間の値である0.5の値が与えられ、レジスタ410bから与えられた輝度値Iが0.5より大きいか否か判断する。この減算器411bの出力により、後述するマルチプレクサ414b、424b、425b、430b、431b、436b、437bの出力が制御される。減算器411bの出力は1ビットシフター412bに与えられる。また、レジスタ410bの格納された輝度値Iが1ビットシフター413bに与えられる。この1ビットシフター412b、413bにより(I*2)の演算、すなわち、輝度値Iが中間の輝度値0.5に対して何%の割合にあるかが演算される。
【0386】
1ビットシフター412b、413bの出力はマルチプレクサ363bを介して乗算器426bに与えられる。減算器411bの値がマイナス、即ち、輝度値Iが0.5より小さい場合には、マルチプレクサ363bは、1ビットシフター413bの出力が乗算器427b、433b、439bに与える。また、減算器411bの値がプラス、即ち、輝度値Iが0.5より大きい場合には、マルチプレクサ363bは、1ビットシフター412bの出力が乗算器427b、433b、439bに与える。
【0387】
アンチエイリアシング処理装置36bで算出されたポリゴン端点が持つ色情報データ(RM、GM、BM)がレジスタ415b、418b、421bに与えられ、レジスタ415bにはRMが、レジスタ418bにはGMが、レジスタ421bにはBMがそれぞれ格納される。そして、予め指定され、メモリ1bに格納されている最も明るい色情報(Re、Ge、Be)と最も暗い色情報(Rs、Gs、Bs)が外部インタフェース31bから416b、417b、419b、420b、422b、423bに与えられ、レジスタ416bにはReが、レジスタ417bにはRsが、レジスタ419bにはGeが、レジスタ420bにはGsが、レジスタ422bにはBeが、レジスタ423bにはBsがそれぞれ格納される。
【0388】
レジスタ415bに格納されたRMデータはマルチプレクサ424b、425bに与えられ、レジスタ416bに格納されたReデータはマルチプレクサ424b、レジスタ417bに格納されたRsデータはマルチプレクサ425bに与えられる。マルチプレクサ424b、425bは前述したように、減算器411bの出力により制御され、減算器411bの値がマイナス、即ち、輝度値Iが0.5より小さい場合には、マルチプレクサ424bは、レジスタ415bに格納されたRMデータを減算器426bに与え、マルチプレクサ425bはレジスタ417bに格納されたRsデータを減算器426b及び加算器428bに与える。
【0389】
また、減算器411bの値がプラス、即ち、輝度値Iが0.5より大きい場合には、マルチプレクサ415bは、レジスタ416bに格納されたReデータを減算器426bに与え、マルチプレクサ425bはレジスタ415bに格納されたRMデータを減算器426b及び加算器428bに与える。
【0390】
減算器426bでは、輝度値Iが0.5より小さい場合には、レジスタ415bに格納されたRMデータとレジスタ417bに格納されたRsデータを減算し、減算結果(RM−Rs)を乗算器427bに与える。乗算器427bはこの減算結果(RM−Rs)に1ビットシフター413bのデータI2(I*2)を乗算し、この乗算結果((RM−Rs)*I2)を加算器428bに与える。そして、加算器428bにて、(RM−Rs)*I2にRsを加算し、Rを輝度値により補正した結果(R)をレジスタ429bに格納する。
【0391】
また、減算器426bでは、輝度値Iが0.5より大きい場合には、レジスタ416bに格納されたReデータとレジスタ415bに格納されたRMデータを減算し、減算結果(Re−RM)を乗算器427bに与える。乗算器427bはこの減算結果(Re−RM)に1ビットシフター412bのデータI2((I−0.5)*2)を乗算し、この乗算結果((Re−RM)*I2)を加算器428bに与える。そして、加算器428bにて、(Re−RM)*I2にRMを加算し、Rを輝度値により補正した結果(R)をレジスタ429bに格納する。
【0392】
一方、レジスタ418bに格納されたGMデータはマルチプレクサ430b、431bに与えられ、レジスタ419bに格納されたGeデータはマルチプレクサ430b、レジスタ420bに格納されたGsデータはマルチプレクサ431bに与えられる。マルチプレクサ430b、431bは前述したように、減算器411bの出力により制御され、減算器411bの値がマイナス、即ち、輝度値Iが0.5より小さい場合には、マルチプレクサ430bは、レジスタ418bに格納されたGMデータを減算器432bに与え、マルチプレクサ431bはレジスタ420bに格納されたGsデータを減算器432b及び加算器434bに与える。
【0393】
また、減算器411bの値がプラス、即ち、輝度値Iが0.5より大きい場合には、マルチプレクサ430bは、レジスタ419bに格納されたGeデータを減算器432bに与え、マルチプレクサ431bはレジスタ418bに格納されたGMデータを減算器432b及び加算器434bに与える。
【0394】
減算器432bでは、輝度値Iが0.5より小さい場合には、レジスタ418bに格納されたGMデータとレジスタ420bに格納されたGsデータを減算し、減算結果(GM−Gs)を乗算器432bに与える。乗算器432bはこの減算結果(GM−Gs)に1ビットシフター413bのデータI2(I*2)を乗算し、この乗算結果((GM−Gs)*I2)を加算器434bに与える。そして、加算器434bにて、(GM−Gs)*I2にGsを加算し、Gを輝度値により補正した結果(G)をレジスタ435bに格納する。
【0395】
また、減算器432bでは、輝度値Iが0.5より大きい場合には、レジスタ419bに格納されたGeデータとレジスタ418bに格納されたGMデータを減算し、減算結果(Ge−GM)を乗算器432bに与える。乗算器432bはこの減算結果(Ge−GM)に1ビットシフター412bのデータI2((I−0.5)*2)を乗算し、この乗算結果((Ge−GM)*I2)を加算器434bに与える。そして、加算器434bにて、(Ge−GM)*I2にGMを加算し、Gを輝度値により補正した結果(G)をレジスタ435bに格納する。
【0396】
さらに、レジスタ421bに格納されたBMデータはマルチプレクサ436b、437bに与えられ、レジスタ422bに格納されたBeデータはマルチプレクサ436b、レジスタ423bに格納されたBsデータはマルチプレクサ437bに与えられる。マルチプレクサ436b、437bは前述したように、減算器411bの出力により制御され、減算器411bの値がマイナス、即ち、輝度値Iが0.5より小さい場合には、マルチプレクサ436bは、レジスタ421bに格納されたBMデータを減算器438bに与え、マルチプレクサ437bはレジスタ423bに格納されたBsデータを減算器438b及び加算器440bに与える。
【0397】
また、減算器411bの値がプラス、即ち、輝度値Iが0.5より大きい場合には、マルチプレクサ436bは、レジスタ422bに格納されたBeデータを減算器438bに与え、マルチプレクサ437bはレジスタ421bに格納されたBMデータを減算器438b及び加算器440bに与える。
【0398】
減算器438bでは、輝度値Iが0.5より小さい場合には、レジスタ421bに格納されたBMデータとレジスタ423bに格納されたBsデータを減算し、減算結果(BM−Bs)を乗算器439bに与える。乗算器439bはこの減算結果(BM−Bs)に1ビットシフター413bのデータI2(I*2)を乗算し、この乗算結果((BM−Bs)*I2)を加算器440bに与える。そして、加算器440bにて、(BM−Bs)*I2にBsを加算し、Bを輝度値により補正した結果(B)をレジスタ441bに格納する。
【0399】
また、減算器438bでは、輝度値Iが0.5より大きい場合には、レジスタ422bに格納されたBeデータとレジスタ421bに格納されたBMデータを減算し、減算結果(Be−BM)を乗算器439bに与える。乗算器439bはこの減算結果(Be−BM)に1ビットシフター412bのデータI2((I−0.5)*2)を乗算し、この乗算結果((Be−BM)*I2)を加算器440bに与える。そして、加算器440bにて、(Be−BM)*I2にBMを加算し、Bを輝度値により補正した結果(B)をレジスタ441bに格納する。
【0400】
そして、DDA処理装置35b、アンチエイリアシング処理装置36b及びRGB補正装置40bからのデータがフレームメモリ制御装置38bに与えられる。このフレームメモリ制御装置38bは、アンチエイリアシング処理装置36bから各ドットの面積と辺の方向を、DDA処理装置35bからX値、Y値、Z値を、RGB補正装置40bからRGB情報をそれぞれ受け取り、フレームメモリアドレスを求め、フレームメモリ5bへRGB情報と辺の方向とドットの面積と方向コードを書き込む。このフレームメモリ制御装置38bは、例えば図94に示すように構成される。
【0401】
図94は、フレームメモリ制御装置38bの具体的構成例を示すブロック図である。
【0402】
各部から受け取ったデータはレジスタ191bに格納される。このレジスタ191bは、パラメータ演算処理装置34からのデータはフラグ(FLAG)領域へ、RGB補正装置35bからのRGB情報データがRGB領域へ、アンチエイリアシング処理回路36bからのデータはエリア領域へそれぞれ格納する。
【0403】
DDA処理装置35bから受け取ったY値がフレームメモリアドレス生成回路192bに与えられ、この生成回路192bにてフレームメモリのアドレスを生成し、フレームメモリ5bに与え、レジスタ191bに格納されたデータがフレームメモリ5bに転送される。
【0404】
上述した描画処理装置3bの各装置はコントローラ39bで制御され、このコントローラ39bは図96ないし図105に示すフローチャートに従い描画処理装置3の全体を制御する。
【0405】
次に、上記フローチャートに従い描画処理装置3bの動作につき説明する。
【0406】
動作を開始すると、まず、予め指定され、メモリ1bに格納されている最も明るい色情報(Re、Ge、Be)と最も暗い色情報(Rs、Gs、Bs)を外部インタフェース31bから416b、417b、419b、420b、422b、423bに与え、レジスタ416bにはReが、レジスタ417bにはRsが、レジスタ419bにはGeを、レジスタ420bにはGsを、レジスタ422bにはBeを、レジスタ423bにはBsをそれぞれ格納する(ステップS40b)。そして、座標変換処理装置2bからポリゴン辺の始点(Xs、Ys)、終点(Xe、Ye)を読み出す(ステップS41b)。続いて、ポリゴン辺の始点、終点のアドレスに基づいて、前述の第1及び参考例と同じくポリゴンを構成する各辺のベクトルが図5に示すどの方向に属するかを判断し、その方向ベクトル(DIR)を算出すると共に、そのベクトル方向に応じて、ポリゴン辺が右辺に属するか左辺に属するか決定する。(ステップS42b)。
【0407】
この参考例においても前述の第1及び参考例と同じく、ポリゴン辺のベクトルは下方向に向くように変換して演算を行うようにしている。このため、方向ベクトル(DIR)が4より大きいか否か判断され(ステップS43b)、方向ベクトル(DIR)が4より小さい場合は、図5に示すように、方向ベクトルは上向きであるので、上向きのポリゴン辺を逆転させるため方向ベクトル(DIR)を反転させ、そして左辺、右辺の属性を示すフラグを1にセットする(ステップS44b)。
【0408】
方向ベクトル(DIR)が4以上の場合は、図5に示すように、方向ベクトルは下向きであるので、方向ベクトル(DIR)はそのままの状態で、左辺、右辺の属性を示すフラグを0にセットする(ステップS45b)。
【0409】
辺テーブル33bに、ポリゴン辺の対になる右辺、左辺のそれぞれのデータが格納される(ステップS46b)、すべてのポリゴン辺を読み出すまで前述の動作を繰り返し(ステップS47b)、すべてのポリゴン辺の右辺、左辺のそれぞれのデータが辺テーブル33bに格納されると、辺テーブル33bがソートされる(ステップS48b)。そして、辺テーブル33bからYアドレスの終点(Ye)を求める(ステップS49b)。
【0410】
続いて、辺テーブル33bの0アドレスの左辺から、X始点、Y始点、I始点、マッピングパターンメモリアドレスのX始点(MXs)、マッピングパターンメモリアドレスのY始点(MYs)とX終点、Y終点、I終点、マッピングパターンメモリアドレスのX終点(MXe)、マッピングパターンメモリアドレスのY終点(MYe)並びにこの方向ベクトルを読み出す(ステップS50b)。
【0411】
さらに、辺テーブル33bの0アドレスの右辺から、X始点、Y始点、I始点、マッピングパターンメモリアドレスのX始点(MXs)、マッピングパターンメモリアドレスのY始点(MYs)とX終点、Y終点、I終点、マッピングパターンメモリアドレスのX終点(MXe)、マッピングパターンメモリアドレスのY終点(MYe)並びにこの方向ベクトルを読み出す(ステップS51b)。
【0412】
そして、パラメータ演算のサブルーチン処理(VPARA)(ステップS52b)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53b)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54b)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55b)の演算が行われる。
【0413】
これらサブルーチン処理につき説明する。
【0414】
まず、パラメータ演算のサブルーチン処理(VPARA)について、図99に従い説明する。左辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXLとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXLとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYLとし、輝度値Iの傾きを求めこの傾きをDDILとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS200b)。
【0415】
なお、この参考例2においても第1及び参考例と同じく、図39に示すように、(a)の方向ベクトルに基づき、(b)のように、アンチエイリアシングを行う方向が決められている。その方向ベクトルと方向コード(FLAG)との関係が図40に示されている。この図40に示すテーブルに基づき方向ベクトル(DIR)が方向コード(LFLAG)に変換される。
【0416】
続いて、右辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXRとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXRとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYRとし、輝度値Iの傾きを求めこの傾きをDDIRとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS201b)。
【0417】
その後、左辺のX始点をXL、MX始点をMXLとし、また、Y始点をYL、MY始点をMYLとし、さらにI始点をILとすると共に、X終点をXLE、MX終点をMXLE、Y終点をYLE、MY終点をMYLE、I終点をILEとする(ステップS202b)。
【0418】
さらに、右辺のX始点をXR、MX始点をMXRとし、また、Y始点をYR、MY始点をMYRとし、さらにI始点をIRとすると共に、X終点をXRE、MX終点をMXRE、Y終点をYRE、MY終点をMYRE、I終点をIREとして(ステップS203b)、このサブルーチンが終了する。
【0419】
パラメータ演算のサブルーチン処理(VPARA)(ステップS52b)が終了すると、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53b)が行われる。
【0420】
左辺のDDA演算のサブルーチン処理(LVDDA)について、図100を参照して説明する。
【0421】
VPARAサブルーチンで設定したXL、YL、MXL、MYL、ILをそれぞれX、Y、MX、MYとする(ステップS210b)。
【0422】
続いて、X、MX、MY及びIをDDAで算出する。すなわち、X=X+DDXL、MX=MX+DDMXL、MY=MY+DDMYL、I=I+DDILの演算を行った後(ステップS211b)、Y=Y+DYの演算を行う(ステップS212b)。
【0423】
そして、水平テーブル37bの奇数ラインの左辺の領域に求めたX、MX、MY、Iを書き込む(ステップS213b)。
【0424】
次に、偶数ラインの各データを求めるため、X、MX、MY及びIをDDAでさらに算出する。すなわち、X=X+DDXL、MX=MX+DDMXL、MY=MY+DDMYL、I=I+DDILの演算を行った後(ステップS214b)、Y=Y+DYの演算を行う(ステップS215b)。
【0425】
そして、水平テーブル37bの偶数ラインの左辺の領域に求めたX、MX、MY、Iを書き込む(ステップS216b)。
【0426】
続いて、XLをXに、YLをYに、MXLをMXに、MYLをMYに、ILをIにそれぞれ設定し(ステップS217b)、このサブルーチンを終了する。
【0427】
左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS53b)が終了すると、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54b)が行われる。
【0428】
右辺のDDA演算のサブルーチン処理(RVDDA)について、図101を参照して説明する。
【0429】
VPARAサブルーチンで設定したXR、YR、MXR、MYR、IRをそれぞれX、Y、MX、MY、Iとする(ステップS220b)。
【0430】
続いて、X、MX、MY及びIをDDAで算出する。すなわち、X=X+DDXR、MX=MX+DDMXR、MY=MY+DDMYR、I=I+DDIRの演算を行った後(ステップS221b)、Y=Y+DYの演算を行う(ステップS222b)。
【0431】
そして、水平テーブル37bの奇数ラインの右辺の領域に求めたX、MX、MY、Iを書き込む(ステップS223b)。
【0432】
次に、偶数ラインの各データを求めるため、X、MX、MY及びIをDDAでさらに算出する。すなわち、X=X+DDXR、MX=MX+DDMXR、MY=MY+DDMYR、I=I+DDIRの演算を行った後(ステップS224b)、Y=Y+DYの演算を行う(ステップS225b)。
【0433】
そして、水平テーブル37bの偶数ラインの右辺の領域に求めたX、MX、MY、Iを書き込む(ステップS226b)。
【0434】
続いて、XRをXに、YRをYに、MXRをMXに、MYRをMYに、IRをIにそれぞれ設定し(ステップS227b)、このサブルーチンを終了する。
【0435】
右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS54b)が終了すると、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55b)が行われる。
【0436】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)について、図102ないし図104を参照して説明する。
【0437】
水平テーブルの奇数領域から読み出した左辺のX、Y、MX、MY、I値をそれぞれXL1、YL1、MXL1、MYL1、IL1とし、さらに右辺のX、MX、MY、I値をそれぞれXR1、MXR1、MYR1、IR1とするとともに、左辺の方向ベクトルをDIRL1、右辺の方向ベクトルをDIRR1とする(ステップS230b)。
【0438】
続いて、水平テーブルの偶数領域から読み出した左辺のX、Y、MX、MY、I値をそれぞれXL2、YL2、MXL2、MYL2、IL2とし、さらに右辺のX、MX、MY、I値をそれぞれXR2、MXR2、MYR2、IR2とする(ステップS231b)。
【0439】
そして、XL1とXL2とを比較し、X値の小さい方をXLとし(ステップS232b)、XR1とXR2とを比較し、X値の大きい方をXRとする(ステップS233b)。
【0440】
次に、水平テーブルの奇数領域のX軸を基軸としてマッピングパターンメモリのXアドレスの傾きを求め、この傾きをDDMX1とすると共に、マッピングパターンメモリのYアドレスの傾きを求め、この傾きをDDMY1とする、さらに輝度値Iの傾きを求め、この傾きをDDI1とする(ステップS234b)。そして、水平テーブルの偶数領域のX軸を基軸としてマッピングパターンメモリのXアドレスの傾きを求め、この傾きをDDMX2とすると共に、マッピングパターンメモリのYアドレスの傾きを求め、この傾きをDDMY2とする、さらに輝度値Iの傾きを求め、この傾きをDDI2とする(ステップS235b)。続いて、カウンタ値(DCNT)を”0”に初期化した後(ステップS236b)、XをXLとする(ステップS237b)。
【0441】
そして、現在処理中のX値がXL1とXR1との間にあるか否か、すなわち、XL1<X<XR1の判断が行われ(ステップS238b)、X値がXL1<X<XR1であれば、MXL1=MXL1+DDMX1、MYL1=MYL1+DDMY1、IL1=IL1+DDI1の演算が行われ(ステップS239b)、カウンタ値(DCNT)を1にセットする(ステップS240b)。
【0442】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL1、MYL1が示すRGBデータを読み出し、RM、GM、BMとした後(ステップS241b)、RGB補正装置40bにて後述するRGB補正演算のサブルーチンにより、補正演算したR1、G1、B1を求める(ステップS242b)。そして、現在処理中のX値がXL2とXR2との間にあるか否か、すなわち、XL2<X<XR2の判断が行われる(ステップS243b)。
【0443】
一方、ステップS238で、現在処理中のX値がXL1とXR1との間にないと判断されると、直ちにステップS243bでXL2<X<XR2の判断が行われる。
【0444】
ステップS243bにて、X値がXL2<X<XR2と判断されると、MXL2=MXL2+DDMX2、MYL2=MYL2+DDMY2、IL2=IL2+DDI2の演算が行われ(ステップS244b)、カウンタ値(DCNT)を1つインクリメントする(ステップS245b)。
【0445】
そして、マッピングパターンメモリ10bからマッピングパターンメモリアドレスMXL2、MYL2が示すRGBデータを読み出し、RM、GM、BMとした後(ステップS246b)、RGB補正装置40bにて後述するRGB補正演算のサブルーチンにより、補正演算したR2、G2、B2を求める(ステップS247b)。その後、X=X+1の演算が行われる(ステップS248b)。
【0446】
一方、ステップS243bで、現在処理中のX値がXL2とXR2との間にないと判断されると、直ちにステップS248bでX=X+1の演算が行われる。
【0447】
続いて、再び現在処理中のX値がXL1とXR1との間にあるか否か、すなわち、XL1<X<XR1の判断が行われ(ステップS249b)、X値がXL1<X<XR1であれば、MXL1=MXL1+DDMX1、MYL1=MYL1+DDMY1、IL1=IL1+DDI1の演算が行われ(ステップS250b)、カウンタ値(DCNT)を1つインクリメントする(ステップS251b)。
【0448】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL1、MYL1が示すRGBデータを読み出し、RM、GM、BMとした後(ステップS252b)、RGB補正装置40bにて後述するRGB補正演算のサブルーチンにより、補正演算したR3、G3、B3を求める(ステップS253b)。その後、現在処理中のX値がXL2とXR2との間にあるか否か、すなわち、XL2<X<XR2の判断が行われる(ステップS254b)。
【0449】
一方、ステップS249bで、現在処理中のX値がXL1とXR1との間にないと判断されると、直ちにステップS254bでXL2<X<XR2の判断が行われる。
【0450】
ステップS254bにて、X値がXL2<X<XR2と判断されると、MXL2=MXL2+DDMX2、MYL2=MYL2+DDMY2IL1=IL2+DDI2の演算が行われ(ステップS255b)、カウンタ値(DCNT)を1つインクリメントする(ステップS256b)。
【0451】
そして、マッピングパターンメモリ10からマッピングパターンメモリアドレスMXL2、MYL2が示すRGBデータを読み出し、RM、GM、BMとした後(ステップS257b)、RGB補正装置40bにて後述するRGB補正演算のサブルーチンにより、補正演算したR4、G4、B4を求める(ステップS258b)。この後、X=X+1の演算が行われる(ステップS259b)。
【0452】
一方、ステップS254bで、現在処理中のX値がXL2とXR2との間にないと判断されると、直ちにステップS259bでX=X+1の演算が行われる。
【0453】
続いて、ステップS260bで現在処理中のX値が、XLとBXLの間にあるか否か、すなわち、XL<X<BXL或いは、BXL<X<XLが判断され、XがXLとBXLの間にある場合には、ステップS261bで、DIR=DIRLとした後、辺フラグをonにし(ステップS264b)、ステップS265bに進む。
【0454】
また、現在処理中のX値が、XLとBXLの間にないときは、ステップS262bで、現在処理中のX値が、XRとBXRの間にあるか否か、すなわち、XR<X<BXR或いは、BXR<X<XRが判断され、XがXRとBXRの間にある場合には、ステップS263bで、DIR=DIRRとした後、辺フラグをonにし(ステップS264b)、ステップS265bに進む。
【0455】
ステップS262bにおいて、現在処理中のX値が、XRとBXRの間にない場合には、直ちにステップS265bに進み、ステップS265bにて、R=(R1+R2+R3+R4)/DCNT、G=(G1+G2+G3+G4)/DCNT、B=(B1+B2+B3+B4)/DCNTの演算が行った後、その演算により求めたR、G、Bとカウンタ値(DCNT)並びに辺フラグをフレームメモリに書き込む(ステップS266b)。
【0456】
続いて、BXL=XL.BXR=XRとした後(ステップS267b)、X<XRが判断され、現在処理中のX値がXRより小さい場合には、ステップS238bに戻り、前述の動作を繰り返す。X値がXR以上になるとこのサブルーチンが終了する。
【0457】
RGB補正装置40bにおけるRGB補正演算のサブルーチン処理について図105に従い説明する。
【0458】
このRGB補正装置40bには、最も明るい色情報(Re、Ge、Be)と最も暗い色情報(Rs、Gs、Bs)とDDA処理装置35bから与えられるポリゴンの端点情報の輝度値(I)に基づきRGBの補正演算を行う。
【0459】
まず、DDA処理装置35bから与えられる輝度値Iが0.5より大きい以下否か判断され(ステップS281b)、輝度値Iが0.5より小さい場合には、ステップS282bに進み、I2=I*2、即ち、輝度値Iを2倍にする演算を行い、ステップS283bに進む。また、輝度値Iが0.5より大きい場合には、ステップS284bに進み、I2=(I−0.5)*2、即ち、輝度値Iより0.5減算し、この減算した値を2倍にする演算を行いステップS285bに進む。
【0460】
輝度値Iが0.5より小さい場合には、ステップS283bにて、RMデータとRsデータを減算し、この(RM−Rs)にステップS282bで求めたI2(I*2)を乗算し、この((RM−Rs)*I2)にRsを加算し、Rを輝度値により補正したRが求められる。同じく、GMデータとGsデータを減算し、この(GM−Gs)にステップS282bで求めたI2(I*2)を乗算し、この((GM−Gs)*I2)にGsを加算し、Gを輝度値により補正したGが求められる。さらに、BMデータとBsデータを減算し、この(BM−Bs)にステップS282bで求めたI2(I*2)を乗算し、この((BM−Bs)*I2)にBsを加算し、Bを輝度値により補正したBが求められる。
【0461】
一方、輝度値Iが0.5より大きい場合は、ステップS285bにて、ReデータとRMデータを減算し、この(Re−RM)にステップS284bで求めたI2((I−0.5)*2)を乗算し、この((Re−RM)*I2)にRMを加算し、Rを輝度値により補正したRが求められる。同じく、GeデータとGMデータを減算し、この(GM−Gs)にステップS284bで求めたI2を乗算し、この((Ge−GM)*I2)にGMを加算し、Gを輝度値により補正したGが求められる。さらに、BeデータとBMデータを減算し、この(Be−BM)にステップS284bで求めたI2を乗算し、この((Be−BM)*I2)にBMを加算し、Bを輝度値により補正したBが求められる。このようにして、輝度値Iに応じてR、G、Bの補正演算を行いこのサブルーチン処理が終了する。
【0462】
スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS55b)が終了すると、YがYeより小さいか否か判断され(ステップS56b)、YがYeより小さい場合には、ステップS53に戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。
【0463】
そして、辺テーブルの1アドレスの右辺にデータがあるか否か判断され(ステップS57b)、データがある場合には、辺テーブルの1アドレスの右辺から、X始点、Y始点、I始点、マッピングパターンメモリアドレスのX始点、マッピングパターンメモリアドレスのY始点とX終点、Y終点、I終点、マッピングパターンメモリアドレスのX終点、マッピングパターンメモリアドレスのY終点並びにこの方向ベクトルを読み出す(ステップS58b)。
【0464】
次に、第2のパラメータ演算のサブルーチン処理(VPARA1)(ステップS59b)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS60b)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS61b)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS62b)の演算が行われる。これらサブルーチン処理のうちステップS60から62の処理は前述の図100ないし図105に示した処理と同じ処理が行われるので、ここでは第2のパラメータ演算のサブルーチン処理(VPARA1)につき図106に従い説明する。
【0465】
右辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXRとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXRとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYRとし、輝度値Iの傾きを求めこの傾きをDDILとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(RFLAG)に変換する(ステップS270b)。
【0466】
その後、右辺のX始点をXR、MX始点をMXRとし、また、Y始点をYR、MY始点をMYR、I始点をIRとすると共に、X終点をXRE、MX終点をMXRE、Y終点をYRE、MY終点をMYRE、I終点をIREとして(ステップS271b)、このサブルーチンが終了する。
【0467】
この第2のパラメータ演算のサブルーチンが終了すると(ステップS59b)、続いて、LVDDAサブルーチン(ステップS60b)、RVDDAサブルーチン(ステップS61b)、HDDAサブルーチン(ステップS62b)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS63b)、YがYeより小さい場合には、ステップS60bに戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0468】
一方、ステップS57bにおいて、辺テーブルの1アドレスの右辺にデータがないと判断されると、続いて、辺テーブルの1アドレスの左辺にデータがあるか否か判断され(ステップS64b)。データがない場合にはこの描画処理動作は終了する。
【0469】
また、データがある場合には、辺テーブルの1アドレスの左辺から、X始点、Y始点、I始点、マッピングパターンメモリアドレスのX始点、マッピングパターンメモリのY始点とX終点、Y終点、I終点、マッピングパターンメモリアドレスのX終点、マッピングパターンメモリのY終点並びにこの方向ベクトルを読み出す(ステップS65b)。
【0470】
そして、第3のパラメータ演算のサブルーチン処理(VPARA2)(ステップS66b)、左辺のDDA演算のサブルーチン処理(LVDDA)(ステップS67b)、右辺のDDA演算のサブルーチン処理(RVDDA)(ステップS68b)、スキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HDDA)(ステップS69b)の演算が行われる。これらサブルーチン処理のうちステップS67から69の処理は前述の図100ないし図105に示した処理と同じ処理が行われるので、ここでは第3のパラメータ演算のサブルーチン処理(VPARA2)につき図107に従い説明する。
【0471】
左辺に対してY軸を基軸とするXの傾きを求めこの傾きをDDXLとし、マッピングパターンメモリアドレスのXの傾きを求めこの傾きをDDMXLとし、マッピングパターンメモリアドレスのYの傾きを求めこの傾きをDDMYLとし、輝度値Iの傾きを求めこの傾きをDDILとするとともに、方向ベクトル(DIRL)をアンチエイリアシングを行う方向コード(LFLAG)に変換する(ステップS272b)。
【0472】
その後、左辺のX始点をXL、MX始点をMXLとし、また、Y始点をYL、MY始点をMYL、I始点をILとすると共に、X終点をXRL、MX終点をMXRL、Y終点をYRL、MY終点をMYRL、I終点をILEとして(ステップS273b)、このサブルーチンが終了する。
【0473】
この第3のパラメータ演算のサブルーチンが終了すると(ステップS66b)、続いて、LVDDAサブルーチン(ステップS67b)、RVDDAサブルーチン(ステップS68b)、HDDAサブルーチン(ステップS69b)の各DDA演算サブルーチン処理が行われる。そして、YがYeより小さいか否か判断され(ステップS70)、YがYeより小さい場合には、ステップS67bに戻り、LVDDA、RVDDA、HDDAのDDA演算サブルーチン処理が行われる。YがYe以上になるとこの描画処理動作が終了する。
【0474】
上記のように、描画処理装置3bにより処理されたデータはフレームメモリ5bに格納される。
【0475】
フレームメモリ5bに格納されたデータは、表示処理装置6bに与えられ、表示処理装置6bからCRT7へデータを転送する。この表示処理装置6bは、参考例における表示処理装置と同様に構成されている。表示処理装置6bは、CRT7の表示クロックに同期し、CRT7の表示するドットをフレームメモリ5bより読み出し、そのデータがポリゴンエッジであれば、その方向の1ドット隣のデータもフレームメモリ5bから読み出し、ドット面積により加重平均を行いそのドットの色を合成し、CRT7に表示する。
【0476】
上述した参考例2においても、陰面処理については説明していないが、陰面処理としては、Zソート法、Zバッファ法を用いることができる。例えば、Zバッファ法を用いる場合には、第1の実施の形態と同様にして、Zバッファメモリを設け、描画処理装置3bにてZ値を求め、フレームメモリ5bには、陰面処理されたデータのみ書き込むように構成すればよい。
【0477】
【発明の効果】
以上説明したように、この発明によれば、ポリゴン辺にアンチエイリアシングを施すことによって、極端なメモリの増大と描画スピードの低下を招かずにアンチエイリアシングを行うことができる。
【0478】
【図面の簡単な説明】
【図1】この発明の第1の実施の形態が適用される画像生成装置の構成を示すブロック図である。
【図2】この発明の第1の実施の形態に用いられるフレームメモリの構成を示す図である。
【図3】この発明の第1の実施の形態における描画処理装置の構成例を示すブロック図である。
【図4】この発明の第1の実施の形態における描画処理装置のポリゴン摘出装置の構成を示すブロック図である。
【図5】ポリゴンの辺ベクトルと方向ベクトルの関係を示す図である。
【図6】ポリゴンの方向ベクトルと辺との関係を示す図である。
【図7】ポリゴンの例を示す図である。
【図8】図7に示すポリゴン辺の対を変更した状態を示す図である。
【図9】方向ベクトルの変更結果と辺との関係を示す図である。
【図10】この発明の第1の実施の形態における描画処理装置の辺テーブルを示す図である。
【図11】この発明の第1の実施の形態における描画処理装置のパラメータ演算装置の構成を示すブロック図である。
【図12】この発明の第1の実施の形態における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図13】この発明の第1の実施の形態における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図14】この発明の第1の実施の形態における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図15】この発明の第1の実施の形態における描画処理装置の水平テーブルを示す図である。
【図16】この発明の第1の実施の形態における描画処理装置のドットエリア処理装置の構成を示すブロック図である。
【図17】この発明の第1の実施の形態におけるポリゴン辺の傾きの量子化の態様を示す模式図である。
【図18】この発明の第1の実施の形態におけるポリゴン辺の傾きの量子化の態様を示す模式図である。
【図19】この発明の第1の実施の形態におけるポリゴンのX、Y値の小数部と量子化との関係を示す図である。
【図20】この発明の第1の実施の形態におけるポリゴン辺の傾きとアンチエイリアシングするドットの位置との関係を示す図である。
【図21】この発明の第1の実施の形態におけるX軸、Y軸との交点符号値と角度の符号値との関係を示す模式図である。
【図22】この発明の第1の実施の形態におけるX軸、Y軸との交点符号値と角度の符号値とドット面積の関係を示す図である。
【図23】この発明の第1の実施の形態におけるX軸、Y軸との交点符号値と角度の符号値とドット面積の関係を示す図である。
【図24】この発明の第1の実施の形態におけるポリゴン辺の各方向における交点符号の例を示す模式図である。
【図25】この発明の第1の実施の形態におけるポリゴン辺の各方向における交点符号の例を示す模式図である。
【図26】この発明の第1の実施の形態における描画処理装置のフレームメモリZバッファ処理装置の構成を示すブロック図である。
【図27】この発明の第1の実施の形態における描画処理装置の動作を説明するフローチャートである。
【図28】この発明の第1の実施の形態における描画処理装置の動作を説明するフローチャートである。
【図29】この発明の第1の実施の形態における描画処理装置のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図30】この発明の第1の実施の形態における描画処理装置の左辺のDDA演算のサブルーチン処理(LVDDA)の動作を説明するフローチャートである。
【図31】この発明の第1の実施の形態における描画処理装置の右辺のDDA演算のサブルーチン処理(RVDDA)の動作を説明するフローチャートである。
【図32】この発明の第1の実施の形態における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図33】この発明の第1の実施の形態における描画処理装置の第2のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図34】この発明の第1の実施の形態における描画処理装置の第3のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図35】この発明の第1の実施の形態におけるフレームメモリの分割方法を示す模式図である。
【図36】この発明の第1の実施の形態における表示処理装置を示すブロック図である。
【図37】この発明の第1の実施の形態における表示処理装置の色演算装置の構成を示すブロック図である。
【図38】この発明の第1の実施の形態におけるポリゴンとポリゴン辺対との関係を示す図である。
【図39】方向ベクトルとアンチエイリアシングを行う方向との関係を示す図であり、(a)は方向ベクトル、(b)アンチエイリアシングを行う方向を示す。
【図40】方向ベクトルとアンチエイリアシングの方向コード(FLAG)との関係を示す図である。
【図41】方向ベクトルが”0”の場合における描画例を示す模式図である。
【図42】方向ベクトルが”1”の場合における描画例を示す模式図である。
【図43】方向ベクトルが”2”の場合における描画例を示す模式図である。
【図44】方向ベクトルが”3”の場合における描画例を示す模式図である。
【図45】方向ベクトルが”4”の場合における描画例を示す模式図である。
【図46】方向ベクトルが”5”の場合における描画例を示す模式図である。
【図47】方向ベクトルが”6”の場合における描画例を示す模式図である。
【図48】方向ベクトルが”7”の場合における描画例を示す模式図である。
【図49】Zバッファ法により陰面処理を行った例を示す模式図である。
【図50】Zバッファ法により陰面処理を行った例を示す模式図である。
【図51】この発明の第1の実施の形態に基づいてアンチエイリアシングした例を示す模式図である。
【図52】この発明の第1の実施の形態に基づいてアンチエイリアシングした例を示す模式図である。
【図53】この発明の第1の実施の形態における処理例を示す模式図である。
【図54】この発明の第1の実施の形態における処理例を示す模式図である。
【図55】この発明の参考例が適用される画像生成装置の構成を示すブロック図である。
【図56】この発明の参考例における描画処理装置の構成例を示すブロック図である。
【図57】この発明の参考例における描画処理装置のポリゴン摘出装置の構成を示すブロック図である。
【図58】この発明の参考例における描画処理装置の辺テーブルを示す図である。
【図59】この発明の参考例における描画処理装置のパラメータ演算装置の構成を示すブロック図である。
【図60】この発明の参考例における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図61】この発明の参考例における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図62】この発明の参考例における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図63】この発明の参考例における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図64】この発明の参考例における描画処理装置のアンチエイリアシング処理装置の構成を示すブロック図である。
【図65】ドットカウント値と方向ベクトルの関係を示す模式図である。
【図66】この発明の参考例における描画処理装置の水平テーブルの構成を示す模式図である。
【図67】この発明の参考例における描画処理装置のフレームメモリ制御装置の構成を示すブロック図である。
【図68】この発明の参考例における描画処理装置の動作を説明するフローチャートである。
【図69】この発明の参考例における描画処理装置の動作を説明するフローチャートである。
【図70】この発明の参考例における描画処理装置のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図71】この発明の参考例における描画処理装置の左辺のDDA演算のサブルーチン処理(LVDDA)の動作を説明するフローチャートである。
【図72】この発明の参考例における描画処理装置の右辺のDDA演算のサブルーチン処理(RVDDA)の動作を説明するフローチャートである。
【図73】この発明の参考例における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図74】この発明の参考例における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図75】この発明の参考例における描画処理装置の第2のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図76】この発明の参考例における描画処理装置の第3のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図77】この発明の参考例における表示処理装置を示すブロック図である。
【図78】この発明の参考例における表示処理装置の色演算装置の構成を示すブロック図である。
【図79】この発明の参考例における処理例を示す模式図である。
【図80】この発明の参考例における処理例を示す模式図である。
【図81】ポリゴンの表示例を示す模式図である。
【図82】この発明の参考例2が適用される画像生成装置の構成を示すブロック図である。
【図83】この発明の参考例2における描画処理装置の構成例を示すブロック図である。
【図84】この発明の参考例2における描画処理装置のポリゴン摘出装置の構成を示すブロック図である。
【図85】この発明の参考例2における描画処理装置の辺テーブルを示す図である。
【図86】この発明の参考例2における描画処理装置のパラメータ演算装置の構成を示すブロック図である。
【図87】この発明の参考例2における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図88】この発明の参考例2における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図89】この発明の参考例2における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図90】この発明の参考例2における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図91】この発明の参考例2における描画処理装置のDDA処理装置の構成を示すブロック図である。
【図92】この発明の参考例2における描画処理装置のアンチエイリアシング処理装置の構成を示すブロック図である。
【図93】この発明の参考例2における描画処理装置のRGB補正装置の構成を示すブロック図である。
【図94】この発明の参考例2における描画処理装置のフレームメモリ制御装置の構成を示すブロック図である。
【図95】ドットカウント値と方向ベクトルの関係を示す模式図である。
【図96】この発明の参考例2における描画処理装置の水平テーブルの構成を示す模式図である。
【図97】この発明の参考例2における描画処理装置の動作を説明するフローチャートである。
【図98】この発明の参考例2における描画処理装置の動作を説明するフローチャートである。
【図99】この発明の参考例2における描画処理装置のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図100】この発明の参考例2における描画処理装置の左辺のDDA演算のサブルーチン処理(LVDDA)の動作を説明するフローチャートである。
【図101】この発明の参考例2における描画処理装置の右辺のDDA演算のサブルーチン処理(RVDDA)の動作を説明するフローチャートである。
【図102】この発明の参考例2における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図103】この発明の参考例2における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図104】この発明の参考例2における描画処理装置のスキャンラインと平行な水平方向のDDA演算のサブルーチン処理(HVDDA)の動作を説明するフローチャートである。
【図105】この発明の参考例2における描画処理装置のRGB補正演算のサブルーチン処理の動作を説明するフローチャートである。
【図106】この発明の参考例2における描画処理装置の第3のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【図107】この発明の参考例2における描画処理装置の第3のパラメータ演算のサブルーチン処理(VPARA)の動作を説明するフローチャートである。
【符号の説明】
1 メモリ
2 座標変換処理装置
3 描画処理装置
4 Zバッファメモリ
5 フレームメモリ
6 表示処理装置
7 表示装置(CRT)
10 マッピングパターンメモリ
Claims (3)
- ポリゴンを構成する端点情報とカラー情報を格納する第1の記憶手段と、上記第1の記憶手段からの各端点情報をスクリーン端点情報に変換する座標変換手段と、上記座標変換手段からのポリゴン端点情報に基づきポリゴン辺の対を求める手段と、上記ポリゴン端点情報に基づきポリゴン辺の方向を算出し、この算出した方向からアンチエイリアシングする方向を決定する手段と、上記ポリゴン端点情報に基づきポリゴン辺の傾きを求める手段と、ポリゴン辺の各データをデジタル微分解析で算出する手段と、ポリゴン辺の傾きとデジタル微分解析により算出したスクリーン座標の小数部に基づきドット面積を求めるドットエリア処理手段と、ポリゴン辺の各ドットのカラー情報、ドット面積、アンチエイリアシングを行う方向の情報とを格納する第2の記憶手段と、上記第2の記憶手段に格納されたカラー情報、前記ドット面積とアンチエイリアシングを行う方向の情報からそのドットの色を演算する表示処理手段と、上記表示処理手段で得られた色を表示する表示装置と、を備えてなるアンチエイリアシング機能を有する画像生成装置。
- 上記ドットエリア処理手段は、ポリゴン辺の傾きにより量子化し角度を符号化する手段と、スクリーン座標の小数部を量子化し交点を符号化する手段と、符号化した角度と符号化した交点に基づきドットの面積を算出する手段と、を備えることを特徴とする請求項1に記載のアンチエイリアシング機能を有する画像生成装置。
- 上記表示処理手段は、第2の記憶手段から処理するドットとその上下左右方向のドットを読み出し、処理するドットのポリゴン辺の方向により上下左右のどれか1つのドットを選択する手段と、処理するドットと選択されたドットに基づきそのドットの色を算出する手段と、を備えることを特徴とする請求項1または2に記載のアンチエイリアシング機能を有する画像生成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04335696A JP3609189B2 (ja) | 1995-03-14 | 1996-02-29 | アンチエイリアシング機能を有する画像生成装置 |
US08/614,595 US5903276A (en) | 1995-03-14 | 1996-03-13 | Image generating device with anti-aliasing function |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8336495 | 1995-03-14 | ||
JP7-83364 | 1995-03-14 | ||
JP04335696A JP3609189B2 (ja) | 1995-03-14 | 1996-02-29 | アンチエイリアシング機能を有する画像生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08315177A JPH08315177A (ja) | 1996-11-29 |
JP3609189B2 true JP3609189B2 (ja) | 2005-01-12 |
Family
ID=26383114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04335696A Expired - Fee Related JP3609189B2 (ja) | 1995-03-14 | 1996-02-29 | アンチエイリアシング機能を有する画像生成装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5903276A (ja) |
JP (1) | JP3609189B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6236405B1 (en) * | 1996-07-01 | 2001-05-22 | S3 Graphics Co., Ltd. | System and method for mapping textures onto surfaces of computer-generated objects |
US6057855A (en) * | 1997-07-02 | 2000-05-02 | Hewlett-Packard Company | Method and apparatus for providing polygon pixel sub-sample information using incremental means |
DE59911685D1 (de) * | 1998-08-30 | 2005-04-07 | Gmd Gmbh | Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster |
JP3649947B2 (ja) * | 1999-04-30 | 2005-05-18 | 富士通株式会社 | 画像描画装置、画像描画方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP3753584B2 (ja) * | 2000-02-15 | 2006-03-08 | 富士通株式会社 | 画像処理装置 |
US7411593B2 (en) * | 2001-03-28 | 2008-08-12 | International Business Machines Corporation | Image rotation with substantially no aliasing error |
JP3780954B2 (ja) * | 2002-02-06 | 2006-05-31 | ソニー株式会社 | 画像生成装置およびその方法 |
JP4133369B2 (ja) * | 2003-01-27 | 2008-08-13 | 株式会社リコー | 画像処理装置、方法及びプログラム |
US20040174379A1 (en) * | 2003-03-03 | 2004-09-09 | Collodi David J. | Method and system for real-time anti-aliasing |
TW200422974A (en) * | 2003-04-17 | 2004-11-01 | Benq Corp | Method for filling a closed region |
JP4313130B2 (ja) * | 2003-09-18 | 2009-08-12 | 株式会社リコー | 画像形成装置、画像形成方法、およびその方法をコンピュータで実行するプログラム |
JP2005100176A (ja) * | 2003-09-25 | 2005-04-14 | Sony Corp | 画像処理装置およびその方法 |
JP2005100177A (ja) * | 2003-09-25 | 2005-04-14 | Sony Corp | 画像処理装置およびその方法 |
JP4180043B2 (ja) | 2004-11-15 | 2008-11-12 | シャープ株式会社 | 3次元図形描画処理装置、画像表示装置、3次元図形描画処理方法、これをコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体 |
JP5533083B2 (ja) * | 2010-03-16 | 2014-06-25 | 株式会社リコー | データ処理装置およびデータ処理方法 |
JP5545012B2 (ja) | 2010-05-07 | 2014-07-09 | 株式会社リコー | 画像処理装置および画像処理方法 |
JP5499894B2 (ja) | 2010-05-14 | 2014-05-21 | 株式会社リコー | 画像処理装置および画像処理方法 |
JP6252225B2 (ja) | 2014-02-17 | 2017-12-27 | 株式会社リコー | 画像処理装置、画像処理方法及び画像形成装置 |
US9300842B1 (en) | 2014-12-16 | 2016-03-29 | Xerox Corporation | Gated edge enhancement using orthogonal rational counters |
JP6736954B2 (ja) | 2016-04-19 | 2020-08-05 | 株式会社リコー | 画像形成装置、画像形成システム及び画像形成方法 |
JP7040058B2 (ja) | 2018-01-31 | 2022-03-23 | 株式会社リコー | 符号化装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03139774A (ja) * | 1989-10-26 | 1991-06-13 | Fujitsu Ltd | 画像生成におけるエイリアジング除去方式 |
US5519823A (en) * | 1991-03-15 | 1996-05-21 | Hewlett-Packard Company | Apparatus for rendering antialiased vectors |
JPH05292346A (ja) * | 1992-04-06 | 1993-11-05 | Sony Corp | 映像信号処理回路 |
US5455900A (en) * | 1992-10-20 | 1995-10-03 | Ricoh Company, Ltd. | Image processing apparatus |
DE69414151T2 (de) * | 1993-02-16 | 1999-03-18 | Fuji Photo Film Co., Ltd., Minami-Ashigara, Kanagawa | Verfahren für die Korrektur des Graugleichgewichts von einem Farbbild, welches auf einem Negativ-Film aufgenommen worden ist |
JP3240447B2 (ja) * | 1993-02-19 | 2001-12-17 | 株式会社リコー | 画像処理装置 |
JPH06274641A (ja) * | 1993-03-19 | 1994-09-30 | Fujitsu Ltd | アンチエイリアシング直線表示装置 |
-
1996
- 1996-02-29 JP JP04335696A patent/JP3609189B2/ja not_active Expired - Fee Related
- 1996-03-13 US US08/614,595 patent/US5903276A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5903276A (en) | 1999-05-11 |
JPH08315177A (ja) | 1996-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3609189B2 (ja) | アンチエイリアシング機能を有する画像生成装置 | |
US6104407A (en) | Method and apparatus for processing fragment pixel information in a three-dimensional graphics processing system | |
US5448690A (en) | Image processing system enabling real-time output of image signal based on polygon image information | |
EP1450308A1 (en) | Image processing apparatus and constituent parts thereof, rendering method | |
KR100349483B1 (ko) | 폴리곤이분할되는화상처리 | |
US6184893B1 (en) | Method and system for filtering texture map data for improved image quality in a graphics computer system | |
JPH06266846A (ja) | 画像処理装置 | |
US6501481B1 (en) | Attribute interpolation in 3D graphics | |
JP3547250B2 (ja) | 描画方法 | |
US7142224B2 (en) | Polygon drawing apparatus and method, and storage medium for implementing the same method | |
JP2000348206A (ja) | 画像生成装置および画像優先度決定方法 | |
US6972760B2 (en) | Area and span based Z-buffer | |
JP3266905B2 (ja) | 図形処理装置 | |
US7170528B1 (en) | Fast glyph rendering for vector based fonts | |
JP2973710B2 (ja) | 限定色決定方法及び限定色決定装置 | |
JPH11328427A (ja) | 多角形分割描画装置、多角形分割描画方法および記憶媒体 | |
JPH0687261B2 (ja) | 画像縮小方法 | |
JPS63195777A (ja) | 色彩補正方式 | |
JPH08279057A (ja) | 三次元図形の輪郭線および稜線強調表示装置 | |
JPH0350686A (ja) | 図形処理方式 | |
JPH0519739A (ja) | 文字パターン生成装置 | |
JP3843794B2 (ja) | 図形処理装置 | |
JP2942125B2 (ja) | 印刷画像の表示方法 | |
JP2891318B2 (ja) | ビットマップフォント作成方法 | |
JPH0973547A (ja) | レンダリング装置およびマッピング装置ならびにレンダリング方法およびマッピング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041012 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041013 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |