(57)【要約】【課題】描画処理装置の処理能力の向上を図る。【解決手段】チャンクマージユニット１００は、ラスタライザ１０から入力されたピクセルデータをチャンクというフラグメント単位で、チャンクデータバッファ１１０に格納していくとともに、チャンクデータバッファ１１０に既に格納されているチャンクと同一位置のチャンクに含まれるピクセルデータがラスタライザ１０から入力された場合には、ピクセルデータの抵触が生じなければ、２つのチャンクをマージする。【選択図】  図４
2004326678.tif 000002
【特許請求の範囲】
【請求項１】
入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成する、フラグメント生成部と、
前記フラグメント生成部で生成されたフラグメントに含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、
を備えることを特徴とする描画処理装置。
【請求項２】
前記フラグメントは、矩形状に隣接する位置にあるピクセルの集合であることを特徴とする請求項１に記載の描画処理装置。
【請求項３】
前記フラグメントは、離れた位置にあるピクセルの集合であることを特徴とする請求項１に記載の描画処理装置。
【請求項４】
ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、１つのラスタライズ結果として保持する、データバッファと、
前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、
を備えることを特徴とする描画処理装置。
【請求項５】
入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成し、前記データバッファにラスタライズ結果として格納する、フラグメント生成部であって、前記データバッファに既に格納されている座標位置が同一位置であるラスタライズ結果を読み出し、読み出したラスタライズ結果に含まれているピクセルデータと、入力されたピクセルデータとが抵触しない場合は、両者を合併して、１つのラスタライズ結果として、前記データバッファに格納する、フラグメント生成部を、さらに備えることを特徴とする請求項４に記載の描画処理装置。
【請求項６】
前記フラグメント生成部は、複数のラスタライズ結果を合併させる際には、合併の単位が少なくとも縦横２画素以上の単位で合併処理することを特徴とする請求項５に記載の描画処理装置。
【請求項７】
前記データバッファは複数設けられていることを特徴とする請求項４乃至請求項６のいずれかに記載の描画処理装置。
【請求項８】
各データバッファが格納するセグメントの座標位置が、固定的である、ことを特徴とする請求項７に記載の描画処理装置。
【請求項９】
前記フラグメント生成部は、デプステスト機能を備えている、ことを特徴とする請求項４乃至請求項８のいずれかに記載の描画処理装置。
【請求項１０】
入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成する、ステップと、
生成された前記フラグメントに含まれているピクセルデータに対して、順次、処理を行う、ステップと、
を備えることを特徴とする描画処理方法。
【請求項１１】
前記フラグメントは、矩形状に隣接する位置にあるピクセルの集合であることを特徴とする請求項１０に記載の描画処理方法。
【請求項１２】
前記フラグメントは、離れた位置にあるピクセルの集合であることを特徴とする請求項１０に記載の描画処理方法。
【請求項１３】
ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、１つのラスタライズ結果として、データバッファに格納する、ステップと、
前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ステップと、
を備えることを特徴とする描画処理方法。
【請求項１４】
入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成し、前記データバッファにラスタライズ結果として格納するとともに、前記データバッファに既に格納されている座標位置が同一位置であるラスタライズ結果を読み出し、読み出したラスタライズ結果に含まれているピクセルデータと、入力されたピクセルデータとが抵触しない場合は、両者を合併して、１つのラスタライズ結果として、前記データバッファに格納するステップを、さらに備えることを特徴とする請求項１３に記載の描画処理方法。
【請求項１５】
複数のラスタライズ結果を合併させる際には、合併の単位が少なくとも縦横２画素以上の単位で合併処理することを特徴とする請求項１４に記載の描画処理方法。
【請求項１６】
前記データバッファは複数設けられていることを特徴とする請求項１３乃至請求項１５のいずれかに記載の描画処理方法。
【請求項１７】
各データバッファが格納するセグメントの座標位置が、固定的である、ことを特徴とする請求項１６に記載の描画処理方法。
【請求項１８】
ラスタライズ結果を前記データバッファに格納する際には、デプステストを行い、深い奥行き値を有するピクセルデータは破棄する、ことを特徴とする請求項１３乃至請求項１７のいずれかに記載の描画処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画処理装置及び描画処理方法に関する。
【０００２】
【従来の技術】
一般に、デプステストやαブレンド処理において、フレームバッファから現在の値を読み込んでから、処理結果の値を書き込むまでの間に、同じ画素位置に対する書き込み処理が行われても、その結果が反映できず、正しい処理結果にならない。このため、従来技術では、ピクセル処理部に現在処理中の画素位置を保持し、新たに処理しようとする画素位置と比較して、処理中位置と一致した場合にはその処理終了を待つ仕組みがある。
【０００３】
図１は、従来の画像処理装置の構成を示すブロック図である。この図１に示すラスタライザ１０は、ポリゴンを画像メモリ上でピクセル単位に描画する処理を行う。
【０００４】
例えば、ピクセル単位の色は、スムーズ・シェーディングと呼ばれる手法により、各頂点に与えられた色を線形補間して決定される。この場合、ピクセル処理部２０は、Ｚバッファ法と呼ばれる隠面消去アルゴリズムにより、あるオブジェクトに隠れて見えないオブジェクトを隠す（描画しない）ようにする。これをデプステストともいう。ピクセル処理部２０は、レジスタ２２と演算器２４とを備えており、順次、メモリ３０にあるフレームバッファ値と、ラスタライザからの値とがレジスタ２２に格納され、演算器２４でテクスチャマッピングやＺバッファ法による処理が行われ、再びレジスタ２２に格納される。フレームバッファであるメモリ３０には、このレジスタ２２の内容が出力される。したがって、メモリ３０がレジスタ２２から演算結果を取得する際に、演算器２４が処理中の処理位置と、メモリ３０から取得しようとしている処理位置とが一致するかどうかを比較判断し、これらの処理位置が一致する場合には、そのピクセルの処理開始を待つ必要がある。
【０００５】
【発明が解決しようとする課題】
しかし、ＬＳＩの高クロック化が進むと、処理のレイテンシ（図２におけるレジスタ２２にデータが入力されてから、そのデータが出力されるまでの時間）が長くなり、保持しなくてはならない画素数が増え、比較装置の増大と、処理位置一致による停止率の上昇が、問題となる。
【０００６】
一方、ＬＳＩの規模の増大によって、ＬＳＩが実装できるピクセル処理部の並列度が大きくなっているが、従来の技術では、小さなポリゴンの処理では高並列化されたピクセル処理部の一部しか稼動させることができず、回路規模の増加に対して処理の性能はそれほど上がらない。
【０００７】
そこで本発明は、前記課題に鑑みてなされたものであり、処理能力の向上を図ることのできる描画処理装置及び描画処理方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る描画処理装置は、入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成する、フラグメント生成部と、前記フラグメント生成部で生成されたフラグメントに含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、を備えることを特徴とする。
【０００９】
本発明に係る描画処理装置は、ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、１つのラスタライズ結果として保持する、データバッファと、前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、を備えることを特徴とする。
【００１０】
本発明に係る描画処理方法は、入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成する、ステップと、生成された前記フラグメントに含まれているピクセルデータに対して、順次、処理を行う、ステップと、を備えることを特徴とする。
【００１１】
本発明に係る描画処理方法は、ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、１つのラスタライズ結果として、データバッファに格納する、ステップと、前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ステップと、を備えることを特徴とする。
【００１２】
【発明の実施の形態】
本実施形態では、ラスタライズ処理において、セットアップ・ＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｓｉｓ）処理の後にバッファを置き、複数のポリゴンのラスタライズ結果をバッファリングして合併させてから、ピクセル処理部に処理を行わせるようにしたものである。より詳しくを、以下に説明する。
【００１３】
図３は、本実施形態におけるラスタライズ結果の合併の概念を説明する図である。この図３に示すように、本実施形態においては、異なる位置にあるピクセルを複数含んでいるチャンク（ｃｈｕｎｋ）という概念を導入する。図３の例では、８×８＝６４個のピクセルで、１つのチャンクが構成されている。このチャンクが、本実施形態におけるフラグメントである。このチャンクという概念を用いることにより、連続して投入されるピクセルに、同位置のピクセルがないことを保証し、このチャンクをピクセル処理部で処理するようにする。細かいグラフィックスプリミティブ（ｔｒｉａｎｇｌｅ，  ｐｏｌｙｇｏｎ）では、１つのチャンク内における有効なピクセルの割合が低いので、図３に示すようにマージする。この図３の例では、２つのグラフィックスプリミティブをマージして、１つのチャンク内のピクセルとして表現している。
【００１４】
図４は、本実施形態に係る描画処理装置の基本的な構成を示すブロック図である。この図４に示すように、本実施形態に係る描画処理装置においては、ラスタライザ１０とピクセル処理部２０との間に、チャンクマージユニット１００と、チャンクデータバッファ１１０とを追加挿入することにより、構成されている。
【００１５】
ラスタライザ１０は、ポリゴンを画像メモリ上でピクセル単位に描画する処理を行う。ピクセル単位の色は、スムーズ・シェーディングと呼ばれる手法により、各頂点に与えられた色を線形補間して決定される。このピクセル単位のデータを、ラスタライザ１０は、ラスタライズ結果として、チャンクマージユニット１００に出力する。
【００１６】
チャンクマージユニット１００では、ピクセル単位のデータを、チャンク単位のデータに変換し、マージを行う。このマージを行った結果のデータを、チャンクデータバッファ１１０に出力する。なお、チャンクマージユニット１００では、チャンクのマージを行う際に、各ピクセルの奥行き値（ｄｅｐｔｈ）に基づいて、深い奥行き値を有するピクセルデータを破棄するようにしてもよい。換言すれば、チャンクマージユニット１００がデプステスト機能を備えるようにしてもよい。チャンクデータバッファ１１０は、データバッファであり、このチャンクデータバッファ１１０に格納されたチャンクデータを、ピクセル処理部２０が取得する。
【００１７】
ピクセル処理部２０では、マージされたチャンクデータを処理する。すなわち、チャンクデータに対して、Ｚバッファ法と呼ばれる隠面消去アルゴリズムを実行する（デプステスト機能）。チャンクマージユニット１００がデプステスト機能を有する場合でも、正しく隠面消去をするためには、ピクセル処理部２０でもデプステストを行う必要がある。
【００１８】
この図４に示す描画処理装置は最も基本的な構成であり、１つのチャンクマージユニット１００に対応して、１つのチャンクデータバッファ１１０と１つのピクセル処理部２０が設けられている。チャンクデータバッファ１１０には１つ以上のチャンクデータを同時に格納することが可能である。
【００１９】
図５は、描画処理装置の変形例を示す図である。この図５の例では、１つのチャンクマージユニット１００に対して、複数のピクセル処理部２０が設けられ、メモリ３０が固定されている。図５の例では、１つのチャンクマージユニット１００に対して、２つのピクセル処理部２０が設けられている。各ピクセル処理部２０が処理するチャンクデータは、チャンクの位置（Ｘ座標、Ｙ座標）によって固定的に定まっている。チャンクデータバッファ１１０と、ピクセル処理部２０とは、１対１に対応しており、どちらのピクセル処理部２０がチャンクデータの処理をするかは、チャンクマージユニット１００が振り分けて決めている。
【００２０】
図６は、描画処理装置の別の変形例を示す図である。この図６の例では、ピクセル処理部２０とメモリ３０との間が、バス接続されている。バスの形態としては、単一バスでもよいし、多重バスでもよい。この図６の例は、メモリ３０が、ピクセル処理部２０と別のチップで構成される場合に有効である。この場合、各ピクセル処理部２０は、メモリ３０のすべての領域にアクセスできる。
【００２１】
図７は、描画処理装置のさらに別の変形例を示す図である。この図７の例では、複数のピクセル処理部２０が設けられているが、チャンクデータバッファ１１０とピクセル処理部２０との間の接続関係には、制限が設けられていない。すなわち、各ピクセル処理部２０が処理するチャンクデータは、任意であり、ピクセル処理部２０の処理が空いた時点で、次のチャンクデータを処理する。換言すれば、各ピクセル処理部２０は、いずれの位置のチャンクデータでも、処理することができることとなる。このため、ピクセル処理部２０の負荷分散が容易になる。ただし、同一位置のチャンクを同時に処理しないための機構は必要である。
【００２２】
図８は、本実施形態に係るチャンクマージユニット１００の構成を詳細に示すブロック図である。この図８に示すように、本実施形態に係るチャンクマージユニット１００は、ピクセルマージャー１２０と、マスクバッファ１２２と、データバッファ１２４と、シグナルジェネレータ１２６とを備えて構成されている。
【００２３】
ピクセルマージャー１２０は、異なるプリミティブから生成されたピクセルをマージするかどうかをチェックする。この図８の例では、ピクセルマージャー１２０には、チャンクデータバッファ１１０に格納されているチャンクに含まれているピクセルの奥行き値（ｄｅｐｔｈ）も入力されている。このため、ピクセルマージャー１２０は、チャンクデータバッファ１１０に格納されているピクセルデータの奥行き値と、ラスタライザ１０から入力されたピクセルの奥行き値とを比較して、深い奥行き値を有するピクセルデータの方を破棄することとしている。すなわち、図８のチャンクマージユニット１００は、デプステスト機能を併せ持っていると言える。
【００２４】
マスクバッファ１２２は、各ピクセルについて、チャンクデータバッファ１１０に書き込みをしたかどうかをステータスとして保持する。このステータスは、１ピクセルあたり１ビットのデータで構成されている。
【００２５】
データバッファ１２４は、各ピクセルのパラメータを一時的に保持する。シグナルジェネレータ１２６は、ＲＰのステータスと、オーバーフローフラグから、チャンクデータバッファ１１０をフラッシュして、ピクセル処理部２０のコントローラを起動するかどうかを決定する。
【００２６】
カバレッジ（ｃｏｖｅｒａｇｅ）、及び、ピクセルパラメータ（ｐｉｘｅｌ  ｐａｒａｍｅｔｅｒ）は、ラスタライザ１０から入力されるデータである。カバレッジは、ピクセルパラメータが有効か無効かを示す情報である。ＲＰステータスは、ピクセル処理部２０が現在処理中であるかどうかを示すステータス情報であり、ピクセル処理部２０から入力される。
【００２７】
データバッファ１２４がチャンクデータバッファ１１０に出力するチャンクデータは、１ピクセルあたり３２ビット×（６〜８のパラメータ）であり、各サイクル毎にチャンクデータバッファ１１０に書き出される。チャンクデータバッファ１１０では、入力されたチャンクデータを、どの位置のチャンクに関するものであるかを判断し、定められたチャンクにチャンクデータを書き込む。実際に書き込むかどうかは、ピクセルマージャー１２０が決定する。すなわち、ピクセルマージャー１２０は、書き込み処理をする場合には、ライトイネーブル（ｗｒｉｔｅ  ｅｎａｂｌｅ）をチャンクデータバッファ１１０に出力する。
【００２８】
図９は、チャンクデータバッファ１１０と、ピクセル処理部２０との間の接続方式の一例を示す図である。この図９に示す例では、１６個のチャンクデータバッファ１１０と、３２個のピクセル処理部２０とが設けられている。したがって、理想的に言えば、チャンクデータバッファ１１０とピクセル処理部２０との間は、１６対３２のｆｕｌｌ  Ｘ−ｂａｒであるが、本実施形態においては、４本の２５６ビットバスに、４個のチャンクデータバッファ１１０と８個のピクセル処理部２０とが接続されている構成を採用している。チャンクマージユニット１００とチャンクデータバッファ１１０との間は、１０２４ビットのバスで接続されている。
【００２９】
図１０は、本実施形態に係るチャンクマージユニット１００の別の構成例を詳細に示すブロック図である。この例では、１ピクセル毎に、図１０に示すブロックが設けられている。したがって、この例では、スタンプ内のピクセル数だけ、図１０のブロックが必要になる。本実施形態においては、２×２＝４個のピクセルで１つのスタンプを構成しているので、１スタンプあたり図１０のブロックが４つ必要になる。
【００３０】
この図１０に示すように、１ピクセル分のチャンクマージユニット１００は、チャンクデータアドレスカルキュレータ１３０と、チャンクフラッシュコントローラ１３２と、バッファ１３４と、大小比較回路１３６と、ＡＮＤ回路１３８とを備えて構成されている。
【００３１】
チャンクデータアドレスカルキュレータ１３０は、処理すべきピクセルのＸ座標、Ｙ座標を含んでいるチャンクデータがあるチャンクデータバッファ１１０内のアドレスを計算する。
【００３２】
チャンクフラッシュコントローラ１３２は、ラスタライザ１０から入力されたピクセル又はスタンプのデータと、チャンクフラッシュコントローラ１３２内のピクセル又はスタンプのデータとが、抵触しているかどうかを判断する。或いは、チャンクフラッシュコントローラ１３２は、その奥行き値（ｐｉｘｅｌ  ｄｅｐｔｈ）に応じて、どちらのデータを残すべきかを判定する。
【００３３】
チャンクフラッシュコントローラ１３２は、両者が抵触している場合には、その時点におけるチャンクデータバッファ１１０のチャンクデータを、ピクセル処理部２０に送信し、新しいチャンクを定義して、ラスタライザ１０から入力されたピクセルデータを新しいチャンクに書き込む。さらに、チャンクマージユニット１００は、奥行き値等に基づいて、残すべきデータが判定できた場合には、ラスタライザ１０から入力されたピクセルデータを破棄するか、それとも、ラスタライザ１０から入力されたピクセルデータをチャンクデータバッファ１１０に上書きするかを決定する。
【００３４】
バッファ１３４は、単なるＦＩＦＯであり、上述した処理をしている間、ラスタライザ１０から入力されたピクセルデータを保持する。大小比較回路１３６は、ラスタライザ１０から入力されたピクセルの奥行き値ｄｅｐｔｈ１と、チャンクデータバッファ１１０内のピクセルの奥行き値ｄｅｐｔｈ２との、大小関係を比較する。そして、ｄｅｐｔｈ１＞ｄｅｐｔｈ２、ｄｅｐｔｈ１≧ｄｅｐｔｈ２、ｄｅｐｔｈ１≦ｄｅｐｔｈ２、ｄｅｐｔｈ１＜ｄｅｐｔｈ２、ｄｅｐｔｈ１≠ｄｅｐｔｈ２、ｄｅｐｔｈ１＝ｄｅｐｔｈ２、又は、常に上書き、のいずれに該当するかを判断する。すなわち、大小比較回路１３６の比較結果に基づいて、チャンクマージユニット１００は、デプステストを行い、ラスタライザ１０から入力されたピクセルデータと、チャンクデータバッファ１１０にある同一位置のピクセルデータとのうちの一方を、破棄する。
【００３５】
ＡＮＤ回路１３８は、ラスタライザ１０から入力されたピクセルが有効であり、チャンクデータバッファ１１０内のピクセルが有効であることのＡＮＤ演算を行う。
【００３６】
図１１及び図１２は、ピクセル単位でチャンクのマージを行う処理概念を説明する図である。図１１は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図１２は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【００３７】
これら図１１及び図１２で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、ピクセル単位で判定し、ピクセル単位でマージする。図１１の例では、チャンクデータバッファ１１０に格納されているチャンク１と、ラスタライザ１０から入力されたチャンク２とは、同一位置にあるものとする。そして、この図１１の例では、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、重複していない。このため、２つのポリゴンから形成されるピクセルデータは、１つのチャンク１にマージされる。そして、１つのチャンクデータとして、チャンクデータバッファ１１０に格納される。したがって、これら２つのポリゴンのピクセルは、１つのピクセル処理部２０で処理されることとなる。
【００３８】
これに対して、図１２の例では、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、重複している。すなわち、同じＸ座標、Ｙ座標にピクセルデータが存在している。このため、チャンク１のうちのデータが存在しないピクセルに対してのみ、チャンク２の新しいピクセルを追加し、余ったチャンク２のピクセルは、新たなチャンク２のピクセルとして生成される。したがって、これら２つのポリゴンのピクセルは、２つのチャンクデータとして別々にチャンクデータバッファ１１０に格納され、別々にピクセル処理部２０で処理されることとなる。
【００３９】
これら図１１及び図１２に示したマージ手法は、充填率が高くなるものの、隣のピクセルとの一次微分の計算がマージ結果により異なることとなる。
【００４０】
図１３は、図１１及び図１２に示したようにピクセル単位のマージを行う処理を説明するためのフローチャートである。この図１３に示すように、チャンクデータバッファ１１０にラスタライザ１０から入力されたラスタライズ位置を含むチャンクが存在するかどうかを判断し、チャンクが存在すればこれを取得する（ステップＳ１１０）。このステップＳ１１０の処理は、チャンクマージユニット１００のチャンクデータアドレスカルキュレータ１３０が行う。
【００４１】
次に、チャンクマージユニット１００は、スタンプ内のピクセルを取得する（ステップＳ１２０）。続いて、チャンクマージユニット１００は、マージしようとしている２つのチャンクが同位置のものであり、スタンプ内のすべてのピクセルのうちの１つでも、互いに抵触するかどうかを判断する（ステップＳ１３０）。抵触するピクセルが存在しない場合（ステップＳ１３０：Ｎｏ）には、現時点のチャンクにピクセルデータを追加して書き込む（ステップＳ１７０）。
【００４２】
一方、抵触するピクセルが存在する場合（ステップＳ１３０：Ｙｅｓ）には、抵触していないピクセルのみを既存のチャンクに追加して書き込み、書き込んだピクセルデータを書き込みデータから削除する（ステップＳ１４０）。続いて、チャンクマージユニット１００は、チャンクをフラッシュした後（ステップＳ１５０）、チャンクをクリアする（ステップＳ１６０）。そして、この新たなチャンクに、残っているピクセルデータを書き込む。
【００４３】
これらステップＳ１３０〜ステップＳ１７０の処理は、チャンクマージユニット１００のチャンクフラッシュコントローラ１３２が行う。また、抵触するかどうかの条件判断は、大小比較回路１３６とＡＮＤ回路１３８で行う。
【００４４】
次に、ラスタライザ１０は、ラスタライズが終了したかどうかを判断する（ステップＳ１８０）。ラスタライズが終了していない場合（ステップＳ１８０：Ｎｏ）には、次のスタンプへ移動し（ステップＳ１９０）、移動したラスタライズ位置を含むチャンクが存在すれば、このチャンクを取得する（ステップＳ２００）。そして、上述したステップＳ１２０からを繰り返す。このステップＳ２００の処理は、チャンクマージユニット１００のチャンクデータアドレスカルキュレータ１３０が行う。
【００４５】
一方、ステップＳ１８０でラスタライズが終了したと判断した場合（ステップＳ１８０：Ｙｅｓ）には、この処理を終了する。
【００４６】
図１４及び図１５は、スタンプ単位でチャンクのマージを行う処理概念を説明する図である。上述したように、本実施形態においては、１つのスタンプは、２×２＝４個のピクセルで構成されている。図１４は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図１５は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【００４７】
これら図１４及び図１５で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、ピクセル単位で判定し、スタンプ単位でマージする。図１４の例では、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、ピクセル単位で見て、重複していない。このため、２つのポリゴンから形成されるピクセルデータは、１つのチャンク１にマージされる。このため、１つのチャンク１として、チャンクデータバッファ１１０に格納される。したがって、これら２つのポリゴンのピクセルは、１つのピクセル処理部２０で処理されることとなる。
【００４８】
これに対して、図１５の例では、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、ピクセル単位で見て、重複している。すなわち、同じＸ座標、Ｙ座標にピクセルデータが存在している。このため、チャンク２のスタンプのうち、抵触するピクセルが存在しないスタンプのみを、チャンクに新しいピクセル（スタンプ）として追加する。すなわち、１つのスタンプ内にある４つのピクセルのうち、１つでも、既存のスタンプのピクセルと抵触する場合には、その４つのピクセルは、既存のチャンクに追加しない。余ったチャンク２のピクセル（スタンプ）は、新たなチャンク２のピクセル（スタンプ）に書き込まれる。したがって、これら２つのポリゴンのピクセルは、２つのチャンクデータとして別々にチャンクデータバッファ１１０に格納され、別々にピクセル処理部２０で処理されることとなる。
【００４９】
これら図１４及び図１５に示したマージ手法は、図１１及び図１２に示したマージ手法と比較して充填率が少し低くなるものの、隣のピクセルとの一次微分の計算がマージ結果により異なる点は同じである。
【００５０】
図１６は、図１４及び図１５に示したようにスタンプ単位のマージを行う処理を説明するためのフローチャートである。この図１６に示したマージ処理は、図１３に示したマージ処理と、ステップＳ２２０が異なっている。
【００５１】
すなわち、図１６のマージ処理では、ステップＳ１２０の後、同位置のチャンクが存在しており、そのチャンクを構成するスタンプ内の全ピクセルのうち、１つでも抵触が生じるかどうかを判断する（ステップＳ２２０）。抵触が生じない場合（ステップＳ２２０：Ｎｏ）には、そのスタンプをピクセルデータとして、既存のチャンクに書き込む（ステップＳ１７０）。
【００５２】
一方、スタンプ内のピクセルのうち１つでも抵触が生じるのであれば（ステップＳ２２０：Ｙｅｓ）、そのチャンク内をフラッシュして（ステップＳ１５０）、クリアする（ステップＳ１６０）。すなわち、同時に処理するスタンプ内の４つのピクセルは、すべて、現在のチャンクデータバッファ１１０に書き込むか、又は、新しく生成したチャンクに書き込むかのいずれかとなる。
【００５３】
図１７及び図１８は、スタンプ単位で抵触判定を行い、スタンプ単位でチャンクのマージを行う処理概念を説明する図である。図１７は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図１８は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【００５４】
これら図１７及び図１８で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、スタンプ単位で判定し、スタンプ単位でマージする。図１７の例では、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、ピクセル単位で見ると重複していないが、スタンプ単位で見ると重複している。
【００５５】
このため、２つのポリゴンから形成されるピクセルデータは、２つのチャンク１、チャンク２にマージされる。したがって、これら２つのチャンクはそれぞれ別々にピクセル処理部２０で処理されることとなる。
【００５６】
同様に、図１８の例でも、チャンクデータバッファ１１０に格納されているチャンク１のピクセルデータと、ラスタライザ１０から入力されたチャンク２のピクセルデータとが、スタンプ単位で見て、重複している。すなわち、同一位置にあるスタンプに既にピクセルデータが書き込まれている場合には、実際に同位置のピクセルデータが存在するかどうかにかかわらず、スタンプが抵触していると判断する。
【００５７】
このため、チャンク１のスタンプのうち、抵触が発生していないスタンプのみを、チャンク１に追加して書き込む。すなわち、同位置にあるスタンプにピクセルデータが既に書き込まれていれば、同位置にあるスタンプは既存のチャンクに追加しない。余ったチャンク２のピクセル（スタンプ）は、新たなチャンク２に書き込まれる。したがって、これら２つのポリゴンのピクセルは、２つのチャンクデータとして別々にチャンクデータバッファ１１０に格納され、別々にピクセル処理部２０で処理されることとなる。
【００５８】
これら図１７及び図１８に示したマージ手法は、充填率が低くなるものの、隣のピクセルとの一次微分の計算がスタンプ内では一定になり、マージ機構を単純化できる。すなわち、チャンクデータバッファ１１０に格納されているチャンクデータについて、スタンプ単位で有効か無効かを判断するだけで、ラスタライザ１０から入力された有効なピクセルを含むスタンプが、チャンクデータバッファ１１０に追加で書き込めるかどうかを判断できる。
【００５９】
図１９は、図１７及び図１８に示したようにスタンプ単位のマージを行う処理を説明するためのフローチャートである。この図１９に示したマージ処理は、図１６に示したマージ処理と、ステップＳ２４０が異なっている。
【００６０】
すなわち、図１９のマージ処理では、ステップＳ１２０の後、同位置のチャンクが存在しており、同位置のスタンプに既にピクセルデータが書き込まれているかどうかを判断する（ステップＳ２４０）。同位置のスタンプにピクセルデータが書き込まれていない場合（ステップＳ２４０：Ｎｏ）には、そのスタンプをピクセルデータとして、既存のチャンクに追加して書き込む（ステップＳ１７０）。
【００６１】
一方、同位置のスタンプにピクセルデータが既に書き込まれている場合（ステップＳ２４０：Ｙｅｓ）、そのチャンクをフラッシュして（ステップＳ１５０）、クリアする（ステップＳ１６０）。そして、新たなチャンクに、そのスタンプのピクセルデータを書き込む。
【００６２】
なお、これまで図１１から図１９を用いて説明したチャンクのマージにおいては、各ピクセルの奥行き値（ｄｅｐｔｈ）は考慮していないものとする。すなわち、これら図１１から図１９のマージを行うチャンクマージユニット１００は、デプステスト機能を備えていないものか、あるいは、半透明ポリゴンのようにデプステストができないポリゴンを描画する場合とする。
【００６３】
図２０は、チャンクマージユニット１００がチャンクデータバッファ１１０からチャンクデータを読み出すとともに、ピクセル処理部２０がチャンクデータバッファ１１０からチャンクデータを取得するための格納読み出し構成の一例を示す図である。この図２０の例では、格納読み出し機構は、複数のマージデータバッファ２００により構成されている。マージデータバッファ２００のうち、有効フラグ（ｖａｌｉｄ  ｆｌａｇ）ｖと、コンペアフラグｃと、チャンクポジションｘ、ｙとは、チャンクマージユニット１００のチャンクデータアドレスカルキュレータ１３０により構成されている。チャンクデータｄは、チャンクデータバッファ１１０のチャンクデータの格納領域を示している。
【００６４】
このチャンクデータバッファ１１０のエントリは、ピクセル処理部２０で処理中のチャンクと、ピクセル処理部２０での処理を待っている有効なチャンク（ｖａｌｉｄ  ｃｈｕｎｋ）と、ピクセル処理部２０での処理が終了した空きチャンク（ｉｎｖａｌｉｄ
ｃｈｕｎｋ）とに分類される。
【００６５】
有効フラグ（ｖａｌｉｄ  ｆｌａｇ）ｖは、このマージデータバッファ２００の各エントリに、有効なチャンクデータが格納されているかどうかを示している。図２０の例では、有効フラグｖが１の場合はそのエントリが有効であり、有効フラグｖが０の場合はそのエントリが有効でないことを示している。
【００６６】
コンペアフラグｃは、チャンクマージユニット１００が、比較するべきチャンクであるかどうかを示している。図２０の例では、コンペアフラグｃが１の場合は、チャンクマージユニット１００は、そのエントリのチャンクを、ラスタライザ１０から入力されたチャンクと比較するが、コンペアフラグｃが０の場合は比較しない。チャンクマージユニット１００が新規にエントリを書き込んだ場合には、このコンペアフラグｃを立てて、１にする。そして、書き込み時に抵触が生じた場合、そのエントリのコンペアフラグｃをおろして０にする。すなわち、マージの完了したチャンクについては、コンペアフラグｃが０になっていることとなる。また、ピクセル処理部２０で処理が開始されたエントリについても、コンペアフラグｃを０にする。これにより、チャンクマージユニット１００が、処理中のチャンクに誤って上書きしてしまうのを回避することができる。
【００６７】
チャンクポジションｘ、ｙは、チャンクのＸ座標、Ｙ座標（位置情報）を保持している。この図２０の例では、チャンクポジションｘ、ｙは、それぞれ、１４ビットの情報である。このチャンクポジションｘ、ｙにより、チャンクマージユニット１００は、同位置のチャンクが、チャンクデータバッファ１１０に存在するかどうかを判断できる。
【００６８】
チャンクデータｄは、８×８＝６４ピクセルの情報である。すなわち、チャンクデータｄがそのエントリの具体的なピクセルデータとなっている。
【００６９】
チャンクマージユニット１００は、これら有効フラグｖ、コンペアフラグｃ、チャンクポジションｘ、ｙを指定して、チャンクデータバッファ１１０にアクセスする。ヒットすれば、チャンクマージユニット１００は、チャンクデータｄを取得することができるが、ミスすれば、チャンクデータが無いこととなるので、新たにチャンクを生成する。
【００７０】
開始ポインタｂｅｇｉｎは、ピクセル処理部２０が、次に処理するチャンクデータのエントリを示すポインタである。したがって、ピクセル処理部２０は、開始ポインタｂｅｇｉｎの示すエントリから、チャンクデータをフェッチして、処理を行う。ピクセル処理部２０での処理が開始された場合には、開始ポインタｂｅｇｉｎを次のエントリに移行する。
【００７１】
また、ピクセル処理部２０は、処理を開始したエントリについては、コンペアフラグｃを０にする。さらに、ピクセル処理部２０は、処理が終了したエントリについては、有効フラグｖを０にする。
【００７２】
図２１は、図２０に示した格納読み出し機構の処理内容を説明するフローチャートを示す図である。この図２１に示すように、まず、スタンプポジションを取得する（ステップＳ３００）。続いて、チャンクポジションを取得する（ステップＳ３１０）。
【００７３】
次に、ピクセル処理部ナンバー（Ｍ）を取得する。このピクセル処理部ナンバー（Ｍ）は、複数のピクセル処理部２０のうち、どのピクセル処理部２０で処理を行うべきかを特定する情報である。処理をするピクセル処理部２０が特定されることにより、チャンクデータすべきチャンクマージユニット１００が特定される。これらステップＳ３００、ステップＳ３１０、ステップＳ３２０の処理は、ラスタライザ１０で行われる処理である。
【００７４】
次に、特定されたチャンクマージユニット１００は、マージデータバッファ２００を検索し、現在処理の対象となっているチャンクがチャンクデータバッファ１１０に存在するかどうかを判断する（ステップＳ３３０）。
【００７５】
処理の対象となっているチャンクがマージデータバッファ２００に存在した場合（ステップＳ３３０：Ｙｅｓ）には、ピクセルが抵触するかどうかを判断する（ステップＳ３５０）。
【００７６】
ピクセルが抵触しない場合（ステップＳ３５０：Ｎｏ）には、マージデータバッファ２００のチャンクデータｄに、ラスタライザ１０から入力されたスタンプを書き込む（ステップＳ３７０）。
【００７７】
ステップＳ３５０でピクセルが抵触すると判断した場合（ステップＳ３５０：Ｙｅｓ）、又は、上述したステップＳ３３０において、処理の対象となっているチャンクがマージデータバッファ２００に存在しないと判断した場合（ステップＳ３３０：Ｎｏ）には、無効なチャンクが見つかるまで待つ（ステップＳ３６０）。すなわち、新たに書き込みのできるチャンクが見つかるまで待つ。そして、新たなチャンクに、スタンプの書き込みを行う（ステップＳ３７０）。
【００７８】
これらステップＳ３３０、ステップＳ３５０、ステップＳ３６０、ステップＳ３７０は、チャンクマージユニット１００により行われる処理である。
【００７９】
このステップＳ３７０後に、ラスタライズが終了したかどうかを判断する（ステップＳ３８０）。ラスタライズが終了していない場合（ステップＳ３８０：Ｎｏ）には、次のスタンプへ移動し（ステップＳ３９０）、上述したステップＳ３００からを繰り返す。
【００８０】
一方、ラスタライズが終了した場合（ステップＳ３８０：Ｙｅｓ）には、この処理を終了する。これらステップＳ３８０及びステップＳ３９０は、ラスタライザ１０が行う処理である。
【００８１】
図２２は、格納読み出し機構の変形例の構成を示す図である。この図２２に示す格納読み出し機構は、図２０のマージデータバッファ２００に、マージステータスバッファ２１０を追加して構成されている。
【００８２】
マージステータスバッファ２１０は、同一位置チャンク順ｏと、チャンク内無効ピクセル数ｆとを、備えている。同一チャンク順ｏは、チャンクデータバッファ１１０内に、同じ位置のチャンクが複数存在する場合に、その生成順を特定するために用いられる情報である。すなわち、ある位置にチャンクが１つしかない場合には、同一位置チャンク順ｏは０であり、２つある場合は、最初に生成されたチャンクの同一位置チャンク順ｏが０であり、２番目に生成されたチャンクの同一位置チャンク順ｏが１である。以下、同様に、同じ位置のチャンクが生成される度に、同一位置チャンク順ｏの値が１つずつ大きくなる。但し、ピクセル処理部２０で処理中のエントリの同一位置チャンク順ｏは、１５で最大値が格納される。
【００８３】
チャンク内無効ピクセル数ｆは、そのエントリのチャンクデータ内に、いくつの無効なピクセルが存在するかを示す情報である。本実施形態においては、チャンク内無効ピクセル数ｆのとり得る値は、０〜６４である。但し、ピクセル処理部２０で処理中のエントリのチャンク内無効ピクセル数ｆは、１２７で最大値が格納される。
【００８４】
また、この図２２に示すチャンクデータバッファ１１０においては、ピクセル処理部２０が次に処理をするエントリを示す開始ポインタｂｅｇｉｎが存在しない。ピクセル処理部２０がこのチャンクデータバッファ１１０からチャンクデータを取得しようとする場合には、最もチャンク内無効ピクセル数ｆの小さいエントリを選択して、そのエントリから処理する。この図２２の例では、最も小さいチャンク内無効ピクセル数ｆは３であるので、ピクセル処理部２０は、このエントリからチャンクデータを取得して処理する。
【００８５】
同一位置のチャンクが複数存在する場合には、同一位置チャンク順ｏの値の最も小さいエントリを選択する。これにより、チャンクデータが生成された順に、ピクセル処理部２０における処理が行われるようになる。
【００８６】
ピクセル処理部２０が処理を開始したエントリについては、コンペアフラグｃを０にして、同一位置チャンク順ｏとチャンク内無効ピクセル数ｆとを最大値にする。また、同一位置のチャンクの同一位置チャンク順ｏの値を、すべて、１だけ減算する。ピクセル処理部２０での処理が終了した際には、有効フラグｖを０にする。
【００８７】
なお、この図２２に示すチャンクデータバッファ１１０のマージ処理は、図２１と同様である。但し、ピクセル処理部２０で処理を開始するエントリを決定するための処理が、図２１と異なる。
【００８８】
図２３は、ピクセル処理部２０で処理を開始するエントリを決定する処理を説明するフローチャートを示す図である。
【００８９】
この図２３に示すように、ピクセル処理部２０は、マージステータスバッファ２１０の各エントリを繰り返して参照し、チャンク内無効ピクセル数ｆが最小で、且つ、同一位置チャンク順ｏが最小のエントリを選択し、そのエントリのチャンクデータｄを取得する（ステップＳ４１０）。そして、この取得したチャンクデータｄの処理を開始する（ステップＳ４２０）。
【００９０】
次に、このチャンクデータバッファ１１０内に、同じ位置のチャンクが他に存在するかどうかを判断する（ステップＳ４３０）。同一位置のチャンクが他に存在しない場合（ステップＳ４３０：Ｎｏ）には、この処理を終了する。
【００９１】
一方、同一位置のチャンクが他に存在する場合には、同一位置のすべてのチャンクについて、同一位置チャンク順ｏの値を、１だけ減算する（ステップＳ４４０）。そして、この処理を終了する。
【００９２】
図２４は、上述したのと異なるマージ処理概念を説明する図である。２×２の升はスタンプを表している。ここで、スタンプＳＰ１〜ＳＰ６がこの順番で時系列的に入力されたとする。
【００９３】
スタンプＳＰ１が入力された時点で、新たなスタンプＳＰ１０（親スタンプ）が生成され、これにピクセルデータが格納される。続いて、スタンプＳＰ２が入力されるが、このスタンプＳＰ２のピクセルデータは、既存のスタンプＳＰ１０のピクセルデータと抵触するので、新しいスタンプＳＰ１１（子スタンプ）を生成し、これに格納する。
【００９４】
次に、スタンプＳＰ３が入力されるが、このスタンプＳＰ３のピクセルデータは、最初のスタンプＳＰ１０のピクセルデータと抵触しないので、このスタンプＳＰ１０に格納される。
【００９５】
次に、スタンプＳＰ４が入力されるが、このスタンプＳＰ４のピクセルデータは、既存のスタンプＳＰ１０及びスタンプＳＰ１１の双方に抵触するので、新しいスタンプＳＰ１２（孫スタンプ）を生成し、これに格納する。
【００９６】
次に、スタンプＳＰ５が入力されるが、このスタンプＳＰ５のピクセルデータは、既存のスタンプＳＰ１０、スタンプＳＰ１１及びスタンプＳＰ１２のすべてに抵触するので、新しいスタンプＳＰ１３（ひ孫スタンプ）を生成し、これに格納する。
【００９７】
次に、スタンプＳＰ６が入力されるが、このスタンプＳＰ６のピクセルデータは、既存のスタンプＳＰ１１と抵触しないので、スタンプＳＰ１１に格納する。
【００９８】
このように、図２４の例では、同じ位置の既存のスタンプが複数存在する場合には、既存のスタンプの中から、抵触しないスタンプを探し出すようにしている。
【００９９】
図２５は、テーブル３００を用いて、入力されたスタンプのピクセルデータを、どの既存のスタンプに格納するかを判断する手法を説明する図である。この図２５においては、テーブル３００に、既存のスタンプ（この例では、親スタンプと子スタンプと孫スタンプ）と、新規に入力されたスタンプとを入力する。テーブル３００では、これら入力されたスタンプとテーブル３００に格納されている情報に基づいて、新規に入力されたスタンプを、いずれのスタンプに書き込むべきかを出力する。この例では、新規に入力されたスタンプは、子スタンプに書き込むことができるので、これを出力する。
【０１００】
図２６に示すように、テーブル３００には、親スタンプ、子スタンプ、孫スタンプ、ひ孫スタンプのそれぞれのスタンプに格納されているピクセルデータの全パターンと、新規に入力されるスタンプに格納されているピクセルデータの全パターンに対応する出力先が格納されている。
【０１０１】
図２７は、テーブル３００における判定を、論理回路で構成した場合の一例を示す図である。この図２７に示すように、この論理回路は、ＡＮＤ回路ＡＮ１と、ＮＯＲ回路ＮＲ１と、ＯＲ回路ＯＲ１とを、図示のごとく組み合わせることにより構成されている。
【０１０２】
各スタンプにおいては、ピクセルデータが存在する場合は１であり、ピクセルデータが存在しない場合は０である。新規に入力されたスタンプと、親スタンプ、子スタンプ、孫スタンプ、ひ孫スタンプとのピクセルデータの位置情報を入力することにより、２ビットの演算結果ａ〔１〕、ａ〔０〕が出力される。
【０１０３】
演算結果ａ〔１〕、ａ〔０〕が１、１である場合には、書き込み先が親スタンプであることを意味しており、演算結果ａ〔１〕、ａ〔０〕が１、０である場合には、書き込み先が子スタンプであることを意味しており、演算結果ａ〔１〕、ａ〔０〕が０、１である場合には、書き込み先が孫スタンプであることを意味しており、演算結果ａ〔１〕、ａ〔０〕が０、０である場合には、書き込み先がひ孫スタンプであることを意味している。
【０１０４】
図２８は、上述同様に、チャンクをブロックの形態で構成した例を示している。この図２８では、２つのチャンクが４×４＝１６個のピクセルで構成されている。このため、図２８には、８個のチャンクが示されていることとなる。このように矩形状に隣接する位置にあるピクセルでチャンクを構成すれば、隣接ピクセル間の演算が容易になる。
【０１０５】
図２９は、チャンクをインターリーブの形態で構成した例を示している。この図２９では、１つのユニットを８×８＝６４個のピクセルで構成する。そして、１つのユニット内で「１」の位置にあるピクセルを１つのチャンクと定義し、１つのユニット内で「２」の位置にあるピクセルを１つのチャンクと定義し、１つのユニット内で「３」の位置にあるピクセルを１つのチャンクと定義し、１つのユニット内で「４」の位置にあるピクセルを１つのチャンクと定義する。すなわち、離れた位置にあるピクセルの集合として、チャンクを定義する。
【０１０６】
ここで４つのピクセル処理部２０が存在するとすれば、４つのピクセル処理部２０が４つのチャンクを分散して処理することができる。すなわち、図２９の態様によれば、ピクセル処理部２０の負荷分散が容易になる。
【０１０７】
本実施形態は、図３０に示したようなゲーム機などのリアルタイム３次元グラフィックスシステムで用いられる。低速バスにコントローラ１、ＤＶＤドライブ２、ハードディスクドライブ３、通信ユニット４が接続されると共に、バス・ブリッジ５を介して描画処理装置８が接続されている。描画処理装置８には、外部メモリ２０と、ＣＰＵ６が接続されている。
【０１０８】
ＤＶＤドライブ２にセットされる媒体（ＤＶＤ）に、ゲームなどのアプリケーションソフトウェアが格納されている。このアプリケーションソフトウェアは、ＣＰＵ６によってメインメモリ７を用いて実行され、コントローラ１から入力されるユーザの操作に応じて様々な処理が行われることにより、３次元空間データが更新される。これによりＣＰＵ６から描画処理装置８にポリゴンデータが送られ、上述したような描画処理が実行される。
【０１０９】
描画処理装置８から出力される描画結果の画像データは、例えばＤ／Ａコンバータ９を通してビデオ信号出力となり、図示しないディスプレイに送られて表示される。ディスプレイは専用ディスプレイであってもよいし、ＴＶ受像機やコンピュータなどのディスプレイであってもよい。ディスプレイ上の表示画面をスクリーンと呼ぶ。
【０１１０】
図３１は、本実施形態に係る描画処理装置８の構成の一例をブロックで示す図である。描画処理装置８の構成は、図４、図５、図６、図７のいずれでもよい。この描画処理装置８のラスタライザ１０には、ジオメトリ処理装置３１０からポリゴンに関するデータが入力される。ジオメトリ処理装置３１０は、ＣＰＵ６でもよい。この図３１の例では、メモリ３０は、描画処理装置８の内部に設けられている。
【０１１１】
図３２は、描画処理装置８の変形例であり、メモリ３０が、描画処理装置８の外部に設けられている。すなわち、メモリ３０は、描画処理装置８の内部に設けられてもよいし、外部に設けられてもよい。
【０１１２】
以上のように、本実施形態によれば、各ピクセルデータが異なる画素位置であることを保証することにより、現在処理中の画素位置であるかどうかをピクセル処理部２０が判定することを省略することができる。
【０１１３】
また、矩形状に隣接する位置にあるピクセルデータを、チャンクとしてまとめることにより、ローカリティを向上させることができ、テクスチャデータの読み込みなどの効率を向上させることができる。
【０１１４】
また、離れた位置にあるピクセルデータを、チャンクとしてまとめて処理することにより、ピクセル処理部２０の負荷分散を容易にすることができる。
【０１１５】
また、ピクセル処理部２０は、チャンクデータバッファ１１０からチャンクデータを順次取得して、順次処理を行うことができる。特に、ピクセル処理部２０を複数設けたので、複数のピクセル処理部２０がそれぞれチャンクデータの処理を行うことができるので、ピクセル処理部２０の活性率を向上させることができる。
【０１１６】
また、チャンクマージユニット１００は、ピクセルデータが互いに抵触しない複数のチャンクについては、１つのチャンクに合併することとしたので、ピクセル処理部２０が処理するチャンク数を減少させることができる。
【０１１７】
また、縦横２画素以上のピクセルデータから構成されたスタンプという概念を導入し、このスタンプ単位でチャンクの合併処理をすることとしたので、近傍計算が可能となる。例えば、近傍のピクセルデータとの差分から、一次微分値を求めることができる。
【０１１８】
また、チャンクデータバッファ１１０を複数設けたので、あるポリゴンの処理が１つのチャンクデータバッファ１１０の領域を出てしまった場合でも、他のポリゴン処理がそのチャンクデータバッファ１１０の領域に再度入ってくるまで、チャンクデータを保持することができる。
【０１１９】
また、チャンクデータバッファ１１０が格納するチャンクの座標位置を固定的にすれば、チャンクデータバッファ１１０からピクセル処理部２０への配線を、少なくすることができる。
【０１２０】
また、チャンクデータバッファ１１０でデプステストを行うようにすれば、最終的に隠面となる画素の処理を、ピクセル処理部２０が行ってしまうのを回避することができる。
【０１２１】
【発明の効果】
以上説明したように、本発明によれば、描画処理装置の処理能力の向上を図ることができる。
【図面の簡単な説明】
【図１】従来の描画処理装置の構成を示すブロック図。
【図２】従来の描画処理装置における課題を説明するブロック図。
【図３】本実施形態におけるチャンクの合併の概念を説明する図。
【図４】本実施形態に係る描画処理装置の構成を説明するブロック図。
【図５】描画処理装置の構成の変形例を説明するブロック図。
【図６】描画処理装置の構成の別の変形例を説明するブロック図。
【図７】描画処理装置の構成の別の変形例を説明するブロック図。
【図８】本実施形態に係るチャンクマージユニットの構成を説明するブロック図。
【図９】チャンクデータバッファとピクセル処理部との間の接続関係を説明する図。
【図１０】本実施形態に係るチャンクマージユニットの別の構成を説明するブロック図。
【図１１】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合において、２つのポリゴンをマージする例を示す図。
【図１２】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合において、２つのポリゴンをマージする別の例を示す図。
【図１３】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図１４】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、２つのポリゴンをマージする例を示す図。
【図１５】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、２つのポリゴンをマージする別の例を示す図。
【図１６】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図１７】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、２つのポリゴンをマージする例を示す図。
【図１８】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、２つのポリゴンをマージする別の例を示す図。
【図１９】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図２０】本実施形態に係るチャンクデータの格納読み出し機構を説明するブロック図。
【図２１】図２０の格納読み出し機構に対する処理を説明するフローチャートを示す図。
【図２２】本実施形態に係る別のチャンクデータの格納読み出し機構を説明するブロック図。
【図２３】図２２の格納読み出し機構において、ピクセル処理部で処理を開始するエントリを決定する処理を説明するフローチャートを示す図。
【図２４】複数の同一位置のスタンプが存在する場合におけるスタンプの抵触判断を説明する図。
【図２５】テーブルを用いて格納するスタンプを特定する処理概念を説明する図。
【図２６】図２５のテーブルの内容を説明する図。
【図２７】論理回路を用いて格納するスタンプを特定する論理回路の一例を示す図。
【図２８】矩形状に隣接する位置にあるピクセルでチャンクを構成する例を説明する図。
【図２９】互いに離れた位置にあるピクセルでチャンクを構成する例を説明する図。
【図３０】本実施形態に係る描画処理装置を搭載したリアルタイム３次元グラフィクスシステムのハードウェア構成の一例を示す図。
【図３１】本実施形態に係る描画処理装置の構成の一例を示すブロック図。
【図３２】本実施形態に係る描画処理装置の構成の別の例を示すブロック図。
【符号の説明】
１０  ラスタライザ
２０  ピクセル処理部
３０  メモリ
１００  チャンクマージユニット
１１０  チャンクデータバッファ
【図１】
2004326678.tif 000003
【図２】
2004326678.tif 000004
【図３】
2004326678.tif 000005
【図４】
2004326678.tif 000006
【図５】
2004326678.tif 000007
【図６】
2004326678.tif 000008
【図７】
2004326678.tif 000009
【図８】
2004326678.tif 000010
【図９】
2004326678.tif 000011
【図１０】
2004326678.tif 000012
【図１１】
2004326678.tif 000013
【図１２】
2004326678.tif 000014
【図１３】
2004326678.tif 000015
【図１４】
2004326678.tif 000016
【図１５】
2004326678.tif 000017
【図１６】
2004326678.tif 000018
【図１７】
2004326678.tif 000019
【図１８】
2004326678.tif 000020
【図１９】
2004326678.tif 000021
【図２０】
2004326678.tif 000022
【図２１】
2004326678.tif 000023
【図２２】
2004326678.tif 000024
【図２３】
2004326678.tif 000025
【図２４】
2004326678.tif 000026
【図２５】
2004326678.tif 000027
【図２６】
2004326678.tif 000028
【図２７】
2004326678.tif 000029
【図２８】
2004326678.tif 000030
【図２９】
2004326678.tif 000031
【図３０】
2004326678.tif 000032
【図３１】
2004326678.tif 000033
【図３２】
2004326678.tif 000034
【手続補正書】
【提出日】平成15年5月8日(2003.5.8)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2004326678.tif 000035
【図２】
2004326678.tif 000036
【図３】
2004326678.tif 000037
【図４】
2004326678.tif 000038
【図５】
2004326678.tif 000039
【図６】
2004326678.tif 000040
【図７】
2004326678.tif 000041
【図８】
2004326678.tif 000042
【図９】
2004326678.tif 000043
【図１０】
2004326678.tif 000044
【図１１】
2004326678.tif 000045
【図１２】
2004326678.tif 000046
【図１３】
2004326678.tif 000047
【図１４】
2004326678.tif 000048
【図１５】
2004326678.tif 000049
【図１６】
2004326678.tif 000050
【図１７】
2004326678.tif 000051
【図１８】
2004326678.tif 000052
【図１９】
2004326678.tif 000053
【図２０】
2004326678.tif 000054
【図２１】
2004326678.tif 000055
【図２２】
2004326678.tif 000056
【図２３】
2004326678.tif 000057
【図２４】
2004326678.tif 000058
【図２５】
2004326678.tif 000059
【図２６】
2004326678.tif 000060
【図２７】
2004326678.tif 000061
【図２８】
2004326678.tif 000062
【図２９】
2004326678.tif 000063
【図３０】
2004326678.tif 000064
【図３１】
2004326678.tif 000065
【図３２】
2004326678.tif 000066