JP3966832B2 - 描画処理装置、及び、描画処理方法 - Google Patents
描画処理装置、及び、描画処理方法 Download PDFInfo
- Publication number
- JP3966832B2 JP3966832B2 JP2003123986A JP2003123986A JP3966832B2 JP 3966832 B2 JP3966832 B2 JP 3966832B2 JP 2003123986 A JP2003123986 A JP 2003123986A JP 2003123986 A JP2003123986 A JP 2003123986A JP 3966832 B2 JP3966832 B2 JP 3966832B2
- Authority
- JP
- Japan
- Prior art keywords
- chunk
- pixel
- data
- data buffer
- rasterization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04G—SCAFFOLDING; FORMS; SHUTTERING; BUILDING IMPLEMENTS OR AIDS, OR THEIR USE; HANDLING BUILDING MATERIALS ON THE SITE; REPAIRING, BREAKING-UP OR OTHER WORK ON EXISTING BUILDINGS
- E04G23/00—Working measures on existing buildings
- E04G23/02—Repairing, e.g. filling cracks; Restoring; Altering; Enlarging
- E04G23/0266—Enlarging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Mechanical Engineering (AREA)
- Electrochemistry (AREA)
- Chemical & Material Sciences (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、描画処理装置及び描画処理方法に関する。
【0002】
【従来の技術】
一般に、デプステストやαブレンド処理において、フレームバッファから現在の値を読み込んでから、処理結果の値を書き込むまでの間に、同じ画素位置に対する書き込み処理が行われても、その結果が反映できず、正しい処理結果にならない。このため、従来技術では、ピクセル処理部に現在処理中の画素位置を保持し、新たに処理しようとする画素位置と比較して、処理中位置と一致した場合にはその処理終了を待つ仕組みがある。
【0003】
図1は、従来の画像処理装置の構成を示すブロック図である。この図1に示すラスタライザ10は、ポリゴンを画像メモリ上でピクセル単位に描画する処理を行う。
【0004】
例えば、ピクセル単位の色は、スムーズ・シェーディングと呼ばれる手法により、各頂点に与えられた色を線形補間して決定される。この場合、ピクセル処理部20は、Zバッファ法と呼ばれる隠面消去アルゴリズムにより、あるオブジェクトに隠れて見えないオブジェクトを隠す(描画しない)ようにする。これをデプステストともいう。ピクセル処理部20は、レジスタ22と演算器24とを備えており、順次、メモリ30にあるフレームバッファ値と、ラスタライザからの値とがレジスタ22に格納され、演算器24でテクスチャマッピングやZバッファ法による処理が行われ、再びレジスタ22に格納される。フレームバッファであるメモリ30には、このレジスタ22の内容が出力される。したがって、メモリ30がレジスタ22から演算結果を取得する際に、演算器24が処理中の処理位置と、メモリ30から取得しようとしている処理位置とが一致するかどうかを比較判断し、これらの処理位置が一致する場合には、そのピクセルの処理開始を待つ必要がある。
【0005】
【発明が解決しようとする課題】
しかし、LSIの高クロック化が進むと、処理のレイテンシ(図2におけるレジスタ22にデータが入力されてから、そのデータが出力されるまでの時間)が長くなり、保持しなくてはならない画素数が増え、比較装置の増大と、処理位置一致による停止率の上昇が、問題となる。
【0006】
一方、LSIの規模の増大によって、LSIが実装できるピクセル処理部の並列度が大きくなっているが、従来の技術では、小さなポリゴンの処理では高並列化されたピクセル処理部の一部しか稼動させることができず、回路規模の増加に対して処理の性能はそれほど上がらない。
【0007】
そこで本発明は、前記課題に鑑みてなされたものであり、処理能力の向上を図ることのできる描画処理装置及び描画処理方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る描画処理装置は、ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、1つのラスタライズ結果として保持する、データバッファと、前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、を備えることを特徴とする。
【0009】
本発明に係る描画処理方法は、フラグメント生成部が、ポリゴンのラスタライズ結果を取得し、互いに抵触しないラスタライズ結果については合併して、1つのラスタライズ結果として、データバッファに格納する、ステップと、ピクセル処理部が、前記データバッファからラスタライズ結果を取得して、前記ピクセル処理部が、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ステップと、を備えることを特徴とする。
【0012】
【発明の実施の形態】
本実施形態では、ラスタライズ処理において、セットアップ・DDA(Digital Differential Analysis)処理の後にバッファを置き、複数のポリゴンのラスタライズ結果をバッファリングして合併させてから、ピクセル処理部に処理を行わせるようにしたものである。より詳しくを、以下に説明する。
【0013】
図3は、本実施形態におけるラスタライズ結果の合併の概念を説明する図である。この図3に示すように、本実施形態においては、異なる位置にあるピクセルを複数含んでいるチャンク(chunk)という概念を導入する。図3の例では、8×8=64個のピクセルで、1つのチャンクが構成されている。このチャンクが、本実施形態におけるフラグメントである。このチャンクという概念を用いることにより、連続して投入されるピクセルに、同位置のピクセルがないことを保証し、このチャンクをピクセル処理部で処理するようにする。細かいグラフィックスプリミティブ(triangle, polygon)では、1つのチャンク内における有効なピクセルの割合が低いので、図3に示すようにマージする。この図3の例では、2つのグラフィックスプリミティブをマージして、1つのチャンク内のピクセルとして表現している。
【0014】
図4は、本実施形態に係る描画処理装置の基本的な構成を示すブロック図である。この図4に示すように、本実施形態に係る描画処理装置においては、ラスタライザ10とピクセル処理部20との間に、チャンクマージユニット100と、チャンクデータバッファ110とを追加挿入することにより、構成されている。
【0015】
ラスタライザ10は、ポリゴンを画像メモリ上でピクセル単位に描画する処理を行う。ピクセル単位の色は、スムーズ・シェーディングと呼ばれる手法により、各頂点に与えられた色を線形補間して決定される。このピクセル単位のデータを、ラスタライザ10は、ラスタライズ結果として、チャンクマージユニット100に出力する。
【0016】
チャンクマージユニット100では、ピクセル単位のデータを、チャンク単位のデータに変換し、マージを行う。このマージを行った結果のデータを、チャンクデータバッファ110に出力する。なお、チャンクマージユニット100では、チャンクのマージを行う際に、各ピクセルの奥行き値(depth)に基づいて、深い奥行き値を有するピクセルデータを破棄するようにしてもよい。換言すれば、チャンクマージユニット100がデプステスト機能を備えるようにしてもよい。チャンクデータバッファ110は、データバッファであり、このチャンクデータバッファ110に格納されたチャンクデータを、ピクセル処理部20が取得する。
【0017】
ピクセル処理部20では、マージされたチャンクデータを処理する。すなわち、チャンクデータに対して、Zバッファ法と呼ばれる隠面消去アルゴリズムを実行する(デプステスト機能)。チャンクマージユニット100がデプステスト機能を有する場合でも、正しく隠面消去をするためには、ピクセル処理部20でもデプステストを行う必要がある。
【0018】
この図4に示す描画処理装置は最も基本的な構成であり、1つのチャンクマージユニット100に対応して、1つのチャンクデータバッファ110と1つのピクセル処理部20が設けられている。チャンクデータバッファ110には1つ以上のチャンクデータを同時に格納することが可能である。
【0019】
図5は、描画処理装置の変形例を示す図である。この図5の例では、1つのチャンクマージユニット100に対して、複数のピクセル処理部20が設けられ、メモリ30が固定されている。図5の例では、1つのチャンクマージユニット100に対して、2つのピクセル処理部20が設けられている。各ピクセル処理部20が処理するチャンクデータは、チャンクの位置(X座標、Y座標)によって固定的に定まっている。チャンクデータバッファ110と、ピクセル処理部20とは、1対1に対応しており、どちらのピクセル処理部20がチャンクデータの処理をするかは、チャンクマージユニット100が振り分けて決めている。
【0020】
図6は、描画処理装置の別の変形例を示す図である。この図6の例では、ピクセル処理部20とメモリ30との間が、バス接続されている。バスの形態としては、単一バスでもよいし、多重バスでもよい。この図6の例は、メモリ30が、ピクセル処理部20と別のチップで構成される場合に有効である。この場合、各ピクセル処理部20は、メモリ30のすべての領域にアクセスできる。
【0021】
図7は、描画処理装置のさらに別の変形例を示す図である。この図7の例では、複数のピクセル処理部20が設けられているが、チャンクデータバッファ110とピクセル処理部20との間の接続関係には、制限が設けられていない。すなわち、各ピクセル処理部20が処理するチャンクデータは、任意であり、ピクセル処理部20の処理が空いた時点で、次のチャンクデータを処理する。換言すれば、各ピクセル処理部20は、いずれの位置のチャンクデータでも、処理することができることとなる。このため、ピクセル処理部20の負荷分散が容易になる。ただし、同一位置のチャンクを同時に処理しないための機構は必要である。
【0022】
図8は、本実施形態に係るチャンクマージユニット100の構成を詳細に示すブロック図である。この図8に示すように、本実施形態に係るチャンクマージユニット100は、ピクセルマージャー120と、マスクバッファ122と、データバッファ124と、シグナルジェネレータ126とを備えて構成されている。
【0023】
ピクセルマージャー120は、異なるプリミティブから生成されたピクセルをマージするかどうかをチェックする。この図8の例では、ピクセルマージャー120には、チャンクデータバッファ110に格納されているチャンクに含まれているピクセルの奥行き値(depth)も入力されている。このため、ピクセルマージャー120は、チャンクデータバッファ110に格納されているピクセルデータの奥行き値と、ラスタライザ10から入力されたピクセルの奥行き値とを比較して、深い奥行き値を有するピクセルデータの方を破棄することとしている。すなわち、図8のチャンクマージユニット100は、デプステスト機能を併せ持っていると言える。
【0024】
マスクバッファ122は、各ピクセルについて、チャンクデータバッファ110に書き込みをしたかどうかをステータスとして保持する。このステータスは、1ピクセルあたり1ビットのデータで構成されている。
【0025】
データバッファ124は、各ピクセルのパラメータを一時的に保持する。シグナルジェネレータ126は、RPのステータスと、オーバーフローフラグから、チャンクデータバッファ110をフラッシュして、ピクセル処理部20のコントローラを起動するかどうかを決定する。
【0026】
カバレッジ(coverage)、及び、ピクセルパラメータ(pixel parameter)は、ラスタライザ10から入力されるデータである。カバレッジは、ピクセルパラメータが有効か無効かを示す情報である。RPステータスは、ピクセル処理部20が現在処理中であるかどうかを示すステータス情報であり、ピクセル処理部20から入力される。
【0027】
データバッファ124がチャンクデータバッファ110に出力するチャンクデータは、1ピクセルあたり32ビット×(6〜8のパラメータ)であり、各サイクル毎にチャンクデータバッファ110に書き出される。チャンクデータバッファ110では、入力されたチャンクデータを、どの位置のチャンクに関するものであるかを判断し、定められたチャンクにチャンクデータを書き込む。実際に書き込むかどうかは、ピクセルマージャー120が決定する。すなわち、ピクセルマージャー120は、書き込み処理をする場合には、ライトイネーブル(write enable)をチャンクデータバッファ110に出力する。
【0028】
図9は、チャンクデータバッファ110と、ピクセル処理部20との間の接続方式の一例を示す図である。この図9に示す例では、16個のチャンクデータバッファ110と、32個のピクセル処理部20とが設けられている。したがって、理想的に言えば、チャンクデータバッファ110とピクセル処理部20との間は、16対32のfull X-barであるが、本実施形態においては、4本の256ビットバスに、4個のチャンクデータバッファ110と8個のピクセル処理部20とが接続されている構成を採用している。チャンクマージユニット100とチャンクデータバッファ110との間は、1024ビットのバスで接続されている。
【0029】
図10は、本実施形態に係るチャンクマージユニット100の別の構成例を詳細に示すブロック図である。この例では、1ピクセル毎に、図10に示すブロックが設けられている。したがって、この例では、スタンプ内のピクセル数だけ、図10のブロックが必要になる。本実施形態においては、2×2=4個のピクセルで1つのスタンプを構成しているので、1スタンプあたり図10のブロックが4つ必要になる。
【0030】
この図10に示すように、1ピクセル分のチャンクマージユニット100は、チャンクデータアドレスカルキュレータ130と、チャンクフラッシュコントローラ132と、バッファ134と、大小比較回路136と、AND回路138とを備えて構成されている。
【0031】
チャンクデータアドレスカルキュレータ130は、処理すべきピクセルのX座標、Y座標を含んでいるチャンクデータがあるチャンクデータバッファ110内のアドレスを計算する。
【0032】
チャンクフラッシュコントローラ132は、ラスタライザ10から入力されたピクセル又はスタンプのデータと、チャンクフラッシュコントローラ132内のピクセル又はスタンプのデータとが、抵触しているかどうかを判断する。或いは、チャンクフラッシュコントローラ132は、その奥行き値(pixel depth)に応じて、どちらのデータを残すべきかを判定する。
【0033】
チャンクフラッシュコントローラ132は、両者が抵触している場合には、その時点におけるチャンクデータバッファ110のチャンクデータを、ピクセル処理部20に送信し、新しいチャンクを定義して、ラスタライザ10から入力されたピクセルデータを新しいチャンクに書き込む。さらに、チャンクマージユニット100は、奥行き値等に基づいて、残すべきデータが判定できた場合には、ラスタライザ10から入力されたピクセルデータを破棄するか、それとも、ラスタライザ10から入力されたピクセルデータをチャンクデータバッファ110に上書きするかを決定する。
【0034】
バッファ134は、単なるFIFOであり、上述した処理をしている間、ラスタライザ10から入力されたピクセルデータを保持する。大小比較回路136は、ラスタライザ10から入力されたピクセルの奥行き値depth1と、チャンクデータバッファ110内のピクセルの奥行き値depth2との、大小関係を比較する。そして、depth1>depth2、depth1≧depth2、depth1≦depth2、depth1<depth2、depth1≠depth2、depth1=depth2、又は、常に上書き、のいずれに該当するかを判断する。すなわち、大小比較回路136の比較結果に基づいて、チャンクマージユニット100は、デプステストを行い、ラスタライザ10から入力されたピクセルデータと、チャンクデータバッファ110にある同一位置のピクセルデータとのうちの一方を、破棄する。
【0035】
AND回路138は、ラスタライザ10から入力されたピクセルが有効であり、チャンクデータバッファ110内のピクセルが有効であることのAND演算を行う。
【0036】
図11及び図12は、ピクセル単位でチャンクのマージを行う処理概念を説明する図である。図11は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図12は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【0037】
これら図11及び図12で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、ピクセル単位で判定し、ピクセル単位でマージする。図11の例では、チャンクデータバッファ110に格納されているチャンク1と、ラスタライザ10から入力されたチャンク2とは、同一位置にあるものとする。そして、この図11の例では、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、重複していない。このため、2つのポリゴンから形成されるピクセルデータは、1つのチャンク1にマージされる。そして、1つのチャンクデータとして、チャンクデータバッファ110に格納される。したがって、これら2つのポリゴンのピクセルは、1つのピクセル処理部20で処理されることとなる。
【0038】
これに対して、図12の例では、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、重複している。すなわち、同じX座標、Y座標にピクセルデータが存在している。このため、チャンク1のうちのデータが存在しないピクセルに対してのみ、チャンク2の新しいピクセルを追加し、余ったチャンク2のピクセルは、新たなチャンク2のピクセルとして生成される。したがって、これら2つのポリゴンのピクセルは、2つのチャンクデータとして別々にチャンクデータバッファ110に格納され、別々にピクセル処理部20で処理されることとなる。
【0039】
これら図11及び図12に示したマージ手法は、充填率が高くなるものの、隣のピクセルとの一次微分の計算がマージ結果により異なることとなる。
【0040】
図13は、図11及び図12に示したようにピクセル単位のマージを行う処理を説明するためのフローチャートである。この図13に示すように、チャンクデータバッファ110にラスタライザ10から入力されたラスタライズ位置を含むチャンクが存在するかどうかを判断し、チャンクが存在すればこれを取得する(ステップS110)。このステップS110の処理は、チャンクマージユニット100のチャンクデータアドレスカルキュレータ130が行う。
【0041】
次に、チャンクマージユニット100は、スタンプ内のピクセルを取得する(ステップS120)。続いて、チャンクマージユニット100は、マージしようとしている2つのチャンクが同位置のものであり、スタンプ内のすべてのピクセルのうちの1つでも、互いに抵触するかどうかを判断する(ステップS130)。抵触するピクセルが存在しない場合(ステップS130:No)には、現時点のチャンクにピクセルデータを追加して書き込む(ステップS170)。
【0042】
一方、抵触するピクセルが存在する場合(ステップS130:Yes)には、抵触していないピクセルのみを既存のチャンクに追加して書き込み、書き込んだピクセルデータを書き込みデータから削除する(ステップS140)。続いて、チャンクマージユニット100は、チャンクをフラッシュした後(ステップS150)、チャンクをクリアする(ステップS160)。そして、この新たなチャンクに、残っているピクセルデータを書き込む。
【0043】
これらステップS130〜ステップS170の処理は、チャンクマージユニット100のチャンクフラッシュコントローラ132が行う。また、抵触するかどうかの条件判断は、大小比較回路136とAND回路138で行う。
【0044】
次に、ラスタライザ10は、ラスタライズが終了したかどうかを判断する(ステップS180)。ラスタライズが終了していない場合(ステップS180:No)には、次のスタンプへ移動し(ステップS190)、移動したラスタライズ位置を含むチャンクが存在すれば、このチャンクを取得する(ステップS200)。そして、上述したステップS120からを繰り返す。このステップS200の処理は、チャンクマージユニット100のチャンクデータアドレスカルキュレータ130が行う。
【0045】
一方、ステップS180でラスタライズが終了したと判断した場合(ステップS180:Yes)には、この処理を終了する。
【0046】
図14及び図15は、スタンプ単位でチャンクのマージを行う処理概念を説明する図である。上述したように、本実施形態においては、1つのスタンプは、2×2=4個のピクセルで構成されている。図14は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図15は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【0047】
これら図14及び図15で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、ピクセル単位で判定し、スタンプ単位でマージする。図14の例では、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、ピクセル単位で見て、重複していない。このため、2つのポリゴンから形成されるピクセルデータは、1つのチャンク1にマージされる。このため、1つのチャンク1として、チャンクデータバッファ110に格納される。したがって、これら2つのポリゴンのピクセルは、1つのピクセル処理部20で処理されることとなる。
【0048】
これに対して、図15の例では、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、ピクセル単位で見て、重複している。すなわち、同じX座標、Y座標にピクセルデータが存在している。このため、チャンク2のスタンプのうち、抵触するピクセルが存在しないスタンプのみを、チャンクに新しいピクセル(スタンプ)として追加する。すなわち、1つのスタンプ内にある4つのピクセルのうち、1つでも、既存のスタンプのピクセルと抵触する場合には、その4つのピクセルは、既存のチャンクに追加しない。余ったチャンク2のピクセル(スタンプ)は、新たなチャンク2のピクセル(スタンプ)に書き込まれる。したがって、これら2つのポリゴンのピクセルは、2つのチャンクデータとして別々にチャンクデータバッファ110に格納され、別々にピクセル処理部20で処理されることとなる。
【0049】
これら図14及び図15に示したマージ手法は、図11及び図12に示したマージ手法と比較して充填率が少し低くなるものの、隣のピクセルとの一次微分の計算がマージ結果により異なる点は同じである。
【0050】
図16は、図14及び図15に示したようにスタンプ単位のマージを行う処理を説明するためのフローチャートである。この図16に示したマージ処理は、図13に示したマージ処理と、ステップS220が異なっている。
【0051】
すなわち、図16のマージ処理では、ステップS120の後、同位置のチャンクが存在しており、そのチャンクを構成するスタンプ内の全ピクセルのうち、1つでも抵触が生じるかどうかを判断する(ステップS220)。抵触が生じない場合(ステップS220:No)には、そのスタンプをピクセルデータとして、既存のチャンクに書き込む(ステップS170)。
【0052】
一方、スタンプ内のピクセルのうち1つでも抵触が生じるのであれば(ステップS220:Yes)、そのチャンク内をフラッシュして(ステップS150)、クリアする(ステップS160)。すなわち、同時に処理するスタンプ内の4つのピクセルは、すべて、現在のチャンクデータバッファ110に書き込むか、又は、新しく生成したチャンクに書き込むかのいずれかとなる。
【0053】
図17及び図18は、スタンプ単位で抵触判定を行い、スタンプ単位でチャンクのマージを行う処理概念を説明する図である。図17は、異なるチャンクでポリゴンが並んでいる場合のマージを説明する図であり、図18は、異なるチャンクでポリゴンが重なっている場合を説明する図である。
【0054】
これら図17及び図18で示すマージ処理では、各チャンク内のピクセルが抵触するかどうかを、スタンプ単位で判定し、スタンプ単位でマージする。図17の例では、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、ピクセル単位で見ると重複していないが、スタンプ単位で見ると重複している。
【0055】
このため、2つのポリゴンから形成されるピクセルデータは、2つのチャンク1、チャンク2にマージされる。したがって、これら2つのチャンクはそれぞれ別々にピクセル処理部20で処理されることとなる。
【0056】
同様に、図18の例でも、チャンクデータバッファ110に格納されているチャンク1のピクセルデータと、ラスタライザ10から入力されたチャンク2のピクセルデータとが、スタンプ単位で見て、重複している。すなわち、同一位置にあるスタンプに既にピクセルデータが書き込まれている場合には、実際に同位置のピクセルデータが存在するかどうかにかかわらず、スタンプが抵触していると判断する。
【0057】
このため、チャンク1のスタンプのうち、抵触が発生していないスタンプのみを、チャンク1に追加して書き込む。すなわち、同位置にあるスタンプにピクセルデータが既に書き込まれていれば、同位置にあるスタンプは既存のチャンクに追加しない。余ったチャンク2のピクセル(スタンプ)は、新たなチャンク2に書き込まれる。したがって、これら2つのポリゴンのピクセルは、2つのチャンクデータとして別々にチャンクデータバッファ110に格納され、別々にピクセル処理部20で処理されることとなる。
【0058】
これら図17及び図18に示したマージ手法は、充填率が低くなるものの、隣のピクセルとの一次微分の計算がスタンプ内では一定になり、マージ機構を単純化できる。すなわち、チャンクデータバッファ110に格納されているチャンクデータについて、スタンプ単位で有効か無効かを判断するだけで、ラスタライザ10から入力された有効なピクセルを含むスタンプが、チャンクデータバッファ110に追加で書き込めるかどうかを判断できる。
【0059】
図19は、図17及び図18に示したようにスタンプ単位のマージを行う処理を説明するためのフローチャートである。この図19に示したマージ処理は、図16に示したマージ処理と、ステップS240が異なっている。
【0060】
すなわち、図19のマージ処理では、ステップS120の後、同位置のチャンクが存在しており、同位置のスタンプに既にピクセルデータが書き込まれているかどうかを判断する(ステップS240)。同位置のスタンプにピクセルデータが書き込まれていない場合(ステップS240:No)には、そのスタンプをピクセルデータとして、既存のチャンクに追加して書き込む(ステップS170)。
【0061】
一方、同位置のスタンプにピクセルデータが既に書き込まれている場合(ステップS240:Yes)、そのチャンクをフラッシュして(ステップS150)、クリアする(ステップS160)。そして、新たなチャンクに、そのスタンプのピクセルデータを書き込む。
【0062】
なお、これまで図11から図19を用いて説明したチャンクのマージにおいては、各ピクセルの奥行き値(depth)は考慮していないものとする。すなわち、これら図11から図19のマージを行うチャンクマージユニット100は、デプステスト機能を備えていないものか、あるいは、半透明ポリゴンのようにデプステストができないポリゴンを描画する場合とする。
【0063】
図20は、チャンクマージユニット100がチャンクデータバッファ110からチャンクデータを読み出すとともに、ピクセル処理部20がチャンクデータバッファ110からチャンクデータを取得するための格納読み出し構成の一例を示す図である。この図20の例では、格納読み出し機構は、複数のマージデータバッファ200により構成されている。マージデータバッファ200のうち、有効フラグ(valid flag)vと、コンペアフラグcと、チャンクポジションx、yとは、チャンクマージユニット100のチャンクデータアドレスカルキュレータ130により構成されている。チャンクデータdは、チャンクデータバッファ110のチャンクデータの格納領域を示している。
【0064】
このチャンクデータバッファ110のエントリは、ピクセル処理部20で処理中のチャンクと、ピクセル処理部20での処理を待っている有効なチャンク(valid chunk)と、ピクセル処理部20での処理が終了した空きチャンク(invalid
chunk)とに分類される。
【0065】
有効フラグ(valid flag)vは、このマージデータバッファ200の各エントリに、有効なチャンクデータが格納されているかどうかを示している。図20の例では、有効フラグvが1の場合はそのエントリが有効であり、有効フラグvが0の場合はそのエントリが有効でないことを示している。
【0066】
コンペアフラグcは、チャンクマージユニット100が、比較するべきチャンクであるかどうかを示している。図20の例では、コンペアフラグcが1の場合は、チャンクマージユニット100は、そのエントリのチャンクを、ラスタライザ10から入力されたチャンクと比較するが、コンペアフラグcが0の場合は比較しない。チャンクマージユニット100が新規にエントリを書き込んだ場合には、このコンペアフラグcを立てて、1にする。そして、書き込み時に抵触が生じた場合、そのエントリのコンペアフラグcをおろして0にする。すなわち、マージの完了したチャンクについては、コンペアフラグcが0になっていることとなる。また、ピクセル処理部20で処理が開始されたエントリについても、コンペアフラグcを0にする。これにより、チャンクマージユニット100が、処理中のチャンクに誤って上書きしてしまうのを回避することができる。
【0067】
チャンクポジションx、yは、チャンクのX座標、Y座標(位置情報)を保持している。この図20の例では、チャンクポジションx、yは、それぞれ、14ビットの情報である。このチャンクポジションx、yにより、チャンクマージユニット100は、同位置のチャンクが、チャンクデータバッファ110に存在するかどうかを判断できる。
【0068】
チャンクデータdは、8×8=64ピクセルの情報である。すなわち、チャンクデータdがそのエントリの具体的なピクセルデータとなっている。
【0069】
チャンクマージユニット100は、これら有効フラグv、コンペアフラグc、チャンクポジションx、yを指定して、チャンクデータバッファ110にアクセスする。ヒットすれば、チャンクマージユニット100は、チャンクデータdを取得することができるが、ミスすれば、チャンクデータが無いこととなるので、新たにチャンクを生成する。
【0070】
開始ポインタbeginは、ピクセル処理部20が、次に処理するチャンクデータのエントリを示すポインタである。したがって、ピクセル処理部20は、開始ポインタbeginの示すエントリから、チャンクデータをフェッチして、処理を行う。ピクセル処理部20での処理が開始された場合には、開始ポインタbeginを次のエントリに移行する。
【0071】
また、ピクセル処理部20は、処理を開始したエントリについては、コンペアフラグcを0にする。さらに、ピクセル処理部20は、処理が終了したエントリについては、有効フラグvを0にする。
【0072】
図21は、図20に示した格納読み出し機構の処理内容を説明するフローチャートを示す図である。この図21に示すように、まず、スタンプポジションを取得する(ステップS300)。続いて、チャンクポジションを取得する(ステップS310)。
【0073】
次に、ピクセル処理部ナンバー(M)を取得する。このピクセル処理部ナンバー(M)は、複数のピクセル処理部20のうち、どのピクセル処理部20で処理を行うべきかを特定する情報である。処理をするピクセル処理部20が特定されることにより、チャンクデータすべきチャンクマージユニット100が特定される。これらステップS300、ステップS310、ステップS320の処理は、ラスタライザ10で行われる処理である。
【0074】
次に、特定されたチャンクマージユニット100は、マージデータバッファ200を検索し、現在処理の対象となっているチャンクがチャンクデータバッファ110に存在するかどうかを判断する(ステップS330)。
【0075】
処理の対象となっているチャンクがマージデータバッファ200に存在した場合(ステップS330:Yes)には、ピクセルが抵触するかどうかを判断する(ステップS350)。
【0076】
ピクセルが抵触しない場合(ステップS350:No)には、マージデータバッファ200のチャンクデータdに、ラスタライザ10から入力されたスタンプを書き込む(ステップS370)。
【0077】
ステップS350でピクセルが抵触すると判断した場合(ステップS350:Yes)、又は、上述したステップS330において、処理の対象となっているチャンクがマージデータバッファ200に存在しないと判断した場合(ステップS330:No)には、無効なチャンクが見つかるまで待つ(ステップS360)。すなわち、新たに書き込みのできるチャンクが見つかるまで待つ。そして、新たなチャンクに、スタンプの書き込みを行う(ステップS370)。
【0078】
これらステップS330、ステップS350、ステップS360、ステップS370は、チャンクマージユニット100により行われる処理である。
【0079】
このステップS370後に、ラスタライズが終了したかどうかを判断する(ステップS380)。ラスタライズが終了していない場合(ステップS380:No)には、次のスタンプへ移動し(ステップS390)、上述したステップS300からを繰り返す。
【0080】
一方、ラスタライズが終了した場合(ステップS380:Yes)には、この処理を終了する。これらステップS380及びステップS390は、ラスタライザ10が行う処理である。
【0081】
図22は、格納読み出し機構の変形例の構成を示す図である。この図22に示す格納読み出し機構は、図20のマージデータバッファ200に、マージステータスバッファ210を追加して構成されている。
【0082】
マージステータスバッファ210は、同一位置チャンク順oと、チャンク内無効ピクセル数fとを、備えている。同一チャンク順oは、チャンクデータバッファ110内に、同じ位置のチャンクが複数存在する場合に、その生成順を特定するために用いられる情報である。すなわち、ある位置にチャンクが1つしかない場合には、同一位置チャンク順oは0であり、2つある場合は、最初に生成されたチャンクの同一位置チャンク順oが0であり、2番目に生成されたチャンクの同一位置チャンク順oが1である。以下、同様に、同じ位置のチャンクが生成される度に、同一位置チャンク順oの値が1つずつ大きくなる。但し、ピクセル処理部20で処理中のエントリの同一位置チャンク順oは、15で最大値が格納される。
【0083】
チャンク内無効ピクセル数fは、そのエントリのチャンクデータ内に、いくつの無効なピクセルが存在するかを示す情報である。本実施形態においては、チャンク内無効ピクセル数fのとり得る値は、0〜64である。但し、ピクセル処理部20で処理中のエントリのチャンク内無効ピクセル数fは、127で最大値が格納される。
【0084】
また、この図22に示すチャンクデータバッファ110においては、ピクセル処理部20が次に処理をするエントリを示す開始ポインタbeginが存在しない。ピクセル処理部20がこのチャンクデータバッファ110からチャンクデータを取得しようとする場合には、最もチャンク内無効ピクセル数fの小さいエントリを選択して、そのエントリから処理する。この図22の例では、最も小さいチャンク内無効ピクセル数fは3であるので、ピクセル処理部20は、このエントリからチャンクデータを取得して処理する。
【0085】
同一位置のチャンクが複数存在する場合には、同一位置チャンク順oの値の最も小さいエントリを選択する。これにより、チャンクデータが生成された順に、ピクセル処理部20における処理が行われるようになる。
【0086】
ピクセル処理部20が処理を開始したエントリについては、コンペアフラグcを0にして、同一位置チャンク順oとチャンク内無効ピクセル数fとを最大値にする。また、同一位置のチャンクの同一位置チャンク順oの値を、すべて、1だけ減算する。ピクセル処理部20での処理が終了した際には、有効フラグvを0にする。
【0087】
なお、この図22に示すチャンクデータバッファ110のマージ処理は、図21と同様である。但し、ピクセル処理部20で処理を開始するエントリを決定するための処理が、図21と異なる。
【0088】
図23は、ピクセル処理部20で処理を開始するエントリを決定する処理を説明するフローチャートを示す図である。
【0089】
この図23に示すように、ピクセル処理部20は、マージステータスバッファ210の各エントリを繰り返して参照し、チャンク内無効ピクセル数fが最小で、且つ、同一位置チャンク順oが最小のエントリを選択し、そのエントリのチャンクデータdを取得する(ステップS410)。そして、この取得したチャンクデータdの処理を開始する(ステップS420)。
【0090】
次に、このチャンクデータバッファ110内に、同じ位置のチャンクが他に存在するかどうかを判断する(ステップS430)。同一位置のチャンクが他に存在しない場合(ステップS430:No)には、この処理を終了する。
【0091】
一方、同一位置のチャンクが他に存在する場合には、同一位置のすべてのチャンクについて、同一位置チャンク順oの値を、1だけ減算する(ステップS440)。そして、この処理を終了する。
【0092】
図24は、上述したのと異なるマージ処理概念を説明する図である。2×2の升はスタンプを表している。ここで、スタンプSP1〜SP6がこの順番で時系列的に入力されたとする。
【0093】
スタンプSP1が入力された時点で、新たなスタンプSP10(親スタンプ)が生成され、これにピクセルデータが格納される。続いて、スタンプSP2が入力されるが、このスタンプSP2のピクセルデータは、既存のスタンプSP10のピクセルデータと抵触するので、新しいスタンプSP11(子スタンプ)を生成し、これに格納する。
【0094】
次に、スタンプSP3が入力されるが、このスタンプSP3のピクセルデータは、最初のスタンプSP10のピクセルデータと抵触しないので、このスタンプSP10に格納される。
【0095】
次に、スタンプSP4が入力されるが、このスタンプSP4のピクセルデータは、既存のスタンプSP10及びスタンプSP11の双方に抵触するので、新しいスタンプSP12(孫スタンプ)を生成し、これに格納する。
【0096】
次に、スタンプSP5が入力されるが、このスタンプSP5のピクセルデータは、既存のスタンプSP10、スタンプSP11及びスタンプSP12のすべてに抵触するので、新しいスタンプSP13(ひ孫スタンプ)を生成し、これに格納する。
【0097】
次に、スタンプSP6が入力されるが、このスタンプSP6のピクセルデータは、既存のスタンプSP11と抵触しないので、スタンプSP11に格納する。
【0098】
このように、図24の例では、同じ位置の既存のスタンプが複数存在する場合には、既存のスタンプの中から、抵触しないスタンプを探し出すようにしている。
【0099】
図25は、テーブル300を用いて、入力されたスタンプのピクセルデータを、どの既存のスタンプに格納するかを判断する手法を説明する図である。この図25においては、テーブル300に、既存のスタンプ(この例では、親スタンプと子スタンプと孫スタンプ)と、新規に入力されたスタンプとを入力する。テーブル300では、これら入力されたスタンプとテーブル300に格納されている情報に基づいて、新規に入力されたスタンプを、いずれのスタンプに書き込むべきかを出力する。この例では、新規に入力されたスタンプは、子スタンプに書き込むことができるので、これを出力する。
【0100】
図26に示すように、テーブル300には、親スタンプ、子スタンプ、孫スタンプ、ひ孫スタンプのそれぞれのスタンプに格納されているピクセルデータの全パターンと、新規に入力されるスタンプに格納されているピクセルデータの全パターンに対応する出力先が格納されている。
【0101】
図27は、テーブル300における判定を、論理回路で構成した場合の一例を示す図である。この図27に示すように、この論理回路は、AND回路AN1と、NOR回路NR1と、OR回路OR1とを、図示のごとく組み合わせることにより構成されている。
【0102】
各スタンプにおいては、ピクセルデータが存在する場合は1であり、ピクセルデータが存在しない場合は0である。新規に入力されたスタンプと、親スタンプ、子スタンプ、孫スタンプ、ひ孫スタンプとのピクセルデータの位置情報を入力することにより、2ビットの演算結果a〔1〕、a〔0〕が出力される。
【0103】
演算結果a〔1〕、a〔0〕が1、1である場合には、書き込み先が親スタンプであることを意味しており、演算結果a〔1〕、a〔0〕が1、0である場合には、書き込み先が子スタンプであることを意味しており、演算結果a〔1〕、a〔0〕が0、1である場合には、書き込み先が孫スタンプであることを意味しており、演算結果a〔1〕、a〔0〕が0、0である場合には、書き込み先がひ孫スタンプであることを意味している。
【0104】
図28は、上述同様に、チャンクをブロックの形態で構成した例を示している。この図28では、2つのチャンクが4×4=16個のピクセルで構成されている。このため、図28には、8個のチャンクが示されていることとなる。このように矩形状に隣接する位置にあるピクセルでチャンクを構成すれば、隣接ピクセル間の演算が容易になる。
【0105】
図29は、チャンクをインターリーブの形態で構成した例を示している。この図29では、1つのユニットを8×8=64個のピクセルで構成する。そして、1つのユニット内で「1」の位置にあるピクセルを1つのチャンクと定義し、1つのユニット内で「2」の位置にあるピクセルを1つのチャンクと定義し、1つのユニット内で「3」の位置にあるピクセルを1つのチャンクと定義し、1つのユニット内で「4」の位置にあるピクセルを1つのチャンクと定義する。すなわち、離れた位置にあるピクセルの集合として、チャンクを定義する。
【0106】
ここで4つのピクセル処理部20が存在するとすれば、4つのピクセル処理部20が4つのチャンクを分散して処理することができる。すなわち、図29の態様によれば、ピクセル処理部20の負荷分散が容易になる。
【0107】
本実施形態は、図30に示したようなゲーム機などのリアルタイム3次元グラフィックスシステムで用いられる。低速バスにコントローラ1、DVDドライブ2、ハードディスクドライブ3、通信ユニット4が接続されると共に、バス・ブリッジ5を介して描画処理装置8が接続されている。描画処理装置8には、外部メモリ20と、CPU6が接続されている。
【0108】
DVDドライブ2にセットされる媒体(DVD)に、ゲームなどのアプリケーションソフトウェアが格納されている。このアプリケーションソフトウェアは、CPU6によってメインメモリ7を用いて実行され、コントローラ1から入力されるユーザの操作に応じて様々な処理が行われることにより、3次元空間データが更新される。これによりCPU6から描画処理装置8にポリゴンデータが送られ、上述したような描画処理が実行される。
【0109】
描画処理装置8から出力される描画結果の画像データは、例えばD/Aコンバータ9を通してビデオ信号出力となり、図示しないディスプレイに送られて表示される。ディスプレイは専用ディスプレイであってもよいし、TV受像機やコンピュータなどのディスプレイであってもよい。ディスプレイ上の表示画面をスクリーンと呼ぶ。
【0110】
図31は、本実施形態に係る描画処理装置8の構成の一例をブロックで示す図である。描画処理装置8の構成は、図4、図5、図6、図7のいずれでもよい。この描画処理装置8のラスタライザ10には、ジオメトリ処理装置310からポリゴンに関するデータが入力される。ジオメトリ処理装置310は、CPU6でもよい。この図31の例では、メモリ30は、描画処理装置8の内部に設けられている。
【0111】
図32は、描画処理装置8の変形例であり、メモリ30が、描画処理装置8の外部に設けられている。すなわち、メモリ30は、描画処理装置8の内部に設けられてもよいし、外部に設けられてもよい。
【0112】
以上のように、本実施形態によれば、各ピクセルデータが異なる画素位置であることを保証することにより、現在処理中の画素位置であるかどうかをピクセル処理部20が判定することを省略することができる。
【0113】
また、矩形状に隣接する位置にあるピクセルデータを、チャンクとしてまとめることにより、ローカリティを向上させることができ、テクスチャデータの読み込みなどの効率を向上させることができる。
【0114】
また、離れた位置にあるピクセルデータを、チャンクとしてまとめて処理することにより、ピクセル処理部20の負荷分散を容易にすることができる。
【0115】
また、ピクセル処理部20は、チャンクデータバッファ110からチャンクデータを順次取得して、順次処理を行うことができる。特に、ピクセル処理部20を複数設けたので、複数のピクセル処理部20がそれぞれチャンクデータの処理を行うことができるので、ピクセル処理部20の活性率を向上させることができる。
【0116】
また、チャンクマージユニット100は、ピクセルデータが互いに抵触しない複数のチャンクについては、1つのチャンクに合併することとしたので、ピクセル処理部20が処理するチャンク数を減少させることができる。
【0117】
また、縦横2画素以上のピクセルデータから構成されたスタンプという概念を導入し、このスタンプ単位でチャンクの合併処理をすることとしたので、近傍計算が可能となる。例えば、近傍のピクセルデータとの差分から、一次微分値を求めることができる。
【0118】
また、チャンクデータバッファ110を複数設けたので、あるポリゴンの処理が1つのチャンクデータバッファ110の領域を出てしまった場合でも、他のポリゴン処理がそのチャンクデータバッファ110の領域に再度入ってくるまで、チャンクデータを保持することができる。
【0119】
また、チャンクデータバッファ110が格納するチャンクの座標位置を固定的にすれば、チャンクデータバッファ110からピクセル処理部20への配線を、少なくすることができる。
【0120】
また、チャンクデータバッファ110でデプステストを行うようにすれば、最終的に隠面となる画素の処理を、ピクセル処理部20が行ってしまうのを回避することができる。
【0121】
【発明の効果】
以上説明したように、本発明によれば、描画処理装置の処理能力の向上を図ることができる。
【図面の簡単な説明】
【図1】従来の描画処理装置の構成を示すブロック図。
【図2】従来の描画処理装置における課題を説明するブロック図。
【図3】本実施形態におけるチャンクの合併の概念を説明する図。
【図4】本実施形態に係る描画処理装置の構成を説明するブロック図。
【図5】描画処理装置の構成の変形例を説明するブロック図。
【図6】描画処理装置の構成の別の変形例を説明するブロック図。
【図7】描画処理装置の構成の別の変形例を説明するブロック図。
【図8】本実施形態に係るチャンクマージユニットの構成を説明するブロック図。
【図9】チャンクデータバッファとピクセル処理部との間の接続関係を説明する図。
【図10】本実施形態に係るチャンクマージユニットの別の構成を説明するブロック図。
【図11】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合において、2つのポリゴンをマージする例を示す図。
【図12】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合において、2つのポリゴンをマージする別の例を示す図。
【図13】ピクセル単位で抵触判断をし、ピクセル単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図14】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、2つのポリゴンをマージする例を示す図。
【図15】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、2つのポリゴンをマージする別の例を示す図。
【図16】ピクセル単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図17】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、2つのポリゴンをマージする例を示す図。
【図18】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合において、2つのポリゴンをマージする別の例を示す図。
【図19】スタンプ単位で抵触判断をし、スタンプ単位でチャンクのマージを行う場合のマージ処理を説明するフローチャートを示す図。
【図20】本実施形態に係るチャンクデータの格納読み出し機構を説明するブロック図。
【図21】図20の格納読み出し機構に対する処理を説明するフローチャートを示す図。
【図22】本実施形態に係る別のチャンクデータの格納読み出し機構を説明するブロック図。
【図23】図22の格納読み出し機構において、ピクセル処理部で処理を開始するエントリを決定する処理を説明するフローチャートを示す図。
【図24】複数の同一位置のスタンプが存在する場合におけるスタンプの抵触判断を説明する図。
【図25】テーブルを用いて格納するスタンプを特定する処理概念を説明する図。
【図26】図25のテーブルの内容を説明する図。
【図27】論理回路を用いて格納するスタンプを特定する論理回路の一例を示す図。
【図28】矩形状に隣接する位置にあるピクセルでチャンクを構成する例を説明する図。
【図29】互いに離れた位置にあるピクセルでチャンクを構成する例を説明する図。
【図30】本実施形態に係る描画処理装置を搭載したリアルタイム3次元グラフィクスシステムのハードウェア構成の一例を示す図。
【図31】本実施形態に係る描画処理装置の構成の一例を示すブロック図。
【図32】本実施形態に係る描画処理装置の構成の別の例を示すブロック図。
【符号の説明】
10 ラスタライザ
20 ピクセル処理部
30 メモリ
100 チャンクマージユニット
110 チャンクデータバッファ
Claims (12)
- ポリゴンのラスタライズ結果を保持するデータバッファであって、互いに抵触しないラスタライズ結果については合併して、1つのラスタライズ結果として保持する、データバッファと、
前記データバッファからラスタライズ結果を取得して、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ピクセル処理部と、
を備えることを特徴とする描画処理装置。 - 入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成し、前記データバッファにラスタライズ結果として格納する、フラグメント生成部であって、前記データバッファに既に格納されている座標位置が同一位置であるラスタライズ結果を読み出し、読み出したラスタライズ結果に含まれているピクセルデータと、入力されたピクセルデータとが抵触しない場合は、両者を合併して、1つのラスタライズ結果として、前記データバッファに格納する、フラグメント生成部を、さらに備えることを特徴とする請求項1に記載の描画処理装置。
- 前記フラグメント生成部は、複数のラスタライズ結果を合併させる際には、合併の単位が少なくとも縦横2画素以上の単位で合併処理することを特徴とする請求項2に記載の描画処理装置。
- 前記データバッファは複数設けられていることを特徴とする請求項1乃至請求項3のいずれかに記載の描画処理装置。
- 各データバッファが格納するセグメントの座標位置が、固定的である、ことを特徴とする請求項4に記載の描画処理装置。
- 前記フラグメント生成部は、デプステスト機能を備えている、ことを特徴とする請求項2に記載の描画処理装置。
- フラグメント生成部が、ポリゴンのラスタライズ結果を取得し、互いに抵触しないラスタライズ結果については合併して、1つのラスタライズ結果として、データバッファに格納する、ステップと、
ピクセル処理部が、前記データバッファからラスタライズ結果を取得して、前記ピクセル処理部が、前記ラスタライズ結果に含まれているピクセルデータに対して、順次、処理を行う、ステップと、
を備えることを特徴とする描画処理方法。 - 前記フラグメント生成部が、入力されたピクセルデータに基づいて、異なる画素位置から構成されたフラグメントの集合を生成し、前記データバッファにラスタライズ結果として格納するとともに、前記フラグメント生成部が、前記データバッファに既に格納されている座標位置が同一位置であるラスタライズ結果を読み出し、読み出したラスタライズ結果に含まれているピクセルデータと、入力されたピクセルデータとが抵触しない場合は、両者を合併して、1つのラスタライズ結果として、前記データバッファに格納するステップを、さらに備えることを特徴とする請求項7に記載の描画処理方法。
- 複数のラスタライズ結果を合併させる際には、合併の単位が少なくとも縦横2画素以上の単位で合併処理することを特徴とする請求項8に記載の描画処理方法。
- 前記データバッファは複数設けられていることを特徴とする請求項7乃至請求項9のいずれかに記載の描画処理方法。
- 各データバッファが格納するセグメントの座標位置が、固定的である、ことを特徴とする請求項10に記載の描画処理方法。
- 前記フラグメント生成部が、ラスタライズ結果を前記データバッファに格納する際には、デプステストを行い、深い奥行き値を有するピクセルデータは破棄する、ことを特徴とする請求項7乃至請求項11のいずれかに記載の描画処理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003123986A JP3966832B2 (ja) | 2003-04-28 | 2003-04-28 | 描画処理装置、及び、描画処理方法 |
US10/651,977 US7161603B2 (en) | 2003-04-28 | 2003-09-02 | Image rendering device and image rendering method |
KR1020040029053A KR20040093432A (ko) | 2003-04-28 | 2004-04-27 | 화상 렌더링 디바이스 및 화상 렌더링 방법 |
TW093111704A TWI250785B (en) | 2003-04-28 | 2004-04-27 | Image rendering device and image rendering method |
CNA2004100430858A CN1551048A (zh) | 2003-04-28 | 2004-04-28 | 图像再现装置和图像再现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003123986A JP3966832B2 (ja) | 2003-04-28 | 2003-04-28 | 描画処理装置、及び、描画処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004326678A JP2004326678A (ja) | 2004-11-18 |
JP3966832B2 true JP3966832B2 (ja) | 2007-08-29 |
Family
ID=33296687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003123986A Expired - Fee Related JP3966832B2 (ja) | 2003-04-28 | 2003-04-28 | 描画処理装置、及び、描画処理方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7161603B2 (ja) |
JP (1) | JP3966832B2 (ja) |
KR (1) | KR20040093432A (ja) |
CN (1) | CN1551048A (ja) |
TW (1) | TWI250785B (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7053893B1 (en) * | 2003-12-15 | 2006-05-30 | Nvidia Corporation | Position conflict detection and avoidance in a programmable graphics processor using tile coverage data |
WO2005088548A1 (ja) * | 2004-03-10 | 2005-09-22 | Kabushiki Kaisha Toshiba | 描画装置、描画方法、及び描画プログラム |
US7684076B2 (en) * | 2004-07-23 | 2010-03-23 | Kabushiki Kaisha Toshiba | Method and apparatus for raster image processing |
US7385604B1 (en) * | 2004-11-04 | 2008-06-10 | Nvidia Corporation | Fragment scattering |
JP3892016B2 (ja) * | 2005-02-23 | 2007-03-14 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置および画像処理方法 |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
JP4718992B2 (ja) * | 2005-12-26 | 2011-07-06 | 株式会社東芝 | 描画装置及び描画方法 |
JP4718993B2 (ja) * | 2005-12-26 | 2011-07-06 | 株式会社東芝 | 描画装置及び描画方法 |
EP2507824A4 (en) | 2009-11-30 | 2013-09-25 | Basf Se | METHOD FOR REMOVING A MATERIAL MASS STATE OF A SUBSTRATE AND CHEMICAL-MECHANICAL CLEANING AGENT FOR THIS PROCESS |
US8773448B2 (en) * | 2010-04-09 | 2014-07-08 | Intel Corporation | List texture |
JP5664052B2 (ja) * | 2010-09-15 | 2015-02-04 | 富士通セミコンダクター株式会社 | グラフィック処理装置、及び、グラフィック処理プログラム |
CN104040589B (zh) * | 2012-01-16 | 2018-05-25 | 英特尔公司 | 使用随机光栅化生成随机采样分布的图形处理方法和设备 |
US9384711B2 (en) | 2012-02-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Speculative render ahead and caching in multiple passes |
US9286122B2 (en) | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9177533B2 (en) * | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9230517B2 (en) | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
US9235925B2 (en) | 2012-05-31 | 2016-01-12 | Microsoft Technology Licensing, Llc | Virtual surface rendering |
US20140267327A1 (en) | 2013-03-14 | 2014-09-18 | Microsoft Corporation | Graphics Processing using Multiple Primitives |
US9307007B2 (en) | 2013-06-14 | 2016-04-05 | Microsoft Technology Licensing, Llc | Content pre-render and pre-fetch techniques |
CN103974062B (zh) * | 2013-06-24 | 2018-10-26 | 福州瑞芯微电子股份有限公司 | 图像显示装置、图像显示***和图像显示方法 |
US9449362B2 (en) * | 2013-09-06 | 2016-09-20 | Intel Corporation | Techniques for reducing accesses for retrieving texture images |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
JP6392370B2 (ja) | 2014-04-05 | 2018-09-19 | ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法 |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9710957B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Graphics processing enhancement by tracking object and/or primitive identifiers |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
GB2524120B (en) * | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
GB2524121B (en) | 2014-06-17 | 2016-03-02 | Imagination Tech Ltd | Assigning primitives to tiles in a graphics processing system |
CN106155924B (zh) * | 2015-04-08 | 2019-05-28 | Tcl集团股份有限公司 | 图片合并方法、装置及智能设备 |
US20160364845A1 (en) * | 2015-06-11 | 2016-12-15 | Rahul P. Sathe | Pixel merge unit efficiency by identifying silhouette pixels |
CN106886549A (zh) * | 2016-08-30 | 2017-06-23 | 阿里巴巴集团控股有限公司 | 一种网络图片的加载方法、装置和*** |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6124863A (en) | 1992-04-29 | 2000-09-26 | Canon Kabushiki Kaisha | Object-based graphics system for displaying an image using explicit quadratic polynomial fragments |
EP0582875B1 (en) | 1992-07-27 | 2001-10-31 | Matsushita Electric Industrial Co., Ltd. | Apparatus for parallel image generation |
JP3349787B2 (ja) | 1993-10-15 | 2002-11-25 | 株式会社ソニー・コンピュータエンタテインメント | 描画データ作成装置及び描画データ作成方法 |
JP2637931B2 (ja) | 1994-12-01 | 1997-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | テクスチャ・マッピングを行うコンピュータ・システム |
US5764243A (en) * | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US5990904A (en) * | 1995-08-04 | 1999-11-23 | Microsoft Corporation | Method and system for merging pixel fragments in a graphics rendering system |
JPH10320573A (ja) | 1997-05-22 | 1998-12-04 | Sega Enterp Ltd | 画像処理装置及び画像処理方法 |
JP4106719B2 (ja) | 1997-11-07 | 2008-06-25 | 株式会社セガ | 画像処理装置 |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6433788B1 (en) * | 1999-07-30 | 2002-08-13 | Ati International Srl | Dual fragment-cache pixel processing circuit and method therefore |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US20050052459A1 (en) * | 2000-06-07 | 2005-03-10 | Lewis Michael C. | Method and system for rendering macropixels in a graphical image |
JP4071422B2 (ja) | 2000-06-28 | 2008-04-02 | 株式会社東芝 | モーションブラー画像描画方法及び描画装置 |
JP3504240B2 (ja) | 2000-07-24 | 2004-03-08 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム、デバイス、方法及びコンピュータプログラム |
US20030002729A1 (en) * | 2001-06-14 | 2003-01-02 | Wittenbrink Craig M. | System for processing overlapping data |
JP2003006669A (ja) | 2001-06-22 | 2003-01-10 | Toshiba Corp | 画像描画装置 |
US7336283B2 (en) * | 2002-10-24 | 2008-02-26 | Hewlett-Packard Development Company, L.P. | Efficient hardware A-buffer using three-dimensional allocation of fragment memory |
US6967663B1 (en) * | 2003-09-08 | 2005-11-22 | Nvidia Corporation | Antialiasing using hybrid supersampling-multisampling |
-
2003
- 2003-04-28 JP JP2003123986A patent/JP3966832B2/ja not_active Expired - Fee Related
- 2003-09-02 US US10/651,977 patent/US7161603B2/en not_active Expired - Fee Related
-
2004
- 2004-04-27 KR KR1020040029053A patent/KR20040093432A/ko not_active Application Discontinuation
- 2004-04-27 TW TW093111704A patent/TWI250785B/zh not_active IP Right Cessation
- 2004-04-28 CN CNA2004100430858A patent/CN1551048A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20040093432A (ko) | 2004-11-05 |
TWI250785B (en) | 2006-03-01 |
TW200425718A (en) | 2004-11-16 |
JP2004326678A (ja) | 2004-11-18 |
US20040212619A1 (en) | 2004-10-28 |
CN1551048A (zh) | 2004-12-01 |
US7161603B2 (en) | 2007-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3966832B2 (ja) | 描画処理装置、及び、描画処理方法 | |
JP4280270B2 (ja) | 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体 | |
US7683905B1 (en) | Methods of processing graphics data including reading and writing buffers | |
US6700581B2 (en) | In-circuit test using scan chains | |
US9202303B2 (en) | System and method for compositing path color in path rendering | |
JP5579741B2 (ja) | タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 | |
US20080129734A1 (en) | Apparatus and method of ray-triangle collision detection for ray-tracing | |
US7227556B2 (en) | High quality antialiased lines with dual sampling pattern | |
KR101136737B1 (ko) | 그래픽 처리방법 및 그 장치 | |
KR20010085424A (ko) | 지연 쉐이딩을 갖는 그래픽 프로세서 | |
US10943389B2 (en) | Removing or identifying overlapping fragments after z-culling | |
JP3586991B2 (ja) | テクスチャ・データ読出装置およびレンダリング装置 | |
US7825928B2 (en) | Image processing device and image processing method for rendering three-dimensional objects | |
KR20050030569A (ko) | 화상 처리 장치 및 그 방법 | |
WO2024077745A1 (zh) | 一种分块渲染模式图形处理方法及*** | |
JP2882465B2 (ja) | 画像生成方法およびその装置 | |
JP2009099098A (ja) | コンピュータグラフィックス描画装置及び描画方法 | |
US7053893B1 (en) | Position conflict detection and avoidance in a programmable graphics processor using tile coverage data | |
KR100550240B1 (ko) | 타일형 그래픽스 아키텍쳐 | |
US6940519B2 (en) | Graphics processor, graphics card and graphics processing system | |
US7508397B1 (en) | Rendering of disjoint and overlapping blits | |
US7256796B1 (en) | Per-fragment control for writing an output buffer | |
US5917503A (en) | Converging data pipeline device | |
US7372466B2 (en) | Image processing apparatus and method of same | |
CN110223369B (zh) | Tbr架构的帧缓存写回方法、装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070425 |
|
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: 20070518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070529 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100608 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100608 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120608 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120608 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130608 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |