JP4218840B2 - 描画処理装置および描画処理方法 - Google Patents

描画処理装置および描画処理方法 Download PDF

Info

Publication number
JP4218840B2
JP4218840B2 JP2005155936A JP2005155936A JP4218840B2 JP 4218840 B2 JP4218840 B2 JP 4218840B2 JP 2005155936 A JP2005155936 A JP 2005155936A JP 2005155936 A JP2005155936 A JP 2005155936A JP 4218840 B2 JP4218840 B2 JP 4218840B2
Authority
JP
Japan
Prior art keywords
processing
processing unit
flag
delimiter
unit
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
JP2005155936A
Other languages
English (en)
Other versions
JP2006331206A (ja
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 Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005155936A priority Critical patent/JP4218840B2/ja
Priority to US11/384,204 priority patent/US7663634B2/en
Publication of JP2006331206A publication Critical patent/JP2006331206A/ja
Application granted granted Critical
Publication of JP4218840B2 publication Critical patent/JP4218840B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

この発明は描画データを演算処理する描画処理装置および描画処理方法に関する。
3次元コンピュータグラフィックスにおけるレンダリングエンジンは、複雑で高度なシェーディングアルゴリズムに対応するため、プログラマビリティをもった、よりプロセッサライクなものに変わりつつある。特にレンダリングエンジンの中核であるピクセルシェーダは、固定のグラフィックス機能を実装したハードウエアから、CPUと同じような命令セットを備えた演算ユニットを内蔵し、プログラミングによってフレキシブルに機能を追加していくことができるプロセッサへとその姿を変えつつある。
現在のプログラマブルなピクセルシェーダでは、描画処理対象の3次元オブジェクトに対してポリゴンセットアップを行った後、各ポリゴンをラスタライズしたピクセルデータを演算処理し、最終的なカラー値を算出する。より複雑なシェーディング処理を実現するために、マルチパスレンダリングと呼ばれる手法が用いられる。マルチパスレンダリングは、シェーディング処理を複数の演算パスに分割し、同一の描画プリミティブに対して複数回異なる演算処理を施す手法であり、よりきめ細かな描画処理を行って描画品質を上げることができる。
マルチパスレンダリングでは、1つ以上の描画プリミティブに対する描画処理を複数のパスに分割して処理するが、各パスでは、バッファの容量制限上、すべての描画プリミティブを一度に処理しきれない場合があり、一定のピクセル数の区間で区切り、その区間毎に各パスの演算処理を行う。たとえば、パス1からパスnまである場合、パス1から順に演算処理を行い、パスnまでの演算処理が終了すると、次の区間に移り、同様にパス1からパスnまでの演算処理を行う。これを繰り返すことにより、すべての描画プリミティブのピクセルデータに対してマルチパスレンダリングが遂行される。
プログラミングのフレキシビリティを高めるためには、プログラムに条件分岐やループなどの制御構造を多用することになる。マルチパスレンダリングにおいて条件分岐などの制御構造を導入すると、パスをまたいでプログラムを制御することが必要になり、そのために必要な条件データを処理ピクセルすべてから収集し、解析する必要があり、これには大きな処理コストがかかる。また、パスをまたいでプログラムの制御を行うと、パス切り替えによるオーバーヘッドが大きくなり、処理効率が犠牲になる。そのため、マルチパスレンダリングにおいては、プログラムの制御構造をパス内に限定したものとせざるを得ないのが現状であった。
本発明はこうした課題に鑑みてなされたものであり、その目的は、複雑な描画処理プログラムをマルチパスレンダリングにより効率良く実行することのできる描画処理技術を提供することにある。
上記課題を解決するために、本発明のある態様の描画処理装置は、描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングを行う描画処理装置であって、前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数の演算処理部が処理粒度の細かくなる順に複数段のパイプラインステージを構成してなるパイプライン処理機構を備える。各演算処理部は、当該演算処理部における処理粒度で各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すフラグを取得し、次以降の演算パスにおいて、そのフラグを参照することにより演算処理の対象となる処理単位のみを演算処理し、演算処理後のデータを後段の演算処理部に供給する。
最終段の前記演算処理部が、当該最終段の演算処理部における処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを判定した判定フラグを生成し、その判定フラグを各段の演算処理部における処理粒度でまとめることにより、各段の演算処理部における処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを各段の演算処理部に供給してもよい。ここで、「最終段」とは、いま着目している複数段のパイプラインステージにおける最終段という意味であり、その着目している複数段のパイプラインステージの後ろに、さらに別の1以上のパイプラインステージが存在してもよい。
本発明の別の態様もまた、描画処理装置である。この装置は、描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングを行う描画処理装置であって、前記描画オブジェクトをラスタライズしてピクセルデータを生成するラスタライザと、前記ラスタライザにより生成されたピクセルデータに対して演算処理を行うピクセル処理部とを備える。前記ピクセル処理部は、各ピクセルが次以降の演算パスで演算処理の対象となるか否かを判定した判定フラグを生成し、その判定フラグを前記ラスタライザに供給するフラグ生成部を有する。このピクセル処理部は、特定のピクセル演算回路からなる固定ハードウエアであってもよく、ソフトウエアと協働して機能を発揮する汎用的なピクセルシェーダであってもよい。
前記ラスタライザは、前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数の演算処理部が処理粒度が細かくなる順に複数段のパイプラインステージを構成してなるパイプライン処理機構を備えてもよい。前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを各段の演算処理部における処理粒度でまとめることにより、各段の演算処理部において各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを各段の演算処理部に供給してもよい。
前記ラスタライザは、前記描画オブジェクトを構成する1つ以上の描画プリミティブに関するデータを生成するプリミティブ生成部を有してもよい。前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを前記描画プリミティブの単位でまとめることにより、前記描画プリミティブ単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを前記プリミティブ生成部に供給してもよい。
前記ラスタライザは、前記描画プリミティブをデジタル微分解析処理によって走査ライン毎にピクセルデータに変換するデジタル微分解析部をさらに有してもよい。前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを前記デジタル微分解析処理の単位でまとめることにより、前記デジタル微分解析処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを前記デジタル微分解析処理部に供給してもよい。
本発明のさらに別の態様は、描画処理方法である。この方法は、描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングによる描画処理方法であって、前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数のパイプラインステージが処理粒度の細かくなる順に連結されてなるパイプライン処理機構において、最終段のパイプラインステージが、各パイプラインステージにおける処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを判定したフラグを生成し、そのフラグを各パイプラインステージにフィードバックし、各パイプラインステージは、そのフィードバックされたフラグを参照して、次以降の演算パスにおいて演算処理の対象となる処理単位のみを演算処理し、演算処理後のデータを後段のパイプラインステージに供給する。
本発明のさらに別の態様もまた、描画処理方法である。この方法は、描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングによる描画処理方法であって、前記描画オブジェクトをラスタライズしてピクセルデータを生成するステップと、生成されたピクセルデータに対して演算処理を行うステップと、前記演算処理の過程で各ピクセルが次以降の演算パスで演算処理の対象となるか否かを判定するステップとを含み前記ピクセルデータを生成するステップは、次以降の演算パスにおいて、前記判定するステップによる判定結果を参照することにより、演算処理の対象となるピクセルデータのみを生成する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、マルチパスレンダリングの処理効率を改善することができる。
図1は、実施の形態に係る描画処理装置100の構成図である。描画処理装置100は、描画対象となるオブジェクトの3次元モデル情報にもとづいて2次元画面に表示するための描画データを生成するレンダリング処理をマルチパスレンダリングの手法を用いて行う。マルチパスレンダリングは、描画オブジェクトに対して実行されるプログラムを複数のパスに分割して処理するものであり、描画オブジェクトがパス毎に繰り返し処理される。
オブジェクト入力部10は、描画オブジェクト(以下、単に「オブジェクト」という)のポリゴンモデル情報をラスタライザ20に与える。オブジェクト入力部10は、ポリゴンモデル情報を生成する専用のプロセッサもしくは頂点シェーダであってもよい。
ラスタライザ20は、プリミティブ生成部22とDDA24を含む。プリミティブ生成部22は、オブジェクト入力部10から受け取ったオブジェクトのポリゴン情報をもとに、オブジェクトを構成する1つ以上の描画プリミティブ(以下、単に「プリミティブ」という)の頂点座標とパラメータを含むストリームを生成する。プリミティブは、3次元オブジェクトをポリゴンモデルで表した場合の点、線、三角形、四角形などの幾何学図形の描画単位である。
また、プリミティブ生成部22は、プリミティブのストリームをデジタル微分解析器(Digital Differential Analyzer;DDA)により処理するための各種パラメータのセットアップを行う。具体的には、プリミティブを含む空間を区切るバウンディングボックスの設定や、エッジ係数などDDA処理の各種パラメータの設定を行う。
プリミティブ生成部22は、プリミティブ生成の中断(サスペンド)と再開(レジューム)の機能をもつ。プリミティブ生成部22は、シェーダ40からの制御信号によって、マルチパスレンダリングのパスの切り替えを行い、次のパスの処理を実行する。すべてのパスの処理が一巡して、再び最初のパスに戻る際、プリミティブ生成部22は、前回中断したプリミティブの位置からプリミティブの生成を再開する。
プリミティブ生成部22は、生成したプリミティブのストリームデータをDDA24に供給する。DDA24は、プリミティブ生成部22からプリミティブの頂点データを取得し、プリミティブを描画スクリーンに対応したピクセルに変換する。
プリミティブは一例として三角形の形状であり、DDA24は、3次元空間上の三角形を投影変換により描画平面上の三角形に変換するビュー変換を行い、さらに、描画平面上の三角形を描画平面の水平方向に沿ってスキャンしながら、ラスタライン毎に量子化されたピクセルに変換する。DDA24により、プリミティブがピクセル展開され、各ピクセルについて、RGB3原色で表されるカラー値、透明度を示すアルファ値、奥行きを示すZ値、テクスチャ属性を参照するためのパラメータ座標であるUV座標値などを含むピクセル情報が算出される。
DDA24は、ラスタ部26とピクセル化部28を含む。ラスタ部26は、プリミティブを一例として水平方向に走査し、プリミティブを複数のラスタラインに分割する。ここでいうラスタラインとは、1ピクセルの並びではなく、所定のピクセル幅をもつものである。ラスタ部26は、複数のラスタラインからなるストリームをピクセル化部28に供給する。ピクセル化部28は、ラスタ部26から供給されたラスタラインを所定の大きさの矩形領域(以下、この矩形領域を「スタンプ」と呼ぶ)に分割し、スタンプ単位でラスタラインをピクセル化する。
一般に、DDA24に入力されるプリミティブの表面積が大きいほど、そのプリミティブをピクセル化した場合のピクセル数が増える。また、プリミティブが視点から近い位置にあって、プリミティブを高い詳細度レベルで描画する必要がある場合は、プリミティブから生成されるピクセル数は増える。プリミティブ生成部22においては、頂点データでプリミティブが表されているため、データ量は少ないが、DDA24によりピクセル化処理した後は、ピクセル数が増大し、データ量が増える。
分配部30は、ピクセル化部28により生成されたスタンプをシェーダ40に供給する。スタンプは、DDA処理の単位であると同時に、シェーダ40による描画処理の単位でもある。シェーダ40は、複数のスタンプを並列にパイプライン処理するために複数のパイプラインユニットを備えている。分配部30は複数のスタンプをいずれかのパイプラインユニットに分配する。
シェーダ40は、ラスタライザ20により算出されたピクセル情報をもとに、シェーディング処理を行ってピクセルのカラー値を求め、さらに、テクスチャマッピングを行う場合は、テクスチャのカラー値を合成して最終的なピクセルのカラー値を算出し、フレームバッファ50にピクセルデータを書き込む。
シェーダ40は、さらに、フレームバッファ50に保持された描画データに対して、フォギング、アルファブレンディング等の処理を行い、最終的なピクセルのカラー値を求め、フレームバッファ50のピクセルデータを更新する。
シェーダ40は、描画処理プログラムをパイプライン処理で実行する。シェーダ40は、パイプライン処理による演算結果をパイプラインの任意の段にフィードバックして入力として与える機構を備えている。このフィードバックループをマルチパスレンダリングにおいて活用し、先に処理されたパスにおける演算結果を次のパスに渡して重ね描きなどの処理を行うことができる。
フレームバッファ50は、シェーダ40により生成されたピクセルデータをスクリーン座標で格納するバッファであり、格納されたピクセルデータは、最終描画画像であることも、シェーディング処理過程にある中間画像であることもある。フレームバッファ50に記憶されたピクセルデータは、表示装置に出力されて表示される。
描画処理装置100のオブジェクト入力部10、プリミティブ生成部22、ラスタ部26、ピクセル化部28、分配部30、およびシェーダ40の各演算処理部は、この順に複数段のパイプラインステージを構成している。オブジェクト入力部10、プリミティブ生成部22、ラスタ部26、ピクセル化部28、分配部30、およびシェーダ40における処理単位は、それぞれオブジェクト、プリミティブ、ラスタライン、スタンプ、ピクセルであり、この順に処理粒度が細かくなっている。
このように、描画処理装置100は、パイプラインステージが進むにつれて、オブジェクト、プリミティブ、ラスタライン、スタンプ、ピクセルの順に処理粒度を段階的に細かくしながら、演算処理を進めるパイプライン処理機構を備えており、オブジェクト入力部10、プリミティブ生成部22、ラスタ部26、ピクセル化部28、分配部30、およびシェーダ40の各演算処理部は、パイプライン処理機構の各パイプラインステージにおけるパイプ処理ユニットとして動作する。
シェーダ40は、描画処理プログラムを複数のパスに分割して実行するが、パスの長さは可変であり、本実施の形態では、プログラム中の条件分岐によりプログラムのコード列を分割し、分岐先を新たなパスとすることでプログラムを複数のパスに分割する。
オブジェクトをラスタライズし、1オブジェクト内のすべてのピクセルに対して描画処理プログラムを実行することは、1つの命令で複数のデータを同時に処理するSIMD(Single Instruction Multiple Data)演算と捉えることができる。ピクセルはシェーダ40のパイプラインユニットに連続的に投入されるため、SIMD演算の並列性は時間軸方向に展開されている。プログラムが条件分岐した場合、分岐先でオブジェクトのすべてのピクセルが演算処理の対象となるとは限らない。むしろオブジェクトのすべてのピクセルが同一条件であることはまれである。
描画処理プログラムの条件分岐が複雑になり、分岐が増えると、分岐先のプログラムにオブジェクトのすべてのピクセルを投入することは無駄が多くなり、処理効率が悪化する。一般にマルチパスレンダリングが条件分岐により効率を低下するのはそのためである。そこで、本実施の形態では、条件分岐にしたがってプログラムをパスに分割しておき、分岐先のパスでは、分岐条件を満たさないピクセルはできる限りそのパスに投入されないように制御する。
図2は、描画処理装置100により実行される描画処理プログラムの流れを説明する図である。描画処理プログラムは、第1条件分岐301〜第3条件分岐303を区切りとして、第1コード列351〜第7コード列357に分割される。描画処理装置100は、条件分岐を区切りとして描画処理プログラムを複数のパスに分割するため、第1コード列351〜第7コード列357がそのまま第1パス〜第7パスに相当する。同図の矢印は、描画処理プログラムの実行順序を示す。
プログラムの第1コード列351が第1パスとして実行され、第1条件分岐301に到達し、分岐先の第2コード列352が第2パスとして実行される。プログラムは、第2条件分岐302に到達し、分岐先の第3コード列353が第3パスとして実行され、その後、第2条件分岐302による分岐元に戻り、第4コード列354が第4パスとして実行される。
さらにその後、プログラムは、第1条件分岐301による分岐元に戻り、第5コード列355が第5パスとして実行される。プログラムは、第3条件分岐303に到達し、分岐先の第6コード列356が第6パスとして実行され、その後、第3条件分岐303による分岐元に戻り、第7コード列357が第7パスとして実行され、全プログラムの実行が終了する。
第1条件分岐301は、一例として、プログラムにおける変数Aが0であるか1であるかによって条件分岐するものであり、A=0の場合、第2コード列352に分岐し、A=1の場合、第5コード列355に分岐する。第2条件分岐302は、変数Bが0であるか1であるかによって条件分岐するものであり、B=0の場合、第3コード列353に分岐し、B=1の場合、第4コード列354に分岐する。第3条件分岐303は、変数Bが0であるか1であるかによって条件分岐するものであり、B=0の場合、第6コード列356に分岐し、B=1の場合、第7コード列357に分岐する。
第1パスにおいて第1コード列351が実行されたときに、オブジェクト内の各ピクセルに対して変数AおよびBの値が調べられ、各分岐条件を満足するかどうかが判定される。
A=0、B=0のピクセルは、分岐先の第3コード列353で処理され、A=0、B=1のピクセルは、分岐先の第4コード列354で処理される。A=1、B=0のピクセルは、分岐先の第6コード列356で処理され、A=1、B=1のピクセルは、分岐先の第7コード列357で処理される。
したがって、描画処理装置100は、第3パスではA=0、B=0の条件を満たすピクセルだけを投入し、第4パスでは、A=0、B=1の条件を満たすピクセルだけを投入し、第6パスでは、A=1、B=0の条件を満たすピクセルだけを投入し、第7パスでは、A=1、B=1の条件を満たすピクセルだけを投入する。各分岐条件を満たすピクセル数が、全ピクセル数の1/4であるとすると、分岐先の第3、第4、第6、第7パスに投入されるデータ量は1/4に制限されることになるため、処理効率が上がる。
このパス単位でのピクセル投入制御を実現するために、パイプライン処理の最下段のシェーダ40が、各ピクセルが分岐条件を満たすかどうかを判定したイネーブルフラグ(Enable Flag)を生成する。描画処理装置100は、分岐先のパスにおいて、イネーブルフラグが1であるピクセルは投入され、イネーブルフラグが0であるピクセルは投入されないように制御する。ピクセルが分岐条件を満たすかどうかは最下段のシェーダ40において判定されるが、分岐先のパスにおけるピクセル投入制御は、上位段のパイプラインステージにおいて、より粒度が大きい単位で行う方が効率的である。
そこで、シェーダ40に設けられたフラグ生成部70は、各ピクセルのイネーブルフラグを各パイプラインステージにおける処理粒度でまとめたバインドイネーブルフラグ(Bind Enable Flag)を生成する。バインドイネーブルフラグは、各パイプラインステージの処理単位に含まれる複数のピクセルのイネーブルフラグの論理和であり、各パイプラインステージの処理単位で見た場合に、その処理単位でデータを投入するかどうかを示すものである。その処理単位に含まれる複数のピクセルの内、一つでも分岐条件を満たすものがあれば、バインドイネーブルフラグは1であり、その処理単位に含まれるいずれのピクセルも分岐条件を満たさない場合、バインドイネーブルフラグは0である。
フラグ生成部70は、バインドイネーブルフラグを各パイプラインステージの演算処理部にフィードバックする。各パイプラインステージの演算処理部は、分岐先のパスにおいて、バインドイネーブルフラグが1である処理単位は演算処理に投入するが、バインドイネーブルフラグが0である処理単位は演算処理に投入しない。これにより、分岐先のパスでは、各パイプラインステージにおける処理粒度でデータの投入が制御される。
フラグ生成部70は、各パイプラインステージの処理粒度でイネーブルフラグをまとめるために、各パイプラインステージにおける処理単位の区切りを示すデリミタの情報を必要とする。このため、各パイプラインステージには、処理単位の区切りを示すデリミタを各パイプラインステージの処理粒度で生成する機構が設けられる。すなわち、プリミティブ生成部22、ラスタ部26、ピクセル化部28、分配部30の各パイプラインステージに、第1デリミタ送出部61、第2デリミタ送出部62、第3デリミタ送出部63、第4デリミタ送出部64が設けられ、第1デリミタ送出部61〜第4デリミタ送出部64により、オブジェクト、プリミティブ、ラスタライン、スタンプの各処理単位の区切りを示すデリミタがストリームデータに挿入される。
フラグ生成部70は、オブジェクト、プリミティブ、ラスタライン、スタンプの各処理単位の区切りを示すデリミタを参照して、オブジェクト単位のバインドイネーブルフラグF1(以下、第1バインドイネーブルフラグF1という)、プリミティブ単位のバインドイネーブルフラグF2(第2バインドイネーブルフラグF2という)、ラスタライン単位のバインドイネーブルフラグF3(第3バインドイネーブルフラグF3という)、スタンプ単位のバインドイネーブルフラグF4(第4バインドイネーブルフラグF4という)をそれぞれオブジェクト入力部10、プリミティブ生成部22、ラスタ部26、ピクセル化部28にフィードバックする。
各パイプラインステージには、フラグ生成部70からフィードバックされるバインドイネーブルフラグを分岐先のパスの実行までにバッファリングしておくためのバッファが設けられる。すなわち、プリミティブ生成部22、ラスタ部26、ピクセル化部28に、プリミティブ用フラグバッファ81、ラスタライン用フラグバッファ82、スタンプ用フラグバッファ83が設けられる。オブジェクト入力部10にもフラグ生成部70から第1バインドイネーブルフラグF1がフィードバックされるが、第1バインドイネーブルフラグF1はオブジェクト単位で次のパスにデータを投入するかどうかを決めるものであり、バッファリングの必要はないため、オブジェクト入力部10にはフラグバッファは設けられていない。
オブジェクト入力部10、プリミティブ生成部22、ラスタ部26、ピクセル化部28はそれぞれ第1バインドイネーブルフラグF1〜第4バインドイネーブルフラグF4を参照してオブジェクト、プリミティブ、ラスタライン、スタンプの各処理単位を分岐先のパスに投入するかどうかを決める。
以下、まず第1デリミタ送出部61〜第4デリミタ送出部64によるデリミタの生成機構を説明し、その後、フラグ生成部70によるバインドイネーブルフラグの生成機構を説明する。
図3は、第1デリミタ送出部61〜第4デリミタ送出部64の構成を説明する図であり、図4は、第1デリミタ送出部61〜第4デリミタ送出部64によりデリミタが生成される様子を一例として示す図である。以下、図3および図4を参照しながら、第1デリミタ送出部61〜第4デリミタ送出部64の構成と動作を説明する。
まず、第1デリミタ送出部61の構成と動作を説明する。プリミティブ生成部22は、前段のオブジェクト入力部10により供給されたオブジェクトのデータを複数のプリミティブに分割し、複数のプリミティブで構成されるストリームを生成し、後段のラスタ部26に供給している。プリミティブ生成部22は、このストリームにおいてオブジェクト単位の区切りで見たときに最後尾に位置するプリミティブの処理タイミングで、第1デリミタ送出部61に第1デリミタD1の出力を指示する。
第1デリミタ送出部61のデリミタ生成部65aは、プリミティブ生成部22から第1デリミタD1の出力指示信号を受け取ると、第1デリミタD1を生成する。
図4の例を参照すると、1つのオブジェクトが3つのプリミティブ1〜3から構成されており、第1デリミタD1の値は、最初の2つのプリミティブ1、2の処理タイミングでは0で、最後のプリミティブ3の処理タイミングで1となる。第1デリミタD1は、オブジェクトの区切りをプリミティブの粒度で示すものである。なお、図4では、説明の便宜上、デリミタを0または1の値をとるパルス信号のように描いているが、実際には、1の値をとるタイミングでデリミタがストリームデータ内に挿入されて送出される。
第1デリミタ送出部61は、生成された第1デリミタD1をプリミティブのストリームデータの一部として送出し、後段の第2デリミタ送出部62に伝達する。これにより、プリミティブ生成部22からラスタ部26に流れるプリミティブのストリームデータにオブジェクトの区切りを示す第1デリミタD1が挿入される。
次に、第2デリミタ送出部62の構成と動作を説明する。ラスタ部26は、前段のプリミティブ生成部22により供給されたプリミティブを複数のラスタラインに分割し、複数のラスタラインで構成されるストリームを生成し、後段のピクセル化部28に供給している。ラスタ部26は、このストリームにおいてプリミティブ単位の区切りで見たときに最後尾に位置するラスタラインの処理タイミングで、第2デリミタ送出部62に第2デリミタD2の出力を指示する。
第2デリミタ送出部62のデリミタ生成部65bは、ラスタ部26から第2デリミタD2の出力指示信号を受け取ると、第2デリミタD2を生成する。
図4の例を参照すると、プリミティブ1は4つのラスタライン1〜4から構成され、プリミティブ2は3つのラスタライン1〜3から構成され、プリミティブ3は4つのラスタライン1〜4から構成されている。第2デリミタD2の値は、各プリミティブの最後のラスタラインの処理タイミングで、0から1に切り替わる。第2デリミタD2は、プリミティブの区切りをラスタラインの粒度で示すものである。
第2デリミタ送出部62は、生成された第2デリミタD2をラスタラインのストリームデータの一部として送出し、後段の第3デリミタ送出部63に伝達する。これにより、ラスタ部26からピクセル化部28に流れるラスタラインのストリームデータにプリミティブの区切りをラスタラインの粒度で示す第2デリミタD2が挿入される。
また、第2デリミタ送出部62の論理積回路66bは、前段の第1デリミタ送出部61から入力された第1デリミタD1と、デリミタ生成部65bにより生成された第2デリミタD2との論理積D12を求める。
図4の例を参照すると、斜線で示すように、1つのオブジェクト内の最後のプリミティブ3で1となっていた第1デリミタD1が、その最後のプリミティブ3内の最後のラスタライン4で初めて1となる第1デリミタD12に変換されている。このように、第1デリミタD1は、プリミティブの粒度からラスタラインの粒度に変換され、変換後の第1デリミタD12は、オブジェクトの区切りをラスタラインの粒度で示すものになる。
第2デリミタ送出部62は、変換された第1デリミタD12をラスタラインのストリームデータの一部として送出し、後段の第3デリミタ送出部63に伝達する。これにより、ラスタ部26からピクセル化部28に流れるラスタラインのストリームデータにオブジェクトの区切りをラスタラインの粒度で示す第1デリミタD12がさらに挿入される。
次に、第3デリミタ送出部63の構成と動作を説明する。ピクセル化部28は、前段のラスタ部26により供給されたラスタラインを複数のスタンプに分割し、複数のスタンプで構成されるストリームを生成し、後段の分配部30に供給している。ピクセル化部28は、このストリームにおいてラスタライン単位の区切りで見たときに最後尾に位置するスタンプの処理タイミングで、第3デリミタ送出部63に第3デリミタD3の出力を指示する。
第3デリミタ送出部63のデリミタ生成部65cは、ピクセル化部28から第3デリミタD3の出力指示信号を受け取ると、第3デリミタD3を生成する。
図4の例を参照すると、たとえば、プリミティブ1について見れば、ラスタライン1は2つのスタンプから構成され、ラスタライン2は6つのスタンプから構成され、ラスタライン3は4つのスタンプから構成され、ラスタライン4は2つのスタンプから構成されている。第3デリミタD3は、各ラスタラインの最後のスタンプの処理タイミングで、0から1に切り替わる。第3デリミタD3は、ラスタラインの区切りをスタンプの粒度で示すものである。
第3デリミタ送出部63は、生成された第3デリミタD3をスタンプのストリームデータの一部として送出し、後段の第4デリミタ送出部64に伝達する。これにより、ピクセル化部28から分配部30に流れるスタンプのストリームデータにラスタラインの区切りをスタンプの粒度で示す第3デリミタD3が挿入される。
また、第3デリミタ送出部63の論理積回路66cは、前段の第2デリミタ送出部62から入力された第1デリミタD12と、デリミタ生成部65cにより生成された第3デリミタD3との論理積D123を求める。また、論理積回路67cは、前段の第2デリミタ送出部62から入力された第2デリミタD2と、デリミタ生成部65cにより生成された第3デリミタD3との論理積D23を求める。
図4の例を参照すると、斜線で示すように、第1デリミタD12および第2デリミタD2は、ラスタラインの粒度からスタンプの粒度に変換され、変換後の第1デリミタD123、第2デリミタD23は、それぞれオブジェクトの区切り、プリミティブの区切りをスタンプの粒度で示すものになる。
第3デリミタ送出部63は、変換された第1デリミタD123および第2デリミタD23をスタンプのストリームデータの一部として送出し、後段の第4デリミタ送出部64に伝達する。これにより、ピクセル化部28から分配部30に流れるスタンプのストリームデータに、オブジェクトの区切りをスタンプの粒度で示す第1デリミタD123と、プリミティブの区切りをスタンプの粒度で示す第2デリミタD23とがさらに挿入される。
次に、第4デリミタ送出部64の構成と動作を説明する。分配部30は、前段のピクセル化部28により供給されたスタンプに含まれる複数のピクセルを取り出し、複数のピクセルで構成されるストリームを後段のシェーダ40に供給している。分配部30は、このストリームにおいてスタンプ単位の区切りで見たときに最後尾に位置するピクセルをシェーダ40に送出するタイミングで、第4デリミタ送出部64に第4デリミタD4の出力を指示する。
第4デリミタ送出部64のデリミタ生成部65dは、分配部30から第4デリミタD4の出力指示信号を受け取ると、第4デリミタD4を生成する。
図4の例を参照すると、第4デリミタD4は、同図において最も狭い幅のパルスで示された、各スタンプの最後のピクセルの送出タイミングで、0から1に切り替わる。
第4デリミタ送出部64は、生成された第4デリミタD4をピクセルのストリームデータの一部として送出し、後段のフラグ生成部70に伝達する。これにより、分配部30からシェーダ40に流れるピクセルのストリームデータにスタンプの区切りをピクセルの粒度で示す第4デリミタD4が挿入される。
また、第4デリミタ送出部64の論理積回路66dは、前段の第3デリミタ送出部63から入力された第1デリミタD123と、デリミタ生成部65dにより生成された第4デリミタD4との論理積D1234を求める。また、論理積回路67dは、前段の第3デリミタ送出部63から入力された第2デリミタD23と、デリミタ生成部65dにより生成された第4デリミタD4との論理積D234を求める。さらに、論理積回路68dは、前段の第3デリミタ送出部63から入力された第3デリミタD3と、デリミタ生成部65dにより生成された第4デリミタD4との論理積D34を求める。
図4の例を参照すると、第1デリミタD123、第2デリミタD23、および第3デリミタD3は、スタンプの粒度からピクセルの粒度に変換され、変換後の第1デリミタD1234、第2デリミタD234、および第3デリミタD34は、それぞれオブジェクトの区切り、プリミティブの区切り、ラスタラインの区切りをピクセルの粒度で示すものとなる。
第4デリミタ送出部64は、変換された第1デリミタD1234、第2デリミタD234、および第3デリミタD34をピクセルのストリームデータの一部として送出し、後段のフラグ生成部70に伝達する。これにより、分配部30からシェーダ40に流れるピクセルのストリームデータに、オブジェクトの区切りをピクセルの粒度で示す第1デリミタD1234と、プリミティブの区切りをピクセルの粒度で示す第2デリミタD234と、ラスタラインの区切りをピクセルの粒度で示す第3デリミタD34とがさらに挿入される。
なお、図1では、説明上、第1デリミタ送出部61から、第2デリミタ送出部62、第4デリミタ送出部64、第4デリミタ送出部64を経て、フラグ生成部70までを流れるデリミタの経路と、オブジェクト入力部10から、ラスタライザ20の各構成、分配部30を経てシェーダ40までのパイプラインを流れる描画処理データの経路とを区別して図示したが、実際にはデリミタは描画処理データとともにパイプラインを流れる。
図5は、フラグ生成部70の構成を説明する図である。フラグ生成部70は、第4デリミタ送出部64から第1デリミタD1234、第2デリミタD234、第3デリミタD34、および第4デリミタD4の入力を受け、シェーダ40から各ピクセルのイネーブルフラグの入力を受ける。フラグ生成部70は、4つのレジスタR1〜R4(符号71〜74)と4つの論理和回路75〜78を有する。
第1デリミタD1234、第2デリミタD234、第3デリミタD34、第4デリミタD4は、それぞれストリームデータにおいてオブジェクト、プリミティブ、ラスタライン、スタンプの各処理単位の区切りをピクセルの粒度で示すものであり、フラグ生成部70は、これらのデリミタを参照して、複数のピクセルのイネーブルフラグの列をオブジェクト、プリミティブ、ラスタライン、スタンプの各処理単位の区切りでまとめた第1バインドイネーブルフラグF1〜第4バインドイネーブルフラグF4を生成する。
第1レジスタR1は第1バインドイネーブルフラグF1の値を保持する。第1レジスタR1に保持された値は、第1論理和回路75にフィードバックされて入力される。第1論理和回路75は、フィードバック入力された第1レジスタR1の値と、シェーダ40から入力される各ピクセルのイネーブルフラグとの論理和を計算し、その結果を第1レジスタR1に書き込む。第1レジスタR1に入力される第1デリミタD1234の値が1になったとき、第1レジスタR1に保持された第1バインドイネーブルフラグF1の値が出力され、第1レジスタR1の値は0にリセットされる。
第1論理和回路75の働きにより、シェーダ40からピクセルのイネーブルフラグとして1回でも値1が入力され、第1レジスタR1に値1が書き込まれると、第1レジスタR1の値は、第1デリミタD1234によってリセットされるまでは1に保持される。したがって、第1レジスタR1に記憶される第1バインドイネーブルフラグF1は、ピクセル単位のイネーブルフラグのビット列を第1デリミタD1234によって区切って論理和を計算したものとなる。
言い換えれば、オブジェクト内でいずれかのピクセルが分岐条件を満たした場合、第1バインドイネーブルフラグF1は1になり、オブジェクト内のいずれのピクセルも分岐条件を満たさない場合、第1バインドイネーブルフラグF1は0になる。
第2レジスタR2と第2論理和回路76により、第2バインドイネーブルフラグF2が生成される機構も同様であり、第2レジスタR2に記憶される第2バインドイネーブルフラグF2は、ピクセル単位のイネーブルフラグの列を第2デリミタD234によって区切って論理和を計算したものとなる。すなわち、プリミティブ内でいずれかのピクセルが分岐条件を満たした場合、第2バインドイネーブルフラグF2は1になり、プリミティブ内のいずれのピクセルも分岐条件を満たさない場合、第2バインドイネーブルフラグF2は0になる。
同様に、第3レジスタR3に記憶される第3バインドイネーブルフラグF3は、ピクセル単位のイネーブルフラグの列を第3デリミタD34によって区切って論理和を計算したものであり、ラスタライン内でいずれかのピクセルが分岐条件を満たした場合、第3バインドイネーブルフラグF3は1になり、ラスタライン内のいずれのピクセルも分岐条件を満たさない場合、第3バインドイネーブルフラグF3は0になる。
また、第4レジスタR4に記憶される第4バインドイネーブルフラグF4は、ピクセル単位のイネーブルフラグの列を第4デリミタD4によって区切って論理和を計算したものであり、スタンプ内でいずれかのピクセルが分岐条件を満たした場合、第4バインドイネーブルフラグF4は1になり、スタンプ内のいずれのピクセルも分岐条件を満たさない場合、第4バインドイネーブルフラグF4は0になる。
フラグ生成部70は、第1デリミタD1234が1になったとき、第1レジスタR1から出力される第1バインドイネーブルフラグF1をオブジェクト入力部10にフィードバック入力する。オブジェクト入力部10は、分岐先のパスにおいて、第1バインドイネーブルフラグF1が1であればオブジェクトを投入するが、第1バインドイネーブルフラグF1が0であればオブジェクトを投入しない。これにより、オブジェクト単位でデータの投入を制御することができ、オブジェクト内のいずれのピクセルも分岐先のパスで処理対象とならない場合は、そのオブジェクトはラスタライズされることがない。
また、フラグ生成部70は、第2デリミタD234が1になったとき、第2レジスタR2から出力される第2バインドイネーブルフラグF2をプリミティブ生成部22に設けられたプリミティブ用フラグバッファ81にフィードバック入力する。プリミティブ用フラグバッファ81はプリミティブ毎に第2バインドイネーブルフラグF2を保持する。
プリミティブ生成部22は、プリミティブ用フラグバッファ81に格納された第2バインドイネーブルフラグF2をプリミティブ毎に参照し、分岐先のパスにおいて、第2バインドイネーブルフラグF2が0であるプリミティブはスキップし、第2バインドイネーブルフラグF2が1であるプリミティブのみを処理する。これにより、プリミティブ単位でデータの投入を制御することができ、プリミティブ内のいずれのピクセルも分岐先のパスで処理対象とならない場合は、そのプリミティブはラスタライズされることがない。
また、フラグ生成部70は、第3デリミタD34が1になったとき、第3レジスタR3から出力される第3バインドイネーブルフラグF3をラスタ部26に設けられたラスタライン用フラグバッファ82にフィードバック入力する。ラスタライン用フラグバッファ82はラスタライン毎に第3バインドイネーブルフラグF3の値を記憶する。
ラスタ部26は、ラスタライン用フラグバッファ82に格納された第3バインドイネーブルフラグF3をラスタライン毎に参照し、分岐先のパスにおいて、第3バインドイネーブルフラグF3が0であるラスタラインはスキップし、第3バインドイネーブルフラグF3が1であるラスタラインのみを処理する。これにより、ラスタライン単位でデータの投入を制御することができ、ラスタライン内のいずれのピクセルも分岐先のパスで処理対象とならない場合は、そのラスタラインはラスタライズされることがない。
また、フラグ生成部70は、第4デリミタD4が1になったとき、第4レジスタR4から出力される第4バインドイネーブルフラグF4をピクセル化部28に設けられたスタンプ用フラグバッファ83にフィードバック入力する。スタンプ用フラグバッファ83は、ラスタライン毎に第4バインドイネーブルフラグF4の値を記憶する。
ピクセル化部28は、スタンプ用フラグバッファ83に格納された第4バインドイネーブルフラグF4をスタンプ毎に参照し、分岐先のパスにおいて、第4バインドイネーブルフラグF4が0であるスタンプはスキップし、第4バインドイネーブルフラグF4が1であるスタンプのみを処理する。これにより、スタンプ単位でデータの投入を制御することができ、スタンプ内のいずれのピクセルも分岐先のパスで処理対象とならない場合は、そのスタンプはラスタライズされることがない。
図6は、フラグ生成部70により生成される第1バインドイネーブルフラグF1〜第4バインドイネーブルフラグF4を説明する図である。第4バインドイネーブルフラグF4は、スタンプを構成するいずれかのピクセルのイネーブルフラグが1である場合に1となる。同図においてイネーブルフラグが0であるピクセルを白丸で示し、イネーブルフラグが1であるピクセルは斜線を付した丸で示している。各スタンプについての第4バインドイネーブルフラグF4の値を示すビット列が、スタンプ用フラグバッファ83にバッファされる。
第3バインドイネーブルフラグF3は、第4バインドイネーブルフラグF4をラスタライン単位でまとめたものである。ラスタライン内のスタンプについて1つでも第4バインドイネーブルフラグF4が1であるものがあれば、そのラスタラインの第3バインドイネーブルフラグF3は1であり、ラスタライン内のいずれのスタンプの第4バインドイネーブルフラグF4も0であれば、そのラスタラインの第3バインドイネーブルフラグF3は0である。各ラスタラインについての第3バインドイネーブルフラグF3の値を示すビット列がラスタライン用フラグバッファ82にバッファされる。
第2バインドイネーブルフラグF2は、第3バインドイネーブルフラグF3をプリミティブ単位でまとめたものである。プリミティブ内のラスタラインについて1つでも第3バインドイネーブルフラグF3が1であるものがあれば、そのプリミティブの第2バインドイネーブルフラグF2は1であり、プリミティブ内のいずれのラスタラインの第3バインドイネーブルフラグF3も0であれば、そのプリミティブの第2バインドイネーブルフラグF2は0である。各プリミティブについての第2バインドイネーブルフラグF2の値を示すビット列がプリミティブ用フラグバッファ81にバッファされる。
第1バインドイネーブルフラグF1は、第2バインドイネーブルフラグF2をオブジェクト単位でまとめたものである。オブジェクト内のプリミティブについて1つでも第2バインドイネーブルフラグF2が1であるものがあれば、そのオブジェクトの第1バインドイネーブルフラグF1は1であり、オブジェクト内のいずれのプリミティブの第2バインドイネーブルフラグF2も0であれば、そのオブジェクトの第1バインドイネーブルフラグF1は0である。
図7は、フラグ生成部70によるバインドイネーブルフラグの生成手順を示すフローチャートである。
フラグ生成部70の第1レジスタR1〜第4レジスタR4の値をゼロに初期設定する(S10)。
シェーダ40にピクセルが順次投入される。このとき第1デリミタD1234、第2デリミタD234、第3デリミタD34、および第4デリミタD4のいずれかが当該ピクセルの後に挿入されていれば、そのデリミタも合わせて入力される(S12)。
プリミティブはスタンプ単位でラスタライズされる。プリミティブの境界線上に位置するスタンプ内には、プリミティブの内側に属する有効なピクセルと、プリミティブの外側に属する無効なピクセルがある。シェーダ40は、投入されたピクセルが有効かどうかを調べる(S14)。ピクセルが有効かどうかはスタンプ単位でラスタライズされたときに判定されており、有効/無効を区別するためのフラグがピクセル毎に設けられている。シェーダ40はそのフラグを参照して、有効なピクセルであれば(S14のY)、ステップS16に処理を進め、無効なピクセルであれば(S14のN)、ステップS20に処理を進める。
シェーダ40は、投入されたピクセルが分岐条件を満たすかどうかを調べる(S16)。シェーダ40は、ピクセルが分岐条件を満たす場合(S16のY)、イネーブルフラグを1に設定し、そのピクセルのイネーブルフラグをフラグ生成部70に与える。フラグ生成部70は、イネーブルフラグが1であるため、第1レジスタR1〜第4レジスタR4の値を1に設定する(S18)。
シェーダ40は、ピクセルが分岐条件を満たさない場合(S16のN)、イネーブルフラグを0に設定し、そのピクセルのイネーブルフラグをフラグ生成部70に与える。フラグ生成部70は、イネーブルフラグが0であるため、第1レジスタR1〜第4レジスタR4の値を1に設定することなく、ステップS20に処理を進める。
フラグ生成部70は、第1デリミタD1234、第2デリミタD234、第3デリミタD34、および第4デリミタD4のいずれかの入力があった場合(S20のY)、第1レジスタR1〜第4レジスタR4の内、入力のあったデリミタに対応するレジスタに保持されたバインドイネーブルフラグを該当するパイプラインステージに送出する(S22)。フラグ生成部70は、バインドイネーブルフラグが送出されたレジスタの値を0にリセットする(S24)。
現在処理中のパスが終了すると(S26のY)、一連の処理は終了する。現在処理中のパスが終了していなければ(S26のN)、ステップS12に戻り、次のピクセルの処理を行う。
図8および図9を参照して、描画処理装置100により、分岐先のパスでデータの投入が制御される様子を説明する。
図8(a)〜(d)は、ラスタライザ20によりプリミティブがラスタライズされ、シェーダ40によりピクセル毎に分岐条件が判定される様子を説明する図である。
図8(a)は、ラスタライザ20においてプリミティブ生成部22からDDA24に供給されるプリミティブ200を示す。DDA24においてラスタ部26は、図8(b)に示すように、プリミティブ200を水平方向の第1ラスタライン211〜第4ラスタライン214に分割する。ピクセル化部28は、図8(c)に示すように、各ラスタライン211〜214をスタンプに分割し、各スタンプをピクセル化する。ここでは、スタンプの縦横の幅は4ピクセルである。ピクセル化部28は、各スタンプを16個のピクセルに変換する。
シェーダ40は、各ピクセルが分岐条件を満たすかどうかを判定する。図8(d)は、シェーダ40による分岐条件の判定結果を示すものであり、斜線を付したピクセルが分岐条件を見たし、分岐先のパスで演算処理の対象となる。
図8(d)において、第3ラスタライン213については、いずれのスタンプにも分岐条件を満たすピクセルがないため、分岐先のパスでは第3ラスタライン213は投入する必要がない。第3ラスタライン213に対する第3バインドイネーブルフラグF3は0に設定され、第3ラスタライン213は分岐先のパスでディスエーブルされる。
第2ラスタライン212および第4ラスタライン214においては、分岐条件を満たすピクセルが少なくとも1つ含まれるスタンプと、分岐条件を満たすピクセルが全く含まれないスタンプとがある。分岐条件を満たすピクセルが全く含まれないスタンプについては、分岐先のパスで投入する必要がなく、第4バインドイネーブルフラグF4が0に設定され、分岐先のパスでディスエーブルされる。
図9(a)〜(c)は、ラスタライザ20による分岐先のパスにおける処理を説明する図である。
図9(a)は、図8(a)と同じプリミティブ200であり、分岐先のパスにおいてプリミティブ生成部22からDDA24に供給される。DDA24においてラスタ部26は、第3バインドイネーブルフラグF3を参照して、図9(b)に示すように、プリミティブ200を第1ラスタライン211、第2ラスタライン212、および第4ラスタライン214に分割する。第3ラスタライン213は、第3バインドイネーブルフラグF3によりディスエーブルされており、生成されない。
ピクセル化部28は、第4バインドイネーブルフラグF4を参照して、図9(c)に示すように、第1ラスタライン211、第2ラスタライン212、および第4ラスタライン214をスタンプに分割し、各スタンプをピクセル化する。
第1ラスタライン211を構成する2つのスタンプ221、222はいずれもピクセル化される。第2ラスタライン212を構成する4つのスタンプ223〜226の内、第4バインドイネーブルフラグF4によりディスエーブルされた2つのスタンプ223、225は生成されず、第4バインドイネーブルフラグF4によりイネーブルされた残り2つのスタンプ224、226だけが生成される。第4ラスタライン214を構成する3つのスタンプ227〜229の内、第4バインドイネーブルフラグF4によりディスエーブルされた2つのスタンプ227、229は生成されず、第4バインドイネーブルフラグF4によりイネーブルされた残り1つのスタンプ228だけが生成される。
図10および図11を参照して、オブジェクトを構成する複数のプリミティブについて、分岐先のパスでデータの投入が制御される様子を説明する。
あるオブジェクトが、図10(a)、(e)、(i)で示す第1プリミティブ200、第2プリミティブ201、第3プリミティブ202により構成されているとする。プリミティブ生成部22は、第1プリミティブ200〜第3プリミティブ202を順次DDA24にストリームデータとして供給する。
図10(a)〜(d)は、第1プリミティブ200がラスタライズされ、ピクセル毎に分岐条件が判定される様子を示す。ラスタライザ20により、第1プリミティブ200は、4つのラスタラインに分割され(図10(b))、各ラスタラインがスタンプに分割され、ピクセル化される(図10(c))。シェーダ40により、ピクセル毎に分岐条件が判定される(図10(d))。同図では、簡単のため、分岐条件を満たすピクセルが1つでも含まれるスタンプを斜線を付して表し、分岐条件を満たすピクセルが含まれないスタンプには斜線を付していない。第1プリミティブ200の第3ラスタラインについては、いずれのスタンプも分岐条件を満たすピクセルが含まれないため、第3バインドイネーブルフラグF3が0に設定される。第2ラスタライン、第4ラスタラインにおいては、分岐条件を満たすピクセルが含まれないスタンプについてのみ、第4バインドイネーブルフラグF4が0に設定される。
同様に、図10(e)〜(h)は、第2プリミティブ201がラスタライズされ、ピクセル毎に分岐条件が判定される様子を示す。ラスタライザ20により、第2プリミティブ201は、4つのラスタラインに分割され(図10(f))、各ラスタラインがスタンプに分割され、ピクセル化される(図10(g))。シェーダ40により、ピクセル毎に分岐条件が判定されるが、第2プリミティブ201については、どのスタンプにも分岐条件を満たすピクセルが含まれない(図10(h))。第2プリミティブ201については、第2バインドイネーブルフラグF2が0に設定される。
また、図10(i)〜(l)は、第3プリミティブ202がラスタライズされ、ピクセル毎に分岐条件が判定される様子を示す。第3プリミティブ202は、4つのラスタラインに分割され(図10(j))、各ラスタラインがスタンプに分割され、ピクセル化され(図10(k))、ピクセル毎に分岐条件が判定される(図10(l))。第3プリミティブ202のいずれのラスタラインについても第3バインドイネーブルフラグF3は1に設定され、各ラスタライン内では、分岐条件を満たすピクセルが含まれないスタンプについてのみ、第4バインドイネーブルフラグF4が0に設定される。
図11(a)〜(g)は、ラスタライザ20による分岐先のパスにおける処理を説明する図である。
図11(a)、(d)、(e)は、それぞれ図10(a)、(e)、(i)と同じ第1プリミティブ200、第2プリミティブ201、第3プリミティブ202を示すが、分岐先のパスにおいて、プリミティブ生成部22は、第2プリミティブ201を処理に投入しないでスキップする。第2プリミティブ201は、第2バインドイネーブルフラグF2によりディスエーブルされているからである。
第1プリミティブ200については、図11(b)のように、第3バインドイネーブルフラグF3によりディスエーブルされた第2ラスタラインはスキップされ、第1、第2、第4ラスタラインのみが生成される。また、図11(c)のように、第4バインドイネーブルフラグF4によりディスエーブルされたスタンプはスキップされ、第4バインドイネーブルフラグF4によりイネーブルされたスタンプのみが生成される。
同様に、第3プリミティブ202については、図11(f)のように、第1ラスタライン〜第4ラスタラインが生成され、図11(c)のように、各ラスタラインについて、第4バインドイネーブルフラグF4によりディスエーブルされたスタンプはスキップされ、第4バインドイネーブルフラグF4によりイネーブルされたスタンプのみが生成される。
以上述べたように、本実施の形態によれば、マルチパスレンダリングにおいて、描画処理プログラムに条件分岐が存在する場合、分岐条件を満たすピクセルを判定して、分岐先のパスの実行の際、上位のパイプラインステージにおける処理粒度で演算処理対象とならないデータの投入を制限することができる。レンダリングのパイプラインは、パイプラインステージが下流に進むほどデータの粒度が細かくなり、データ量が増えるため、データの滞留が生じ、処理が重くなる。可能な限り上位のパイプラインステージにおいて、分岐条件を満たさない処理単位を投入しないように制御することで、処理効率の向上を図ることができる。特に、データ量が増大する前、すなわちピクセル化される前のプリミティブやオブジェクトの粒度でデータの投入をカットできれば、処理のオーバーヘッドを大幅に削減することができる。これにより、条件分岐の多い複雑な描画処理プログラムであっても、マルチパスレンダリングにより効率良く実行することができるようになる。
本実施の形態によれば、パイプライン機構によりマルチパスレンダリングを行う際、あるパスの処理時に各ピクセルが次以降のパスで処理対象となるかどうかを判定し、その判定結果を異なる処理粒度でまとめて、異なるパイプラインステージにフィードバックし、次以降のパスの実行に反映させることで、細かい粒度のプログラムの実行制御が可能となる。これによりマルチパスレンダリングにおける制御性を高め、プログラミングの柔軟性を高めることができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
上記の説明では、分岐先のパスにおいて、各パイプラインステージで処理単位を投入するかどうかを判断するための情報としてバインドイネーブルフラグが生成され、各パイプラインステージでバッファリングされた。あるパスにおけるピクセルの演算処理過程で、次以降の複数の分岐先パスについてピクセルが演算処理の対象となるかどうかが判定されることもあるため、バインドイネーブルフラグは、複数の分岐先のパスについて生成され、各パイプラインステージでバッファリングされてもよい。
また、上記の説明では、描画処理プログラムを条件分岐に応じて複数のパスに分割したが、描画処理プログラムのパス分割は、必ずしも条件分岐に応じて行われなくてもよく、プログラムは他の基準によりパスに分割されてもよい。たとえば、ループを含むコード列をパス分割の単位としてもよい。また、シェーダは、ピクセルが次以降の各パスにおいて処理対象となるかを、各ピクセルが分岐条件を満たすかどうかで判定したが、この判定についても、必ずしも分岐条件によらなくてもよく、他の判定基準によりピクセルが次以降のパスで処理対象となるかどうかを判定してもよい。たとえば、プログラムのコード列において参照される範囲のピクセルであるかどうかによって、ピクセルが次以降のパスで処理対象となるかどうかを判定してもよい。
実施の形態に係る描画処理装置の構成図である。 図1の描画処理装置により実行される描画処理プログラムの流れを説明する図である。 図1のデリミタ送出部の構成を説明する図である。 図3のデリミタ送出部によりデリミタが生成される様子を示す図である。 図1のフラグ生成部の構成を説明する図である。 図5のフラグ生成部により生成されるバインドイネーブルフラグを説明する図である。 図5のフラグ生成部によるバインドイネーブルフラグの生成手順を示すフローチャートである。 図1のラスタライザによりプリミティブがラスタライズされ、シェーダによりピクセル毎に分岐条件が判定される様子を説明する図である。 図1のラスタライザによる分岐先のパスにおける処理を説明する図である。 図1のラスタライザによりオブジェクトがラスタライズされ、シェーダによりピクセル毎に分岐条件が判定される様子を説明する図である。 図1のラスタライザによってオブジェクトが分岐先のパスにおいて処理される様子を説明する図である。
符号の説明
10 オブジェクト入力部、 20 ラスタライザ、 22 プリミティブ生成部、 24 DDA、 26 ラスタ部、 28 ピクセル化部、 30 分配部、 40 シェーダ、 50 フレームバッファ、 61 第1デリミタ送出部、 62 第2デリミタ送出部、 63 第3デリミタ送出部、 64 第4デリミタ送出部、 70 フラグ生成部、 81 プリミティブ用フラグバッファ、 82 ラスタライン用フラグバッファ、 83 スタンプ用フラグバッファ、 100 描画処理装置。

Claims (13)

  1. 描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングを行う描画処理装置であって、
    前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数の演算処理部が処理粒度の細かくなる順に複数段のパイプラインステージを構成してなるパイプライン処理機構を備え、
    各演算処理部は、当該演算処理部における処理粒度で各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すフラグを取得し、次以降の演算パスにおいて、そのフラグを参照することにより演算処理の対象となる処理単位のみを演算処理し、演算処理後のデータを後段の演算処理部に供給することを特徴とする描画処理装置。
  2. 最終段の前記演算処理部が、当該最終段の演算処理部における処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを判定した判定フラグを生成し、その判定フラグを各段の演算処理部における処理粒度でまとめることにより、各段の演算処理部における処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを各段の演算処理部に供給することを特徴とする請求項1に記載の描画処理装置。
  3. 前記描画処理は、描画オブジェクトに対して実行される描画プログラムの条件分岐毎に複数の演算パスに分割されており、前記最終段の演算処理部は、当該最終段の演算処理部における処理粒度において各処理単位が条件分岐における条件を満たすか否かにより、当該最終段の演算処理部における処理粒度において各処理単位が次以降の分岐先の演算パスで演算処理の対象となるか否かを判定することを特徴とする請求項2に記載の描画処理装置。
  4. 各演算処理部は、当該演算処理部における処理粒度で前段の演算処理部における処理単位の区切りを示すデリミタを生成して後段の演算処理部に送出し、
    前記最終段の演算処理部は、各段の演算処理部により生成された前記デリミタが示す区切りで前記判定フラグをまとめることにより、各段の演算処理部に供給すべき前記まとめフラグを生成することを特徴とする請求項2または3に記載の描画処理装置。
  5. 描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングを行う描画処理装置であって、
    前記描画オブジェクトをラスタライズしてピクセルデータを生成するラスタライザと、
    前記ラスタライザにより生成されたピクセルデータに対して演算処理を行うピクセル処理部とを備え、
    前記ピクセル処理部は、各ピクセルが次以降の演算パスで演算処理の対象となるか否かを判定した判定フラグを生成し、その判定フラグを前記ラスタライザに供給するフラグ生成部を有することを特徴とする描画処理装置。
  6. 前記ラスタライザは、前記判定フラグを参照することにより、次以降の演算パスにおいて、演算処理の対象となるピクセルのみを生成し、生成したピクセルデータを前記ピクセル処理部に供給することを特徴とする請求項5に記載の描画処理装置。
  7. 前記描画処理は、前記描画オブジェクトに対して実行される描画プログラムの条件分岐毎に複数の演算パスに分割されており、前記フラグ生成部は、各ピクセルが条件分岐における条件を満たすか否かにより、各ピクセルが次以降の分岐先の演算パスで演算処理の対象となるか否かを判定することを特徴とする請求項5または6に記載の描画処理装置。
  8. 前記ラスタライザは、前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数の演算処理部が処理粒度が細かくなる順に複数段のパイプラインステージを構成してなるパイプライン処理機構を備え、
    前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを各段の演算処理部における処理粒度でまとめることにより、各段の演算処理部において各処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを各段の演算処理部に供給することを特徴とする請求項5から7のいずれかに記載の描画処理装置。
  9. 各演算処理部は、当該演算処理部における処理粒度で前段の演算処理部における処理単位の区切りを示すデリミタを生成して後段の演算処理部に送出し、
    前記フラグ生成部は、各段の演算処理部により生成された前記デリミタが示す区切りで前記判定フラグをまとめることにより、各段の演算処理部に供給すべき前記まとめフラグを生成することを特徴とする請求項8に記載の描画処理装置。
  10. 前記ラスタライザは、前記描画オブジェクトを構成する1つ以上の描画プリミティブに関するデータを生成するプリミティブ生成部を有し、
    前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを前記描画プリミティブの単位でまとめることにより、前記描画プリミティブ単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを前記プリミティブ生成部に供給することを特徴とする請求項5から7のいずれかに記載の描画処理装置。
  11. 前記ラスタライザは、前記描画プリミティブをデジタル微分解析処理によって走査ライン毎にピクセルデータに変換するデジタル微分解析部をさらに有し、
    前記フラグ生成部は、ピクセル単位で判定された前記判定フラグを前記デジタル微分解析処理の単位でまとめることにより、前記デジタル微分解析処理単位が次以降の演算パスで演算処理の対象となるか否かを示すまとめフラグを生成し、そのまとめフラグを前記デジタル微分解析処理部に供給することを特徴とする請求項10に記載の描画処理装置。
  12. 描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングによる描画処理方法であって、
    前記描画オブジェクトをそれぞれ異なる粒度の処理単位で演算処理する複数のパイプラインステージが処理粒度の細かくなる順に連結されてなるパイプライン処理機構において、最終段のパイプラインステージが、各パイプラインステージにおける処理粒度において各処理単位が次以降の演算パスで演算処理の対象となるか否かを判定したフラグを生成し、そのフラグを各パイプラインステージにフィードバックし、各パイプラインステージは、そのフィードバックされたフラグを参照して、次以降の演算パスにおいて演算処理の対象となる処理単位のみを演算処理し、演算処理後のデータを後段のパイプラインステージに供給することを特徴とする描画処理方法。
  13. 描画オブジェクトに対する描画処理を複数の演算パスに分割して処理するマルチパスレンダリングによる描画処理方法であって、
    前記描画オブジェクトをラスタライズしてピクセルデータを生成するステップと、
    生成されたピクセルデータに対して演算処理を行うステップと、
    前記演算処理の過程で各ピクセルが次以降の演算パスで演算処理の対象となるか否かを判定するステップとを含み
    前記ピクセルデータを生成するステップは、次以降の演算パスにおいて、前記判定するステップによる判定結果を参照することにより、演算処理の対象となるピクセルデータのみを生成することを特徴とする描画処理方法。
JP2005155936A 2005-05-27 2005-05-27 描画処理装置および描画処理方法 Expired - Fee Related JP4218840B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005155936A JP4218840B2 (ja) 2005-05-27 2005-05-27 描画処理装置および描画処理方法
US11/384,204 US7663634B2 (en) 2005-05-27 2006-03-17 Drawing processing apparatus and drawing processing method for multipass rendering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005155936A JP4218840B2 (ja) 2005-05-27 2005-05-27 描画処理装置および描画処理方法

Publications (2)

Publication Number Publication Date
JP2006331206A JP2006331206A (ja) 2006-12-07
JP4218840B2 true JP4218840B2 (ja) 2009-02-04

Family

ID=37462778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005155936A Expired - Fee Related JP4218840B2 (ja) 2005-05-27 2005-05-27 描画処理装置および描画処理方法

Country Status (2)

Country Link
US (1) US7663634B2 (ja)
JP (1) JP4218840B2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692844B1 (en) 2000-09-28 2014-04-08 Nvidia Corporation Method and system for efficient antialiased rendering
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8021193B1 (en) 2005-04-25 2011-09-20 Nvidia Corporation Controlled impedance display adapter
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US7793029B1 (en) 2005-05-17 2010-09-07 Nvidia Corporation Translation device apparatus for configuring printed circuit board connectors
US8417838B2 (en) 2005-12-12 2013-04-09 Nvidia Corporation System and method for configurable digital communication
US8412872B1 (en) 2005-12-12 2013-04-02 Nvidia Corporation Configurable GPU and method for graphics processing using a configurable GPU
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US7483029B2 (en) * 2005-12-15 2009-01-27 Nvidia Corporation GPU having raster components configured for using nested boustrophedonic patterns to traverse screen areas
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US7843468B2 (en) * 2006-07-26 2010-11-30 Nvidia Corporation Accellerated start tile search
US8085264B1 (en) 2006-07-26 2011-12-27 Nvidia Corporation Tile output using multiple queue output buffering in a raster stage
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8237738B1 (en) 2006-11-02 2012-08-07 Nvidia Corporation Smooth rasterization of polygonal graphics primitives
US8427487B1 (en) * 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US7808512B1 (en) 2006-12-19 2010-10-05 Nvidia Corporation Bounding region accumulation for graphics rendering
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
CN101625753B (zh) * 2008-07-10 2012-11-21 辉达公司 图形处理中的光栅及光栅化方法
JP5151946B2 (ja) * 2008-12-09 2013-02-27 富士通株式会社 描画装置
US20110063304A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US9019280B2 (en) 2011-07-22 2015-04-28 Qualcomm Incorporated Area-based rasterization techniques for a graphics processing system
KR20130124618A (ko) * 2012-05-07 2013-11-15 삼성전자주식회사 영상 처리 장치 및 방법
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
KR102161742B1 (ko) * 2013-10-11 2020-10-05 삼성전자주식회사 피드백 경로를 포함하는 파이프 라인 시스템 및 그 동작방법
WO2015108218A1 (ko) * 2014-01-20 2015-07-23 (주)넥셀 그래픽 처리 장치 및 방법
GB2525666B (en) * 2014-05-02 2020-12-23 Advanced Risc Mach Ltd Graphics processing systems
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US9536342B2 (en) * 2014-08-15 2017-01-03 Intel Corporation Automatic partitioning techniques for multi-phase pixel shading
KR102358350B1 (ko) * 2019-10-15 2022-02-04 한국기술교육대학교 산학협력단 클러스터 기반 과학적 가시화 도구를 위한 가시화 파이프라인 장치 및 그 가시화 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579455A (en) * 1993-07-30 1996-11-26 Apple Computer, Inc. Rendering of 3D scenes on a display using hierarchical z-buffer visibility
FR2735253B1 (fr) * 1995-06-08 1999-10-22 Hewlett Packard Co Synchronisation de donnees entre plusieurs dispositifs de restitution asynchrones de donnees
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
US6492991B1 (en) * 1998-08-28 2002-12-10 Ati International Srl Method and apparatus for controlling compressed Z information in a video graphics system
US7023437B1 (en) * 1998-07-22 2006-04-04 Nvidia Corporation System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering
US6259461B1 (en) * 1998-10-14 2001-07-10 Hewlett Packard Company System and method for accelerating the rendering of graphics in a multi-pass rendering environment
US6483505B1 (en) * 2000-03-17 2002-11-19 Ati International Srl Method and apparatus for multipass pixel processing
US6636212B1 (en) * 2000-11-14 2003-10-21 Nvidia Corporation Method and apparatus for determining visibility of groups of pixels
JP3761085B2 (ja) * 2001-11-27 2006-03-29 株式会社ソニー・コンピュータエンタテインメント 画像処理装置及びその構成部品、レンダリング処理方法
US20050122338A1 (en) * 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
US7450120B1 (en) * 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US7277098B2 (en) * 2004-08-23 2007-10-02 Via Technologies, Inc. Apparatus and method of an improved stencil shadow volume operation

Also Published As

Publication number Publication date
US20060267981A1 (en) 2006-11-30
JP2006331206A (ja) 2006-12-07
US7663634B2 (en) 2010-02-16

Similar Documents

Publication Publication Date Title
JP4218840B2 (ja) 描画処理装置および描画処理方法
CN1957376B (zh) 可缩放着色器结构
US8339409B2 (en) Tile-based graphics system and method of operation of such a system
US8505001B2 (en) Method and system for utilizing data flow graphs to compile shaders
US9092873B2 (en) Rasterizer packet generator for use in graphics processor
US10510185B2 (en) Variable rate shading
US11379941B2 (en) Primitive shader
US20080100618A1 (en) Method, medium, and system rendering 3D graphic object
CN1997964A (zh) 顶点和片段程序的优化链接
US9390539B2 (en) Performing parallel shading operations
KR102346119B1 (ko) 입력 인덱스 스트림 내 프리미티브의 식별
TWI611373B (zh) 路徑著色的最佳化三角形拓撲
CN104167015A (zh) 一种基于表面信号拟合的着色器简化方法、装置及图形渲染方法
CN104183008A (zh) 一种基于表面信号拟合和曲面细分的着色器简化方法、装置及图形渲染方法
US7616211B2 (en) Rendering processor, rasterizer and rendering method
JP2006235839A (ja) 画像処理装置および画像処理方法
US20240257435A1 (en) Hybrid binning
US11195326B2 (en) Method and system for depth pre-processing and geometry sorting using binning hardware
US7081903B2 (en) Efficient movement of fragment stamp
US12067649B2 (en) Per-pixel variable rate shading controls using stencil data
CN102982503B (zh) 绘图处理单元
US10062140B2 (en) Graphics processing systems
US11741653B2 (en) Overlapping visibility and render passes for same frame
US7542042B1 (en) Subpicture overlay using fragment shader
US20220319091A1 (en) Post-depth visibility collection with two level binning

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081106

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4218840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees