JP4042377B2 - Image processing apparatus, image processing method, and computer program - Google Patents

Image processing apparatus, image processing method, and computer program Download PDF

Info

Publication number
JP4042377B2
JP4042377B2 JP2001314691A JP2001314691A JP4042377B2 JP 4042377 B2 JP4042377 B2 JP 4042377B2 JP 2001314691 A JP2001314691 A JP 2001314691A JP 2001314691 A JP2001314691 A JP 2001314691A JP 4042377 B2 JP4042377 B2 JP 4042377B2
Authority
JP
Japan
Prior art keywords
processing unit
processing
unit region
region data
rectangular area
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
Application number
JP2001314691A
Other languages
Japanese (ja)
Other versions
JP2003123082A (en
Inventor
徹悟 稲田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001314691A priority Critical patent/JP4042377B2/en
Publication of JP2003123082A publication Critical patent/JP2003123082A/en
Application granted granted Critical
Publication of JP4042377B2 publication Critical patent/JP4042377B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、グラフィクス演算装置等の画像処理装置および画像処理方法、並びにコンピュータ・プログラムに関する。詳しくは、単位図形の連続描画処理を実行する構成において、描画処理の処理単位領域を複数の単位図形間で統合してまとめて処理を実行することにより、処理単位領域内に占める有効画素数を増やし、かつ、単位領域データ数を減らして、画像を効率的に描画することを可能とした画像処理装置および画像処理方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィクス」(CG)技術が盛んに研究・開発され、さらに実用化されている。
【0003】
例えば、3次元グラフィクスは、3次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、該モデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで3次元的な2次元高精細画像を生成するものである。コンピュータ・グラフィクスは、科学、工学、製造などの開発分野でのCAD/CAM、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【0004】
3次元グラフィクスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とで構成される。
【0005】
ジオメトリ・サブシステムは、ディスプレイ・スクリーン上に表示する3次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。ジオメトリ・サブシステムでは、一般に、オブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【0006】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル(pixel)を塗りつぶす過程のことである。ラスタライズ処理は、例えば、ポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。ここで言う画像パラメータには、RGB形式などで表される色(描画色)データ、奥行き方向の距離を表すZ値などがある。また、最近の高精細な3次元グラフィクス処理では、遠近感を醸し出すためのf(fog:霧)や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャt(texture)なども、画像パラメータの1つとして含まれている。
【0007】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセル発生処理では、よくDDA(Digital Differential Analyzer)と呼ばれる線形補間手法を用いて実行される。DDAプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向(X方向)の傾きを算出し、この傾きから求めたパラーメータの変化分を、走査の開始点のパラメータ値加えていくことで、内部のピクセルを発生していく。
【0008】
このとき、1ピクセル単位で走査を行う代わりに、領域単位で走査を行うことで、複数のピクセルを同時に発生する、という方法がある。その一つとして、特開平2000−338959号(特願11‐152702)公報に記載されているものがある。本公報に記載の方法は、ピクセルを矩形内の領域単位で発生して同時に処理を行い、矩形領域単位のピクセルをまとめて矩形領域データとして後段の処理へ渡すことで、ピクセルの描画速度を向上させたものである。
【0009】
【発明が解決しようとする課題】
しかし、例えば、立体モデルを単位図形であるポリゴン(三角形)の組み合わせとして表現し、このポリゴンの描画処理を、上述の矩形領域単位でのピクセル処理を適用して実行しようとすると、処理の効率が低下する場合がある。
【0010】
図15を参照して説明する。図15(a)に示すように、ピクセルの発生処理単位領域として4×2の矩形領域(例えば矩形領域501)が設定されているとする。このとき、描画処理対象である立体モデルの単位図形であるポリゴン(三角形)が図に示すように、ポリゴン502、ポリゴン503の2つを有するとする。
【0011】
ポリゴン502は、矩形領域501の左側の4ピクセルを描画領域として含み、また、ポリゴン503は、矩形領域501の右側の3ピクセルを描画領域として含む。このとき、従来の描画装置は、ポリゴン502を描画する時と、ポリゴン503を描画する場合とで、個別に処理することになる。従って、同一矩形、すなわち矩形領域501内に含まれるピクセルであっても、ポリゴン502を描画する時と、ポリゴン503を描画する場合との2回の処理を実行することになる。
【0012】
すなわち、図15(b)に示すように、ポリゴン502を描画する処理において、ピクセル発生の処理単位領域である矩形領域501内の4ピクセルについての処理が実行され、その後、図15(c)に示すように、ポリゴン503を描画する処理において、矩形領域501内の3ピクセルについての処理が実行されることになる。このように、実際は1つの矩形領域データにまとめることができるにもかかわらず、2つの矩形領域データが個別に生成されることになり、処理データ量が増加し、領域単位でのピクセル発生構成による処理効率の向上を阻害するという点で問題があった。
【0013】
図15に示す例は、ピクセルの発生単位領域内に2つのポリゴン(三角形)が含まれる場合の例であるが、さらに多くのポリゴン(三角形)が含まれる場合には、処理効率の低下という問題点は一層顕著になる。
【0014】
図16にピクセルの発生単位領域内に5つの単位図形としてのポリゴン(三角形)が含まれる場合の例を示す。図16において、ピクセルの発生単位領域として4×2の矩形領域(例えば矩形領域601)が設定されているとする。このとき、描画処理対象である立体モデルの単位図形であるポリゴンが図に示すように、ポリゴン611,612,623,614,615の5つあり、これらがすべて矩形領域601内に描画ピクセルを有するとする。
【0015】
このような場合、従来の描画装置では、各ポリゴン(三角形)ごとに処理がなされる。すなわち、図16(b)に示すように、ポリゴン611を描画する処理において、矩形領域601内の1ピクセルについての処理が実行され、その後、図16(c)に示すように、ポリゴン612を描画する処理において、矩形領域601内の2ピクセルについての処理が実行され、さらに、図16(d)に示すポリゴン613の描画処理において、矩形領域601内の1ピクセル、図16(e)に示すポリゴン614の描画処理において、矩形領域601内の1ピクセル、図16(f)に示すポリゴン615の描画処理において、矩形領域601内の3ピクセルについての処理が順次実行されることになる。
【0016】
このように、実際は1つの矩形領域データにまとめることができるにもかかわらず、5つの矩形領域データが個別に生成されることになり、処理データ量が増加し、領域単位でのピクセル発生構成による処理効率の向上を大きく阻害させてしまうという問題があった。
【0017】
本発明はこのような状況に鑑みてなされたものであり、単位図形の連続描画処理を実行する構成において、描画処理の処理単位領域を複数の単位図形間で統合してまとめて処理を実行することにより、処理単位領域内に占める有効画素数を増やし、かつ、単位領域データ数を減らして、画像を効率的に描画することを可能とした画像処理装置および画像処理方法、並びにコンピュータ・プログラム提供することを目的とする。
【0018】
【課題を解決するための手段】
本発明の第1の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、
前記処理単位領域データ生成手段は、並列処理可能な複数の処理単位領域データ生成手段によって構成され、
前記描画順決定手段は、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行する構成としたことを特徴とする画像処理装置にある。
【0020】
本発明の第2の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、
該描画順決定手段は、
1つの単位図形の描画処理手順を、先行処理単位図形との隣接部、非隣接部、後続処理単位図形との隣接部の順番として設定する処理を実行する構成であることを特徴とする画像処理装置にある。
【0021】
本発明の第3の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、
該描画順決定手段は、
単位図形の境界としての辺を含む領域の描画順を、時計回り、又は反時計回りいずれかのループ状に設定する構成であることを特徴とする画像処理装置にある。
【0022】
本発明の第4の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段を有し、
前記処理単位領域データ統合手段は、
前記処理単位領域データ生成手段において生成された処理単位領域データの持つ位置情報が同じで、かつ処理単位領域内の有効ピクセル位置が重複しないことを条件として複数の処理単位領域データを1つの処理単位領域データに統合する処理を実行する構成であることを特徴とする画像処理装置にある。
【0023】
本発明の第5の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、
前記処理単位領域データ生成手段において生成された処理単位領域データを記憶する単位領域データ記憶手段を有し、
前記処理単位領域データ統合手段は、前記単位領域データ記憶手段に記憶された複数の処理単位領域データの位置情報に基づいて統合可能性を判定する構成を有することを特徴とする画像処理装置にある。
【0024】
さらに、本発明の画像処理装置の一実施態様において、描画処理対象モデルは3次元モデルであり、前記単位図形はポリゴンであることを特徴とする。
【0025】
本発明の第6の側面は、
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定ステップを有し、
前記処理単位領域データ生成ステップは、並列処理可能な複数の処理単位領域データ生成手段によって実行され、
前記描画順決定ステップは、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行することを特徴とする画像処理方法にある。
【0027】
本発明の第7の側面は、
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成ステップにおける処理手順を決定する描画順決定ステップを有し、
該描画順決定ステップは、
1つの単位図形の描画処理手順を、先行処理単位図形との隣接部、非隣接部、後続処理単位図形との隣接部の順番として設定する処理を実行することを特徴とする画像処理方法にある。
【0028】
本発明の第8の側面は、
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成ステップにおける処理手順を決定する描画順決定ステップを有し、
該描画順決定ステップは、
単位図形の境界としての辺を含む領域の描画順を、時計回り、又は反時計回りいずれかのループ状に設定することを特徴とする画像処理方法にある。
【0029】
本発明の第9の側面は、
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップを有し、
前記処理単位領域データ統合ステップは、
前記処理単位領域データ生成ステップにおいて生成された処理単位領域データの持つ位置情報が同じで、かつ処理単位領域内の有効ピクセル位置が重複しないことを条件として複数の処理単位領域データを1つの処理単位領域データに統合する処理を実行することを特徴とする画像処理方法にある。
【0030】
本発明の第10の側面は、
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、
単位領域データ記憶手段が、前記処理単位領域データ生成ステップにおいて生成された処理単位領域データを記憶手段に記憶する単位領域データ記憶ステップを有し、
前記処理単位領域データ統合ステップは、前記単位領域データ記憶ステップにおいて記憶された複数の処理単位領域データの位置情報に基づいて統合可能性を判定することを特徴とする画像処理方法にある。
【0031】
さらに、本発明の画像処理方法の一実施態様において、描画処理対象モデルは3次元モデルであり、前記単位図形はポリゴンであることを特徴とする。
【0032】
本発明の第11の側面は、
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムであって、
処理単位領域データ生成手段に、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出させる処理単位領域データ生成ステップと、
処理単位領域データ統合手段に、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行させる処理単位領域データ統合ステップと、
描画順決定手段に、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定させる描画順決定ステップを有し、
前記処理単位領域データ生成ステップは、並列処理可能な複数の処理単位領域データ生成手段によって実行され、
前記描画順決定ステップは、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行させるステップであることを特徴とするコンピュータ・プログラムにある。
【0033】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0034】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0035】
【発明の実施の形態】
以下、本発明の画像処理装置について、図面を参照しながら詳細に説明する。なお、本実施形態においては、画像処理装置の具体例として、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRTなどのディスプレイ上に高速に表示する3次元コンピュータグラフィクスシステムについて説明する。描画処理対象モデルとしての3次元物体モデルを単位図形としてのポリゴンに分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう構成を持つ画像処理装置である。なお、本実施形態においては、単位図形を三角形のポリゴンとした例について説明するが、単位図形は三角形に限らず、例えば曲面を持つ構成等、任意の単位図形の採用が可能である。
【0036】
図1は、本実施形態の3次元コンピュータグラフィクスシステム1の構成図である。3次元コンピュータグラフィクスシステム1は、立体モデルを単位図形であるポリゴン(三角形)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。また、3次元コンピュータグラフィクスシステム1では、平面上の位置を表現する(x、y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x、y、z)の3つの座標で3次元空間の任意の一点を特定する。
【0037】
図1に示すように、3次元コンピュータグラフィクスシステム1は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4、レンダリング回路5が、メインバス6を介して接続されている。
【0038】
以下、各構成要素の機能について説明する。メインプロセッサ4は、例えば、I/Oインタフェース回路3を介するユーザ入力に基づく処理、あるいはプログラム処理状況、例えばゲームの進行状況などに応じて、メインメモリ2から必要なグラフィクスデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理、およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。
【0039】
メインプロセッサ4は、ポリゴンレンダリングデータをメインバス6を介してレンダリング回路5へ出力する。I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5へ出力する。ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点のx、y、z座標、色情報、フォグ(fog:霧)値、テクスチャ(texture)座標等を持つ。
【0040】
以下、レンダリング回路5について詳細に説明する。図1に示すように、レンダリング回路5は、DDAセットアップ回路11、トライアングルDDA回路12、テクスチャエンジン回路13、メモリインタフェース回路14、グラフィクスメモリ15、表示コントローラ回路16を有する。
【0041】
DDAセットアップ回路11は、メインバス6とトライアングルDDA回路12とに接続され、後段のトライアングルDDA回路12において、ポリゴンの3頂点の座標値、色、フォグ値、テクスチャ座標から、ピクセル毎に座標値、色、フォグ値、テクスチャ座標を求めるための前段の処理として、各値について、水平方向、垂直方向の変化分を求める。具体的には、開始点の値、終点の値、開始点と終点との距離の3つから、単位長さ分の変分(DDAセットアップデータ)を算出する。算出した値をトライアングルDDA回路12へ出力する。
【0042】
トライアングルDDA回路12は、DDAセットアップ回路11とテクスチャエンジン回路13とに接続され、ポリゴン描画順データにもとづく順番で、DDAセットアップ回路11から入力される値(DDAセットアップデータ)に基づいて、処理単位領域としての矩形領域内の複数のピクセルについて、座標値、色、フォグ値、テクスチャ座標をまとめて求める処理を行なう。本実施形態では、まとめて処理を行なう複数ピクセルを持つ領域、すなわち処理単位領域を2×4の8ピクセルの矩形領域とする。この複数ピクセルをあつめたデータを矩形領域データと呼ぶ。矩形領域データは、当該矩形領域データが描画される座標の位置情報を持つ。
【0043】
矩形領域データは、ポリゴンの境界付近を描画する場合には、矩形領域の中で有効なピクセルが8つとは限らない。すなわちポリゴン(三角形)の辺にまたがる部分にある処理単位領域としての2×4の8ピクセルの矩形領域中、ポリゴン(三角形)の内側にあるピクセルのみが有効ピクセルとなる。
【0044】
トライアングルDDA回路12は、矩形領域データが持つ位置情報をもとに、矩形領域データを統合できる場合にはデータの統合処理を行う。統合は、異なるポリゴン(三角形)に含まれる矩形領域データが、同じ位置情報を持ち、かつ、有効ピクセルが重複しない場合に行う。2つの矩形領域データが統合される場合を図2に、5つの矩形領域データが統合される場合を図3に示す。
【0045】
図2は、ポリゴン(三角形)111の描画領域に処理単位領域としての矩形領域121を含み、また、他のポリゴン(三角形)112の描画領域に処理単位領域としての矩形領域122が含まれる場合のトライアングルDDA回路12の処理例を示すものであり、トライアングルDDA回路12は、矩形領域121に対応する位置情報と、矩形領域122に対応する位置情報とが同じ位置情報である場合に、これらの2つの矩形領域データを統合して矩形領域120の矩形領域データを生成する。
【0046】
図3は、ポリゴン(三角形)131の描画領域に処理単位領域としての矩形領域141を含み、ポリゴン(三角形)132の描画領域に処理単位領域としての矩形領域142を含み、ポリゴン(三角形)133の描画領域に処理単位領域としての矩形領域143を含み、ポリゴン(三角形)134の描画領域に処理単位領域としての矩形領域144を含み、ポリゴン(三角形)135の描画領域に処理単位領域としての矩形領域145が含まれる場合のトライアングルDDA回路12の処理例を示すものであり、トライアングルDDA回路12は、各矩形領域141〜145に対応する位置情報が同じ位置情報である場合に、これらの5つの矩形領域データを統合した処理単位領域として、矩形領域140の矩形領域データを生成する。
【0047】
図4は、トライアングルDDA回路12の詳細構成図である。トライアングルDDA回路12は、描画順決定手段40、記憶手段49、矩形領域データ生成手段41、矩形領域データ生成手段42、隣接辺モードレジスタ43、隣接辺モードレジスタ44、モード終了レジスタ45、モード終了レジスタ46、矩形領域データ統合手段47、矩形領域データ記憶手段48を有する。
【0048】
描画順決定手段40は、DDAセットアップ回路11と矩形領域データ生成手段41、42とに接続され、DDAセットアップ回路11からの入力値(DDAセットアップデータ)に基づいて、後段の矩形領域データ生成手段41、42においての描画処理順を決定する処理を実行する。
【0049】
DDAセットアップ回路11からDDAセットアップデータを受領した描画順決定手段40は、受け取ったデータに基づいて、後段の矩形領域データ生成回路41、42において描画処理として実行される矩形領域データ生成処理の順番を決定する。
【0050】
描画順決定手段40においては、1つのポリゴンにおける描画順を、以下のように決定する。最初の処理領域は、描画処理対象のポリゴンより先に描画する先行処理ポリゴンとの隣接辺とする。次の処理領域は、ポリゴンにおいて、他のポリゴンとト隣接しない辺、およびポリゴン(三角形)を構成する3辺に囲まれた部分、最後の処理領域は、当該描画処理対象ポリゴンより後に描画する後続処理ポリゴンとの隣接辺とする。この順に描画順序を決定する。また、複数のポリゴンが隣接する辺の処理においては、隣接ポリゴン同士で辺を描画する方向が同じとなるようにポリゴン描画順データを生成する。
【0051】
描画順決定手段40において実行される描画順決定方法の具体的な処理例について説明する。例えば、ポリゴンの辺を描画する方向は、例えば図5のように3辺とも、時計回り、または反時計回りのいずれかになるように設定する。ポリゴンの描画順は、描画処理対象ポリゴンより先に描画する先行処理ポリゴンとの隣接辺の描画方向によって、一意に決まる。連続するポリゴンの描画順について、図6を用いて説明する。図6において、3つの隣接するポリゴン61,62,63の描画を行なう場合について説明する。これら3つのポリゴンをポリゴン61、ポリゴン62、ポリゴン63の順に描画する場合、ポリゴン61の描画が終了すると次のポリゴン62の描画が実行される。ポリゴン62の描画順は、先に描画する先行処理ポリゴン61との隣接辺64、隣接しない辺と3辺に囲まれた部分65、66、最後に、当該ポリゴンより後に描画する後続処理ポリゴンとの隣接辺67の順となる。
【0052】
このように1つのポリゴンの描画処理順は、先行処理ポリゴンとの隣接部、非隣接部、後続処理ポリゴンとの隣接部の順番とする。隣接しない辺と3辺に囲まれた部分65、66の2つの領域についての処理の順番は任意であり領域65を先に処理して領域66を後に処理、または逆になってもかまわない。また、領域65、領域66をまとめて描画してもかまわない。
【0053】
描画処理対象のポリゴンより先に描画する先行処理ポリゴンとの隣接辺を持たないが、描画処理対象のポリゴンより後に描画する後続処理ポリゴンと隣接辺を持つポリゴンにおける描画順は、描画処理対象のポリゴンより後に描画する後続処理ポリゴンとの隣接辺から決定する。先行処理ポリゴン、後続処理ポリゴン両方と隣接辺を持たない場合は、予め決められた順番、例えば、Y座標が最大の頂点からY座標が最小の頂点への描画を最初に行うように決定する。
【0054】
描画順決定手段40は、記憶手段49を有し、記憶手段49には、DDAセットアップ回路11から入力される各ポリゴンに対応するDDAセットアップデータと、そのポリゴンに対応して描画順決定手段40において算出され確定した描画順データ、または算出過程にある確定前の描画順データを記憶する。前述したように、ポリゴンの描画順を決定するためには、後続処理ポリゴンとの隣接辺の関係データが必要となる。したがって、記憶手段49は、描画順決定手段40に描画順を決定するために入力された描画順決定対象ポリゴンの1つ前の処理対象ポリゴンに関するDDAセットアップデータと確定前の仮の描画順データについても保持することになる。
【0055】
描画順決定手段40に対して、DDAセットアップ回路11から、描画処理対象の1つのポリゴンに対応するDDAセットアップデータが入力されると、まず、記憶手段49に記憶された先行処理ポリゴンとの隣接辺を調べ、入力されたDDAセットアップデータに対応する描画順データの算出が実行される。
【0056】
描画順データの算出は、前述のように、先行処理ポリゴンとの隣接部、非隣接部、後続処理ポリゴンとの隣接部の順番で決定されることになる。すなわち、後続するポリゴンとの隣接関係が明らかになることによって先行のポリゴンの描画処理手順が最終的に決定される。従って、記憶手段49に記憶されていた先行処理ポリゴンに対応するDDAセットアップデータと描画順データは、描画順決定手段40における後続のポリゴンの描画順の決定処理において、後続のポリゴンとの隣接辺を判明させることが必要となり、記憶手段49に格納されたポリゴンに対応する描画順データは、この後続のポリゴンの描画順算出処理の中で最終的に確定することになる。
【0057】
描画順決定手段40は、上記処理によって描画順データが確定し、記憶手段49に記憶されたDDAセットアップデータと確定した描画順データとを、矩形領域データ生成手段41または42へ出力する。さらに、描画順決定手段40は、矩形領域データ生成手段41または42へ出力されたデータに対応するポリゴンの次の処理ポリゴンに対応するDDAセットアップデータと、それに対応する仮決定の描画順データとを、記憶手段49に記憶し、さらにその後に、DDAセットアップ回路11から入力されるデータに基づいて、記憶手段49に記憶したポリゴンの描画順を確定して、確定した描画順データを矩形領域データ生成手段41または42へ出力する。描画順決定手段40は、これらの処理を繰り返し実行する。
【0058】
図4に示すトライアングルDDA回路内の処理単位領域データ生成を行なう矩形領域データ生成手段41、42は、それぞれが、矩形領域単位でポリゴンの走査を行い、矩形領域内のポリゴンの内部にある複数のピクセルについての座標値、色、フォグ値、テクスチャ座標等のピクセル属性値を処理単位領域データとして求める矩形領域データ生成を行う。走査は、任意の辺について任意の方向に、また、辺ではない部分についても行う。矩形領域データ生成手段41、42は、並列処理可能な処理単位領域データ生成手段である。ここでは、2つの並列処理可能な構成例を示すが3以上の並列処理可能な処理手段を有する構成としてもよい。
【0059】
矩形領域データ生成手段41、42において実行する矩形領域データ生成処理の具体例について図7を参照して説明する。各ポリゴンの描画はポリゴン内に含まれる1以上の処理単位領域としての矩形領域における処理単位領域データ、すなわち処理単位領域としての矩形領域に含まれるピクセルについての座標値、色、フォグ値、テクスチャ座標等のピクセル属性値を求める処理として行われる。図7に示すように、1つのポリゴン70に対して矩形領域71、72のように、複数の辺75,76に共有される場合があるが、矩形領域データ生成手段41、42は、1つのポリゴンにおいて、座標が重複することのない矩形領域データを生成する。
【0060】
例えば、辺を描画する場合には、辺の開始頂点を含む矩形領域から、辺の終了頂点を含む矩形領域の直前までの矩形領域データを生成すると決める。この規則に従うと、辺を描画する方向は、図5に示した様に時計回り、又は反時計回りいずれかのループ状になる。2辺に共有される処理単位領域としての矩形領域は、当該ループにおいて、前方を描画する辺として描画される。
【0061】
図8に矩形領域データの生成例を示す。辺を描画する方向は、図8の矢印に示すように、時計回りのループとして設定したものとする。矩形領域81は、辺82と辺83とに共有されている。この場合、辺82と辺83との関係において、時計回りのループの前方にある辺は辺83なので、矩形領域81は、辺83の一部として描画される。ポリゴンを構成する3辺に共有される矩形領域は、描画順が一番最初の辺として描画する。
【0062】
矩形領域データ生成手段41、42は、生成した矩形領域データを、矩形領域データ統合手段47へ出力する。矩形領域データは、前述したように、矩形領域内のポリゴンの内部にある複数のピクセルについての座標値、色、フォグ値、テクスチャ座標を持つ。
【0063】
図4に示すトライアングルDDA回路12内の隣接辺モードレジスタ43、44は、矩形領域データ生成手段41,42に接続され、接続している矩形領域データ生成手段41,42の処理対象が隣接辺なのか非隣接部なのかを示す値を保持する。隣接辺であれば「1」を保持し、非隣接であれば、「0」を保持する。隣接辺モードレジスタが「1」を保持する場合を、隣接辺モードといい、隣接辺モードレジスタが「0」を保持する場合を、非隣接モードという。
【0064】
図4に示すトライアングルDDA回路12内のモード終了レジスタ45、46は、矩形領域データ生成手段41,42に接続され、接続している矩形領域データ生成手段41,42が、隣接辺を描画し終わった場合、または、非隣接部を描画し終わった場合に「1」を保持する。描画が終了していなければ「0」を保持する。
【0065】
図9に、トライアングルDDA回路12内の矩形領域データ生成手段41、矩形領域データ生成手段42が、連続するポリゴンの矩形領域データを生成する際の処理のフローチャートを示す。以下、当フローに従って処理の詳細を説明する。
【0066】
ステップS101:隣接辺モードレジスタ43、44の両方が「1」(隣接辺モード)であるかを判定する。隣接辺モードレジスタ43、44の両方が「1」すなわち、隣接辺モードレジスタ43、44の接続されている矩形領域データ生成手段41、矩形領域データ生成手段42のいずれもが、隣接辺の描画処理実行を示す場合は、ステップS102に進み、それ以外は、ステップS104に進む。
【0067】
なお、本発明の描画装置では、図4に示すように、2つの矩形領域データ生成手段41、42を有し、これらの2つの矩形領域データ生成手段41、42が隣接辺モードでは、隣接する2つのポリゴンについての共有する隣接辺についての矩形領域データ生成を並列に実行し、また、非隣接モードでは、1つのポリゴンに属する異なる矩形領域についての矩形領域データ生成処理を並列に実行する。
【0068】
ステップS102:非隣接モードから隣接辺モードへの遷移直後で、矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが同じポリゴンに対応するものである場合に、隣接辺モードでの処理、すなわち、隣接する2つのポリゴンについての共有する隣接辺についての矩形領域データ生成を並列に実行するために、一方の矩形領域データ生成手段に保持されたDDAセットアップデータを入れ替える必要がある。ステップS102は、この入れ替え処理の要否を判定する処理であり、矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが同じポリゴンに対応するものであるか否かを判定する。Yesの判定の場合は、ステップS103に進み、Noの判定の場合は、ステップS107に進む。
【0069】
ステップS103:矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが同じポリゴンに対応するものであれば、矩形領域データ生成手段41に次の処理対象のポリゴンに対応する新しいDDAセットアップデータを入力する。
【0070】
ステップS104:隣接辺モードレジスタ43、44、の両方が「0」(非隣接モード)であるかを調べる。すなわち、隣接辺モードレジスタ43、44の接続されている矩形領域データ生成手段41、矩形領域データ生成手段42のいずれもが、非隣接部の描画処理実行を示す場合は、ステップS105に進み、それ以外は、ステップS107に進む。
【0071】
ステップS105:隣接辺モードから非隣接モードへの遷移直後で、矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが異なるポリゴンに対応するものである場合に、非隣接モードでの処理、すなわち、1つのポリゴンについての異なる矩形領域データ生成を並列に実行するために、一方の矩形領域データ生成手段に保持されたDDAセットアップデータを入れ替える必要がある。ステップS105は、この入れ替え処理の要否を判定する処理であり、矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが異なるポリゴンに対応するものであるか否かを判定する。Yesの判定の場合は、ステップS106に進み、Noの判定の場合は、ステップS107に進む。
【0072】
ステップS106:矩形領域データ生成手段41と矩形領域データ生成手段42とに保持されているDDAセットアップデータが異なっていれば、矩形領域データ生成手段42に新しいDDAセットアップデータを入力する。ここで、矩形領域データ生成手段42に入力されたデータは、ステップS103で矩形領域データ生成手段41に入力されたデータと同じ、すなわち同一のポリゴンに対応するデータである。矩形領域データ生成手段41、矩形領域データ生成手段42は、同一のポリゴンに対応するDDAセットアップデータに基づいて、1つのポリゴンに属する異なる矩形領域についての矩形領域データ生成処理を並列に実行することになる。
【0073】
ステップS107:矩形領域データ生成手段41については、モード終了レジスタ45が「1」でなければ、矩形領域データの生成処理を実行する。同様に、矩形領域データ生成手段42においても、モード終了レジスタ46が「1」でなければ、矩形領域データの生成処理を実行する。
【0074】
ステップS108:矩形領域データ生成手段41が、現在描画している描画モードが終了したら、モード終了レジスタ45に「1」をセットする。同様に、矩形領域データ生成手段42が、現在描画している描画モードが終了したら、モード終了レジスタ46に、「1」をセットする。
【0075】
ステップS109:モード終了レジスタ45、モード終了レジスタ46の両方に「1」がセットされたか否かを判定する。モード終了レジスタ46の両方に「1」がセットされ、各矩形領域データ生成手段41,42の処理が終了したことが確認されると、ステップS110に進む。
【0076】
ステップS110:モード終了レジスタ45、モード終了レジスタ46の両方に「1」がセットされているならば、隣接辺モードレジスタ43、隣接辺モードレジスタ44の両方の描画モードを切り替える。つまり、隣接辺モードレジスタの値が「1」ならば「0」を入力し、レジスタの値が「0」ならば「1」をセットする。さらに、モード終了レジスタ45、モード終了レジスタ46の両方の値を0にする。
【0077】
このように、隣接辺モードレジスタ43、隣接辺モードレジスタ44では、隣接辺モードにおいて、隣接する2つのポリゴンについての共有する隣接辺についての矩形領域データ生成を並列に実行し、また、非隣接モードにおいて、1つのポリゴンに属する異なる矩形領域についての並列処理を実行する。隣接辺モードレジスタ43、隣接辺モードレジスタ44では、これらの処理を繰り返し実行することになる。
【0078】
図4に示すトライアングルDDA回路12内の矩形領域データ統合手段47は、矩形領域データ生成手段41、42と接続され、同一座標を位置情報として持つ異なるポリゴンに属する複数の矩形領域データを、矩形領域内での有効なピクセルの数がより多い矩形領域データに統合する処理を実行する。
【0079】
図10に、矩形領域データ統合手段47の詳細構成図を示す。矩形領域データ統合手段47は、矩形領域データ記憶手段48、矩形領域データ選択手段471、矩形領域データ比較手段472、統合矩形領域データ生成手段473を有する。
【0080】
矩形領域データ記憶手段48は、矩形領域データ生成手段41,42から入力された矩形領域データを複数個(例えば最大6個分)保持する。なお、本実施形態では、バッファが保持できる矩形領域データの数は6としたが、例えば4や10であってもかまわない。ただし、統合を効率的に行うためにも、少なくとも矩形領域データ生成手段の数以上であることが望ましい。
【0081】
矩形領域データ選択手段471は、テクスチャエンジン回路13へ出力する矩形領域データを、矩形領域データ記憶手段48から選択する。選択は、矩形領域データ記憶手段48へ入力後、予め定められた時間以上たった矩形領域データのうち、最も古いデータが選ばれる。なお、本実施形態では、時間を選択の基準としたが、例えば、領域データにおける有効ピクセルの数を基準としてもよい。また、時間と有効ピクセルの数との両方を基準としてもよい。
【0082】
矩形領域データ比較手段472は、矩形領域データ選択手段471によって選択された矩形領域データと、矩形領域データ記憶手段48に記憶されている矩形領域データとを比較する。矩形領域データ選択手段471によって選択された矩形領域データと統合できる矩形領域データが、矩形領域データ記憶手段48に格納されていれば、これらの統合可能な2つの矩形領域データを、統合矩形領域データ生成手段473に出力する。統合できる矩形領域データがなかった場合は、矩形領域データ選択手段471において選択された矩形領域データを単独でテクスチャエンジン回路13へ出力する。
【0083】
2つの矩形領域データが統合できるかどうかの判断は、各矩形領域データの持つ位置情報と各矩形領域内のピクセルの位置とで決まる。矩形領域データ同士の位置情報が同じで、かつ、矩形領域内のピクセルの位置が重複しない場合に、統合が可能と判断される。図11に、統合できる場合と統合できない場合との例を示す。
【0084】
図11(a)に示すように、矩形領域データ(a−1)と、矩形領域データ(a−2)とは、矩形領域データ同士の位置情報が同じで、かつ、矩形領域内のピクセルの位置が重複しない場合の例であり、統合が可能と判断される。一方、図11(b)は、矩形領域データ(b−1)と、矩形領域データ(b−2)とが、矩形領域データ同士の位置情報は同じであるが、矩形領域内のピクセルの位置が重複する場合の例であり、統合が不可能と判断される。
【0085】
図10に示す矩形領域データ統合手段47中の統合矩形領域データ生成手段473は、同じ位置情報を持つ2つの矩形領域データを統合し、一つの矩形領域データを生成する。生成された矩形領域データは、もとの2つの矩形領域データそれぞれが保持していた有効ピクセルのデータを持つ。位置情報は、もとの矩形領域データと同じである。統合された新しい矩形領域データは、矩形領域データ記憶手段48へ記録する。
【0086】
図12に、矩形領域データ統合手段47における統合矩形領域データ生成手段473の実行する統合処理の具体例を示す。統合矩形領域データ生成手段473は、同じ位置情報を持つ2つの矩形領域データ(a),(b)を統合し、一つの矩形領域データ(c)を生成する。生成された矩形領域データ(c)は、もとの2つの矩形領域データ(a)(b)それぞれが保持していた有効ピクセル((a)=4,(b)=3)のトータルの有効ピクセル数((C)=7)のデータを持つ。統合された矩形領域データ(c)の位置情報は、もとの矩形領域データ(a),(b)の位置情報と同じである。
【0087】
統合矩形領域データ生成手段473は、同じ位置情報を持つ矩形領域データを統合して、矩形領域データ記憶手段48に書き戻す処理を実行する。このように統合された矩形領域データは矩形領域データ記憶手段48へ、再び戻されるので、再度、統合の対象となる可能性がある。そのため、3つ以上の矩形領域データを一つの矩形領域データにまとめることが可能である。
【0088】
図13に、矩形領域データ統合手段47における統合矩形領域データ生成手段473において3つ以上の矩形領域データを一つの矩形領域データにまとめる場合の処理例を示す。統合矩形領域データ生成手段473は、まず、同じ位置情報を持つ2つの矩形領域データ(a),(b)を統合し、一つの矩形領域データを生成する。さらに、まとめた矩形領域データ(a)+(b)に対して、矩形領域データ(c)を統合し、一つの矩形領域データを生成する。さらに、まとめた矩形領域データ(a)+(b)+(c)に対して、矩形領域データ(d)を統合し、一つの矩形領域データを生成する。さらに、まとめた矩形領域データ(a)+(b)+(c)+(d)に対して、矩形領域データ(e)を統合し、一つの矩形領域データ(f)=(a)+(b)+(c)+(d)+(e)を生成する。
【0089】
生成された矩形領域データ(f)は、もとの5つの矩形領域データ(a),(b),(c),(d),(e)それぞれが保持していた有効ピクセル((a)=1,(b)=1,(c)=2,(d)=3,(e)=1)のトータルの有効ピクセル数((f)=8)のデータを持つ。統合された矩形領域データ(f)の位置情報は、もとの矩形領域データ(a),(b),(c),(d),(e)それぞれの位置情報と同じである。
【0090】
図14に、矩形領域データ統合手段47が、矩形領域データをテクスチャエンジン回路13へ出力する際に実行する処理の詳細を説明するフローチャートを示す。以下、フローチャートに示す各ステップの処理について説明する。
【0091】
ステップS201:矩形領域データ選択手段471が、矩形領域データ記憶手段48から統合する候補となる矩形領域データを選択する。選択は、矩形領域データ記憶手段48へ入力されてから一定時間以上たった矩形領域データの中で、最も古いものが選ばれる。
【0092】
ステップS202:矩形領域データ比較手段472が、矩形領域データ選択手段471によって選択された矩形領域データと矩形領域データ記憶手段48の中の矩形領域データとを比較し、統合できるかどうかを調べる。比較は、矩形領域データの位置情報が同じかどうか、矩形領域内のピクセルの位置が重複していないかを基準に行われる。
【0093】
ステップS203:矩形領域データ選択手段471によって選択された矩形領域データと統合可能な矩形領域データが矩形領域データ記憶手段48の中にあるかどうか。あれば、ステップS204へ進む。なければ、ステップS205へ進む。
【0094】
ステップS204:統合矩形領域データ生成手段473が、同じ位置情報を持つ矩形領域データを統合して、矩形領域データ記憶手段48に書き戻す。統合された矩形領域データは矩形領域データ記憶手段48へ戻されるので、再び統合の対象となる可能性がある。そのため、先に説明した図13のように、3つ以上の矩形領域データを一つの矩形領域データにまとめることが可能である。
【0095】
ステップS205:矩形領域データ選択手段471によって選択された矩形領域データを、テクスチャエンジン回路13へ出力する。
【0096】
このような手順によって、異なるポリゴンに対応して設定される処理単位領域としての矩形領域の矩形領域データが統合され、統合された矩形領域データが図1に示すテクスチャエンジン回路13に出力されて処理されることになる。テクスチャエンジン回路13では、トライアングルDDA回路12から入力された矩形領域データのうち、有効な値を持つピクセルについての色、フォグ値、座標等を決定して、メモリインタフェース回路14を介して、グラフィクスメモリ15に書き込む。
【0097】
テクスチャエンジン回路13では、統合された矩形領域データに対して処理を実行することが可能となるので、従来のように各単位図形(ポリゴン)ごとに設定された処理単位領域毎に処理を実行する場合に比較して、処理対象となる単位領域(矩形領域データ)の数が減少し、また、1つの単位領域(矩形領域データ)に含まれる有効ピクセル数も、統合処理によって増加することになり、効率的な処理が可能となる。
【0098】
なお、本実施形態では、矩形領域データ比較手段472から統合矩形領域データ生成手段473へ渡され、1度の統合処理において統合する矩形領域データは2つとしたが、2つである必要はなく、統合矩形領域データ生成手段は、3以上の矩形領域データの統合可能性をまとめて判定して3以上の矩形領域データの統合を一度に実行してもよい。この場合は、先に図13で説明した複数の矩形領域データ(a)〜(e)を、順次2つづつ処理することなく、矩形領域データ(a)〜(e)を一括して統合して矩形領域データ(f)を生成することになる。
【0099】
また、先に図11を参照して説明したように、本実施形態では、矩形領域データの統合を行う場合に、領域内でピクセルの位置が重複する場合は統合できないとしたが、重複するピクセル同士を統合して新しいピクセルを生成してもよい。この場合には、例えば、ピクセルの色の混合による新たな色を生成するなど、ピクセルに対応するレンダリングデータとしての色、フォグ値等を、複数の同一位置のピクセルに対応するデータに基づいて決定して、新たな統合された矩形領域データに含まれるピクセルのレンダリングデータとして設定する。
【0100】
さらに、矩形領域データ生成手段は、本実施形態では、図4を参照して説明したように、矩形領域データ生成手段41、42の2つを有する構成例として説明したが、矩形領域データ生成手段は、2つである必要はなく、例えば4つ、8つであってもかまわない。この場合、同時に発生できる矩形領域データの数が増える、という利点がある。
【0101】
また、トライアングルDDA回路12は、本実施形態では、ポリゴンの隣接関係を考慮するために図4に示すように、隣接関係に基づいて、描画順を決定するための描画順決定手段を有する構成とするとともに、隣接辺モードレジスタにおいて、処理モードの判定可能な構成として、さらに、モード終了レジスタを設けてモード終了を判定可能とした構成としたが、例えば隣接関係を考慮することなく描画を実行する構成であれば、これらの各構成を省略し、1以上の矩形領域データ生成手段と、矩形領域データ統合手段を有し、矩形領域データ生成手段によって生成される複数の矩形領域データを統合して1つの統合矩形領域データを出力する構成としてもよい。
【0102】
また、本実施形態では、矩形領域をピクセル処理の1つの単位領域として設定したが、この単位領域は、複数ピクセルを含む任意形状の領域として設定可能である。
【0103】
次に、図1に戻り、トライアングルDDA回路12の出力データの処理を実行する各構成要素の処理について説明する。
【0104】
テクスチャエンジン回路13は、トライアングルDDA回路12とメモリインタフェース回路14とに接続し、入力された矩形領域データのうち、有効な値の入っている複数のピクセルについて同時に、対応するデータを、グラフィクスメモリ15から、メモリインタフェース回路14を介して読み出し、ピクセルの色との混合処理を行い、さらに、フォグ値を用いて、フォグ色との混合を行う。最後に、ピクセルの座標と色とz値を、メモリインタフェース回路14を介して、グラフィクスメモリ15に書き込む。
【0105】
メモリインタフェース回路14は、テクスチャエンジン回路13、グラフィクスメモリ15、表示コントローラ回路16とに接続し、テクスチャエンジン回路13から入力されたテクスチャ座標に対応する値を算出するために、例えば、1点のテクスチャ座標について、グラフィクスメモリ15から近傍の4点値を読み出し、距離に応じた線形補間を行うなどの処理を行い、算出した値をテクスチャエンジン回路13へ出力する。また、テクスチャエンジン回路13から入力されたピクセルの座標値をもとに、もし、入力されたz値が、グラフィクスメモリ15のピクセルの座標値に対応するz値よりも手前(視点側)にあれば、色とz値とを、グラフィクスメモリ15に書き込む。また、半透明な物質の表現のために、グラフィクスメモリ15の色と、入力の色とを混合してグラフィクスメモリ15に書き込む場合もある。表示コントローラ回路16から、グラフィクスメモリ15の読み出し要求を受けた場合は、グラフィクスメモリ15から、要求を受けたデータの色を出力する。
【0106】
グラフィクスメモリ15は、メモリインタフェース回路と接続し、テクスチャデータやピクセルの色及びz値を記憶する。メモリインタフェース回路からの読み込み、書き込み要求に応じて、データの書き換えや出力を行う。
【0107】
表示コントローラ回路16は、メモリインタフェース回路14と接続し、与えられた水平及び垂直同期信号に同期して、図示しないCRT等の表示手段に表示するアドレスを発生し、グラフィクスメモリ15から表示データを読み出す要求をメモリインタフェース回路14へ出力する。メモリインタフェース回路14からの入力である表示データは、内蔵する記憶回路に記憶され、アナログ形式のRGBデータへの変換処理を行い、一定の時間間隔でCRT等の表示手段へ出力される。
【0108】
次に、図1に示す3次元コンピュータグラフィクスシステム1の動作についてまとめて説明する。まず、ポリゴンレンダリングデータがメインバス6を介してメインプロセッサ4からトライアングルDDA回路12へ出力される。DDAセットアップ回路11において、三角形の垂直方向、水平方向の変分データが算出され、算出データが、トライアングルDDA回路12の描画順決定手段40へ出力される。
【0109】
トライアングルDDA回路12の描画順決定手段40は、DDAセットアップ回路11から入力されたDDAセットアップデータに基づいて、描画順データを算出(未確定)し、DDAセットアップデータとともに記憶手段49に記憶する。そして、記憶手段49に記憶されているポリゴンの次に描画されるDDAセットアップデータが、同様にDDAセットアップ回路11から描画順決定手段40へ出力されると、記憶手段49に記憶された先行処理ポリゴンのDDAセットアップデータと描画順データとが確定し、矩形領域データ生成手段41、または矩形領域データ生成手段42へ出力できる状態になる。
【0110】
矩形領域データ生成手段41、42は、ポリゴンの隣接辺を処理する場合は、隣接している二つのポリゴンに属する矩形領域データの生成処理をそれぞれ並列に実行し、非隣接部を処理する場合は同じポリゴンに属する矩形領域データの生成処理をそれぞれ並列に実行する。非隣接部の処理が終了して、隣接部の処理へ移るときにまず矩形領域データ生成手段41が描画順決定手段40からデータを受け取る。このとき、矩形領域データ生成手段42は前のポリゴンの処理を行うことになる。そして、隣接部の処理が終了して非隣接部の処理へ移るときに、矩形領域データ生成手段42が描画順決定手段40からデータを受け取る。このとき、矩形領域データ生成手段41、42は同じポリゴンを処理する。発生する矩形領域データを一つおきにするなどして、矩形領域データ生成手段41、42は同一ポリゴンの処理を分担する。非隣接部の処理が終了して、再び隣接部の処理へ移ると次に描画するポリゴンのデータを矩形領域データ生成手段41へ入力する。このようにして、隣接部、非隣接部について、矩形領域データを生成し、矩形領域データ記憶手段48へ出力する。
【0111】
矩形領域データ統合手段47は、矩形領域データ記憶手段48のデータのうち、同一領域となるデータ同士を統合し、テクスチャエンジン回路13へ出力する。
【0112】
テクスチャエンジン回路13では、矩形領域データ内の有効なピクセルについて、複数のピクセルに対して同時に、テクスチャ座標に対応する値をグラフィクスメモリ15からメモリインタフェース回路14を介して読み出し、ピクセルの色とテクスチャの値とを混合し、さらに、フォグ値を用いて、フォグ色を混合し、ピクセルの座標と色とz値をメモリインタフェース回路14へ出力する。
【0113】
メモリインタフェース回路14は、入力されたz値と色とを用いて、入力された座標におけるグラフィクスメモリ15の色へ上書き、または混合した後に上書きをを行う。
【0114】
表示コントローラ回路16は、メモリインタフェース回路14を介してグラフィクスメモリ15のピクセルの色を読み出し、CRT等の表示手段へアナログ形式のRGBデータとして出力する。以上の動作で、モデルの描画を効率的に行うことができる。
【0115】
なお、本実施形態では、一度の描画で各ポリゴンの隣接部、非隣接部を交互に描画する処理例を示したが、モデルの各ピクセルのz値と色とを書き込むまでを一動作として設定し、各動作単位に、隣接部、非隣接部を交互に処理を行なう構成としてもよい。すなわち、一度目は隣接部のz値と色の処理を実行し、二度目は非隣接部のz値と色の処理を実行する、または、逆に一度目は非隣接部のz値と色を、二度目は隣接部のz値と色を処理する、という処理構成としてもよい。
【0116】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0117】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0118】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフロッピーディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0119】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0120】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0121】
【発明の効果】
以上説明したように、本発明の画像処理装置および方法によれば、連続する単位図形を描画する場合、処理を行う単位領域データを統合することによって、処理単位領域内に占める有効な画素数を増やし、かつ、処理単位領域データの総数を減らすことができる。その結果、画像の効率的な描画が可能となる。すなわち、ポリゴン等の連続する単位図形の描画処理を実行する構成において、同時に処理が可能な領域データの統合処理を実行して描画を行なう構成とすることで、一処理において処理する単位領域内の有効画素数を増やすことが可能となり、また領域データ数の減少が図れ、描画処理の効率化が実現される。
【0122】
また、本発明のグラフィック演算装置およびその方法によれば、ポリゴンの連続描画処理において、各ポリゴンに対応した単位領域、例えば矩形領域データを独立に処理せず、隣接するポリゴンの隣接辺にまたがって存在する矩形領域については、各ポリゴンに対応するそれぞれの矩形領域データを統合して1つの矩形領域データを生成して処理を実行する構成としたので、画像の効率的な描画が可能となる。
【0123】
また、本発明のグラフィック演算装置およびその方法によれば、処理単位領域のデータを、ポリゴン等の単位図形の隣接関係を考慮して生成する構成としたので、処理単位領域の統合の可否の判定が容易となり、統合処理が効率的に実行され、画像の効率的な描画が可能となる。
【図面の簡単な説明】
【図1】本発明の画像処理装置の構成を示すブロック図である。
【図2】本発明の画像処理装置において実行される矩形領域データの統合処理について説明する図である。
【図3】本発明の画像処理装置において実行される矩形領域データの統合処理について説明する図である。
【図4】本発明の画像処理装置におけるトライアングルDDA回路の詳細構成を示すブロック図である。
【図5】本発明の画像処理装置において実行されるポリゴンの処理手順について説明する図である。
【図6】本発明の画像処理装置において実行されるポリゴンの処理手順について説明する図である。
【図7】本発明の画像処理装置において実行されるポリゴンの処理手順、および矩形領域データについて説明する図である。
【図8】本発明の画像処理装置において実行されるポリゴンの処理手順、および矩形領域データについて説明する図である。
【図9】本発明の画像処理装置のトライアングルDDA回路において実行される処理を説明するフローチャートである。
【図10】本発明の画像処理装置のトライアングルDDA回路内の矩形領域データ統合手段の詳細構成を示すブロック図である。
【図11】本発明の画像処理装置の領域データ統合手段において実行される矩形領域データの統合処理について説明する図である。
【図12】本発明の画像処理装置の領域データ統合手段において実行される矩形領域データの統合処理について説明する図である。
【図13】本発明の画像処理装置の領域データ統合手段において実行される矩形領域データの統合処理について説明する図である。
【図14】本発明の画像処理装置の領域データ統合手段において実行される処理を説明するフローチャートである。
【図15】画像処理装置におけるポリゴンの矩形領域単位処理を説明する図である。
【図16】画像処理装置でのポリゴンの矩形領域単位処理における問題点を説明する図である。
【符号の説明】
1 3次元コンピュータ・グラフィックスシステム
2 メインメモリ
3 I/Oインタフェース回路
4 メインプロセッサ
5 レンダリング回路
6 メインバス
11 DDAセットアップ回路
12 トライアングルDDA回路
13 テクスチャエンジン回路
14 メモリインタフェース回路
15 グラフィクスメモリ
16 表示コントローラ回路
40 描画順決定手段
41 矩形領域データ生成手段
42 矩形領域データ生成手段
43 隣接辺モードレジスタ
44 隣接辺モードレジスタ
45 モード終了レジスタ
46 モード終了レジスタ
47 矩形領域データ統合手段
48 矩形領域データ記憶手段
49 記憶手段
471 矩形領域データ選択手段
472 矩形領域データ比較手段
473 統合矩形領域データ生成手段
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus such as a graphics operation apparatus, an image processing method, and a computer program. Specifically, in a configuration in which unit graphic continuous drawing processing is executed, the number of effective pixels in the processing unit region can be calculated by integrating the processing unit region of the drawing processing among a plurality of unit graphics and executing the processing collectively. The present invention relates to an image processing apparatus, an image processing method, and a computer program capable of efficiently drawing an image by increasing the number of unit area data and reducing the number of unit area data.
[0002]
[Prior art]
Combined with improvements in computing speed and enhancement of drawing functions in recent computer systems, “computer graphics” (CG) technology that creates and processes graphics and images using computer resources has been actively researched and developed. Furthermore, it has been put to practical use.
[0003]
For example, three-dimensional graphics expresses optical phenomena when a three-dimensional object is illuminated by a predetermined light source using a mathematical model, and shades or shades are added to the object surface based on the model, or a pattern is pasted. In other words, a more realistic and three-dimensional two-dimensional high-definition image is generated. Computer graphics is increasingly used in CAD / CAM in development fields such as science, engineering and manufacturing, and in various other application fields.
[0004]
Three-dimensional graphics is generally composed of a “geometry subsystem” positioned as a front end and a “raster subsystem” positioned as a back end.
[0005]
The geometry subsystem is a process of performing geometric calculation processing such as the position and orientation of a three-dimensional object displayed on a display screen. In the geometry subsystem, generally, an object is handled as an aggregate of a large number of polygons, and geometric calculation processing such as “coordinate conversion”, “clipping”, “light source calculation”, etc. is performed for each polygon.
[0006]
On the other hand, the raster subsystem is a process of painting each pixel constituting an object. The rasterization process is realized, for example, by interpolating the image parameters of all the pixels included in the polygon based on the image parameter obtained for each vertex of the polygon. The image parameters referred to here include color (drawing color) data expressed in RGB format and the like, a Z value indicating a distance in the depth direction, and the like. Also, in recent high-definition 3D graphics processing, f (fog: fog) for creating a sense of perspective, texture t (texture) that gives a sense of materiality and patterns on the surface of an object, and provides reality. It is included as one of the parameters.
[0007]
Here, the pixel generation processing in the polygon from the vertex information of the polygon is executed by using a linear interpolation method called DDA (Digital Differential Analyzer). In the DDA process, the inclination of the data in the side direction of the polygon is obtained from the vertex information, the data on the side is calculated using this inclination, and then the inclination in the raster scanning direction (X direction) is calculated. An internal pixel is generated by adding the parameter change obtained from the above to the parameter value of the scanning start point.
[0008]
At this time, there is a method of generating a plurality of pixels at the same time by scanning in units of regions instead of scanning in units of pixels. One of them is described in Japanese Patent Application Laid-Open No. 2000-338959 (Japanese Patent Application No. 11-152702). The method described in this publication improves the drawing speed of pixels by generating pixels in units of areas in a rectangle and processing them simultaneously, and passing the pixels in units of rectangles to the subsequent process as rectangular area data. It has been made.
[0009]
[Problems to be solved by the invention]
However, for example, if a three-dimensional model is expressed as a combination of polygons (triangles) that are unit graphics, and the polygon drawing processing is executed by applying the pixel processing in units of the rectangular area described above, the processing efficiency is improved. May decrease.
[0010]
This will be described with reference to FIG. As shown in FIG. 15A, it is assumed that a 4 × 2 rectangular area (for example, a rectangular area 501) is set as a pixel generation processing unit area. At this time, it is assumed that the polygon (triangle), which is a unit figure of the three-dimensional model to be rendered, has two polygons 502 and 503 as shown in the figure.
[0011]
The polygon 502 includes four pixels on the left side of the rectangular area 501 as a drawing area, and the polygon 503 includes three pixels on the right side of the rectangular area 501 as a drawing area. At this time, the conventional drawing apparatus performs processing separately when drawing the polygon 502 and when drawing the polygon 503. Therefore, even for pixels included in the same rectangle, that is, a pixel included in the rectangular area 501, two processes are performed: when the polygon 502 is drawn and when the polygon 503 is drawn.
[0012]
That is, as shown in FIG. 15B, in the process of drawing the polygon 502, the process for four pixels in the rectangular area 501 that is the processing unit area for generating the pixels is performed. As shown in the drawing, in the process of drawing the polygon 503, the process for three pixels in the rectangular area 501 is executed. As described above, although two pieces of rectangular area data are actually generated even though they can be actually combined into one piece of rectangular area data, the amount of processing data increases and the pixel generation configuration in units of areas. There was a problem in that the improvement in processing efficiency was hindered.
[0013]
The example shown in FIG. 15 is an example in the case where two polygons (triangles) are included in the pixel generation unit area. However, when more polygons (triangles) are included, there is a problem that the processing efficiency decreases. The point becomes even more prominent.
[0014]
FIG. 16 shows an example in which polygons (triangles) as five unit figures are included in a pixel generation unit area. In FIG. 16, it is assumed that a 4 × 2 rectangular area (for example, rectangular area 601) is set as a pixel generation unit area. At this time, there are five polygons 611, 612, 623, 614, 615 as shown in the figure, which are unit figures of the three-dimensional model to be drawn, all of which have drawing pixels in the rectangular area 601. Then.
[0015]
In such a case, the conventional drawing apparatus performs processing for each polygon (triangle). That is, as shown in FIG. 16B, in the process of drawing the polygon 611, processing for one pixel in the rectangular area 601 is executed, and then the polygon 612 is drawn as shown in FIG. In the process, two pixels in the rectangular area 601 are processed. Further, in the drawing process of the polygon 613 shown in FIG. 16D, one pixel in the rectangular area 601 and the polygon shown in FIG. In the drawing process 614, the process for one pixel in the rectangular area 601 and the process for the three pixels in the rectangular area 601 are sequentially executed in the drawing process of the polygon 615 shown in FIG.
[0016]
As described above, although the data can be actually combined into one rectangular area data, five rectangular area data are individually generated, the processing data amount is increased, and the pixel generation configuration in units of areas is caused. There was a problem that the improvement of the processing efficiency was greatly hindered.
[0017]
The present invention has been made in view of such a situation, and in a configuration for executing continuous drawing processing of unit graphics, processing unit areas of drawing processing are integrated between a plurality of unit graphics and executed collectively. An image processing apparatus, an image processing method, and a computer program that can efficiently draw an image by increasing the number of effective pixels in the processing unit area and reducing the number of unit area data The purpose is to do.
[0018]
[Means for Solving the Problems]
  The first aspect of the present invention is:
  In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
  Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
  A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
  Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
The processing unit area data generation means is constituted by a plurality of processing unit area data generation means capable of parallel processing,
The drawing order determining means includes
One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. The plurality of processing unit region data generating means execute a drawing order determination process so as to be executed in parallel.The image processing apparatus is characterized by the above.
[0020]
  The second aspect of the present invention is
In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
The drawing order determining means includes:
Image processing characterized in that a process for setting a drawing process procedure of one unit graphic as an order of an adjacent part with a preceding process unit graphic, a non-adjacent part, and an adjacent part with a subsequent process unit graphic is executed. In the device.
[0021]
  The third aspect of the present invention is
In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
The drawing order determining means includes:
An image processing apparatus is characterized in that the drawing order of a region including a side as a boundary of a unit graphic is set in a clockwise or counterclockwise loop shape.
[0022]
  The fourth aspect of the present invention is
In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
When a plurality of processing unit area data generated in the processing unit area data generation means has the same position information, the processing unit area data integration means for executing an integration process of the plurality of processing unit area data,
The processing unit area data integration means includes:
The processing unit region data generated by the processing unit region data generating means has the same position information and the processing unit region data is processed into one processing unit on condition that the effective pixel positions in the processing unit region do not overlap. An image processing apparatus is characterized in that it is configured to execute processing for integration into region data.
[0023]
  The fifth aspect of the present invention provides
In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
Unit area data storage means for storing the processing unit area data generated in the processing unit area data generation means,
The image processing apparatus is characterized in that the processing unit area data integration unit is configured to determine integration possibility based on position information of a plurality of processing unit area data stored in the unit area data storage unit. .
[0024]
Furthermore, in one embodiment of the image processing apparatus of the present invention, the drawing process target model is a three-dimensional model, and the unit graphic is a polygon.
[0025]
  The sixth aspect of the present invention provides
  In the image processing apparatus,An image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate systemAnd
  The processing unit area data generation meansA processing unit region data generation step for calculating a pixel attribute value for each processing unit region included in the unit graphic as processing unit region data;
  Processing unit area data integration means,A processing unit region data integration step for executing integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information;
  The drawing order determining means includes a drawing order determining step for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics.
The processing unit region data generation step is executed by a plurality of processing unit region data generation means capable of parallel processing,
The drawing order determining step includes:
One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. The drawing order determining process is executed so as to be executed in parallel in the plurality of processing unit area data generating means.This is an image processing method characterized by the above.
[0027]
  The seventh aspect of the present invention is
In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
The drawing order determining means has a drawing order determining step for determining a processing procedure in the processing unit region data generation step based on the adjacent relationship between different unit graphics.
The drawing order determining step includes:
An image processing method is characterized by executing a process of setting a drawing process procedure of one unit graphic as an order of an adjacent part with a preceding process unit graphic, a non-adjacent part, and an adjacent part with a subsequent process unit graphic. .
[0028]
  The eighth aspect of the present invention provides
In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
The drawing order determining means has a drawing order determining step for determining a processing procedure in the processing unit region data generation step based on the adjacent relationship between different unit graphics.
The drawing order determining step includes:
An image processing method is characterized in that the drawing order of an area including a side as a boundary of a unit graphic is set in a loop shape of either clockwise or counterclockwise.
[0029]
  The ninth aspect of the present invention provides
In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information Having an area data integration step,
The processing unit area data integration step includes:
The processing unit region data generated in the processing unit region data generation step has the same position information and the processing unit region data is converted into one processing unit on condition that the effective pixel positions in the processing unit region do not overlap. The present invention resides in an image processing method characterized by executing processing for integration into region data.
[0030]
  The tenth aspect of the present invention provides
In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
The unit area data storage means has a unit area data storage step for storing the processing unit area data generated in the processing unit area data generation step in the storage means;
In the image processing method, the processing unit area data integration step determines integration possibility based on position information of a plurality of processing unit area data stored in the unit area data storage step.
[0031]
Furthermore, in one embodiment of the image processing method of the present invention, the drawing process target model is a three-dimensional model, and the unit graphic is a polygon.
[0032]
  First of the present invention11The side of
  A computer program that executes image processing on a computer system by dividing a drawing processing target model into unit graphics, generating pixels in a drawing target area of a screen coordinate system, and performing drawing processing,
  In the processing unit area data generation means,Calculate pixel attribute values for each processing unit area included in the unit graphic as processing unit area dataLetProcessing unit region data generation step,
  In the processing unit area data integration means,When a plurality of processing unit region data generated in the processing unit region data generation step has the same position information, an integration process of the plurality of processing unit region data is executed.LetProcessing unit area data integration step,
  A drawing order determining step for causing the drawing order determining means to determine a processing procedure in the processing unit region data generating means based on an adjacent relationship between different unit graphics;
The processing unit region data generation step is executed by a plurality of processing unit region data generation means capable of parallel processing,
The drawing order determining step includes:
  One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. In the computer program, the plurality of processing unit area data generation means is a step of executing a drawing order determination process so as to be executed in parallel.
[0033]
The computer program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a general-purpose computer system capable of executing various program codes, such as a CD, FD, MO, etc. Or a computer program that can be provided by a communication medium such as a network. By providing such a program in a computer-readable format, processing corresponding to the program is realized on the computer system.
[0034]
Other objects, features, and advantages of the present invention will become apparent from a more detailed description based on embodiments of the present invention described later and the accompanying drawings. In this specification, the system is a logical set configuration of a plurality of devices, and is not limited to one in which the devices of each configuration are in the same casing.
[0035]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an image processing apparatus of the present invention will be described in detail with reference to the drawings. In the present embodiment, as a specific example of the image processing apparatus, a desired 3D image for an arbitrary 3D object model applied to a home game machine or the like is displayed at high speed on a display such as a CRT. A three-dimensional computer graphics system will be described. An image processing apparatus configured to perform drawing processing by dividing a three-dimensional object model as a drawing processing target model into polygons as unit graphics and generating pixels in a drawing target region of a screen coordinate system. In this embodiment, an example in which the unit graphic is a triangular polygon will be described. However, the unit graphic is not limited to a triangle, and any unit graphic such as a configuration having a curved surface can be employed.
[0036]
FIG. 1 is a configuration diagram of a three-dimensional computer graphics system 1 of the present embodiment. The three-dimensional computer graphics system 1 represents a three-dimensional model as a combination of polygons (triangles) that are unit figures, draws the polygons, determines the color of each pixel on the display screen, and displays the polygon on the display It is a system that performs. Further, in the three-dimensional computer graphics system 1, in addition to the (x, y) coordinates representing the position on the plane, the z coordinate representing the depth is used to represent the three-dimensional object, and this (x, y, z) An arbitrary point in the three-dimensional space is specified by three coordinates.
[0037]
As shown in FIG. 1, a three-dimensional computer graphics system 1 includes a main memory 2, an I / O interface circuit 3, a main processor 4, and a rendering circuit 5 connected via a main bus 6.
[0038]
Hereinafter, the function of each component will be described. The main processor 4 reads out necessary graphics data from the main memory 2 in accordance with, for example, processing based on user input via the I / O interface circuit 3 or program processing status, for example, game progress status, and the graphic data A polygon rendering data is generated by performing a clipping process, a lighting process, a geometry process, and the like.
[0039]
The main processor 4 outputs polygon rendering data to the rendering circuit 5 via the main bus 6. The I / O interface circuit 3 inputs polygon rendering data from the outside as necessary, and outputs it to the rendering circuit 5 via the main bus 6. Here, the polygon rendering data has x, y, z coordinates, color information, fog values, texture coordinates, etc. of each of the three vertices of the polygon.
[0040]
Hereinafter, the rendering circuit 5 will be described in detail. As shown in FIG. 1, the rendering circuit 5 includes a DDA setup circuit 11, a triangle DDA circuit 12, a texture engine circuit 13, a memory interface circuit 14, a graphics memory 15, and a display controller circuit 16.
[0041]
The DDA setup circuit 11 is connected to the main bus 6 and the triangle DDA circuit 12, and in the subsequent triangle DDA circuit 12, the coordinate value for each pixel is determined from the coordinate values, colors, fog values, and texture coordinates of the three vertices of the polygon. As the preceding process for obtaining the color, fog value, and texture coordinates, the change in the horizontal and vertical directions is obtained for each value. Specifically, a variation (DDA setup data) for a unit length is calculated from three values: a start point value, an end point value, and a distance between the start point and the end point. The calculated value is output to the triangle DDA circuit 12.
[0042]
The triangle DDA circuit 12 is connected to the DDA setup circuit 11 and the texture engine circuit 13, and based on the value (DDA setup data) input from the DDA setup circuit 11 in the order based on the polygon rendering order data. As for a plurality of pixels in the rectangular area, the coordinate value, the color, the fog value, and the texture coordinate are collectively obtained. In the present embodiment, a region having a plurality of pixels to be processed collectively, that is, a processing unit region is a rectangular region of 2 × 4 8 pixels. Data obtained by collecting the plurality of pixels is referred to as rectangular area data. The rectangular area data has position information of coordinates at which the rectangular area data is drawn.
[0043]
In the rectangular area data, when the vicinity of the boundary of the polygon is drawn, the number of effective pixels in the rectangular area is not necessarily eight. That is, only the pixels inside the polygon (triangle) are effective pixels in the 2 × 4 8-pixel rectangular area as the processing unit area in the part extending over the side of the polygon (triangle).
[0044]
The triangle DDA circuit 12 performs data integration processing when the rectangular area data can be integrated based on the position information of the rectangular area data. The integration is performed when rectangular area data included in different polygons (triangles) have the same position information and effective pixels do not overlap. FIG. 2 shows a case where two rectangular area data are integrated, and FIG. 3 shows a case where five rectangular area data are integrated.
[0045]
FIG. 2 illustrates a case where the drawing area of the polygon (triangle) 111 includes a rectangular area 121 as a processing unit area, and the drawing area of another polygon (triangle) 112 includes a rectangular area 122 as a processing unit area. An example of processing of the triangle DDA circuit 12 is shown. The triangle DDA circuit 12 is configured so that the position information corresponding to the rectangular area 121 and the position information corresponding to the rectangular area 122 are the same position information. The rectangular area data of the rectangular area 120 is generated by integrating the two rectangular area data.
[0046]
3 includes a rectangular area 141 as a processing unit area in the drawing area of the polygon (triangle) 131, a rectangular area 142 as a processing unit area in the drawing area of the polygon (triangle) 132, and the polygon (triangle) 133. The drawing area includes a rectangular area 143 as a processing unit area, the polygon (triangle) 134 drawing area includes a rectangular area 144 as a processing unit area, and the polygon (triangle) 135 drawing area includes a rectangular area as a processing unit area. 145 is shown as an example of processing of the triangle DDA circuit 12, and the triangle DDA circuit 12 includes the five rectangles when the position information corresponding to the rectangular areas 141 to 145 is the same position information. The rectangular area data of the rectangular area 140 is generated as a processing unit area obtained by integrating the area data.
[0047]
FIG. 4 is a detailed configuration diagram of the triangle DDA circuit 12. The triangle DDA circuit 12 includes a drawing order determination unit 40, a storage unit 49, a rectangular area data generation unit 41, a rectangular area data generation unit 42, an adjacent side mode register 43, an adjacent side mode register 44, a mode end register 45, and a mode end register. 46, rectangular area data integration means 47, and rectangular area data storage means 48.
[0048]
The drawing order determining means 40 is connected to the DDA setup circuit 11 and the rectangular area data generating means 41 and 42, and based on the input value (DDA setup data) from the DDA setup circuit 11, the subsequent rectangular area data generating means 41. , 42 is executed to determine the drawing processing order.
[0049]
The drawing order determination means 40 that has received the DDA setup data from the DDA setup circuit 11 determines the order of the rectangular area data generation processing executed as the drawing processing in the subsequent rectangular area data generation circuits 41 and 42 based on the received data. decide.
[0050]
In the drawing order determination means 40, the drawing order of one polygon is determined as follows. The first processing area is the side adjacent to the preceding processing polygon that is drawn before the drawing target polygon. The next processing area is the part of the polygon that is surrounded by the sides that are not adjacent to the other polygons and the three sides that make up the polygon (triangle), and the last processing area is the subsequent that is drawn after the drawing target polygon. Adjacent to the processing polygon. The drawing order is determined in this order. In the processing of the side where a plurality of polygons are adjacent, polygon drawing order data is generated so that the adjacent polygons have the same drawing direction.
[0051]
A specific processing example of the drawing order determination method executed in the drawing order determination unit 40 will be described. For example, the direction in which the sides of the polygon are drawn is set so that, for example, all three sides are clockwise or counterclockwise as shown in FIG. The drawing order of the polygons is uniquely determined by the drawing direction of the adjacent side to the preceding process polygon that is drawn before the drawing process target polygon. The drawing order of continuous polygons will be described with reference to FIG. In FIG. 6, a case where three adjacent polygons 61, 62, 63 are drawn will be described. When these three polygons are drawn in the order of the polygon 61, the polygon 62, and the polygon 63, the drawing of the next polygon 62 is executed when the drawing of the polygon 61 is completed. The drawing order of the polygon 62 is as follows: the adjacent side 64 with the preceding processing polygon 61 to be drawn first, the non-adjacent side and the portions 65 and 66 surrounded by the three sides, and finally the subsequent processing polygon to be drawn after the polygon. It becomes the order of the adjacent side 67.
[0052]
Thus, the drawing processing order of one polygon is the order of the adjacent portion with the preceding processing polygon, the non-adjacent portion, and the adjacent portion with the subsequent processing polygon. The order of processing for the two regions of the non-adjacent side and the portions 65 and 66 surrounded by the three sides is arbitrary, and the region 65 may be processed first and the region 66 may be processed later, or vice versa. Further, the region 65 and the region 66 may be drawn together.
[0053]
Although there is no adjacent side to the preceding process polygon that is drawn before the drawing target polygon, the drawing order of the subsequent processing polygon that is drawn after the drawing target polygon and the polygon that has the adjacent side is the drawing target polygon. It is determined from the side adjacent to the subsequent processing polygon to be drawn later. When there is no adjacent side with both the preceding process polygon and the subsequent process polygon, it is determined to perform drawing in a predetermined order, for example, from the vertex having the largest Y coordinate to the vertex having the smallest Y coordinate.
[0054]
The drawing order determining unit 40 includes a storage unit 49. The storage unit 49 includes DDA setup data corresponding to each polygon input from the DDA setup circuit 11, and the drawing order determining unit 40 corresponding to the polygon. The drawing order data calculated and confirmed, or drawing order data before confirmation in the calculation process are stored. As described above, in order to determine the drawing order of polygons, the relationship data of adjacent sides with subsequent processing polygons is required. Therefore, the storage unit 49 stores the DDA setup data related to the processing target polygon immediately before the drawing order determination target polygon input to the drawing order determination unit 40 to determine the drawing order and the provisional drawing order data before determination. Will also hold.
[0055]
When DDA setup data corresponding to one drawing target polygon is input from the DDA setup circuit 11 to the drawing order determining means 40, first, an adjacent side of the preceding processing polygon stored in the storage means 49 The drawing order data corresponding to the input DDA setup data is calculated.
[0056]
As described above, the calculation of the drawing order data is determined in the order of the adjacent part with the preceding process polygon, the non-adjacent part, and the adjacent part with the subsequent process polygon. That is, the drawing process procedure for the preceding polygon is finally determined by clarifying the adjacent relationship with the succeeding polygon. Accordingly, the DDA setup data and the drawing order data corresponding to the preceding process polygon stored in the storage means 49 are used to determine the adjacent side to the subsequent polygon in the drawing order determination process of the subsequent polygon in the drawing order determination means 40. The drawing order data corresponding to the polygon stored in the storage means 49 is finally determined in the subsequent drawing order calculation process of the polygon.
[0057]
The drawing order determination unit 40 determines the drawing order data by the above processing, and outputs the DDA setup data stored in the storage unit 49 and the determined drawing order data to the rectangular area data generation unit 41 or 42. Further, the drawing order determining means 40 obtains DDA setup data corresponding to the next processing polygon of the polygon corresponding to the data output to the rectangular area data generating means 41 or 42, and provisionally determined drawing order data corresponding thereto. Then, based on the data input from the DDA setup circuit 11, the polygon drawing order stored in the storage means 49 is determined, and the determined drawing order data is generated as rectangular area data. Output to the means 41 or 42. The drawing order determination unit 40 repeatedly executes these processes.
[0058]
Each of the rectangular area data generating means 41 and 42 for generating processing unit area data in the triangle DDA circuit shown in FIG. 4 scans a polygon in units of a rectangular area, and a plurality of rectangular area data generating means 41 and 42 inside the polygon in the rectangular area. Rectangle area data generation is performed in which pixel attribute values such as coordinate values, colors, fog values, texture coordinates, etc. for pixels are obtained as processing unit area data. Scanning is performed in an arbitrary direction for an arbitrary side, and also for a portion that is not a side. The rectangular area data generation means 41 and 42 are processing unit area data generation means capable of parallel processing. Here, two configuration examples capable of parallel processing are shown, but a configuration having three or more parallel processing units is also possible.
[0059]
A specific example of rectangular area data generation processing executed in the rectangular area data generation means 41 and 42 will be described with reference to FIG. Each polygon is drawn by processing unit area data in a rectangular area as one or more processing unit areas included in the polygon, that is, coordinate values, colors, fog values, texture coordinates for pixels included in the rectangular area as the processing unit area. It is performed as a process for obtaining pixel attribute values such as. As shown in FIG. 7, there are cases where a single polygon 70 is shared by a plurality of sides 75 and 76, such as rectangular areas 71 and 72. In the polygon, rectangular area data whose coordinates do not overlap is generated.
[0060]
For example, when drawing an edge, it is determined that rectangular area data from a rectangular area including the start vertex of the edge to a position immediately before the rectangular area including the end vertex of the edge is generated. According to this rule, the direction in which the side is drawn is either a clockwise or counterclockwise loop as shown in FIG. A rectangular area as a processing unit area shared by two sides is drawn as a side for drawing the front in the loop.
[0061]
FIG. 8 shows an example of generating rectangular area data. It is assumed that the direction in which the side is drawn is set as a clockwise loop, as indicated by an arrow in FIG. The rectangular area 81 is shared by the side 82 and the side 83. In this case, in the relationship between the side 82 and the side 83, the side in front of the clockwise loop is the side 83, so the rectangular area 81 is drawn as a part of the side 83. The rectangular area shared by the three sides constituting the polygon is drawn with the drawing side as the first side.
[0062]
The rectangular area data generation means 41 and 42 output the generated rectangular area data to the rectangular area data integration means 47. As described above, the rectangular area data has coordinate values, colors, fog values, and texture coordinates for a plurality of pixels inside the polygon in the rectangular area.
[0063]
The adjacent side mode registers 43 and 44 in the triangle DDA circuit 12 shown in FIG. 4 are connected to the rectangular area data generation means 41 and 42, and the processing target of the connected rectangular area data generation means 41 and 42 is the adjacent side. Holds a value indicating whether it is a non-adjacent part. If it is an adjacent side, “1” is held, and if it is not adjacent, “0” is held. A case where the adjacent side mode register holds “1” is referred to as an adjacent side mode, and a case where the adjacent side mode register holds “0” is referred to as a non-adjacent mode.
[0064]
The mode end registers 45 and 46 in the triangle DDA circuit 12 shown in FIG. 4 are connected to the rectangular area data generation means 41 and 42, and the connected rectangular area data generation means 41 and 42 have finished drawing adjacent sides. If the non-adjacent portion has been drawn, “1” is held. If drawing is not completed, “0” is held.
[0065]
FIG. 9 shows a flowchart of processing when the rectangular area data generating means 41 and the rectangular area data generating means 42 in the triangle DDA circuit 12 generate rectangular area data of continuous polygons. Details of the processing will be described below according to this flow.
[0066]
Step S101: It is determined whether both of the adjacent side mode registers 43 and 44 are “1” (adjacent side mode). Both of the adjacent side mode registers 43 and 44 are “1”, that is, the rectangular area data generating unit 41 and the rectangular area data generating unit 42 to which the adjacent side mode registers 43 and 44 are connected both perform the adjacent side drawing process. If it indicates execution, the process proceeds to step S102; otherwise, the process proceeds to step S104.
[0067]
As shown in FIG. 4, the drawing apparatus of the present invention has two rectangular area data generation means 41 and 42, and these two rectangular area data generation means 41 and 42 are adjacent in the adjacent side mode. In the non-adjacent mode, rectangular area data generation processing for different rectangular areas belonging to one polygon is executed in parallel.
[0068]
Step S102: Immediately after the transition from the non-adjacent mode to the adjacent side mode, when the DDA setup data held in the rectangular area data generation means 41 and the rectangular area data generation means 42 correspond to the same polygon, In order to execute the processing in the adjacent side mode, that is, to generate the rectangular area data for the adjacent adjacent side for the two adjacent polygons in parallel, the DDA setup data held in one of the rectangular area data generation means is replaced. There is a need. Step S102 is a process for determining whether or not the replacement process is necessary, and whether or not the DDA setup data held in the rectangular area data generation means 41 and the rectangular area data generation means 42 corresponds to the same polygon. Determine whether. If the determination is Yes, the process proceeds to step S103, and if the determination is No, the process proceeds to step S107.
[0069]
Step S103: If the DDA setup data held in the rectangular area data generating means 41 and the rectangular area data generating means 42 corresponds to the same polygon, the rectangular area data generating means 41 sets the next polygon to be processed. Enter the corresponding new DDA setup data.
[0070]
Step S104: It is checked whether both the adjacent side mode registers 43 and 44 are “0” (non-adjacent mode). That is, if both of the rectangular area data generation means 41 and the rectangular area data generation means 42 to which the adjacent side mode registers 43 and 44 are connected indicate execution of drawing processing of a non-adjacent portion, the process proceeds to step S105. Otherwise, the process proceeds to step S107.
[0071]
Step S105: Immediately after the transition from the adjacent side mode to the non-adjacent mode, when the DDA setup data held in the rectangular area data generation means 41 and the rectangular area data generation means 42 correspond to different polygons, In order to execute the processing in the non-adjacent mode, that is, to generate different rectangular area data for one polygon in parallel, it is necessary to replace the DDA setup data held in one of the rectangular area data generating means. Step S105 is a process for determining whether or not the replacement process is necessary, and whether or not the DDA setup data held in the rectangular area data generating means 41 and the rectangular area data generating means 42 corresponds to different polygons. Determine whether. If the determination is Yes, the process proceeds to step S106. If the determination is No, the process proceeds to step S107.
[0072]
Step S106: If the DDA setup data held in the rectangular area data generation means 41 and the rectangular area data generation means 42 are different, new DDA setup data is input to the rectangular area data generation means 42. Here, the data input to the rectangular area data generating unit 42 is the same as the data input to the rectangular area data generating unit 41 in step S103, that is, data corresponding to the same polygon. The rectangular area data generation means 41 and the rectangular area data generation means 42 execute parallel rectangular area data generation processing for different rectangular areas belonging to one polygon based on DDA setup data corresponding to the same polygon. Become.
[0073]
Step S107: For the rectangular area data generating means 41, if the mode end register 45 is not “1”, a rectangular area data generating process is executed. Similarly, in the rectangular area data generation means 42, if the mode end register 46 is not “1”, rectangular area data generation processing is executed.
[0074]
Step S108: When the rectangular area data generating means 41 finishes the current drawing mode, it sets “1” in the mode end register 45. Similarly, the rectangular area data generation unit 42 sets “1” in the mode end register 46 when the drawing mode in which drawing is currently finished.
[0075]
Step S109: It is determined whether or not “1” is set in both the mode end register 45 and the mode end register 46. When “1” is set in both of the mode end registers 46 and it is confirmed that the processing of the respective rectangular area data generating means 41 and 42 is completed, the process proceeds to step S110.
[0076]
Step S110: If “1” is set in both the mode end register 45 and the mode end register 46, the drawing modes of both the adjacent side mode register 43 and the adjacent side mode register 44 are switched. That is, if the value of the adjacent side mode register is “1”, “0” is input, and if the value of the register is “0”, “1” is set. Further, the values of both the mode end register 45 and the mode end register 46 are set to zero.
[0077]
As described above, in the adjacent side mode register 43 and the adjacent side mode register 44, in the adjacent side mode, rectangular area data generation for the adjacent side shared by two adjacent polygons is executed in parallel, and the non-adjacent mode , Parallel processing is executed for different rectangular areas belonging to one polygon. The adjacent side mode register 43 and the adjacent side mode register 44 repeatedly execute these processes.
[0078]
The rectangular area data integration unit 47 in the triangle DDA circuit 12 shown in FIG. 4 is connected to the rectangular area data generation units 41 and 42, and a plurality of rectangular area data belonging to different polygons having the same coordinates as position information are converted into rectangular areas. A process of integrating the data into rectangular area data having a larger number of effective pixels in the inside is executed.
[0079]
FIG. 10 shows a detailed configuration diagram of the rectangular area data integration unit 47. The rectangular area data integration means 47 includes a rectangular area data storage means 48, a rectangular area data selection means 471, a rectangular area data comparison means 472, and an integrated rectangular area data generation means 473.
[0080]
The rectangular area data storage means 48 holds a plurality (for example, a maximum of 6 pieces) of rectangular area data input from the rectangular area data generation means 41 and 42. In this embodiment, the number of rectangular area data that can be held by the buffer is 6. However, it may be 4 or 10, for example. However, in order to efficiently perform integration, it is desirable that the number is at least the number of rectangular area data generation means.
[0081]
The rectangular area data selection unit 471 selects rectangular area data to be output to the texture engine circuit 13 from the rectangular area data storage unit 48. For selection, the oldest data is selected from the rectangular area data after a predetermined time after input to the rectangular area data storage means 48. In the present embodiment, the time is used as a reference for selection, but for example, the number of effective pixels in the region data may be used as a reference. Further, both time and the number of effective pixels may be used as a reference.
[0082]
The rectangular area data comparison unit 472 compares the rectangular area data selected by the rectangular area data selection unit 471 with the rectangular area data stored in the rectangular area data storage unit 48. If the rectangular area data that can be integrated with the rectangular area data selected by the rectangular area data selecting means 471 is stored in the rectangular area data storage means 48, these two rectangular area data that can be integrated are integrated with the integrated rectangular area data. The data is output to the generation unit 473. If there is no rectangular area data that can be integrated, the rectangular area data selected by the rectangular area data selection means 471 is output to the texture engine circuit 13 alone.
[0083]
Whether the two rectangular area data can be integrated is determined by the position information of each rectangular area data and the position of the pixel in each rectangular area. When the position information of the rectangular area data is the same and the positions of the pixels in the rectangular area do not overlap, it is determined that the integration is possible. FIG. 11 shows examples of cases where integration is possible and cases where integration is not possible.
[0084]
As shown in FIG. 11A, the rectangular area data (a-1) and the rectangular area data (a-2) have the same position information between the rectangular area data, and the pixels in the rectangular area. This is an example where the positions do not overlap, and it is determined that integration is possible. On the other hand, in FIG. 11B, the rectangular area data (b-1) and the rectangular area data (b-2) have the same positional information of the rectangular area data, but the positions of the pixels in the rectangular area. This is an example of the case of overlapping, and it is determined that integration is impossible.
[0085]
The integrated rectangular area data generation means 473 in the rectangular area data integration means 47 shown in FIG. 10 integrates two rectangular area data having the same position information, and generates one rectangular area data. The generated rectangular area data has valid pixel data held by the original two rectangular area data. The position information is the same as the original rectangular area data. The new integrated rectangular area data is recorded in the rectangular area data storage means 48.
[0086]
FIG. 12 shows a specific example of integration processing executed by the integrated rectangular area data generation unit 473 in the rectangular area data integration unit 47. The integrated rectangular area data generation unit 473 integrates two rectangular area data (a) and (b) having the same position information, and generates one rectangular area data (c). The generated rectangular area data (c) is the total effective of the effective pixels ((a) = 4, (b) = 3) held by the original two rectangular area data (a) and (b). It has data of the number of pixels ((C) = 7). The position information of the integrated rectangular area data (c) is the same as the position information of the original rectangular area data (a) and (b).
[0087]
The integrated rectangular area data generation unit 473 executes processing for integrating rectangular area data having the same position information and writing back to the rectangular area data storage unit 48. Since the integrated rectangular area data is returned to the rectangular area data storage means 48 again, there is a possibility that the integrated rectangular area data is again subject to integration. Therefore, it is possible to combine three or more rectangular area data into one rectangular area data.
[0088]
FIG. 13 shows an example of processing when three or more pieces of rectangular area data are combined into one piece of rectangular area data in the integrated rectangular area data generation means 473 in the rectangular area data integration means 47. The integrated rectangular area data generation means 473 first integrates two rectangular area data (a) and (b) having the same position information, and generates one rectangular area data. Further, the rectangular area data (c) is integrated with the combined rectangular area data (a) + (b) to generate one rectangular area data. Further, the rectangular area data (d) is integrated with the combined rectangular area data (a) + (b) + (c) to generate one rectangular area data. Further, the rectangular area data (e) is integrated with the combined rectangular area data (a) + (b) + (c) + (d), and one rectangular area data (f) = (a) + ( b) + (c) + (d) + (e) is generated.
[0089]
The generated rectangular area data (f) is an effective pixel ((a) held by each of the original five rectangular area data (a), (b), (c), (d), (e). = 1, (b) = 1, (c) = 2, (d) = 3, (e) = 1), the total number of effective pixels ((f) = 8). The position information of the integrated rectangular area data (f) is the same as the position information of the original rectangular area data (a), (b), (c), (d), (e).
[0090]
FIG. 14 is a flowchart illustrating details of processing executed when the rectangular area data integration unit 47 outputs rectangular area data to the texture engine circuit 13. Hereinafter, processing of each step shown in the flowchart will be described.
[0091]
Step S201: The rectangular area data selection unit 471 selects rectangular area data as candidates for integration from the rectangular area data storage unit 48. For the selection, the oldest rectangular area data is selected from the rectangular area data that has been input to the rectangular area data storage means 48 for a predetermined time or more.
[0092]
Step S202: The rectangular area data comparison means 472 compares the rectangular area data selected by the rectangular area data selection means 471 with the rectangular area data in the rectangular area data storage means 48, and checks whether or not integration is possible. The comparison is performed on the basis of whether the position information of the rectangular area data is the same and whether the positions of the pixels in the rectangular area do not overlap.
[0093]
Step S203: Whether the rectangular area data that can be integrated with the rectangular area data selected by the rectangular area data selecting means 471 is in the rectangular area data storage means 48 or not. If there is, the process proceeds to step S204. If not, the process proceeds to step S205.
[0094]
Step S204: The integrated rectangular area data generation unit 473 integrates the rectangular area data having the same position information, and writes it back to the rectangular area data storage unit 48. Since the integrated rectangular area data is returned to the rectangular area data storage means 48, there is a possibility that the integrated rectangular area data will be the object of integration again. Therefore, as shown in FIG. 13 described above, three or more pieces of rectangular area data can be combined into one piece of rectangular area data.
[0095]
Step S205: The rectangular area data selected by the rectangular area data selecting means 471 is output to the texture engine circuit 13.
[0096]
By such a procedure, the rectangular area data of the rectangular areas as processing unit areas set corresponding to different polygons are integrated, and the integrated rectangular area data is output to the texture engine circuit 13 shown in FIG. Will be. The texture engine circuit 13 determines a color, a fog value, coordinates, and the like for a pixel having a valid value from the rectangular area data input from the triangle DDA circuit 12, and the graphics memory via the memory interface circuit 14. Write to 15.
[0097]
Since the texture engine circuit 13 can execute processing on the integrated rectangular area data, the processing is executed for each processing unit area set for each unit graphic (polygon) as in the prior art. Compared to the case, the number of unit areas (rectangular area data) to be processed is reduced, and the number of effective pixels included in one unit area (rectangular area data) is also increased by the integration process. , Efficient processing becomes possible.
[0098]
In this embodiment, the rectangular area data comparison unit 472 passes to the integrated rectangular area data generation unit 473 and is integrated in one integration process. However, it is not necessary to have two rectangular area data. The integrated rectangular area data generation unit may collectively determine the possibility of integration of three or more rectangular area data, and execute integration of three or more rectangular area data at a time. In this case, the rectangular area data (a) to (e) described above with reference to FIG. 13 are integrated in a batch without sequentially processing the rectangular area data (a) to (e) two at a time. Thus, the rectangular area data (f) is generated.
[0099]
In addition, as described above with reference to FIG. 11, in this embodiment, when rectangular area data is integrated, if pixel positions overlap in the area, it cannot be integrated. They may be integrated to generate a new pixel. In this case, for example, a color or fog value as rendering data corresponding to the pixel is determined based on data corresponding to a plurality of pixels at the same position, such as generating a new color by mixing the colors of the pixels. Then, the rendering data of the pixels included in the new integrated rectangular area data is set.
[0100]
Furthermore, in the present embodiment, the rectangular area data generation unit has been described as a configuration example having two of the rectangular area data generation units 41 and 42 as described with reference to FIG. Need not be two, for example, four or eight. In this case, there is an advantage that the number of rectangular area data that can be generated simultaneously increases.
[0101]
Further, in this embodiment, the triangle DDA circuit 12 includes a drawing order determining means for determining the drawing order based on the adjacency relationship as shown in FIG. 4 in order to consider the adjacency relationship of polygons. In addition, in the adjacent side mode register, as a configuration capable of determining the processing mode, a mode end register is further provided so that the mode end can be determined. For example, drawing is performed without considering the adjacent relationship. If it is a configuration, each of these configurations is omitted, and one or more rectangular area data generation means and rectangular area data integration means are provided, and a plurality of rectangular area data generated by the rectangular area data generation means are integrated. One integrated rectangular area data may be output.
[0102]
In this embodiment, the rectangular area is set as one unit area for pixel processing. However, this unit area can be set as an area having an arbitrary shape including a plurality of pixels.
[0103]
Next, returning to FIG. 1, processing of each component that executes processing of output data of the triangle DDA circuit 12 will be described.
[0104]
The texture engine circuit 13 is connected to the triangle DDA circuit 12 and the memory interface circuit 14, and among the input rectangular area data, the corresponding data is simultaneously sent to the graphics memory 15 for a plurality of pixels containing valid values. Then, the data is read out via the memory interface circuit 14, mixed with the pixel color, and further mixed with the fog color using the fog value. Finally, the pixel coordinates, color, and z value are written into the graphics memory 15 via the memory interface circuit 14.
[0105]
The memory interface circuit 14 is connected to the texture engine circuit 13, the graphics memory 15, and the display controller circuit 16, and in order to calculate a value corresponding to the texture coordinates input from the texture engine circuit 13, for example, one texture For the coordinates, four neighboring point values are read out from the graphics memory 15, processing such as linear interpolation corresponding to the distance is performed, and the calculated value is output to the texture engine circuit 13. Further, based on the coordinate value of the pixel input from the texture engine circuit 13, if the input z value is closer to the viewpoint (viewpoint side) than the z value corresponding to the coordinate value of the pixel in the graphics memory 15. For example, the color and the z value are written in the graphics memory 15. In some cases, the color of the graphics memory 15 and the input color are mixed and written to the graphics memory 15 for the expression of a translucent substance. When a read request for the graphics memory 15 is received from the display controller circuit 16, the color of the requested data is output from the graphics memory 15.
[0106]
The graphics memory 15 is connected to the memory interface circuit and stores texture data, pixel colors, and z values. Data is rewritten and output in response to a read / write request from the memory interface circuit.
[0107]
The display controller circuit 16 is connected to the memory interface circuit 14, generates an address to be displayed on a display means such as a CRT (not shown), and reads display data from the graphics memory 15 in synchronization with a given horizontal and vertical synchronization signal. The request is output to the memory interface circuit 14. Display data that is input from the memory interface circuit 14 is stored in a built-in storage circuit, converted into analog RGB data, and output to display means such as a CRT at regular time intervals.
[0108]
Next, the operation of the three-dimensional computer graphics system 1 shown in FIG. First, polygon rendering data is output from the main processor 4 to the triangle DDA circuit 12 via the main bus 6. In the DDA setup circuit 11, variation data in the vertical and horizontal directions of the triangle are calculated, and the calculated data is output to the drawing order determining means 40 of the triangle DDA circuit 12.
[0109]
The drawing order determining means 40 of the triangle DDA circuit 12 calculates (unconfirmed) drawing order data based on the DDA setup data input from the DDA setup circuit 11 and stores it in the storage means 49 together with the DDA setup data. Then, when the DDA setup data to be drawn next to the polygon stored in the storage means 49 is output from the DDA setup circuit 11 to the drawing order determination means 40 in the same manner, the preceding process polygon stored in the storage means 49 The DDA setup data and the drawing order data are determined and can be output to the rectangular area data generating means 41 or the rectangular area data generating means 42.
[0110]
When processing the adjacent sides of the polygon, the rectangular region data generation means 41 and 42 execute the generation processing of the rectangular region data belonging to the two adjacent polygons in parallel, and process the non-adjacent portion. Generation processing of rectangular area data belonging to the same polygon is executed in parallel. When the processing of the non-adjacent part is completed and the process proceeds to the process of the adjacent part, the rectangular area data generation unit 41 first receives data from the drawing order determination unit 40. At this time, the rectangular area data generation means 42 performs processing of the previous polygon. Then, when the processing of the adjacent portion is completed and the process proceeds to the processing of the non-adjacent portion, the rectangular area data generation unit 42 receives data from the drawing order determination unit 40. At this time, the rectangular area data generation means 41 and 42 process the same polygon. The rectangular area data generation means 41 and 42 share the processing of the same polygon, for example, by generating every other generated rectangular area data. When the processing for the non-adjacent portion is completed and the processing for the adjacent portion is started again, the polygon data to be drawn next is input to the rectangular area data generating means 41. In this manner, the rectangular area data is generated for the adjacent part and the non-adjacent part, and is output to the rectangular area data storage unit 48.
[0111]
The rectangular area data integration unit 47 integrates the data in the same area among the data in the rectangular area data storage unit 48 and outputs the data to the texture engine circuit 13.
[0112]
The texture engine circuit 13 simultaneously reads out the values corresponding to the texture coordinates from the graphics memory 15 via the memory interface circuit 14 for the effective pixels in the rectangular area data, and outputs the pixel color and texture. Then, the fog color is mixed using the fog value, and the pixel coordinate, color, and z value are output to the memory interface circuit 14.
[0113]
The memory interface circuit 14 uses the input z value and color to overwrite the color of the graphics memory 15 at the input coordinates, or performs overwriting after mixing.
[0114]
The display controller circuit 16 reads the color of the pixel in the graphics memory 15 via the memory interface circuit 14 and outputs it as analog RGB data to a display means such as a CRT. With the above operation, the model can be efficiently drawn.
[0115]
In this embodiment, an example of processing for alternately drawing adjacent portions and non-adjacent portions of each polygon by one drawing has been shown, but the operation until writing the z value and color of each pixel of the model is set as one operation. And it is good also as a structure which processes an adjacent part and a non-adjacent part alternately for each operation | movement unit. That is, the first time executes the z value and color processing of the adjacent portion, the second time executes the z value and color processing of the non-adjacent portion, or the first time, the first time executes the z value and color of the non-adjacent portion. The processing configuration may be such that the z value and color of the adjacent portion are processed the second time.
[0116]
The present invention has been described in detail above with reference to specific embodiments. However, it is obvious that those skilled in the art can make modifications and substitutions of the embodiments without departing from the gist of the present invention. In other words, the present invention has been disclosed in the form of exemplification, and should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims section described at the beginning should be considered.
[0117]
The series of processes described in the specification can be executed by hardware, software, or a combined configuration of both. When executing processing by software, the program recording the processing sequence is installed in a memory in a computer incorporated in dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It can be installed and run.
[0118]
For example, the program can be recorded in advance on a hard disk or ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a floppy disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.
[0119]
The program is installed on the computer from the removable recording medium as described above, or is wirelessly transferred from the download site to the computer, or is wired to the computer via a network such as a LAN (Local Area Network) or the Internet. The computer can receive the program transferred in this manner and install it on a recording medium such as a built-in hard disk.
[0120]
Note that the various processes described in the specification are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, the system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
[0121]
【The invention's effect】
As described above, according to the image processing apparatus and method of the present invention, when drawing continuous unit graphics, the effective number of pixels in the processing unit region is obtained by integrating the unit region data to be processed. The total number of processing unit area data can be reduced. As a result, it is possible to efficiently draw an image. In other words, in a configuration that executes drawing processing of continuous unit graphics such as polygons, it is possible to perform drawing by executing integration processing of region data that can be processed at the same time. The number of effective pixels can be increased, the number of area data can be reduced, and the efficiency of drawing processing is realized.
[0122]
Further, according to the graphic operation device and method of the present invention, in the continuous drawing process of polygons, the unit area corresponding to each polygon, for example, rectangular area data is not processed independently, but straddles adjacent sides of adjacent polygons. As for the existing rectangular area, the processing is executed by integrating the respective rectangular area data corresponding to each polygon to generate one rectangular area data, so that it is possible to efficiently draw an image.
[0123]
In addition, according to the graphic arithmetic device and method of the present invention, the processing unit area data is generated in consideration of the adjacency relation of unit graphics such as polygons, so that it is possible to determine whether processing unit areas can be integrated. And the integration process is efficiently executed, and the image can be efficiently drawn.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to the present invention.
FIG. 2 is a diagram illustrating rectangular area data integration processing executed in the image processing apparatus of the present invention.
FIG. 3 is a diagram illustrating rectangular area data integration processing executed in the image processing apparatus of the present invention.
FIG. 4 is a block diagram showing a detailed configuration of a triangle DDA circuit in the image processing apparatus of the present invention.
FIG. 5 is a diagram illustrating a polygon processing procedure executed in the image processing apparatus of the present invention.
FIG. 6 is a diagram illustrating a polygon processing procedure executed in the image processing apparatus of the present invention.
FIG. 7 is a diagram illustrating polygon processing procedures and rectangular area data executed in the image processing apparatus of the present invention.
FIG. 8 is a diagram for explaining polygon processing procedures and rectangular area data executed in the image processing apparatus of the present invention;
FIG. 9 is a flowchart illustrating processing executed in a triangle DDA circuit of the image processing apparatus of the present invention.
FIG. 10 is a block diagram showing a detailed configuration of rectangular area data integration means in the triangle DDA circuit of the image processing apparatus of the present invention.
FIG. 11 is a diagram illustrating rectangular area data integration processing executed by area data integration means of the image processing apparatus according to the present invention.
FIG. 12 is a diagram illustrating rectangular area data integration processing executed by the area data integration unit of the image processing apparatus according to the present invention.
FIG. 13 is a diagram illustrating rectangular area data integration processing executed by the area data integration unit of the image processing apparatus according to the present invention.
FIG. 14 is a flowchart for explaining processing executed by the area data integration unit of the image processing apparatus according to the present invention.
FIG. 15 is a diagram illustrating rectangular unit area processing of a polygon in the image processing apparatus.
FIG. 16 is a diagram for explaining a problem in polygon rectangular area unit processing in the image processing apparatus;
[Explanation of symbols]
1 3D computer graphics system
2 Main memory
3 I / O interface circuit
4 Main processor
5 Rendering circuit
6 Main bus
11 DDA setup circuit
12 Triangle DDA circuit
13 Texture engine circuit
14 Memory interface circuit
15 Graphics memory
16 Display controller circuit
40 Drawing order determination means
41 Rectangular area data generation means
42 Rectangular area data generation means
43 Adjacent side mode register
44 Adjacent side mode register
45 Mode end register
46 Mode end register
47 Rectangular area data integration means
48 Rectangular area data storage means
49 Memory means
471 Rectangular area data selection means
472 Rectangular area data comparison means
473 Integrated rectangular area data generation means

Claims (13)

描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、
前記処理単位領域データ生成手段は、並列処理可能な複数の処理単位領域データ生成手段によって構成され、
前記描画順決定手段は、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行する構成としたことを特徴とする画像処理装置。
In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
The processing unit area data generation means is constituted by a plurality of processing unit area data generation means capable of parallel processing,
The drawing order determining means includes
One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. An image processing apparatus comprising: a plurality of processing unit region data generation units configured to execute drawing order determination processing so as to be executed in parallel .
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、  Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、  A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、  Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
該描画順決定手段は、  The drawing order determining means includes:
1つの単位図形の描画処理手順を、先行処理単位図形との隣接部、非隣接部、後続処理単位図形との隣接部の順番として設定する処理を実行する構成であることを特徴とする画像処理装置。  Image processing characterized in that a process for setting a drawing process procedure of one unit graphic as an order of an adjacent part with a preceding process unit graphic, a non-adjacent part, and an adjacent part with a subsequent process unit graphic is executed. apparatus.
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、  Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、  A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定手段を有し、  Drawing order determining means for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics,
該描画順決定手段は、  The drawing order determining means includes:
単位図形の境界としての辺を含む領域の描画順を、時計回り、又は反時計回りいずれかのループ状に設定する構成であることを特徴とする画像処理装置。  An image processing apparatus having a configuration in which a drawing order of an area including a side as a boundary of a unit graphic is set in a loop shape of either clockwise or counterclockwise.
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、  Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段を有し、  When a plurality of processing unit area data generated in the processing unit area data generation means has the same position information, the processing unit area data integration means for executing an integration process of the plurality of processing unit area data,
前記処理単位領域データ統合手段は、  The processing unit area data integration means includes:
前記処理単位領域データ生成手段において生成された処理単位領域データの持つ位置情報が同じで、かつ処理単位領域内の有効ピクセル位置が重複しないことを条件として複数の処理単位領域データを1つの処理単位領域データに統合する処理を実行する構成であることを特徴とする画像処理装置。  The processing unit region data generated by the processing unit region data generating means has the same position information and the processing unit region data is processed into one processing unit on condition that the effective pixel positions in the processing unit region do not overlap. An image processing apparatus having a configuration for executing processing to be integrated into region data.
描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理装置において、In an image processing apparatus that performs drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system.
前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成手段と、  Processing unit region data generation means for calculating pixel attribute values for each processing unit region included in the unit graphic as processing unit region data;
前記処理単位領域データ生成手段において生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合手段と、  A processing unit region data integration unit that executes integration processing of the plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation unit has the same position information;
前記処理単位領域データ生成手段において生成された処理単位領域データを記憶する単位領域データ記憶手段を有し、  Unit area data storage means for storing the processing unit area data generated in the processing unit area data generation means,
前記処理単位領域データ統合手段は、前記単位領域データ記憶手段に記憶された複数の処理単位領域データの位置情報に基づいて統合可能性を判定する構成を有することを特徴とする画像処理装置。  The image processing apparatus according to claim 1, wherein the processing unit region data integration unit has a configuration for determining the possibility of integration based on position information of a plurality of processing unit region data stored in the unit region data storage unit.
描画処理対象モデルは3次元モデルであり、前記単位図形はポリゴンであることを特徴とする請求項1〜5いずれかに記載の画像処理装置。Rendering object model is three-dimensional model, an image processing apparatus according to any one of claims 1-5, characterized in that said unit graphic is a polygon. 画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定する描画順決定ステップを有し、
前記処理単位領域データ生成ステップは、並列処理可能な複数の処理単位領域データ生成手段によって実行され、
前記描画順決定ステップは、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行することを特徴とする画像処理方法。
In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system ,
A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
The drawing order determining means includes a drawing order determining step for determining a processing procedure in the processing unit region data generating means based on the adjacent relationship between different unit graphics.
The processing unit region data generation step is executed by a plurality of processing unit region data generation means capable of parallel processing,
The drawing order determining step includes:
One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. An image processing method , wherein the drawing order determination processing is executed so as to be executed in parallel by the plurality of processing unit region data generation means .
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、  A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、  A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ  The drawing order determining means determines whether the processing unit region data is based on the adjacent relationship between different unit graphics. 生成ステップにおける処理手順を決定する描画順決定ステップを有し、A drawing order determining step for determining a processing procedure in the generating step;
該描画順決定ステップは、  The drawing order determining step includes:
1つの単位図形の描画処理手順を、先行処理単位図形との隣接部、非隣接部、後続処理単位図形との隣接部の順番として設定する処理を実行することを特徴とする画像処理方法。  An image processing method, comprising: executing a process of setting a drawing process procedure of one unit graphic as an order of an adjacent part with a preceding process unit graphic, a non-adjacent part, and an adjacent part with a subsequent process unit graphic.
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、  A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、  A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
描画順決定手段が、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成ステップにおける処理手順を決定する描画順決定ステップを有し、  The drawing order determining means has a drawing order determining step for determining a processing procedure in the processing unit region data generation step based on the adjacent relationship between different unit graphics.
該描画順決定ステップは、  The drawing order determining step includes:
単位図形の境界としての辺を含む領域の描画順を、時計回り、又は反時計回りいずれかのループ状に設定することを特徴とする画像処理方法。  An image processing method, wherein a drawing order of an area including a side as a boundary of a unit graphic is set in a loop shape of either clockwise or counterclockwise.
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、  A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップを有し、  A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information Having an area data integration step,
前記処理単位領域データ統合ステップは、  The processing unit area data integration step includes:
前記処理単位領域データ生成ステップにおいて生成された処理単位領域データの持つ位置情報が同じで、かつ処理単位領域内の有効ピクセル位置が重複しないことを条件として複数の処理単位領域データを1つの処理単位領域データに統合する処理を実行することを特徴とする画像処理方法。  The processing unit region data generated in the processing unit region data generation step has the same position information and the processing unit region data is converted into one processing unit on condition that the effective pixel positions in the processing unit region do not overlap. An image processing method characterized by executing processing for integration into region data.
画像処理装置において、描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理方法であり、In an image processing apparatus, an image processing method for performing drawing processing by dividing a drawing processing target model into unit graphics and generating pixels in a drawing target area of a screen coordinate system,
処理単位領域データ生成手段が、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出する処理単位領域データ生成ステップと、  A processing unit region data generation means for calculating, as processing unit region data, a pixel attribute value for each processing unit region included in the unit graphic;
処理単位領域データ統合手段が、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行する処理単位領域データ統合ステップと、  A processing unit in which processing unit region data integration means executes integration processing of a plurality of processing unit region data when the plurality of processing unit region data generated in the processing unit region data generation step has the same position information An area data integration step;
単位領域データ記憶手段が、前記処理単位領域データ生成ステップにおいて生成された処理単位領域データを記憶手段に記憶する単位領域データ記憶ステップを有し、  The unit area data storage means has a unit area data storage step for storing the processing unit area data generated in the processing unit area data generation step in the storage means;
前記処理単位領域データ統合ステップは、前記単位領域データ記憶ステップにおいて記憶された複数の処理単位領域データの位置情報に基づいて統合可能性を判定することを特徴とする画像処理方法。  The image processing method characterized in that the processing unit region data integration step determines integration possibility based on position information of a plurality of processing unit region data stored in the unit region data storage step.
描画処理対象モデルは3次元モデルであり、前記単位図形はポリゴンであることを特徴とする請求項7〜11いずれかに記載の画像処理方法。Rendering object model is three-dimensional model, an image processing method according to any one of claims 7 to 11, characterized in that said unit graphic is a polygon. 描画処理対象モデルを単位図形に分割して、スクリーン座標系の描画対象領域内にピクセルを発生させて描画処理を行なう画像処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムであって、
処理単位領域データ生成手段に、前記単位図形に含まれる処理単位領域毎のピクセル属性値を処理単位領域データとして算出させる処理単位領域データ生成ステップと、
処理単位領域データ統合手段に、前記処理単位領域データ生成ステップにおいて生成された複数の処理単位領域データが同一の位置情報を有する場合に、該複数の処理単位領域データの統合処理を実行させる処理単位領域データ統合ステップと、
描画順決定手段に、異なる単位図形間の隣接関係に基づいて、前記処理単位領域データ生成手段における処理手順を決定させる描画順決定ステップを有し、
前記処理単位領域データ生成ステップは、並列処理可能な複数の処理単位領域データ生成手段によって実行され、
前記描画順決定ステップは、
2つの単位図形間の隣接辺を含む処理単位領域、および、2つの単位図形間の隣接辺を含まない非隣接部の処理単位領域についての処理単位領域データの生成処理のいずれか一方の処理を、前記複数の処理単位領域データ生成手段において並列に実行するように描画順の決定処理を実行させるステップであることを特徴とするコンピュータ・プログラム。
A computer program that executes image processing on a computer system by dividing a drawing processing target model into unit graphics, generating pixels in a drawing target area of a screen coordinate system, and performing drawing processing,
The processing unit region data generating means, and a unit region data generating step of Ru was calculated pixel attribute value of the processing unit each region included in the unit figures as a unit region data,
The processing unit region data merging unit, when a plurality of processing unit area data generated in the processing unit region data generating step having the same location information, Ru to execute the integrating process in the processing unit area data of the plurality of processing Unit area data integration step;
A drawing order determining step for causing the drawing order determining means to determine a processing procedure in the processing unit region data generating means based on an adjacent relationship between different unit graphics;
The processing unit region data generation step is executed by a plurality of processing unit region data generation means capable of parallel processing,
The drawing order determining step includes:
One of processing unit region data generation processing for a processing unit region including an adjacent side between two unit graphics and a processing unit region of a non-adjacent portion not including an adjacent side between two unit graphics. A computer program characterized in that it is a step of executing a drawing order determining process so as to be executed in parallel in the plurality of processing unit area data generating means .
JP2001314691A 2001-10-12 2001-10-12 Image processing apparatus, image processing method, and computer program Expired - Fee Related JP4042377B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001314691A JP4042377B2 (en) 2001-10-12 2001-10-12 Image processing apparatus, image processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001314691A JP4042377B2 (en) 2001-10-12 2001-10-12 Image processing apparatus, image processing method, and computer program

Publications (2)

Publication Number Publication Date
JP2003123082A JP2003123082A (en) 2003-04-25
JP4042377B2 true JP4042377B2 (en) 2008-02-06

Family

ID=19132957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001314691A Expired - Fee Related JP4042377B2 (en) 2001-10-12 2001-10-12 Image processing apparatus, image processing method, and computer program

Country Status (1)

Country Link
JP (1) JP4042377B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100595794C (en) 2004-08-04 2010-03-24 松下电器产业株式会社 Drawing device
JP3892016B2 (en) 2005-02-23 2007-03-14 株式会社ソニー・コンピュータエンタテインメント Image processing apparatus and image processing method
CN115374109B (en) * 2022-07-29 2023-09-01 华为技术有限公司 Data access method, device, computing equipment and system

Also Published As

Publication number Publication date
JP2003123082A (en) 2003-04-25

Similar Documents

Publication Publication Date Title
TWI618030B (en) Method and system of graphics processing enhancement by tracking object and/or primitive identifiers, graphics processing unit and non-transitory computer readable medium
TWI636423B (en) Method for efficient construction of high resolution display buffers
EP3129973B1 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US6704018B1 (en) Graphic computing apparatus
JP5232358B2 (en) Rendering outline fonts
US20030117589A1 (en) Image processor, components thereof, and rendering method
JP2005100177A (en) Image processor and its method
JP2009545827A (en) Graphic system using pixel mask
KR20150039495A (en) Apparatus and Method for rendering a current frame using an image of previous tile
JP2010510608A (en) Efficient scissoring for graphics applications
JP2009517770A (en) Computer graphics processor and method for rendering stereoscopic images on a display screen
TW201706962A (en) Graphics processing
JP3892016B2 (en) Image processing apparatus and image processing method
JP2005100176A (en) Image processor and its method
US20150015574A1 (en) System, method, and computer program product for optimizing a three-dimensional texture workflow
JPH11161819A (en) Image processor, its method and recording medium recording image processing program
KR101517465B1 (en) 3 asterization Engine and three-dimension graphics system for rasterizing by order adapted characteristic of polygon
JP7460641B2 (en) Apparatus and method for generating a light intensity image - Patents.com
JP4042377B2 (en) Image processing apparatus, image processing method, and computer program
US11030791B2 (en) Centroid selection for variable rate shading
JP3979162B2 (en) Image processing apparatus and method
WO2022134125A1 (en) Graphics processing method and apparatus and electronic device
JP4691494B2 (en) Image drawing apparatus, vertex selection method, vertex selection program, and integrated circuit
JP2019530069A (en) Parallel micropolygon rasterizer
JP3747859B2 (en) Image processing apparatus and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070824

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: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees