(57)【特許請求の範囲】
【請求項１】
デジタル微分解析でポリゴンの描画処理を行う３次元グラフィック処理装置において、スクリーン座標系に変換されたポリゴンを構成する端点情報を取り込み、前記端点情報に基づきデジタル微分解析に用いるパラメータを算出するパラメータ算出手段と、前記端点情報及び前記パラメータに基づき、水平ラインとポリゴンとが交差する左辺を構成する辺線分情報を補間しその補間結果を左辺描画情報として算出する左辺のデジタル微分解析処理部と、前記端点情報及び前記パラメータに基づき、水平ラインとポリゴンとが交差する右辺を構成する辺線分情報を補間しその補間結果を右辺描画情報として算出する右辺のデジタル微分解析処理部と、前記端点情報及び前記パラメータに基づき、左辺及び右辺を構成する線分情報間を補間しその補間結果を辺線分情報間描画情報として算出する辺線分情報間のデジタル微分解析処理部と、前記ポリゴンデータと前記パラメータ算出手段で算出されたパラメータと、前記左辺のデジタル微分解析処理部又は前記右辺のデジタル微分解析処理部若しくは前記辺線分情報間のデジタル微分解析処理部で算出された左辺描画情報又は右辺描画情報若しくは辺線分間描画情報とを取り込み、これら情報に基づき、前記３つのデジタル微分処理部の中で処理を行う処理部の切り替えを制御するデジタル微分処理制御部と、前記左辺のデジタル微分解析処理部又は前記右辺のデジタル微分解析処理部若しくは前記辺線分情報間のデジタル微分解析処理部で算出された左辺描画情報又は右辺描画情報若しくは辺線分間描画情報を全て描画情報として格納する記憶手段と、を備え、補間結果そのまま１画素単位の描画情報として出力することを特徴とする３次元グラフィック処理装置。
【請求項２】
前記パラメータ算出手段は、前記端点情報に基づきブレゼンハム法に従ってデジタル微分解析に用いるパラメータを算出し、前記３つのデジタル微分解析処理部は、それぞれ前記パラメータに基づきブレゼンハム法に従うデジタル微分解析で前記ポリゴン辺を構成する辺線分情報を補間し、描画情報として出力することを特徴とする請求項１に記載の３次元グラフィック処理装置。
【請求項３】
前記制御部は、前記パラメータ算出手段が描画処理されたポリゴンと隣接するポリゴンの端点情報を取り込んだ場合、前記左辺又は右辺デジタル微分解析処理部が共有するポリゴン辺の左辺描画情報又は右辺描画情報を出力しないように制御することを特徴とする請求項１または２に記載の３次元グラフィック処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多角形オブジェクト（以下、ポリゴンと称する）の表示処理を行う３次元グラフィック処理装置に関する。
【０００２】
【従来の技術】
一般的な３次元グラフィック処理装置では、図１に示すように、ＣＰＵ２からポリゴンデータが幾何変換部３に与えられ、この幾何変換部３にて、モデリング変換、視野変換、透視変換などの幾何変換が行われ、スクリーン座標系のポリゴンを構成する端点情報を示すポリゴンデータが描画処理部４に与えられる。描画処理部４は、ポリゴンデータからポリゴンを構成する１画素単位の描画情報を求め、その描画情報がフレームメモリ５に格納される。そして、格納された描画情報に基づき、表示装置であるＣＲＴ６にポリゴンが表示される。
【０００３】
様々な形状モデルを迅速に生成する３次元グラフィック処理装置が、例えば、特開平７−３２５９３３号公報に提案されている。図２１は、前記３次元グラフィック処理装置と同様の手法で描画処理を行う描画処理部９９の内部構成を概略的に示したブロック図である。
【０００４】
描画処理部９９には、幾何変換されたポリゴンデータが、先ず、垂直パラメータ計算部１００に与えられ、垂直パラメータ計算部１００は、このポリゴンデータに基づき垂直方向のデジタル微分解析（以下、ＤＤＡと称する）に用いる垂直パラメータを算出する。この垂直パラメータは、前記ポリゴンデータとともに、垂直ＤＤＡ処理部１０１に与えられ、垂直ＤＤＡ処理部１０１は、前記垂直パラメータに基づきＤＤＡ処理を行って水平ラインとポリゴンとが交差する左辺及び右辺の外形端点情報を算出する。この外形端点情報は、水平パラメータ計算部１０２に与えられ、水平パラメータ計算部１０２は、この外形端点情報に基づき水平方向のＤＤＡに用いる水平パラメータを算出する。この水平パラメータは、前記外形端点情報とともに、水平ＤＤＡ処理部１０３に与えられ、水平ＤＤＡ処理部１０３は、ＤＤＡ処理を行って左辺及び右辺との間を補間し、１画素単位の描画情報を算出する。この１画素単位の描画情報は、ピクセルバッファ部１０４に一時的に格納された後、フレームメモリ５に出力される。なお、上記描画処理部９９の各処理部は図示しない制御装置により各動作が制御される。
【０００５】
図２２は、図２１に示す描画処理部９９の内部構成を具体的に示したブロック図である。垂直パラメータ計算部１００は、幾何変換されたポリゴンデータを取り込み、ポリゴンデータ格納部１１５の各レジスタに格納する。このポリゴンデータは、ポリゴンを構成する端点情報であり、前記幾何変換部３にてスクリーン座標系に変換されたｘ座標（ＳＸ）、ｙ座標（ＳＹ）と、前記ポリゴンの視点からの距離の代表値を示すｚ値（ＳＺ）と、輝度情報の１つである色を示すカラーデータ（ＣＬ）とで構成される。例えば、図２３（ａ）に示すような三角形ＡＢＣのポリゴンを描画する場合、ポリゴンデータ格納部１１５には、頂点Ａに関するポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０）と、頂点Ｂに関するポリゴンデータ（ＳＸ１，ＳＹ１，ＳＺ１，ＣＬ１）と、頂点Ｃに関するポリゴンデータ（ＳＸ２，ＳＹ２，ＳＺ２，ＣＬ２）とが各レジスタにそれぞれ格納される。
【０００６】
垂直パラメータ計算部１００の演算部１１６は、格納されたポリゴンデータに基づきｙ座標が１増加した場合の頂点Ａ−Ｂ間、頂点Ｂ−Ｃ間、頂点Ａ−Ｃ間のポリゴン辺に対するｘ座標、ｚ値、カラーデータに対する差分値ΔＳＸ０Ｙ，ΔＳＺ０Ｙ，ΔＣＬ０Ｙ，ΔＳＸ１Ｙ，ΔＳＺ１Ｙ，ΔＣＬ１Ｙ，ΔＳＸ２Ｙ，ΔＳＺ２Ｙ，ΔＣＬ２Ｙを下記の数式１によって算出し、その算出結果を垂直パラメータ格納部１１７の各レジスタに格納する。
【０００７】
【数式１】
ΔSX0Y=(SX1-SX0)/(SY1-SY0)
ΔSX1Y=(SX2-SX1)/(SY2-SY1)
ΔSX2Y=(SX2-SX0)/(SY2-SY0)
ΔSZ0Y=(SZ1-SZ0)/(SY1-SY0)
ΔSZ1Y=(SZ2-SZ1)/(SY2-SY1)
ΔSZ2Y=(SZ2-SZ0)/(SY2-SY0)
ΔCL0Y=(CL1-CL0)/(SY1-SY0)
ΔCL1Y=(CL2-CL1)/(SY2-SY1)
ΔCL2Y=(CL2-CL0)/(SY2-SY0)
【０００８】
垂直ＤＤＡ処理部１０１は、前記垂直パラメータ計算部１００にて算出された差分値と前記ポリゴンデータとを取り込み、垂直処理データ格納部１２０の各レジスタに格納する。そして、垂直ＤＤＡ処理部１０１は、格納した前記差分値及びポリゴンデータに基づき、ｙ座標が示す水平ラインとポリゴンとが交差する左辺及び右辺の外形端点情報を示すｘ座標、ｙ座標、ｚ値、及びカラーデータをそれぞれ算出する。ＤＤＡ演算器１２１では、前記ｙ座標（ＤＳＹ）を算出し、左辺用ＤＤＡ演算群１２２は、前記左辺の外形端点情報のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を算出し、右辺用ＤＤＡ演算群１２３は、前記右辺の外形端点情報のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を算出する。例えば、図２３（ａ）に示す水平ラインＬについて描画処理する場合、垂直ＤＤＡ処理部１０１において白丸部分のドットＡ，Ｂが求められる。
【０００９】
水平パラメータ計算部１０２は、垂直ＤＤＡ処理部１０１から左辺の外形端点情報のｙ座標（ＤＳＹ）、ｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）と、右辺の外形端点情報のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）とを取り込み、（ＳＹ），（ＳＸＬ），（ＳＺＬ），（ＸＲ），（ＳＺＲ），及び（ＣＬＲ）として垂直ＤＤＡデータ格納部１３０の各レジスタにそれぞれ格納する。
【００１０】
水平パラメータ計算部１０２の演算部１３２は、レジスタに格納された値に基づき、ｘ座標が１増加した場合のｚ値及びカラーデータに対する差分値ΔＳＺＸ，ΔＣＬＸを下記の数式２によって算出し、その算出結果を水平パラメータ格納部１３３の各レジスタに格納する。
【００１１】
【数式２】
ΔSZX=(SZR-SZL)/(SXR-SXL)
ΔCLX=(CLR-CLL)/(SXR-SXL)
【００１２】
水平ＤＤＡ処理部１０３は、前記水平パラメータ計算部１０２にて算出された差分値ΔＳＺＸ，ΔＣＬＸと、左辺の外形端点情報のｙ座標（ＳＹ）、ｘ座標（ＤＸＬ）、ｚ値（ＤＺＬ）、及びカラーデータ（ＣＬＬ）と、右辺の外形端点情報のｘ座標（ＤＸＲ）とを取り込み、水平処理データ格納部１４０の各レジスタにそれぞれ格納する。
【００１３】
そして、水平ＤＤＡ処理部１０３のＤＤＡ演算器１４１は、左辺の外形端点情報のｘ座標（ＤＸＬ）から右辺の外形端点情報のｘ座標（ＤＸＲ）までｘ座標（ＤＳＸ）を１ずつ増加し、それに伴って、ＤＤＡ演算器１４２，１４３は、ｘ座標が１増加した場合のｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を求める。例えば、図２３（ｂ）に示す水平ラインＬについて描画処理する場合、水平ＤＤＡ処理部１０３によって、白丸部分のドットＡからドットＢまでの各ドットのｘ座標、ｚ値、及びカラーデータが求められる。そして、前記ｙ座標（ＳＹ）と求められたｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）とが、１画素単位の描画情報としてピクセルバッファ部１０４に出力される。
【００１４】
上述のように、垂直ＤＤＡ処理部１０１は、ｙ座標の示す水平ラインとポリゴンとが交差する左辺及び右辺の外形端点情報を求め、水平ＤＤＡ処理部１０３は、求められた外形端点情報に基づいて設定されるポリゴンの描画範囲内を補間して１画素単位の描画情報を求める。そして、上述の垂直ＤＤＡ処理部１０１から水平ＤＤＡ処理部１０３までの処理をポリゴンと交差する全ての水平ラインに対して行うことで、ポリゴンを構成する１画素単位の描画情報を全て求めている。
【００１５】
上述の描画処理部９９では、求めた外形端点情報だけがポリゴンの左辺及び右辺を構成することになるので、三角形の一辺が水平ラインから少し傾いたポリゴンをこの描画処理部９９で描画処理すると、図２４（ａ）に示すようなエイリアシングが生じたり、三角形の１頂点が尖っているポリゴンを描画処理部９９で描画処理すると、図２４（ｂ）に示すようなエイリアシングが生じたりする。このように、描画処理部９９にて行った描画処理によって求められた描画情報で構成されるポリゴンには歪みや抜けが生じる場合がある。
【００１６】
線分を生成するためブレゼンハム法を用いて台形形状のポリゴンに歪みや抜けを生じさせることなく描画処理を行う３次元グラフィック処理装置が、例えば、特開平８−５５２２５号公報に提案されている。図２５は、この３次元グラフィック処理装置と同様の手法で描画処理を行う描画処理部１０６の内部構成を概略的に示したブロック図である。
【００１７】
この描画処理部１０６には、幾何変換されたポリゴンデータが、先ず、パラメータ計算部１０７に与えられ、パラメータ計算部１０７は、このポリゴンデータに基づきブレゼンハム法に従ってＤＤＡに用いるパラメータを算出する。このパラメータは、前記ポリゴンデータとともに、垂直ＤＤＡ処理部１０８に与えられ、垂直ＤＤＡ処理部１０８は、パラメータ計算部１０７より取り込んだパラメータに基づきブレゼンハム法に従うＤＤＡを行い、水平ラインとポリゴンとが交差する左辺を構成する辺線分情報の最左点、及び水平ラインとポリゴンとが交差する右辺を構成する辺線分情報の最右点を算出する。これらの最左点及び最右点に関する情報は、前記ポリゴンデータ及びパラメータとともに、水平ＤＤＡ処理部１０９に与えられ、水平ＤＤＡ処理部１０９は、ＤＤＡ処理を行って前記最左点から最右点までの間を補間し、１画素単位の描画情報を算出する。この１画素単位の描画情報は、ピクセルバッファ部１１０に一時的に格納された後、フレームメモリ５に出力される。なお、上記描画処理部１０６の各処理部は、図示しない制御装置により各動作が制御される。
【００１８】
図２６は、図２５に示す描画処理部１０６の具体的な構成を示したブロック図である。パラメータ計算部１０７は、幾何変換されたポリゴンデータを取り込み、ポリゴンデータ格納部１５０の各レジスタにそれぞれ格納する。例えば、図２７（ａ）に示すような三角形ＡＢＣのポリゴンを描画する場合、ポリゴンデータ格納部１５０には、頂点Ａに関するポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０）と、頂点Ｂに関するポリゴンデータ（ＳＸ１，ＳＹ１，ＳＺ１，ＣＬ１）と、頂点Ｃに関するポリゴンデータ（ＳＸ２，ＳＹ２，ＳＺ２，ＣＬ２）とが各レジスタにそれぞれ格納される。
【００１９】
パラメータ計算部１０７の演算部１５１は、格納されたポリゴンデータを用いてｘ座標が１増加した場合及びｙ座標が１増加した場合のｚ値及びカラーデータの差分値ΔＳＺＸ，ΔＳＺＹ，ΔＣＬＸ，ΔＣＬＹを平面方程式に基づく下記の数式３を用いて算出する。
【００２０】
【数式３】
ΔSZX=｛(SZ2-SZ0) ×(SY1-SY2)-(SZ1-SZ2) ×(SY2-SY0) ｝/ ｛(SX2-SX0) ×(SY1-SY2)-(SX1-SX2) ×(SY2-SY0) ｝
ΔSZY=｛(SZ1-SZ2) ×(SX2-SX0)-(SZ2-SZ0) ×(SX1-SX2) ｝/ ｛(SX2-SX0) ×(SY1-SY2)-(SX1-SX2) ×(SY2-SY0) ｝
ΔCLX=｛(CL2-CL0) ×(SY1-SY2)-(CL1-CL2) ×(SY2-SY0) ｝/ ｛(SX2-SX0) ×(SY1-SY2)-(SX1-SX2) ×(SY2-SY0) ｝
ΔCLY=｛(CL1-CL2) ×(SX2-SX0)-(CL2-CL0) ×(SX1-SX2) ｝/ ｛(SX2-SX0) ×(SY1-SY2)-(SX1-SX2) ×(SY2-SY0) ｝
【００２１】
さらに、パラメータ計算部１０７の演算部１５１は、頂点Ａ−Ｂ間、頂点Ｂ−Ｃ間、及び頂点Ａ−Ｃ間のポリゴン辺に対するブレゼンハム法のエラー項データを下記の数式４を用いて算出する。なお、abs() は、()内の絶対値を示す。
【００２２】
【数式４】
if(abs(SX0-SX1)>abs(SY0-SY1))   ERR0=abs(SY0-SY1)/abs(SX0-SX1)
else                            ERR0=abs(SX0-SX1)/abs(SY0-SY1)
if(abs(SX1-SX2)>abs(SY1-SY2))   ERR0=abs(SY1-SY2)/abs(SX1-SX2)
else                            ERR0=abs(SX1-SX2)/abs(SY1-SY2)
if(abs(SX0-SX2)>abs(SY0-SY2))   ERR0=abs(SY0-SY2)/abs(SX0-SX2)
else                            ERR0=abs(SX0-SX2)/abs(SY0-SY2)
【００２３】
パラメータ計算部１０７の演算部１５１における算出結果である差分値ΔＳＺＸ，ΔＳＺＹ，ΔＣＬＸ，ΔＣＬＹ、及びエラー項データＥＲＲ０，ＥＲＲ１，ＥＲＲ２は、パラメータ格納部１５２の各レジスタに格納される。
【００２４】
また、演算部１５１は、各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きパラメータを求めている。この傾きパラメータは、各頂点間を結ぶポリゴン辺の傾きを示し、図５（ａ）に示すように、ｘ方向の変化量ΔＸの大きさの方がｙ方向の変化量ΔＹの大きさよりも大きい場合、Ｘ−ＭＡＪＥＲに設定される。これに対して、図５（ｂ）に示すように、ｙ方向の変化量ΔＹの大きさの方がｘ方向の変化量ΔＸの大きさよりも大きい場合、傾きパラメータはＹ−ＭＡＪＥＲに設定される。さらに、演算部１５１は、各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きが右下がり（正）であるか、又は左下がり（負）であるかどうかも求めている。各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きパラメータ及び傾きは、制御装置の図示しないワークバッファ部にそれぞれ格納される。
【００２５】
垂直ＤＤＡ処理部１０８は、前記パラメータ計算部１０７にて算出された差分値と前記ポリゴンデータとエラー項データとを取り込み、垂直処理データ格納部１５５のレジスタに格納する。
【００２６】
そして、垂直ＤＤＡ処理部１０８は、前記ポリゴンデータ、エラー項データ、傾きパラメータ、及びポリゴン辺の傾きに基づき、ブレゼンハム法に従ってＤＤＡ処理を行って、ｙ座標が示す水平ラインとポリゴンとが交差する左辺を構成する辺線分情報の最左点、及びｙ座標の示す水平ラインとポリゴンとが交差する右辺を構成する辺線分情報の最右点を算出する。ＤＤＡ演算部１５６は、ｙ座標（ＤＳＹ）を算出する。左辺用ＤＤＡ演算群１５７は、左辺を構成する辺線分情報を始点から順に求め、最左点のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を算出する。また、右辺用ＤＤＡ演算群１５８は、右辺を構成する辺線分情報を始点から順に求め、最右点のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を算出する。例えば、図２７（ａ）に示す水平ラインＬを処理する場合には、白点丸部分が内側から外側に向けて順に求められ、白丸部分のドットＡ，Ｂが算出される。
【００２７】
水平ＤＤＡ処理部１０９は、垂直ＤＤＡ処理部１０８にて算出されたｙ座標（ＤＳＹ）と、左辺を構成する辺線分情報の最左点のｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）と、右辺を構成する辺線分情報の最右点のｘ座標（ＤＳＸ）とを取り込み、（ＳＹ），（ＳＸＬ），（ＳＺＬ），（ＣＬＬ），（ＳＸＥ）として水平処理データ格納部１６０の各レジスタに格納する。また、水平ＤＤＡ処理部１０９は、前記垂直ＤＤＡ処理部１０８の垂直処理データ格納部１５５から差分値ΔＳＺＸ，ΔＣＬＸを必要に応じて取り込む。
【００２８】
水平ＤＤＡ処理部１０９では、ＤＤＡ演算器１６１が最左点のｘ座標（ＳＸＬ）から最右点のｘ座標（ＳＸＥ）までｘ座標（ＤＳＸ）を１ずつ増加させるとともに、ＤＤＡ演算器１６２，１６３は、ｘ座標が１増加した場合のｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を求める。例えば、図２７（ｂ）に示す水平ラインＬを処理する場合には、水平ＤＤＡ処理部１０９は、白丸部分のドットＡからドットＢまでのｘ座標、ｚ値、及びカラーデータを求める。水平ＤＤＡ処理部１０９は、ｙ座標（ＳＹ）、ｘ座標（ＤＳＸ）、ｚ値（ＤＳＺ）、及びカラーデータ（ＤＣＬ）を１画素単位の描画情報としてピクセルバッファ部１０４に出力する。
【００２９】
上述のように、垂直ＤＤＡ処理部１０８は、ブレゼンハム法によって、ｙ座標の示す水平ラインとポリゴンとが交差する左辺を構成する辺線分情報の最左点及びｙ座標の示す水平ラインとポリゴンとが交差する右辺を構成する辺線分情報の最右点を算出する。水平ＤＤＡ処理部１０９は、前記最左点のｘ座標から最右点のｘ座標で定められる水平ラインにおけるポリゴンの描画範囲内を補間して１画素単位の描画情報を算出する。そして、上述の垂直ＤＤＡ処理部１０８から水平ＤＤＡ処理部１０９までの処理をポリゴンと交差する全ての水平ラインに対して行うことで、ポリゴンを構成する１画素単位の描画情報を全て求めている。なお、上記の描画処理部９９及び描画処理部１０６で算出したｚ値は、Ｚバッファ法などによる陰面処理に用いられ、図１に示す３次元グラフィック処理装置のＣＲＴ６には、陰面処理され、表示されるポリゴンのみ表示される。
【００３０】
上述の図２５に示す描画処理部１０６では、ポリゴンの右辺及び左辺を構成する辺線分情報をブレゼンハム法によって求めているので、三角形の一辺が水平ラインから少し傾いたポリゴンを描画する場合でも、図２８（ａ）に示すようにエイリアシングが発生せず、三角形の１頂点が尖っているポリゴンを描画する場合でも、図２８（ｂ）に示すようにエイリアシングが発生しない。このように、描画処理部１０６で描画処理されたポリゴンには、歪や抜けが生じない。
【００３１】
【発明が解決しようとする課題】
上述の図２１に示す描画処理部９９では、垂直パラメータ計算部１００、垂直ＤＤＡ処理部１０１、水平パラメータ計算部１０２、及び水平ＤＤＡ処理部１０３によってパイプライン処理が行われており、１つのポリゴンを構成する１画素単位の描画情報は、垂直ＤＤＡ処理部１０１から水平ＤＤＡ処理部１０３までの処理が繰返し行われて算出される。
【００３２】
パイプライン処理を行う図２１に示す描画処理部９９では、図２９（ａ）に示すような縦長の三角形を示すポリゴンを処理する場合に、１水平ラインにおける描画範囲は小さいことから水平ＤＤＡ処理部１０３における処理時間を短くすることができたとしても、その前の水平パラメータ計算部１０２における処理時間は、描画範囲に関係なく一定なので、図２９（ｂ）に示すように無駄サイクルＴ１が生じている。このように、図２１に示す描画処理部９９では、与えられるポリゴンの形によっては非効率に処理が行われ、描画処理が遅延するという問題が生じている。
【００３３】
また、上述の図２５に示す描画処理部１０６では、パラメータ計算部１０７、垂直ＤＤＡ処理部１０８、及び水平ＤＤＡ処理部１０９がパイプライン処理を行うことで描画処理が行われており、１つのポリゴンを構成する１画素単位の描画情報は、水平パラメータ計算部１０２から水平ＤＤＡ処理部１０３までの処理が繰返し行われて算出される。
【００３４】
このため、図２５に示す描画処理部１０６では、図３０（ａ）に示すような横長の三角形を示すポリゴンを処理する場合には、１水平ラインに含まれるポリゴンの左辺及び右辺の辺線分情報が大きくなるので、垂直ＤＤＡ処理部１０８において最左点及び最右点を求めるのに時間を要し、図３０（ｂ）に示すように、無駄サイクルＴ２が生じている。このように、与えられるポリゴンの形によっては非効率に処理が行われ、描画処理が遅延するという問題が生じている。
【００３５】
本発明の目的は、回路規模の増大を招くことなく、描画処理の遅延を防止するとともに、より速く描画処理を行う３次元グラフィック処理装置を提供することである。
【００３６】
【課題を解決するための手段】
本発明の３次元グラフィックス処理装置は、デジタル微分解析でポリゴンの描画処理を行う３次元グラフィック処理装置において、スクリーン座標系に変換されたポリゴンを構成する端点情報を取り込み、前記端点情報に基づきデジタル微分解析に用いるパラメータを算出するパラメータ算出手段と、前記端点情報及び前記パラメータに基づき、水平ラインとポリゴンとが交差する左辺を構成する辺線分情報を補間しその補間結果を左辺描画情報として算出する左辺のデジタル微分解析処理部と、前記端点情報及び前記パラメータに基づき、水平ラインとポリゴンとが交差する右辺を構成する辺線分情報を補間しその補間結果を右辺描画情報として算出する右辺のデジタル微分解析処理部と、前記端点情報及び前記パラメータに基づき、左辺及び右辺を構成する線分情報間を補間しその補間結果を辺線分情報間描画情報として算出する辺線分情報間のデジタル微分解析処理部と、前記ポリゴンデータと前記パラメータ算出手段で算出されたパラメータと、前記左辺のデジタル微分解析処理部又は前記右辺のデジタル微分解析処理部若しくは前記辺線分情報間のデジタル微分解析処理部で算出された左辺描画情報又は右辺描画情報若しくは辺線分間描画情報とを取り込み、これら情報に基づき、前記３つのデジタル微分処理部の中で処理を行う処理部の切り替えを制御するデジタル微分処理制御部と、前記左辺のデジタル微分解析処理部又は前記右辺のデジタル微分解析処理部若しくは前記辺線分情報間のデジタル微分解析処理部で算出された左辺描画情報又は右辺描画情報若しくは辺線分間描画情報を全て描画情報として格納する記憶手段と、を備え、補間結果そのまま１画素単位の描画情報として出力することを特徴とする。
【００３７】
上述の構成によれば、デジタル微分解析処理手段は、ポリゴン辺を構成する辺線分情報を補間し、その補間結果を１画素単位の描画情報として出力する。従って、従来技術のように辺線分情報のエッジを示す端点を求め、前記エッジ間を示す描画範囲内を補間して描画情報を求めることで、生じていた無駄なサイクルの発生を防止することができる。また、補間結果を描画情報として出力するので、従来技術のように端点を求める処理時間分を短縮することができ、処理速度の向上を図ることができる。また、辺線分情報を求めるので、ポリゴンがどのような形であったとしても、歪んだりすることはない。
【００３８】
前記パラメータ算出手段は、前記端点情報に基づきブレゼンハム法に従ってデジタル微分解析に用いるパラメータを算出し、前記３つのデジタル微分解析処理部は、それぞれ前記パラメータに基づきブレゼンハム法に従うデジタル微分解析で前記ポリゴン辺を構成する辺線分情報を補間し、描画情報として出力してもよい。
【００４１】
前記制御部は、前記パラメータ算出手段が描画処理されたポリゴンと隣接するポリゴンの端点情報を取り込んだ場合、前記左辺又は右辺デジタル微分解析処理部が共有するポリゴン辺の左辺描画情報又は右辺描画情報を出力しないように制御してもよい。
【００４２】
上述の構成によれば、制御部がピクセルバッファなどの記憶手段に共有するポリゴン辺の描画情報を転送しないように制御することで、描画情報の書き込み処理が重複することを防ぐことができ、描画処理速度を向上させることができる。
【００４３】
前記デジタル微分解析処理手段は、前記算出した右辺及び左辺の描画情報及び前記パラメータに基づきデジタル微分解析で前記算出した左辺及び右辺間を補間し、辺線分情報間の描画情報として出力してもよい。
【００４４】
【発明の実施の形態】
本発明の３次元グラフィック処理装置の実施の形態を図を用いつつ以下に説明する。
【００４５】
図１は、３次元グラフィック処理装置の一般的な構成を示すブロック図である。本発明の３次元グラフィック処理装置も、従来技術と同じく基本的には、ＣＰＵ２、幾何変換部３、描画処理部４、フレームメモリ５、及びＣＲＴ６で構成される。なお、本実施の形態では、前記ＣＰＵ２が３次元グラフィック処理装置全体を制御すように構成している。
本発明の３次元グラフィック処理装置の特徴とするところは、描画処理部４の構成に係り、描画処理を遅延させることなく迅速に行うものである。以下に、この描画処理部４を含む本発明の３次元グラフィック処理装置の主要部について説明を行う。
【００４６】
図２は、本発明の実施の形態に係る３次元グラフィック処理装置の主要部の概略的な構成を示すブロック図である。
【００４７】
描画処理部４において、幾何変換部３で幾何変換されたポリゴンデータが、前記パラメータ計算部１０に取り込まれる。このパラメータ計算部１０は、このポリゴンデータに基づき３入力ＤＤＡ処理部１１にて行われるＤＤＡ処理に用いるパラメータを算出する。
【００４８】
このパラメータは、前記ポリゴンデータとともに３入力ＤＤＡ処理部１１に与えられる。３入力ＤＤＡ処理部１１は、ポリゴンデータ及び前記パラメータに基づき、水平ラインとポリゴンとが交差する左辺を構成する辺線分情報を補間し、その補間結果を左辺描画情報として算出する“Ｌｅｆｔ”のＤＤＡ処理と、１水平ラインとポリゴンとが交差する右辺を構成する辺線分情報を補間し、その補間結果を右辺描画情報として算出する“Ｒｉｇｈｔ”のＤＤＡ処理と、左辺及び右辺を構成する線分情報間を補間し、その補間結果を辺線分情報間描画情報として算出する“Ｍｉｄｄｌｅ”のＤＤＡ処理とを行う。
【００４９】
そして、算出された左辺描画情報、右辺描画情報、及び辺線分情報間描画情報（以下、描画情報と総称する場合もある）は、それぞれピクセルバッファ部１２に一時的に格納された後、フレームメモリ５に出力される。
【００５０】
ＤＤＡ処理制御部１３は、前記ポリゴンデータと前記パラメータ計算部１０で算出されたパラメータと３入力ＤＤＡ処理部１１で算出された左辺描画情報、右辺描画情報、又は辺線分間描画情報とを取り込み、前記ポリゴンデータと前記パラメータと左辺描画情報、右辺描画情報、又は辺線分間描画情報とに基づき、前記３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を制御する。
【００５１】
図３は、パラメータ計算部１０及び３入力ＤＤＡ処理部１１の概略的な構成を示した内部構成を示すブロック図である。なお、図４に示すようなポリゴンを描画する場合について、以下に説明を行う。
【００５２】
パラメータ計算部１０は、ポリゴンデータを格納するデータ格納部１５と、前記ポリゴンデータに基づきパラメータを算出する演算部１６と、算出されたパラメータを格納するパラメータ格納部１７と、を備える。前記ポリゴンデータは、ポリゴンを構成する端点情報であり、前記幾何変換部３にてスクリーン座標系に変換されたｘ座標、ｙ座標と、前記ポリゴンの視点からの距離の代表値を示すｚ値と、輝度情報の１つであるカラーデータ（色）とで構成される。
【００５３】
パラメータ計算部１０は、前記ポリゴンデータを取り込み、データ格納部１５の各レジスタに格納する。即ち、データ格納部１５には、図４に示す三角形ＡＢＣの頂点Ａに関するポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０）、頂点Ｂに関するポリゴンデータ（ＳＸ１，ＳＹ１，ＳＺ１，ＣＬ１）、及び頂点Ｃに関するポリゴンデータ（ＳＸ２，ＳＹ２，ＳＺ２，ＣＬ２）とがそれぞれレジスタに格納される。
【００５４】
前記演算部１６は、前記データ格納部１５に格納されたポリゴンデータを用いてｘ座標が１増加した場合のｚ値の変化率を示す差分値ΔＳＺＸ、ｙ座標が１増加した場合のｚ値の変化率を示す差分値ΔＳＺＹ、ｘ座標が１増加した場合のカラーデータの変化率を示す差分値ΔＣＬＸ、及びｙ座標が１増加した場合の変化率を示す差分値ΔＣＬＹを前述した数式３（従来技術の項を参照）に基づいて算出する。そして、演算部１６は、算出結果を算出結果格納部１７の各レジスタにそれぞれ格納する。
【００５５】
また、演算部１６は、図４に示す３角形ＡＢＣを示すポリゴンの３つのポリゴン辺ＡＢ，ＢＣ，ＡＣを求めるブレゼンハム法に用いられるエラー項パラメータＥＲＲ０，ＥＲＲ１，ＥＲＲ２を各ポリゴン辺ＡＢ，ＢＣ，ＡＣに対して算出する。前記各ポリゴン辺ＡＢ，ＢＣ，ＡＣに対するエラー項パラメータＥＲＲ０，ＥＲＲ１，ＥＲＲ２は、前述した数式４（従来技術の項を参照）によってそれぞれ算出され、算出結果格納部１７の各レジスタにそれぞれ格納される。
【００５６】
さらに、演算部１６は、各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きパラメータも算出する。各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きパラメータは、図５（ａ）に示すように、ｘ方向の変化量Δｘの大きさの方がｙ方向の変化量Δｙの大きさよりも大きい場合、Ｘ−ＭＡＪＥＲと設定される。これに対して、図５（ｂ）に示すように、ｙ方向の変化量Δｙの大きさの方がｘ方向の変化量Δｘの大きさよりも大きい場合、傾きパラメータはＹ−ＭＡＪＥＲと設定される。この傾きパラメータは、ＤＤＡ処理制御部１３が制御を行う場合に用いる図示しないワークバッファ部に格納される。
【００５７】
また、演算部１６は、ポリゴン辺の傾きも算出する。即ち、演算部１６は、各ポリゴン辺ＡＢ，ＢＣ，ＡＣの傾きが右下がり（正）又は左下がり（負）のどちらであるかを算出する。この算出された各ポリゴン辺の傾きは、ＤＤＡ処理制御部１３が制御を行う場合に用いる図示しないワークバッファ部に格納される。
【００５８】
３入力ＤＤＡ処理部１１は、データ・パラメータ格納部２０、ＤＤＡ処理群２１、及び処理結果格納部２２を備える。
【００５９】
データ・パラメータ格納部２０は、前記パラメータ計算部１０から与えられるポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０），（ＳＸ１，ＳＹ１，ＳＺ１，ＣＬ１），（ＳＸ２，ＳＹ２，ＳＺ２，ＣＬ２）、差分値ΔＳＺＸ，ΔＳＺＹ，ΔＣＬＸ，ΔＣＬＹ及びエラー項パラメータＥＲＲ０，ＥＲＲ１，ＥＲＲ２を各レジスタに格納する。
【００６０】
ＤＤＡ処理群２１は、６つのＤＤＡ演算器２５〜３０で構成される。各ＤＤＡ演算器２５〜３０は、ＤＤＡ処理制御部１３に制御されてＤＤＡ処理を行う。
【００６１】
ＤＤＡ処理群２１のＤＤＡ演算器２５は、２入力加算器ＡＹ、マルチプレクサＭＹ、及びレジスタＤＳＹで構成され、ｙ座標に関するＤＤＡ処理を行う。マルチプレクサＭＹには、ポリゴンデータのｙ座標の最も小さい座標（ＳＹ＃）と、２入力加算器ＡＹからの演算結果とが与えられ、選択した値をレジスタＤＳＹに格納する。また、２入力加算器には、レジスタＤＳＹに格納された値と“＋１”とが与えられ、加算した値が前記マルチプレクサＭＹに与えられる。レジスタＤＳＹに格納された値は、求められたｙ座標を示し、処理結果格納部２２のレジスタＳＹにも格納される。なお、本実施の形態では、図４に示すように三角形のポリゴンを取り込むので、図面に示す“＃”には０〜２のいずれかが該当し、ポリゴンデータの値が与えられることを示す。
【００６２】
ＤＤＡ演算器２６は、３つのマルチプレクサＭＸ１，ＭＸ２，ＭＸ３、２つの２入力加算器ＡＸ１，ＡＸ２、及び、レジスタＤＳＸ，ＳＸＬ，ＳＸＲ，ＳＸＭ，ＳＸＥで構成され、ｘ座標に関するＤＤＡ処理を行う。
【００６３】
マルチプレクサＭＸ１には、前記データ・パラメータ格納部２０からｘ座標（ＳＸ＃）と２入力加算器ＡＸ１からの演算結果とが与えられ、選択した値をレジスタＤＳＸに格納する。このレジスタＤＳＸに格納された値は、レジスタＳＸＬ，ＳＸＲ，ＳＸＭにも格納される。レジスタＳＸＬには、“Ｌｅｆｔ”のＤＤＡ処理が終了した時点のレジスタＤＳＸに格納された値が格納され、レジスタＳＸＲには、“Ｒｉｇｈｔ”のＤＤＡ処理が終了した時点のレジスタＤＳＸに格納された値が格納され、レジスタＳＸＭには、“Ｌｅｆｔ”のＤＤＡ処理におけるｘ座標の最大値を示すレジスタＤＳＸに格納された値が格納される。なお、レジスタＤＳＸに格納された値は、求められたｘ座標を示し、ＤＤＡ演算結果格納部２２のレジスタＳＸにも格納される。
【００６４】
マルチプレクサＭＸ２には、各レジスタＳＸＬ，ＳＸＲ，ＳＸＭと、レジスタＤＳＸに格納された値が与えられており、“Ｌｅｆｔ”のＤＤＡ処理、“Ｒｉｇｈｔ”のＤＤＡ処理、又は“Ｍｉｄｄｌｅ”のＤＤＡ処理に切り換えられた直後に、切り換えられたＤＤＡ処理に対応したレジスタに格納された値を選択し、それ以外のときには、レジスタＤＳＸに格納された値を選択する。例えば、“Ｌｅｆｔ”のＤＤＡ処理の最初の段階では、レジスタＳＸＬに格納された値を選択する。なお、マルチプレクサＭＸ２は、各レジスタに値が格納されていないときには、レジスタＤＳＸに格納された値を選択する。
【００６５】
マルチプレクサＭＸ３には、“＋１”，“−１”，又は“０”が与えられている。このマルチプレクサＭＸ３は、“Ｌｅｆｔ”のＤＤＡ処理及び“Ｒｉｇｈｔ”のＤＤＡ処理の場合において、前記傾きパラメータがＸ−ＭＡＪＥＲである場合、ポリゴン辺の傾きが正のときは“１”を選択し、ポリゴン辺の傾きが負のときは“−１”を選択する。前記傾きパラメータがＹ−ＭＡＪＥＲである場合、ブレゼンハム法に用いられる後述する符号データ及びポリゴン辺の傾きに基づき“１”，“０”，又は“−１”のいずれか１つを選択する。また、“Ｍｉｄｄｌｅ”のＤＤＡ処理の場合には“１”を選択する。
【００６６】
２入力加算器ＡＸ１には、前記マルチプレクサＭＸ２にて選択された値と、マルチプレクサＭＸ３にて選択された値とが与えられ、それらの値を加算してその加算結果を前記マルチプレクサＭＸ１に与える。
【００６７】
また、２入力加算器ＡＸ２には、“Ｒｉｇｈｔ”のＤＤＡ処理時のｘ座標が１水平ラインにおいて最も小さいときを示す場合に前記レジスタＤＳＸに格納された値と、“−１”とが与えられ、加算結果をレジスタＳＸＥに格納する。従って、このレジスタＳＸＥには、ポリゴンの右辺の“Ｒｉｇｈｔ”のＤＤＡ処理において最も小さなｘ座標の値に１減算した値が格納される。このレジスタＳＸＥに格納された値は、後述する“Ｍｉｄｄｌｅ”のＤＤＡ処理から“Ｌｅｆｔ”のＤＤＡ処理への切り換え、及びＤＤＡ処理の終了を判断するために用いられる。
【００６８】
ＤＤＡ演算器２７は、２つのマルチプレクサＭ１，Ｍ２、３入力加算器ＡＺＣ、レジスタＳＬ，ＳＲ，ＳＭ、レジスタＤＳＺ、ＡＮＤ回路Ａ１〜Ａ３、及びＸＮＯＲ回路ＸＮで構成され、ｚ値に関するＤＤＡ処理を行う。
【００６９】
前記マルチプレクサＭ１には、前記データ・パラメータ格納部２０からｚ値ＳＺ＃と３入力加算器ＡＺＣからの値とが与えられ、選択した値をレジスタＤＳＺに格納する。このレジスタＤＳＺに格納された値は、レジスタＳＬ，ＳＲ，ＳＭにも格納される。レジスタＳＬには、“Ｌｅｆｔ”のＤＤＡ処理が終了した時点のレジスタＤＳＺに格納された値が格納され、レジスタＳＲには、“Ｒｉｇｈｔ”のＤＤＡ処理が終了した時点のレジスタＤＳＺに格納された値が格納され、レジスタＳＸＭには、“Ｌｅｆｔ”のＤＤＡ処理におけるｘ座標が最大値を示す時点でのレジスタＤＳＺに格納された値が格納される。また、レジスタＤＳＺに格納された値は、求められたｚ値を示す。
【００７０】
マルチプレクサＭ２には、各レジスタＳＬ，ＳＲ，ＳＭとレジスタＤＳＺとに格納された値がそれぞれ与えられており、“Ｌｅｆｔ”のＤＤＡ処理、“Ｒｉｇｈｔ”のＤＤＡ処理、又は“Ｍｉｄｄｌｅ”のＤＤＡ処理に切り換えられた直後に、切り換えられたＤＤＡ処理に対応したレジスタに格納された値を選択し、それ以外のときには、レジスタＤＳＺに格納された値を選択する。なお、マルチプレクサＭ２は、レジスタに値が格納されていないときには、レジスタＤＳＺに格納された値を選択する。
【００７１】
３入力加算器ＡＺＣには、前記マルチプレクサＭ２に選択された値と、ＹＥＮ信号と差分値ΔＳＺＹとが与えられる論理積回路Ａ１からの出力と、ＸＮＤ信号と差分値ΔＳＺＸとが与えられるＸＮＯＲ回路ＸＮ１からの出力とＸＥＮ信号とが与えられる論理積回路Ａ２からの出力とが与えられる。さらに、３入力加算器ＡＺＣには、ＸＮＤ信号とＸＥＮ信号とが与えられる論理積回路Ａ３の出力がキャリー入力として与えられる。そして、３入力加算器ＡＺＣは、与えられる３つの値を加算し、その加算結果をマルチプレクサＭ１に与える。
【００７２】
前記ＹＥＮ信号は、ｙ座標に対するｚ値の差分値又はカラーデータの差分値を加減算するときにハイレベルとなる信号であり、前記ＸＥＮ信号は、ｘ座標に対するｚ値の差分値又はカラーデータの差分値を加減算するときにハイレベルとなる信号である。前記ＸＮＤ信号は、ｘ座標に対するｚ値の差分値又はカラーデータの差分値を減算するときにハイレベルとなる信号である。これらのＹＥＮ信号、ＸＥＮ信号、及びＸＮＤ信号は、ＤＤＡ処理制御部１３にてポリゴン辺の傾き及び傾きパラメータに基づき決定される。
【００７３】
ＤＤＡ演算器２８は、２つのマルチプレクサＭ１，Ｍ２、３入力加算器ＡＺＣ、レジスタＤＣＬ，ＣＬ，ＣＲ，ＣＭ、ＡＮＤ回路Ａ１〜Ａ３、及びＸＮＯＲ回路ＺＮで構成され、カラーデータに関するＤＤＡ処理を行う。即ち、このＤＤＡ演算器２８は、前述のＤＤＡ演算器２７において取り込まれるｚ値に関する値の代わりにカラーデータに関する値（カラーデータＣＬ０〜ＣＬ２、差分値ΔＣＬＸ，ΔＣＬＹ等）を取り込み、ｚ値に関する情報を格納するレジスタＤＳＺ，ＳＬ，ＳＲ，ＳＭからカラーデータに関する情報を格納するレジスタＤＣＬ，ＣＬ，ＣＲ，ＣＭに置き換えただけである。従って、ＤＤＡ演算器２８は、同一の処理動作を行うため、同一の構成には同一の参照符号を付して説明を省略する。なお、レジスタＤＣＬに格納された値が求められたカラーデータを示す。
【００７４】
ＤＤＡ演算器２９は、２つのマルチプレクサＭＥ１，ＭＥ２、２入力加算器ＡＥ１、及びレジスタＤＥＲＬで構成され、“Ｌｅｆｔ”のＤＤＡ処理の場合にポリゴンの左辺を構成する辺線分情報を補間するために用いられるブレゼンハム法の符号判定に用いられる符号データを求めるＤＤＡ処理を行う。
【００７５】
マルチプレクサＭＥ１には、前記データ・パラメータ格納部２０からポリゴンの左辺及び右辺に対応するエラー項パラメータＥＲＲ＃と、“−１”とが与えられ、選択した値を２入力加算器ＡＥ１に出力する。２入力加算器ＡＥ１には、マルチプレクサＭＥ１に選択された値とマルチプレクサＭＥ２に選択された値とが与えられ、それらの値を加算し、その加算結果をレジスタＤＥＲＬに格納する。マルチプレクサＭＥ２には、前記レジスタＤＥＲＬに格納された値と“−０．５”とが与えられ、選択した値を前記２入力加算器ＡＥ１に出力する。なお、レジスタＤＥＲＬに格納された値が、ポリゴンの左辺を構成する辺線分情報を補間するために用いられるブレゼンハム法の符号データを示す。
【００７６】
ＤＤＡ演算器３０は、２つのマルチプレクサＭＥ１，ＭＥ２、２入力加算器ＡＥ１、及びレジスタＤＥＲＲで構成され、“Ｒｉｇｈｔ”のＤＤＡ処理の場合にポリゴンの右辺を構成する辺線分情報を補間するために用いられるブレゼンハム法の符号判定に用いられる符号データを求めるＤＤＡ処理を行う。即ち、このＤＤＡ演算器３０は、前述のＤＤＡ演算器２９において取り込まれるエラー項パラメータの代わりにポリゴンの右辺に関するエラー項パラメータを取り込み、レジスタＤＥＲＬをレジスタＤＥＲＲに置き換えた構成であり、同一の構成には同一の参照符号を付して説明を省略する。そして、ＤＤＡ演算器３０においてＤＤＡ処理がなされてレジスタＤＥＲＲに格納された値が、ポリゴンの右辺を構成する辺線分情報を補間するために用いられるブレゼンハム法の符号データを示す。
【００７７】
上述の構成における３入力ＤＤＡ処理部１１は、図６に示すように、１水平ラインにおいて、“Ｌｅｆｔ”のＤＤＡ処理→“Ｒｉｇｈｔ”のＤＤＡ処理→“Ｍｉｄｄｌｅ”のＤＤＡ処理を順番に行い、１水平ラインにおける左辺描画情報、右辺描画情報、及び辺線分情報間描画情報を算出する。例えば、図４に示すように、１水平ラインＬに関する描画情報を求める場合には、“Ｌｅｆｔ”のＤＤＡ処理によって、白丸９〜１２のｘ座標、ｙ座標、ｚ値及びカラーデータを左辺描画情報として求め、“Ｒｉｇｈｔ”のＤＤＡ処理によって、白丸１３のｘ座標、ｙ座標、ｚ値及びカラーデータを右辺描画情報として求め、“Ｍｉｄｄｌｅ”のＤＤＡ処理によって黒丸１４〜１９のｘ座標、ｙ座標、ｚ値及びカラーデータを辺線分情報間描画情報として求める。ＤＤＡ処理制御部１３は、パラメータ計算部１０で求められたパラメータ、及び３入力ＤＤＡ処理部１１で求められた描画情報とブレゼンハム法の符号データとに基づき、３入力ＤＤＡ処理部１１で行われる上述の３つのＤＤＡ処理を切り換える。以下に、この切り換え条件及び切り換え時のＤＤＡ処理状態について説明する。
【００７８】
（ＤＤＡ処理の開始状態）
図７は、ＤＤＡ処理の開始状態を示したタイムチャートである。なお、この図面を含む図７〜１５には、現在行われている処理の状態、レジスタＤＥＲＬ，ＤＥＲＲ，ＤＳＹ，ＤＳＸに格納された値、及び、求められた描画情報の出力状態を示す。なお、出力状態を示す“Ｖ／ＮＶ”は、出力された描画情報が有効又は無効なデータであることを示し、出力データに示す“ＮＶ”は、出力されたデータが無効なデータであることを示す。
【００７９】
ＤＤＡ処理群２１におけるＤＤＡ処理が開始されるまでに、パラメータ計算部１０にて各パラメータが算出されており、クッロクサイクルＴ２の立ち上がりのときに、前記パラメータ計算部１０からポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０），（ＳＸ１，ＳＹ１，ＳＺ１，ＣＬ１），（ＳＸ２，ＳＹ２，ＳＺ２，ＣＬ２）、差分値ΔＳＺＸ，ΔＳＺＹ，ΔＣＬＸ，ΔＣＬＹ及びエラー項パラメータＥＲＲ０，ＥＲＲ１，ＥＲＲ２が与えられ、３入力ＤＤＡ処理部１１のデータ・パラメータ格納部２０に格納される。また、傾きパラメータとポリゴン辺の傾きとは、図示しないワークバッファ部に格納される。
【００８０】
そして、クロックサイクルＴ３において、３入力ＤＤＡ処理部１１では“Ｌｅｆｔ”のＤＤＡ処理が行われる。この場合、最もｙ座標の小さい頂点のポリゴンデータ（ＳＸ＃，ＳＹ＃，ＳＺ＃，ＣＬ＃）が各ＤＤＡ演算器２５〜２８に与えられる。そして、その頂点を含むポリゴン辺の左辺に対応して求められたエラー項パラメータＥＲＲ＃がＤＤＡ演算器２９に、前記頂点を含むポリゴン辺の右辺に対応して求められたエラー項パラメータＥＲＲ＃がＤＤＡ演算器３０に与えられる。例えば、図４に示すような三角形ＡＢＣのポリゴンの場合は、頂点Ａのポリゴンデータ（ＳＸ０，ＳＹ０，ＳＺ０，ＣＬ０）がＤＤＡ演算器２５〜ＤＤＡ演算器２８に与えられ、左辺ＡＢに対するエラー項パラメータＥＲＲ０がＤＤＡ演算器２９に与えられ、右辺ＢＣに対するエラー項パラメータＥＲＲ２がＤＤＡ演算器３０に与えられる。
【００８１】
そして、ＤＤＡ演算器２９，３０は、レジスタＤＥＲＬ，ＤＥＲＲにエラー項パラメータＥＲＲ＃に“−０．５”を加算した値を格納する。また、ＤＤＡ演算器２５，２６は、レジスタＤＳＹ，ＤＳＸにｙ座標ＳＹ＃，ｘ座標ＳＸ＃を格納する。
【００８２】
クロックサイクルＴ４において、３入力ＤＤＡ処理部１１のＤＤＡ演算器２５〜２８のレジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、左辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【００８３】
（“Ｌｅｆｔ”のＤＤＡ処理からの切り換え動作）
３入力ＤＤＡ処理部１１で“Ｌｅｆｔ”のＤＤＡ処理が行われる場合に、ＤＤＡ処理制御部１３は、後述する条件を満たすか否かを随時判断しており、条件を満たす場合に３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を後述するＤＤＡ処理に切り換える。
【００８４】
図８は、“Ｌｅｆｔ”のＤＤＡ処理から新たな“Ｌｅｆｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。“Ｌｅｆｔ”のＤＤＡ処理から新たな“Ｌｅｆｔ”のＤＤＡ処理への切り換えとは、図１６（ａ）に示すように２つの左辺ＡＢ，ＢＣが存在する場合に、左辺ＡＢに対して行っていたＤＤＡ処理から左辺ＢＣに対してのＤＤＡ処理に切り換えることである。
【００８５】
クロックサイクルＴ３において、ＤＤＡ処理制御部１３は、レジスタＤＥＲＬ，ＤＳＹ，ＤＳＸに格納された値、傾きパラメータ及びポリゴンデータなどに基づき、以下の６つの条件のうち少なくとも１つ満たすか否かを判断する。６つの条件について、図１６（ａ）を参照して説明を行う。
【００８６】
▲１▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｙ−ＭＡＪＥＲ”である。
▲２▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＷＩＲＥ”を示し、レジスタＤＥＲＬに格納された値が正である。
▲３▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＷＩＲＥ”を示し、レジスタＤＳＸに格納された値が頂点Ｂのｘ座標である。
▲４▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、レジスタＤＥＲＬに格納された値が正である。
▲５▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、レジスタＤＳＸに格納された値が頂点Ｂのｘ座標である。
▲６▼レジスタＤＳＹに格納された値が頂点Ｂのｙ座標を示し、且つ、左辺ＡＢの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、左辺ＡＢの方向が左向きである。
【００８７】
なお、ポリゴンが“ＳＯＬＩＤ”である場合は、図１７（ａ）に示すように、ポリゴン形状がソリッドモデルであることを示し、３入力ＤＤＡ処理部１１では、“Ｌｅｆｔ”のＤＤＡ処理、“Ｒｉｇｈｔ”のＤＤＡ処理及び“Ｍｉｄｄｌｅ”のＤＤＡ処理が行われ、左辺描画情報、右辺描画情報、及び辺線分情報間描画情報が求められる。ポリゴンが“ＷＩＲＥ”である場合は、図１７（ｂ）に示すように、ポリゴン形状がワイヤーフレームモデルであることを示し、３入力ＤＤＡ処理部１１では、“Ｌｅｆｔ”のＤＤＡ処理、及び“Ｒｉｇｈｔ”のＤＤＡ処理が行われ、左辺描画情報、及び右辺描画情報が求められるだけであり、辺線分情報間描画情報は求められない。このポリゴン形状は、ＣＰＵ２からポリゴンを幾何変換部３に与えるときに、ＣＰＵ２によって図示しないワークバッファ部のポリゴンタイプレジスタにセットされる。そして、ＤＤＡ処理制御部１３は、描画処理開始時に、図示しないワークバッファ部のポリゴンタイプレジスタからポリゴン形状を取り込み判断を行う。
【００８８】
ＤＤＡ処理制御部１３は、上述の条件のうち少なくとも１つを満たすと判断した場合に、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を新たな“Ｌｅｆｔ”のＤＤＡ処理へ切り換える。クロックサイクルＴ４において、ＤＤＡ演算器２９には、新たな左辺に対応した新たなエラー項パラメータＥＲＲ＃が与えられ、レジスタＤＥＲＬにそのエラー項パラメータＥＲＲ＃に“−０．５”を加算した値を格納する。また、ＤＤＡ演算器２６〜２８では、新たな頂点のポリゴンデータが与えられ、新たな“Ｌｅｆｔ”のＤＤＡ処理が行われる。例えば、ＤＤＡ演算器２６では、レジスタＤＳＸに新たな頂点のｘ座標ＳＸ＃が格納され、“Ｌｅｆｔ”のＤＤＡ処理が行われる。
【００８９】
クロックサイクルＴ５では、新たに“Ｌｅｆｔ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、左辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【００９０】
なお、クロックサイクルＴ４において、ポリゴンが“ＳＯＬＩＤ”を示す場合には、ＤＤＡ処理を切り換える前のクロックサイクルＴ３においてＤＤＡ処理された結果は、出力されない。一方、ポリゴンが“ＷＩＲＥ”を示す場合には、クロックサイクルＴ３においてＤＤＡ処理された結果は、ピクセルバッファ部１２を介してフレームメモリ５に出力される。その出力データ状態は、“Ｖ／ＮＶ”である。
【００９１】
図９は、ポリゴンの左辺の傾きパラメータがＸ−ＭＡＪＥＲを示す場合の“Ｌｅｆｔ”のＤＤＡ処理から“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【００９２】
ＤＤＡ処理制御部１３は、先ず、傾きパラメータがＸ−ＭＡＪＥＲであるか否かを判断し、傾きパラメータがＸ−ＭＡＪＥＲである場合に、レジスタＤＥＲＬ，ＤＳＹ，ＤＳＸに格納された値及びポリゴンデータに基づき、下記の“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えの２つの条件のうち少なくとも１つを満たすか否かを判断する。
▲１▼レジスタＤＥＲＬに格納された値が正である。
▲２▼レジスタＤＳＹに格納された値が最終ラインを示し、且つレジスタＤＳＸに格納された値が図１６（ａ）に示す三角形ＡＢＣの頂点Ｃのｘ座標と同じである。
【００９３】
ＤＤＡ処理制御部１３は、上記の条件のうち少なくとも１つを満たすと判断した場合に、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を“Ｒｉｇｈｔ”のＤＤＡ処理へ切り換える。クロックサイクルＴ６において、ＤＤＡ演算器２９は、クロックサイクルＴ５におけるレジスタＤＥＲＬの値に“−１”を加算した値をレジスタＤＥＲＬに格納する。ＤＤＡ演算器３０は、レジスタＤＥＲＲに格納されていた値と、右辺に対応するエラー項パラメータＥＲＲ＃とを加算し、その加算結果をレジスタＤＥＲＲに格納する。この場合、ＤＤＡ演算器２６は、レジスタＳＸＲに格納されていた値と、右辺の傾きに基づき選択した“１”、“０”又は“−１”のいずれか一つとを加算し、その加算結果をレジスタＤＳＸに格納する。また、他のＤＤＡ演算器２７，２８も“Ｒｉｇｈｔ”のＤＤＡ処理を行う。
【００９４】
そして、クロックサイクルＴ７では、Ｒｉｇｈｔ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、右辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【００９５】
図１０は、ポリゴンの左辺の傾きパラメータがＹ−ＭＡＪＥＲを示す場合の“Ｌｅｆｔ”のＤＤＡ処理から“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【００９６】
ＤＤＡ処理制御部１３は、先ず、傾きパラメータがＹ−ＭＡＪＥＲであるか否かを判断する。傾きパラメータがＹ−ＭＡＪＥＲである場合、ＤＤＡ処理制御部１３は、１水平ラインにおいて“Ｌｅｆｔ”のＤＤＡ処理を１回だけしか行わないように３入力ＤＤＡ処理部１１を制御する。従って、３入力ＤＤＡ処理部１１は、クロックサイクルＴ３で“Ｌｅｆｔ”のＤＤＡ処理を１回行うと、次のクロックサイクルＴ４では常に“Ｒｉｇｈｔ”のＤＤＡ処理を行う。
【００９７】
そして、クロックサイクルＴ４において、ＤＤＡ演算器２９は、レジスタＤＥＲＬの値が正である場合に、その値に“−１”を加算した値をレジスタＤＥＲＬに格納し、正ではない場合にレジスタＤＥＲＬに格納された値の変更を行わない。また、ＤＤＡ演算器３０は、レジスタＤＥＲＲに格納されていた値に右辺に対応するエラー項パラメータＥＲＲ＃を加算し、その加算結果をレジスタＤＥＲＲに格納する。この場合、ＤＤＡ演算器２６は、レジスタＳＸＲに格納されていた値と、右辺の傾きに基づき選択した“１”、“０”、又は“−１”のいずれか一つとを加算し、その加算結果をレジスタＤＳＸに格納する。また、他のＤＤＡ演算器２７，２８も“Ｒｉｇｈｔ”のＤＤＡ処理を行う。
【００９８】
クロックサイクルＴ５では、“Ｒｉｇｈｔ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが右辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【００９９】
（“Ｒｉｇｈｔ”のＤＤＡ処理からの切り換え動作）
３入力ＤＤＡ処理部１１で“Ｒｉｇｈｔ”のＤＤＡ処理が行われる場合に、ＤＤＡ処理制御部１３は、後述する条件を満たすか否かを随時判断しており、条件を満たす場合に３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を後述するＤＤＡ処理に切り換える。
【０１００】
図１１は、“Ｒｉｇｈｔ”のＤＤＡ処理から新たな“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。“Ｒｉｇｈｔ”のＤＤＡ処理から新たな“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えとは、図１６（ｂ）に示すように三角形ＡＢＣにおいて、２つの右辺ＡＣ，ＣＢが存在する場合に、右辺ＡＣに対して行っていたＤＤＡ処理から左辺ＣＢに対してのＤＤＡ処理に切り換えることである。
【０１０１】
ＤＤＡ処理制御部１３は、レジスタＤＥＲＲ，ＤＳＹ，ＤＳＸに格納された値、傾きパラメータ、ポリゴンデータ、及びポリゴン形状に基づき、以下の６つの条件のうち少なくとも１つを満たすか否かを判断する。６つの条件について、図１６（ｂ）を参照して説明を行う。
（１）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｙ−ＭＡＪＥＲ”である。
（２）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＷＩＲＥ”を示し、レジスタＤＥＲＲに格納された値が正である。
（３）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＷＩＲＥ”を示し、レジスタＤＳＸに格納された値が頂点Ｃのｘ座標である。
（４）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、レジスタＤＥＲＲに格納された値が正である。
（５）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、レジスタＤＳＸに格納された値が頂点Ｃのｘ座標である。
（６）レジスタＤＳＹに格納された値が頂点Ｃのｙ座標を示し、且つ、右辺ＡＣの傾きパラメータが“Ｘ−ＭＡＪＥＲ”であり、ポリゴンが“ＳＯＬＩＤ”を示し、右辺ＡＣの方向が右向きである。
【０１０２】
ＤＤＡ処理制御部１３は、これらの条件のうち少なくとも１つを満たすと判断した場合に、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を新たな“Ｒｉｇｈｔ”のＤＤＡ処理へ切り換える。クロックサイクルＴ４において、ＤＤＡ演算器３０には、新たな右辺に対応した新たなエラー項パラメータＥＲＲ＃が与えられ、レジスタＤＥＲＲにそのエラー項パラメータＥＲＲ＃に“−０．５”を加算した値を格納する。また、ＤＤＡ演算器２６〜２８には、処理されていた右辺と新たな右辺との間の頂点を示すポリゴンデータが与えられ、新たな“Ｒｉｇｈｔ”のＤＤＡ処理を行う。例えば、ＤＤＡ演算器２６は、新たなｘ座標ＳＸ＃が与えられると、新たな“Ｒｉｇｈｔ”のＤＤＡ処理を行い、レジスタＤＳＸにｘ座標ＳＸ＃を格納する。
【０１０３】
クロックサイクルＴ５では、新たな“Ｒｉｇｈｔ”のＤＤＡ処理が行われ、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、右辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【０１０４】
なお、ポリゴンが“ＳＯＬＩＤ”を示す場合には、クロックサイクルＴ３においてＤＤＡ処理された値は出力されない。一方、ポリゴンが“ＷＩＲＥ”を示す場合には、クロックサイクルＴ３においてＤＤＡ処理された値は、ピクセルバッファ部１２を介してフレームメモリに出力される。その出力データ状態は“Ｖ／ＮＶ”である。
【０１０５】
図１２は、ポリゴンの右辺の傾きパラメータがＸ−ＭＡＪＥＲを示す場合の“Ｒｉｇｈｔ”のＤＤＡ処理から“Ｍｉｄｄｌｅ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【０１０６】
ＤＤＡ処理制御部１３は、先ず、右辺の傾きパラメータがＸ−ＭＡＪＥＲであるか否かを判断し、傾きパラメータがＸ−ＭＡＪＥＲである場合に、レジスタＤＥＲＲ，ＤＳＹ，ＤＳＸに格納された値及びポリゴンデータに基づき、下記の“Ｍｉｄｄｌｅ”のＤＤＡ処理への切り換え条件である２つの条件うち少なくとも１つを満たすか否かを判断する。
▲１▼レジスタＤＥＲＬに格納された値が正である。
▲２▼レジスタＤＳＹに格納された値が最終ラインを示し、且つレジスタＤＳＸに格納された値が図１６（ｂ）に示すような三角形ＡＢＣの頂点Ｂのｘ座標である。
【０１０７】
ＤＤＡ処理制御部１３は、上記の２つの条件のうち少なくとも１つ満たすと判断した場合に、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を“Ｍｉｄｄｌｅ”のＤＤＡ処理へ切り換える。クロックサイクルＴ６において、ＤＤＡ演算器３０は、クロックサイクルＴ５におけるレジスタＤＥＲＲの値に“−１”を加算した値をレジスタＤＥＲＲに格納する。この場合、ＤＤＡ演算器２６は、レジスタＳＸＭに格納されていた値に“１”を加算し，その加算結果をレジスタＤＳＸに格納する。また、他のＤＤＡ演算器２７，２８も“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う。
【０１０８】
そして、クロックサイクルＴ７では、“Ｍｉｄｄｌｅ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、辺線分情報間描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【０１０９】
図１３は、ポリゴンの右辺の傾きパラメータがＹ−ＭＡＪＥＲを示す場合の“Ｒｉｇｈｔ”のＤＤＡ処理から“Ｍｉｄｄｌｅ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【０１１０】
ＤＤＡ処理制御部１３は、先ず、傾きパラメータがＹ−ＭＡＪＥＲであるか否かを判断する。傾きパラメータがＹ−ＭＡＪＥＲである場合、ＤＤＡ処理制御部１３は、１水平ラインにおいて“Ｒｉｇｈｔ”のＤＤＡ処理を１回だけしか行わないように３入力ＤＤＡ処理部１１を制御する。従って、３入力ＤＤＡ処理部１１は、クロックサイクルＴ３で“Ｒｉｇｈｔ”のＤＤＡ処理を１回行うと、次のクロックサイクルＴ４では常に“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う。
【０１１１】
そして、クロックサイクルＴ４において、ＤＤＡ演算器３０は、レジスタＤＥＲＲの値が正である場合に、その値に“−１”を加算した値をレジスタＤＥＲＲに格納し、正ではない場合にレジスタＤＥＲＲに格納された値をそのまま維持する。この場合、ＤＤＡ演算器２６は、レジスタＳＸＭに格納されていた値に“１”を加算し、その加算結果をレジスタＤＳＸに格納する。また、他のＤＤＡ演算器２７，２８も“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う。
【０１１２】
そして、クロックサイクルＴ５では、“Ｍｉｄｄｌｅ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、辺線分情報間描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【０１１３】
（“Ｍｉｄｄｌｅ”のＤＤＡ処理から動作）
図１４は、“Ｍｉｄｄｌｅ”のＤＤＡ処理から“Ｌｅｆｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。３入力ＤＤＡ処理部１１が“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う場合に、ＤＤＡ処理制御部１３は、“Ｌｅｆｔ”のＤＤＡ処理への下記の３つの切り換えの条件の少なくとも１つを満たすか否かを随時判断している。
▲１▼ポリゴンが“ＷＩＲＥ”である。
▲２▼レジスタＤＳＸに格納された値がレジスタＳＸＥに格納された値以上である。
▲３▼レジスタＤＳＸに格納された値がＣＲＴ６のｘ方向のスクリーン座標の最大値ＸＥＮＤ以上である。
【０１１４】
ＤＤＡ処理制御部１３は、上述の３つの条件のうち少なくとも１つを満たすと判断した場合に、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を“Ｍｉｄｄｌｅ”のＤＤＡ処理から“Ｌｅｆｔ”のＤＤＡ処理に切り換える。これによって、１水平ラインのＤＤＡ処理が終了し、次の１水平ラインにおけるＤＤＡ処理が行われる。切り換えられた後、クロックサイクルＴ６において、ＤＤＡ演算器２５は、レジスタＤＳＹに格納されていた値に“１”を加算し、その加算結果をレジスタＤＳＹに格納する。この場合、ＤＤＡ演算器２６は、レジスタＳＸＬに格納されていた値と、左辺の傾きに基づき選択した“１”、“０”、又は“−１”のいずれか一つとを加算し、その加算結果をレジスタＤＳＸに格納する。また、他のＤＤＡ演算器２７，２８も“Ｌｅｆｔ”のＤＤＡ処理を行う。
【０１１５】
そして、クロックサイクルＴ５では、“Ｌｅｆｔ”のＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ値、及びカラーデータが、左辺描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この場合の出力データ状態は、“Ｖ／ＮＶ”である。
【０１１６】
（１つのポリゴンにおけるＤＤＡ処理の終了動作）
図１５は、１つのポリゴンにおけるＤＤＡ処理の終了の条件と終了時のＤＤＡ処理状態とを示したタイムチャートである。上述したように“Ｍｉｄｄｌｅ”のＤＤＡ処理が、１水平ラインの最後の処理となる。従って、３入力ＤＤＡ処理部１１が“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う場合に、ＤＤＡ処理制御部１３は、随時下記の２つの終了条件のうち少なくとも１つを満たすかどうかの判断を行っている。
【０１１７】
▲１▼レジスタＤＳＹに格納された値が最終ラインのｙ座標を示し、且つ、レジスタＤＳＸに格納された値がレジスタＳＸＥに格納された値と同じである。
▲２▼レジスタＤＳＹに格納された値が最終ラインのｙ座標を示し、且つ、レジスタＤＳＸに格納された値がＣＲＴ６のスクリーン座標のｘ方向の最大値ＸＥＮＤである。
【０１１８】
ＤＤＡ処理制御部１３は、上述の２つの条件のうち少なくとも１つ満たすと判断した場合に、３入力ＤＤＡ処理部１１でのＤＤＡ処理を終了する。そして、クロックサイクルＴ４では、最後にＤＤＡ処理され、レジスタＳＸ，ＳＹ，ＤＳＺ，及びＤＣＬに格納されたｘ座標、ｙ座標、ｚ座標、及びカラーデータが、線分情報間描画情報としてピクセルバッファ部１２を介してフレームメモリ５に出力される。この出力データ状態は“Ｖ／ＮＶ”である。そして、与えられたポリゴンを構成する描画情報の算出が終了する。また、ここで示す最終ラインとは、そのポリゴンの最大ｙ座標及びＣＲＴ６のスクリーン座標のｙ方向の最大値ＹＥＮＤである。
【０１１９】
次に、本実施の形態のポリゴンの具体的な描画処理動作について図４を参照して説明する。図１８は、図４に示すポリゴンを構成する描画情報を算出するためのＤＤＡ処理動作を具体的に示すタイムチャートである。図１９は、図１８に示すＤＤＡ処理動作を引き続いて示すタイムチャートである。
【０１２０】
３入力ＤＤＡ処理部１１にてＤＤＡ処理を行うまでに（クロックサイクルＴ２までに）、パラメータ計算部１０にて演算が行われ、前述のパラメータが算出される。そして、クロックサイクルＴ２が立ち上がるときに、パラメータ計算部１０で算出された差分値ΔＳＺＸ，ΔＳＺＹ，ΔＣＬＸ，ΔＣＬＹと、左辺ＡＢ，ＢＣ、及び右辺ＡＣに対するエラー項パラメータＥＲＲ０，ＥＲＲ１，ＥＲＲ２とポリゴンデータとが３入力ＤＤＡ処理部１１に与えられる。また、パラメータ計算部１０は、左辺ＡＢ，ＢＣの傾きパラメータをＸ−ＭＡＪＥＲと設定し、右辺ＡＣの傾きパラメータをＹ−ＭＡＪＥＲと設定し、さらに、左辺ＡＢの傾きを右下がり（正）と設定し、左辺ＢＣ及び右辺ＡＣの傾きを左下がり（負）と設定する。設定された傾きパラメータ及びポリゴン辺の傾きは、図示しないワークバッファ部に格納される。
【０１２１】
クロックサイクルＴ３において、頂点Ａ（白丸０）のｙ座標（ＳＹ０）、ｘ座標（ＳＸ０）がＤＤＡ演算器２５，２６に与えられ、各ＤＤＡ演算器２５，２６は、“Ｌｅｆｔ”のＤＤＡ処理を行い、その結果をレジスタＤＳＹ，ＤＳＸに格納する。また、ＤＤＡ演算器２９は、左辺ＡＢのエラー項パラメータＥＲＲ０に“−０．５”を加算した値をレジスタＤＥＲＬに格納し、ＤＤＡ演算器３０は、右辺ＡＣのエラー項パラメータＥＲＲ２に“−０．５”を加算した値をレジスタＤＥＲＲに格納する。
【０１２２】
クロックサイクルＴ４において、各ＤＤＡ演算器２５，２６のレジスタＤＳＹ，ＤＳＸに格納された値は、レジスタＳＹ，ＳＸに格納される。ＤＤＡ演算器２７，２８に頂点Ａ（白丸０）のｚ値（ＳＺ０）、カラーデータ（ＣＬ０）がそれぞれ与えられ、各ＤＤＡ演算器２７，２８は、“Ｌｅｆｔ”のＤＤＡ処理を行い、その結果をレジスタＤＳＺ，ＤＣＬに格納する。そして、レジスタＳＹ，ＳＸ，ＤＳＺ，ＤＣＬに格納された値が、前記頂点Ａ（白丸０）のｙ座標、ｘ座標、ｚ値、及びカラーデータを示す描画情報（Ｄ０）としてピクセルバッファ部１２を介してフレームメモリ５に格納される。
【０１２３】
また、クロックサイクルＴ４では、ＤＤＡ処理制御部１３は、“Ｌｅｆｔ”のＤＤＡ処理における切り換え条件を満さないと判断し、引き続き“Ｌｅｆｔ”のＤＤＡ処理を行うように３入力ＤＤＡ処理部１１を制御する。ＤＤＡ演算器２５，２６は、各レジスタＤＳＹ，ＤＳＸに格納された値によって、“Ｌｅｆｔ”のＤＤＡ処理を行い、その結果を各レジスタＤＳＹ，ＤＳＸに格納する。ＤＤＡ演算器２５は、レジスタＤＳＹに白丸０のｙ座標をそのまま格納し、ＤＤＡ演算器２６は、レジスタＤＳＸに白丸０のｘ座標から１減算した値を格納する。また、ＤＤＡ演算器２９は、レジスタＤＥＲＬに格納されていた値とエラー項パラメータＥＲＲ０とを加算し、その加算結果をレジスタＤＥＲＬに格納する。
【０１２４】
そして、クロックサイクルＴ５において、ＤＤＡ演算器２５，２６の各ＤＤＡ演算器２５，２６のレジスタＤＳＹ，ＤＳＸに格納された値は、レジスタＳＹ，ＳＸに格納される。また、各ＤＤＡ演算器２７，２８は、各レジスタＤＳＹ，ＤＳＸに格納された値によって、“Ｌｅｆｔ”のＤＤＡ処理を行う。ＤＤＡ演算器２７，２８は、ＤＤＡ処理制御部１３にてＹＥＮ信号がローレベルに設定され、ＸＥＮ信号及びＸＮＤ信号がハイレベルに設定されるので、レジスタＤＳＺ，ＤＣＬに格納されていた値からΔＳＺＸ及びΔＣＬＸを減算した値をレジスタＤＳＺ，ＤＣＬに格納する。そして、レジスタＳＹ，ＳＸ，ＤＳＺ，ＤＣＬに格納された値が、白丸１のｙ座標、ｘ座標、ｚ値、及びカラーデータを示す描画情報（Ｄ１）としてピクセルバッファ部１２を介してフレームメモリ５に格納される。
【０１２５】
また、クロックサイクルＴ５において、ＤＤＡ処理制御部１３は、“Ｌｅｆｔ”のＤＤＡ処理から“Ｒｉｇｈｔ”のＤＤＡ処理への切り換えの条件を満たすと判断し、３入力ＤＤＡ処理部１１にて行われるＤＤＡ処理を“Ｒｉｇｈｔ”のＤＤＡ処理に切り換える。各ＤＤＡ演算器２５，２６には、頂点Ａ（白丸２：白丸０）のｙ座標（ＳＹ０），ｘ座標（ＳＸ０）が与えられ、各ＤＤＡ演算器２５，２６は、“Ｒｉｇｈｔ”のＤＤＡ処理を行い、その結果をレジスタＤＳＹ，ＤＳＸに格納する。この場合、ＤＤＡ演算器２９は、レジスタＤＥＲＬに格納された値と“−１”とを加算するＤＤＡ処理を行い、その結果をレジスタＤＥＲＬに格納する。
【０１２６】
クロックサイクルＴ６において、各ＤＤＡ演算器２５，２６のレジスタＤＳＹ，ＤＳＸに格納された値は、レジスタＳＹ，ＳＸに格納される。ＤＤＡ演算器２７，２８には、頂点Ａ（白丸２：白丸０）のｚ値（ＳＺ０）、カラーデータ（ＣＬ０）が与えられ、ＤＤＡ演算器２７，２８は、“Ｒｉｇｈｔ”のＤＤＡ処理を行い、その結果をレジスタＤＳＺ，ＤＣＬに格納する。そして、レジスタＳＹ，ＳＸ，ＤＳＺ，ＤＣＬに格納された値が、白丸２（白丸０）のｙ座標、ｘ座標、ｚ値、及びカラーデータを示す描画情報（Ｄ２）としてピクセルバッファ部１２を介してフレームメモリ５に格納される。
【０１２７】
また、クロックサイクルＴ６では、右辺ＡＣの傾きパラメータはＹ−ＭＡＪＥＲであるので、ＤＤＡ処理制御部１３は、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を“Ｒｉｇｈｔ”のＤＤＡ処理から“Ｍｉｄｄｌｅ”のＤＤＡ処理に切り換える。さらに、このクロックサイクルＴ６において、ＤＤＡ処理制御部１３は、“Ｌｅｆｔ”のＤＤＡ処理への切り換えの条件を満たすと判断するので、３入力ＤＤＡ処理部１１で行われるＤＤＡ処理を“Ｍｉｄｄｌｅ”のＤＤＡ処理から“Ｌｅｆｔ”のＤＤＡ処理に切り換える。これによって、このクロックサイクルＴ６において、３入力ＤＤＡ処理部１１では、“Ｍｉｄｄｌｅ”のＤＤＡ処理が実際には行われない。
【０１２８】
クロックサイクルＴ７〜Ｔ１２では、次の水平ラインについて、上述したような“Ｌｅｆｔ”→“Ｒｉｇｈｔ”→“Ｍｉｄｄｌｅ”の順番でＤＤＡ処理が行われる。即ち、図４に示す白丸及び黒丸３〜７の描画情報であるｙ座標、ｘ座標、ｚ値及びカラーデータが求められる。このように、３入力ＤＤＡ処理部１１では、水平ラインごとに、三角形ＡＢＣのポリゴンを構成する１画素単位の描画情報を示す白丸及び黒丸０〜７８のｙ座標、ｘ座標、ｚ値及びカラーデータがそれぞれ求められる。
【０１２９】
上述の本実施の形態では、１つのポリゴンに対する描画処理によって生じる無駄サイクルは、図４に示すように、白丸０（２）及び白丸７７（７８）の同じ部分のＤＤＡ処理を行う２つのサイクルと、白丸（２）から白丸３のＤＤＡ処理の切り換え及び白丸（７８）のＤＤＡ処理の終了の判断における“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う２つのサイクルと、白丸３４から白丸３５の“Ｌｅｆｔ”のＤＤＡ処理から新たな“Ｌｅｆｔ”のＤＤＡ処理に切り換える場合のサイクルとの計５サイクルだけである。従って、１つのポリゴンの描画情報を算出する場合に無駄サイクルが殆ど生じないので、効率的に処理することができ、描画処理全体の処理速度を向上させることもできる。
【０１３０】
また、本実施の形態におけるＤＤＡ演算器２７には、３入力加算器を用いているので、ｘ方向に対する差分値ΔＳＺＸとｙ方向に対する差分値ΔＳＺＹとを同時に加算することができる。従って、従来技術で用いられていた２入力加算器では２サイクル要していた処理を１サイクルで行うことができるので、処理時間をより短縮させることができる。
【０１３１】
本実施の形態の描画処理部４と図２２及び図２６に示す従来技術の描画処理部との回路規模を比較するために、以下に描画処理部に形成されるゲート数を計数する。なお、本実施の形態及び図２２及び図２６に示す従来技術のバス幅は１６ビットとする。１６ビットのデータを格納するレジスタを構成する１ビットのデータを格納するフリップフロップを６ゲートとし、１ビット対応の２入力マルチプレクサを３ゲートとし、１ビット対応の３入力マルチプレクサを５ゲートとし、１ビット対応の４入力マルチプレクサを６ゲートとし、１ビット対応の２入力ＡＮＤ回路を２ゲートとし、１ビット対応の２入力ＸＮＯＲ回路を３ゲートとする。また、１６ビットの２入力加算器を１００ゲートとし、１６ビットの３入力加算器を１５０ゲートとする。
【０１３２】
先ず、ブレゼンハム法を用いた描画処理を行う本実施の形態の描画処理部４と図２６に示す従来技術の描画処理部とを比較する。本実施の形態の描画処理部４は、７１５６ゲートと１つの演算部１６とで構成され、図２６に示す従来技術に係る描画処理部は、７７６０ゲートと１つの演算部１５１とで構成される。本実施の形態の演算部１６と従来技術の演算部１５１とは、同様の処理を行うので、ほぼ同一の回路規模である。また、本実施の形態及び図２６に示す従来技術の制御装置は、ブレゼンハム法を用いて描画処理を行うので、描画処理に必要な傾きパラメータ及びポリゴン辺の方向を格納するバッファ等が構成され、回路規模はほぼ同一である。従って、本実施の形態の描画処理部４の方が、図２６に示す従来技術よりも回路規模を小さくすることができる。次に、図２２に示す従来技術の描画処理部は、８００８ゲートと２つの演算部１１６，１３２とで構成される。本実施の形態の演算部１６は、従来技術の２つの演算部１１６，１３２よりも回路規模が小さい。図２２に示す従来技術の制御装置は、ブレゼンハム法による描画処理を行わないので、ブレゼンハム法の傾きパラメータ及びポリゴン辺の方向を格納するバッファ等は必要ない。この点、本実施の形態の方がバッファ分回路規模が大きくなる。しかし、このバッファは、傾きパラメータ及びポリゴン辺を格納する領域があれば十分であり、全体として見れば本実施の形態の回路規模は図２１に示す従来技術よりも小さい。
【０１３３】
また、本発明の実施の形態にかかる描画処理部４では、ポリゴン形状は、ソリッドモデルであってもよく、ポリゴン辺だけで構成されるワイヤーフレームモデルであってもよい。ポリゴン形状がワイヤーフレームモデルである場合は、ＤＤＡ処理制御部１３は、“Ｍｉｄｄｌｅ”のＤＤＡ処理を行わずに、“Ｌｅｆｔ”のＤＤＡ処理と、“Ｒｉｇｈｔ”のＤＤＡ処理とを交互に行って描画情報を求めるように３入力ＤＤＡ処理部１１を制御する。従来技術では、ワイヤーフレームモデルを描画するために回路を追加する必要があったが、本実施の形態では、回路を追加させることなく、描画処理を行うことができる。
【０１３４】
また、図２０に示すように、三角形ＡＢＣを示すポリゴンと三角形ＡＤＣを示すポリゴンとが隣接することで四角形ＡＢＣＤを示すポリゴンが形成されるような場合に、ＤＤＡ処理制御部１３は、ポリゴン辺ＡＣ（黒丸部分）を重複してピクセルバッファ部１２へ描画情報を転送することがないように制御するようにしてもよい。この場合、ＤＤＡ処理制御部１３が“Ｌｅｆｔ”又は“Ｒｉｇｈｔ”の出力データ状態を常に“ＮＶ”にするだけでよい。これにより、重複描画を防げるので、描画処理全体の処理速度をより向上させることができる。
【０１３５】
また、本実施の形態では、ＤＤＡ処理制御部１３が、３入力ＤＤＡ処理部１３で行われるＤＤＡ処理を“Ｌｅｆｔ”のＤＤＡ処理、“Ｒｉｇｈｔ”のＤＤＡ処理、又は“Ｍｉｄｄｌｅ”のＤＤＡ処理で切り換えるように制御して、ポリゴンを構成する描画情報を求めるようにしたが、“Ｌｅｆｔ”のＤＤＡ処理を行う手段と、“Ｒｉｇｈｔ”のＤＤＡ処理を行う手段と、“Ｍｉｄｄｌｅ”のＤＤＡ処理を行う手段とをそれぞれ設け、ポリゴンを構成する１画素単位の描画情報を求めるようにしてもよい。
【０１３６】
また、本実施の形態では、ＤＤＡ処理制御部１３は、３入力ＤＤＡ処理部１１で行われる処理を“Ｌｅｆｔ”のＤＤＡ処理→“Ｒｉｇｈｔ”のＤＤＡ処理→“Ｍｉｄｄｌｅ”のＤＤＡ処理の順番で切り換えるように制御したがこの順番に限らず、例えば、“Ｒｉｇｈｔ”のＤＤＡ処理→“Ｌｅｆｔ”のＤＤＡ処理→“Ｍｉｄｄｌｅ”のＤＤＡ処理の順番に切り換えるようにしてもよい。
【０１３７】
また、本実施の形態では、３入力ＤＤＡ処理部１１において、レジスタＳＸＭに“Ｌｅｆｔ”のＤＤＡ処理におけるｘ座標の最大値を示す値を格納し、レジスタＳＭ，ＣＭにも、前記レジスタＳＸＭに格納されたｘ座標におけるｚ値及びカラーデータを格納する。そして、“Ｍｉｄｄｌｅ”のＤＤＡ処理では、前記レジスタＳＸＭ，ＳＭ，ＣＭに格納された値に基づいて、辺線分情報間が補間され、辺線分情報間描画情報が算出される。即ち、３入力ＤＤＡ処理部１１で行われる“Ｍｉｄｄｌｅ”のＤＤＡ処理では、左辺描画情報に基づき辺線分情報間が補間され、辺線分情報間描画情報が算出される。しかし、３入力ＤＤＡ処理部１１において、レジスタＳＸＭに“Ｒｉｇｈｔ”のＤＤＡ処理におけるｘ座標の最小値を示す値が格納し、レジスタＳＭ，ＣＭにも、前記ｘ座標におけるｚ値及びカラーデータを格納する構成にしてもよい。即ち、３入力ＤＤＡ処理部１１で行われる“Ｍｉｄｄｌｅ”のＤＤＡ処理では、“Ｒｉｇｈｔ”のＤＤＡ処理によって算出された右辺描画情報に基づいて、辺線分情報間を補間し、辺線分情報間描画情報を算出するように構成してもよい。
【０１３８】
また、本実施の形態では、左辺及び右辺を構成する辺線分情報をブレゼンハム法で補間したが、左辺及び右辺を構成する辺線分情報を他の方法で補間してもよく、前記方法に限定されない。
【０１３９】
また、本実施の形態では、図４に示すような三角形のポリゴンを構成する描画情報を求めたが、他の形状のポリゴン、例えば四角形のポリゴンであっても同様に求めることができる。
【０１４０】
また、ポリゴンを構成する描画情報はカラーデータを備えるように構成したが、カラーデータの代わりに明暗を示す輝度情報を備えるようにしてもよい。また、ポリゴンを構成する描画情報は、カラーデータを備えるように構成したが、カラーデータの代わりに、テクスチャーマッピングの座標データを備えるようにしてもよい。
【０１４１】
なお、上記描画処理部４で算出したｚ値は、Ｚバッファ法などによる陰面処理に用いられ、図１に示す３次元グラフィック処理装置のＣＲＴ６には、陰面処理され、表示されるポリゴンのみ表示される。
【０１４２】
【発明の効果】
上述の発明によれば、デジタル微分解析処理手段は、ポリゴン辺を構成する辺線分情報を補間し、その補間結果をそのまま１画素単位の描画情報として出力するので、無駄なサイクルの発生を防止することができる。また、従来技術の端点を求める処理時間分を短縮することができ、描画処理速度の向上を図ることができる。また、辺線分情報を求めるので、ポリゴンがどのような形であったとしても、歪んだりすることはない。
【０１４３】
また、制御手段は、左辺描画情報又は右辺描画情報を出力する処理を行ったデジタル微分解析処理手段を用いて、右辺描画情報又は左辺描画情報を出力する処理を行うので、回路規模を増大させることなく、ポリゴンを構成する左辺描画情報と右辺描画情報とを算出することができる。
【０１４４】
また、制御手段は、取り込まれたポリゴンをソリッド又はワイヤーフレームモデルとして描画する制御として、辺線分情報間を補間し出力するかしないかの簡単な制御のみで、全体の回路規模を増大させることなく処理することができる。
【０１４５】
また、制御手段は、取り込まれたポリゴンが処理されたポリゴンと隣接する場合、共有するポリゴン辺の左辺描画情報又は右辺描画情報を出力しないので、重複描画が行われないので、描画処理全体の速度をより向上させることができる。
【０１４６】
【図面の簡単な説明】
【図１】３次元グラフィック処理装置の一般的な構成を示すブロック図である。
【図２】本発明の実施の形態に係る３次元グラフィック処理装置の主要部の概略的な構成を示すブロック図である。
【図３】図２に示す描画処理部を構成するパラメータ算出部及び３入力ＤＤＡ部の概略的な構成を示した内部構成を示すブロック図である。
【図４】ポリゴンの具体的例を示す模式図である。
【図５】ポリゴン辺の傾きパラメータを説明するための模式図であり、（ａ）は傾きパラメータがＸ−ＭＡＪＥＲとなる場合を示し、（ｂ）は傾きパラメータがＹ−ＭＡＪＥＲとなる場合を示す。
【図６】本発明のＤＤＡ処理の基本的な処理手順を示したタイムチャートである。
【図７】本発明のＤＤＡ処理の開始状態を示したタイムチャートである。
【図８】“ｌｅｆｔ”のＤＤＡ処理から新たな“ｌｅｆｔ”のＤＤＡ処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図９】ポリゴンの左辺の傾きパラメータがＸ−ＭＡＪＥＲを示す場合の“ｌｅｆｔ”の処理から“ｒｉｇｈｔ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１０】ポリゴンの左辺の傾きパラメータがＹ−ＭＡＪＥＲを示す場合の“ｌｅｆｔ”の処理から“ｒｉｇｈｔ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１１】“ｒｉｇｈｔ”の処理から新たな“ｒｉｇｈｔ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１２】ポリゴンの右辺の傾きパラメータがＸ−ＭＡＪＥＲを示す場合の“ｒｉｇｈｔ”の処理から“ｍｉｄｄｌｅ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１３】ポリゴンの右辺の傾きパラメータがＹ−ＭＡＪＥＲを示す場合の“ｌｅｆｔ”の処理から“ｒｉｇｈｔ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１４】“ｍｉｄｄｌｅ”の処理から“ｌｅｆｔ”の処理への切り換えの条件と切り換え時のＤＤＡ処理状態を示したタイムチャートである。
【図１５】ＤＤＡ処理の終了の条件と終了時のＤＤＡ処理状態とを示したタイムチャートである。
【図１６】ポリゴンを構成するポリゴン辺の状態を示す模式図であり、（ａ）は、ポリゴン辺が２つの左辺と１つの右辺となる状態を示し、（ｂ）は、ポリゴン辺が１つの左辺と２つの右辺と状態を示す。
【図１７】ポリゴンの形状を示す模式図であり、（ａ）は、ポリゴンの形状がソリッドモデルを示し、（ｂ）は、ポリゴンの形状がワイヤーフレームモデルを示す。
【図１８】本発明の実施の形態に係る描画処理部において、図４に示すポリゴンを構成する描画情報を算出するためのＤＤＡ処理動作を具体的に示すタイムチャートである。
【図１９】図１８に示すＤＤＡ処理動作を引き続いて示すタイムチャートである。
【図２０】ポリゴンが隣接する場合の一具体例を示したブロック図である。
【図２１】従来技術に係る３次元グラフィック処理装置の描画処理部の内部構成を概略的に示したブロック図である。
【図２２】図２１に示す描画処理部の内部構成を具体的に示した模式図である。
【図２３】図２１に示す描画処理部で描画処理されたポリゴンの一具体例を示す図であり、（ａ）は、描画処理されたポリゴンの全体的な構成を示し、（ｂ）は描画処理された１水平ラインの構成を示す。
【図２４】図２１に示す描画処理部によって処理された場合のポリゴンの表示状態を示す図であり、（ａ）は、ポリゴン辺が水平ラインから少し傾いた場合の表示状態を示し、（ｂ）は、ポリゴンの一端が尖っている場合の表示状態を示す。
【図２５】他の従来技術に係る３次元グラフィック処理装置の描画処理部の内部構成を概略的に示したブロック図である。
【図２６】図２５に示す描画処理部の内部構成を具体的に示したブロック図である。
【図２７】図２５に示す描画処理部が描画処理されたポリゴンの一具体例を示す図であり、（ａ）は、描画処理されたポリゴンの全体的な構成を示し、（ｂ）は描画処理された１水平ラインの構成を示す。
【図２８】図２５に示す描画処理部によって処理された場合のポリゴンの表示状態を示す図であり、（ａ）は、ポリゴン辺が水平ラインから少し傾いた場合の表示状態を示し、（ｂ）は、ポリゴンの一端が尖っている場合の表示状態を示す。
【図２９】図２１に示す描画処理部の処理動作を説明するための模式図であり、（ａ）は、前記描画処理部に処理されるポリゴンの一具体例を示し、（ｂ）は前記描画処理部における処理時間を示す。
【図３０】図２５に示す描画処理部の処理動作を説明するための模式図であり、（ａ）は、前記描画処理部に処理されるポリゴンの一具体例を示し、（ｂ）は前記描画処理部における処理時間を示す。
【符号の説明】
１０  パラメータ計算部
１１  ３入力ＤＤＡ処理部
１２  ピクセルバッファ部
１５  データ格納部
１６  演算部
１７  パラメータ格納部
２０  データ・パラメータ格納部
２１  ＤＤＡ処理群
２５〜３０  ＤＤＡ演算器
【図１】
0003712536.tif 000002
【図２】
0003712536.tif 000003
【図３】
0003712536.tif 000004
【図４】
0003712536.tif 000005
【図５】
0003712536.tif 000006
【図６】
0003712536.tif 000007
【図７】
0003712536.tif 000008
【図８】
0003712536.tif 000009
【図９】
0003712536.tif 000010
【図１０】
0003712536.tif 000011
【図１１】
0003712536.tif 000012
【図１２】
0003712536.tif 000013
【図１３】
0003712536.tif 000014
【図１４】
0003712536.tif 000015
【図１５】
0003712536.tif 000016
【図１６】
0003712536.tif 000017
【図１７】
0003712536.tif 000018
【図１８】
0003712536.tif 000019
【図１９】
0003712536.tif 000020
【図２０】
0003712536.tif 000021
【図２１】
0003712536.tif 000022
【図２２】
0003712536.tif 000023
【図２３】
0003712536.tif 000024
【図２４】
0003712536.tif 000025
【図２５】
0003712536.tif 000026
【図２６】
0003712536.tif 000027
【図２７】
0003712536.tif 000028
【図２８】
0003712536.tif 000029
【図２９】
0003712536.tif 000030
【図３０】
0003712536.tif 000031