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

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

Info

Publication number
JP4692956B2
JP4692956B2 JP2004338087A JP2004338087A JP4692956B2 JP 4692956 B2 JP4692956 B2 JP 4692956B2 JP 2004338087 A JP2004338087 A JP 2004338087A JP 2004338087 A JP2004338087 A JP 2004338087A JP 4692956 B2 JP4692956 B2 JP 4692956B2
Authority
JP
Japan
Prior art keywords
instruction
texture
unit
map
data
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
JP2004338087A
Other languages
English (en)
Other versions
JP2006146721A (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 Interactive Entertainment Inc
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 Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2004338087A priority Critical patent/JP4692956B2/ja
Priority to US11/719,914 priority patent/US20080098206A1/en
Priority to PCT/JP2005/017492 priority patent/WO2006054389A1/ja
Priority to EP05785254A priority patent/EP1826725A4/en
Publication of JP2006146721A publication Critical patent/JP2006146721A/ja
Application granted granted Critical
Publication of JP4692956B2 publication Critical patent/JP4692956B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/04Texture mapping

Landscapes

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

Description

この発明は描画データを演算処理する描画処理装置および描画処理方法に関する。
3次元コンピュータグラフィックスにおけるレンダリングエンジンは、複雑で高度なシェーディングアルゴリズムに対応するため、プログラマビリティをもった、よりプロセッサライクなものに変わりつつある。特にレンダリングエンジンの中核であるピクセルシェーダは、固定のグラフィックス機能を実装したハードウエアから、CPUと同じような命令セットを備えた演算ユニットを内蔵し、プログラミングによってフレキシブルに機能を追加していくことができるプロセッサへとその姿を変えつつある。
現在のプログラマブルなピクセルシェーダでは、描画処理対象の3次元オブジェクトに対してポリゴンセットアップを行った後、各ポリゴンをラスタライズしたピクセルデータを演算処理し、最終的なカラー値を算出する。このとき、シェーダプログラムは描画処理対象のオブジェクト単位で持たせるため、ポリゴン内のすべてのピクセルに対して同一のシェーダプログラムが実行されることになる。
特許3229042号公報
高品質の描画データを生成するためには、オブジェクトの各ポリゴンについて同一の処理をするだけでは足りず、ピクセル単位で細かな描画処理を行う必要がある。従来のピクセルシェーダでは、オブジェクト単位で同一のシェーダプログラムを実行するため、ピクセル単位でプログラマビリティを持たせるには、サブルーチンコールを用いてプログラムを分岐させ、飛び先のサブルーチンで個別のプログラムを実行する、もしくは実行するかしないかをフラグで制御する条件付き(conditional)実行を行うことで対応するしかなかった。しかし、ピクセル単位でシェーダプログラムを条件分岐させると、分岐によるペナルティが大きくなり、プログラム全体の処理速度の低下が問題となる。また、条件付き実行の場合、実行しない部分も実行時間にカウントされる。このように、ピクセル単位の多様な描画処理を実現すると、非常に効率が悪くなる。
本発明はこうした課題に鑑みてなされたものであり、その目的は、描画演算処理単位でプログラマビリティをもたせることのできる描画処理技術を提供することにある。
上記課題を解決するために、本発明のある態様の描画処理装置は、命令に関するデータを2次元座標に対応づけて格納した命令マップを記憶する命令マップ記憶部と、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータに対してそれぞれ命令を実行する演算処理部と、前記演算処理部から前記命令マップを参照するための2次元座標を指定するデータを受け取り、その指定された2次元座標に対応する命令に関するデータを前記命令マップから読み出して前記演算処理部に供給する制御部とを含む。
ここで「描画ユニット」とは、描画対象物の描画演算処理単位であり、たとえば、単一のピクセル、複数のピクセルの集まりなどである。「命令に関するデータ」とは、描画演算処理単位に適用される命令に関するデータであり、命令コードや描画演算処理のプログラムの分岐先アドレスなどを含む。
演算処理部は、複数の描画ユニットに対して並列に命令を実行してもよく、複数の描画ユニットに対して順に命令を実行してもよい。演算処理部は、描画ユニットに対する命令をパイプライン処理によって実行してもよい。
この態様によると、描画ユニットを演算処理する際に、命令マップを参照して描画ユニット毎に命令を切り替えて実行することができる。
本発明の別の態様もまた、描画処理装置である。この装置は、所定の値を2次元座標に対応づけて格納したマップを記憶するマップ記憶部と、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータに対してそれぞれ命令を実行する演算処理部と、前記演算処理部から前記マップを参照するための2次元座標を指定するデータを受け取り、その指定された2次元座標に対応する値を前記マップから読み出して前記演算処理部に供給する制御部とを含む。前記マップは、前記描画ユニットに適用されるべきテクスチャの属性値または前記描画ユニットに適用されるべき命令に関するデータを2次元座標に対応づけて格納したものである。
ここで「テクスチャの属性値」とは、テクスチャの属性に関する値であり、たとえば、テクスチャ画像のカラー値、カラー値のインデックスなどである。「マップ」とは、2次元座標に対応づけて何らかの値が格納されたものであり、座標を指定してそれに対応する値を参照することができるように構成されたデータ構造をもつ。
この態様によると、テクスチャマッピングの構成を利用して、描画ユニット単位で命令を適用することができる。また、マップのデータ構造をテクスチャの属性値または命令に関するデータを格納するために共用し、マップに格納された値がテクスチャの属性値であっても、命令に関するデータであっても区別することなくマップを参照して、マップから参照される値を描画ユニットに適用することができる。
本発明のさらに別の態様もまた、描画処理装置である。この装置は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータに対してそれぞれ命令を実行する演算処理部と、前記演算処理部により描画ユニット単位で描画演算処理された前記描画対象物の描画データを記憶するフレームバッファと、前記描画ユニットに適用されるべき命令を前記演算処理部に供給する制御部とを含む。前記フレームバッファは、命令に関するデータを2次元座標に対応づけて格納した命令マップも記憶し、前記制御部は、前記演算処理部から前記命令マップを参照するための2次元座標を指定するデータを受け取り、その指定された2次元座標に対応する命令に関するデータを前記命令マップから読み出して前記演算処理部に供給する。
この態様によると、フレームバッファに格納された命令マップを参照するため、命令マップからのデータの転送が高速であり、描画ユニット単位での命令の切り替え実行の処理性能を向上させることができる。
本発明のさらに別の態様もまた、描画処理装置である。この装置は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータに対してそれぞれ命令を実行する演算処理部と、前記演算処理部により描画ユニット単位で描画演算処理された前記描画対象物の描画データを記憶するフレームバッファと、前記描画ユニットに適用されるべき命令を前記演算処理部に供給する制御部とを含む。前記制御部は、前記フレームバッファに中間データとして記憶された前記描画データの少なくとも一部を取得して、前記描画ユニットに適用されるべき命令に利用する。
この態様によると、フレームバッファの値を描画ユニット単位の命令に利用することができる。フレームバッファは、演算処理部により描画演算処理された描画対象物の描画データと1対1に対応しているため、フレームバッファのアドレスを指定して、必要な値を直ちに取り出して、描画演算処理のプログラムに利用することができる。
本発明のさらに別の態様もまた、描画処理装置である。この装置は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータを保持するレジスタと、前記レジスタから前記描画ユニットのデータを読み出して命令を実行する演算器と、前記描画ユニットに適用されるべき命令を前記演算器に供給する制御部とを含む。前記レジスタは、前記演算器による演算結果も中間データとして保持し、前記制御部は、前記レジスタに保持された中間データの少なくとも一部を取得して、前記描画ユニットに適用されるべき命令に利用する。
この態様によると、演算器による演算結果を描画ユニット単位の命令に利用することができる。
本発明のさらに別の態様は、描画処理方法である。この方法は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットに適用されるべき命令に関するデータを2次元座標に対応づけて格納した命令マップを参照して、前記命令マップが適用される前記描画対象物の表面に関する2次元パラメータ座標に対応する命令に関するデータを読み出し、読み出した命令に関するデータにしたがって前記描画ユニットを演算処理する。
本発明のさらに別の態様もまた、描画処理方法である。この方法は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットに適用されるべきテクスチャの属性値または該各々の描画ユニットに適用されるべき命令に関するデータを2次元座標に対応づけて格納したマップを参照して、前記マップが適用される前記描画対象物の表面に関する2次元パラメータ座標に対応する値を読み出し、その読み出した値が前記命令に関するデータである場合には、その命令にしたがって前記描画ユニットを演算処理し、その読み出した値が前記テクスチャの属性値である場合には、その属性値にしたがってテクスチャを前記描画ユニットに適用する。
本発明のさらに別の態様は、命令マップのデータ構造である。この命令マップのデータ構造は、描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットに適用されるべき命令に関するデータを前記描画対象物の表面に関する2次元パラメータ座標に対応づけて格納してなる。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、描画処理単位の高いプログラマビリティを実現するとともに、処理性能を向上させることができる。
図1は、実施の形態に係る描画処理装置100の構成図である。描画処理装置100は、3次元モデル情報にもとづいて2次元画面に表示するための描画データを生成するレンダリング処理を行う。
ラスタライザ10は、メモリもしくは他のプロセッサや頂点シェーダなどから描画プリミティブの頂点データを取得し、描画するスクリーンに対応したピクセル情報に変換する。描画プリミティブは一般的には三角形であり、ラスタライザ10は、3次元空間上の三角形を投影変換により描画平面上の三角形に変換するビュー変換を行い、さらに、描画平面上の三角形を描画平面の水平方向に沿ってスキャンしながら、1列毎に量子化されたピクセルに変換する。ラスタライザ10により、描画プリミティブがピクセル展開され、各ピクセルについて、RGB3原色で表されるカラー値、透明度を示すアルファ値、奥行きを示すZ値、テクスチャ属性を参照するためのパラメータ座標であるUV座標値などを含むピクセル情報が算出される。
ラスタライザ10は、スキャンラインに沿って描画ユニットを生成し、シェーダユニット20に与える。ラスタライザ10からシェーダユニット20に供給された描画ユニットは、キューにスタックされ、シェーダユニット20は、キューにスタックされた描画ユニットを順に処理する。
ここで、「描画ユニット」とは、一般には、所定の大きさのピクセル領域であり、1つのピクセルであることも、複数のピクセルの集合であることもある。あるいは、描画ユニットは、1つのピクセルをさらに細かく分割したサブピクセルの1つ、もしくはそのようなサブピクセルの集合であってもよい。以下では、説明の簡単のため、描画ユニットが複数のピクセルもしくは複数のサブピクセルからなる場合でも、描画ユニット内部での個々のピクセルもしくはサブピクセルの処理を隠蔽して、描画ユニット全体で1つのピクセルであるとみなして、本実施の形態に特徴的な描画処理方法を説明する。したがって、以下では「描画ユニット」を単にピクセルと称することにする。
シェーダユニット20は、ピクセルをパイプライン処理するシェーダ30と、シェーダ30における描画演算処理の制御機構を含む。
シェーダ30は、ラスタライザ10により算出されたピクセル情報をもとに、シェーディング処理を行ってピクセルのカラー値を求め、さらに、テクスチャマッピングを行う場合は、テクスチャユニット70から得られるテクスチャのカラー値を合成して最終的なピクセルのカラー値を算出し、フレームバッファ40にピクセルデータを書き込む。シェーダ30は、さらに、フレームバッファ40に保持された描画データに対して、フォギング、アルファブレンディング等の処理を行い、最終的なピクセルのカラー値を求め、フレームバッファ40のピクセルデータを更新する。フレームバッファ40に記憶されたピクセルデータは、表示装置に出力されて表示される。
シェーダ30は、レジスタファイル32、演算部34、および合成部36を含む。レジスタファイル32は、汎用レジスタやテクスチャロード命令の結果を保持するレジスタなどの各種レジスタを集めたレジスタ群であり、ラスタライザ10から投入されるピクセルデータを保持するとともに、演算部34による演算の中間データや、テクスチャユニット70から供給されるテクスチャデータを保持する。また、レジスタファイル32は、フレームバッファ40に記憶されたピクセルデータの一部や中間処理データなどを保持することもできる。
演算部34は、複数の演算器の集合体であり、シェーディング処理に係る演算を行う。演算部34は、レジスタファイル32からピクセルデータを読み出し、シェーダプログラムを実行してピクセルデータをパイプライン処理し、その結果をレジスタファイル32に書き戻すか、合成部36に供給する。
合成部36は、ピクセルデータのフォーマット変換を行い、フレームバッファ40に対してリード・モディファイ・ライト(RMW)を行う。より具体的には、合成部36は、フレームバッファ40に記憶された生成済みのピクセルデータを読み込み、演算部34により算出されたピクセルデータと比較し、Zテストや、アルファブレンディングなどのピクセルデータの合成処理などを行い、更新されたピクセルデータをフレームバッファ40に書き戻す。
フレームバッファ40は、シェーダ30により生成されたピクセルデータをスクリーン座標で格納するバッファであり、格納されたピクセルデータは、最終描画画像であることも、シェーディング処理過程にある中間画像であることもある。
テクスチャユニット70は、シェーダユニット20において処理されるピクセルにテクスチャデータをマッピングする処理を行う。ポリゴン面上のピクセルにマッピングされるテクスチャの位置を2次元パラメータ座標であるUV座標系で表す。テクスチャユニット70は、シェーダ30からピクセルにマッピングされるテクスチャのUV座標値を取得し、UV座標値を参照アドレスに変換した後、テクスチャから参照アドレスに対応する属性値を取得して、シェーダ30に供給する。
テクスチャユニット70は、UV座標値に対応づけてテクスチャの属性値を格納したテクスチャマップだけでなく、UV座標値に対応づけて命令に関するデータを格納した命令マップを用いて、テクスチャマッピングと同様の方法で、命令をポリゴン面上のピクセルにマッピングして、ピクセル毎に異なる命令を適用することができる。
以下、テクスチャマップと命令マップを総称して「マップ」と呼ぶ。また、UV座標値にもとづいてマップから読み出される値を「被参照値」と呼ぶ。
命令マップは、UV値にもとづいて値が参照されるという構造上はテクスチャマップと同じであるが、マップに格納される値が命令に関するデータである点で、一般的な意味でのテクスチャマップとは処理の性質が異なり、区別される。すなわち、テクスチャマップにおいては、テクスチャマッピングにより、マップから参照されたテクスチャのカラー値がピクセルのカラー値に合成されるが、命令マップでは、マップから参照された命令がピクセルに適用されて実行されるのであり、両者の間では、ピクセルに適用される内容にデータとプログラムの違いがある。
命令マップに格納される命令に関するデータは、命令コードそのものであるか、プログラムの分岐先アドレスである。前者の場合、命令マップの各要素のビット長で識別可能な命令コードが命令マップに格納される。たとえば、命令マップに格納される被参照値のビット長が24ビットであるとすれば、24ビットで表現可能な命令コードが命令マップに直接格納される。分岐先アドレスが命令マップに格納される場合は、プログラムの分岐先アドレスにはサブルーチンが格納される。命令マップをポリゴン面にマッピングすることにより、ポリゴン面の各ピクセルに対して実行すべき命令コードもしくはサブルーチンが決定される。
テクスチャマップに格納されるテクスチャの属性値は、テクスチャのカラー値もしくはカラー値を参照するためのインデックスである。後者のインデックスの場合は、カラールックアップテーブルを参照して実際のカラー値に変換される。
テクスチャユニット70は、UV座標値にもとづいてマップから取得される被参照値がテクスチャの属性値であれば、データパス92を介してシェーダ30のレジスタファイル32に書き込み、マップから取得される被参照値が命令に関するデータであれば、命令バッファ52にバッファリングする。命令バッファ52には、テクスチャユニット70から与えられた命令コードまたは分岐先アドレスが格納されることになる。
命令処理部60は、処理対象のオブジェクトに対するシェーダプログラムを命令メモリ66から取得し、命令コードをフェッチ、デコードした後、デコードされた命令を実行する。命令メモリ66は、メインメモリなどからロードした命令をキャッシュするインストラクションキャッシュとして構成されてもよい。また、命令処理部60は、命令バッファ52に保持された命令コードも同様に、デコードして実行する。
命令処理部60は、デコードされた命令を実行するために、命令パス94を介してシェーダ30に対して実行すべき命令に関する制御信号CNTLを与え、シェーダ30のレジスタファイル32、演算部34および合成部36を制御する。シェーダ30は、命令処理部60から供給される制御信号CNTLにより制御されてピクセルに関する演算をパイプライン処理によって実行する。
命令バッファ52には、テクスチャユニット70に格納された命令マップから読み出された命令に関するデータが書き込まれる以外に、フレームバッファ40から読み出された命令に関するデータが書き込まれてもよい。その場合、フレームバッファ40に命令マップが設けられ、UV座標値に応じた被参照値がフレームバッファ40からレジスタファイル32へのデータパス96を介して、いったんレジスタファイル32に書き込まれ、その後、レジスタファイル32から命令バッファ52へのUV座標値のパス90を介して、命令バッファ52に命令に関するデータが書き込まれる。あるいは、レジスタファイル32を経由しないで、直接フレームバッファ40から命令バッファ52へ命令に関するデータが書き込まれてもよい。
フレームバッファ40からレジスタファイル32へのデータ転送にかかる時間は、シェーダ30がテクスチャユニット70にUV座標値を指定してから、テクスチャマッピングにより命令マップの被参照値を取得するまでのレイテンシーよりも短いため、フレームバッファ40に命令マップを格納しておけば、命令バッファ52への命令に関するデータの供給を高速に行うことができ、処理性能がさらに向上する。
また、命令マップの形ではなく、フレームバッファ40に格納されたピクセルデータの中間値や演算結果を、レジスタファイル32を経由して、もしくはレジスタファイル32を経由せずに直接、命令バッファ52に書き込み、命令に関するデータとして利用してもよい。これにより、中間値や演算結果をプログラムの一部として直接的に利用することも可能になる。また、レジスタファイル32には、演算部34による演算の中間結果も保持されるため、その中間結果を、レジスタファイル32から命令バッファ52へのUV座標値のパス90を介して命令バッファ52に供給し、プログラムの一部として利用してもよい。
図2は、シェーダユニット20の制御機構の詳細を説明する図である。同図は、シェーダ30の描画演算処理を制御する制御部50の構成を詳細に示したものであり、参照アドレス生成部72、補間部74、およびテクスチャメモリ76は、図1のテクスチャユニット70に相当し、命令デコーダ62およびプログラムカウンタ64は、図1の命令処理部60に相当する。
参照アドレス生成部72は、シェーダ30からUV座標値を受け取り、テクスチャを参照するための参照アドレスに変換し、参照アドレスをアドレスバスに供給することにより、テクスチャメモリ76を参照する。テクスチャメモリ76は参照アドレスに対応する被参照値をデータバスに出力する。
テクスチャメモリ76から参照アドレスに応じてデータバスに出力された被参照値がテクスチャの属性値であれば、補間部74に供給され、命令に関するデータであれば、命令バッファ52に供給される。
補間部74は、テクスチャの属性値にもとづいてバイリニア補間などの補間処理を行って、ピクセルのUV座標値に対応したカラー値を生成する。ここでテクスチャの属性値は、RGB値またはRGB値のインデックスであり、後者の場合は、補間部74は、カラールックアップテーブルを参照することによりインデックスをRGB値に変換する。補間部74は補間処理後のカラー値をデータパスを介してシェーダ30に供給する。
命令バッファ52は、テクスチャメモリ76から参照アドレスに応じて読み出された命令に関するデータ、すなわち命令コードまたは分岐先アドレスを保持する。命令バッファ52は、命令メモリ66と同様に、命令コードをキャッシュするメモリとして機能し、命令メモリ66と一体に構成されてもよく、命令メモリ66とは別個に構成されてもよい。
プログラムカウンタ64は、シェーダプログラムにおける次に読み込むべき命令コードのアドレスを記憶するレジスタであり、命令メモリ66からプログラムカウンタ64で指定された命令コードが読み込まれるたびに、カウントアップされる。
命令デコーダ62は、プログラムカウンタ64にしたがって、命令メモリ66に格納されたシェーダプログラムから命令コードを読み出し、デコードする。このとき、プログラムカウンタ64が命令メモリ66のアドレスではなく、命令バッファ52のアドレスを指している場合は、命令バッファ52から命令コードを読み出してデコードする。
命令デコーダ62は、命令をデコードし、デコードされた命令を実行するための制御信号を命令バッファ52、参照アドレス生成部72、補間部74、およびシェーダ30に与え、それぞれを制御する。
シェーダ30内では、レジスタファイル32、演算部34、合成部36のそれぞれに制御信号が与えられるが、それぞれのパイプラインの段階に合わせて制御信号の供給タイミングをシフトさせる。命令を実行するための制御信号をパイプラインの位置に応じたサイクル数だけシフトして供給することにより、ピクセルに対するパイプライン処理の段階が進むにつれて、その段階に該当する命令がレジスタファイル32、演算部34、および合成部36に供給され、ピクセルに対するパイプライン処理が遂行される。
以上の構成の描画処理装置100による描画制御の手順をフローチャートおよびプログラム例を用いて説明する。
図3は、制御部50による描画制御手順を説明するフローチャートである。参照アドレス生成部72は、シェーダ30からUV座標値を取得する(S10)。参照アドレス生成部72は、UV座標値からマップを参照するための参照アドレスを生成する(S12)。参照アドレス生成部72は、参照アドレスをテクスチャメモリ76に与え、テクスチャメモリ76に格納されたマップから参照アドレスに対応する被参照値を読み出す(S14)。
読み出された被参照値がテクスチャの属性値であれば(S16のY)、補間部74はバイリニア補間を行い(S18)、補間後のカラー値をシェーダ30に出力する(S20)。
読み出された被参照値がテクスチャの属性値ではない、すなわち命令に関するデータであれば(S16のN)、その命令に関するデータは命令バッファ52に格納され(S22)、命令デコーダ62は、命令バッファ52から命令に関するデータを読み取り、デコードして実行する(S24)。
図4は、命令デコーダ62によるシェーダプログラムのデコード手順を説明するフローチャートである。命令メモリ66からシェーダプログラムの命令コードがフェッチされる(S40)。命令デコーダ62は、フェッチされた命令コードをデコードし、その命令がテクスチャを取得するためのTEX命令であれば(S42のY)、ステップS60に進み、TEX命令でなければ(S42のN)、ステップS44に進む。
ステップS60において、命令デコーダ62は、TEX命令の出力先が命令バッファ52であるかどうかを調べる。TEX命令の出力先が命令バッファ52であるかどうかは、出力先として指定されたレジスタの種類によって判別することができる。
TEX命令の出力先が命令バッファ52でない場合(S60のN)、そのTEX命令は、テクスチャマップを参照してテクスチャをピクセルにマッピングするためのテクスチャロード命令であり、テクスチャメモリ76に格納されたテクスチャマップからテクスチャデータが取得され(S66)、補間部74においてバイリニア補間が行われ(S68)、シェーダ30のレジスタファイル32の所定のレジスタに補間後のカラー値が書き込まれる(S70)。これら一連のテクスチャマッピングの処理の後、ステップS40に戻り、次の命令の処理が続行する。
TEX命令の出力先が命令バッファ52である場合(S60のY)、そのTEX命令は、命令マップを参照して命令をピクセルに適用するためのテクスチャロード命令であり、テクスチャメモリ76に格納された命令マップから命令に関するデータが取得され(S62)、命令バッファ52に格納される(S64)。
ステップS44において、デコードした命令がサブルーチンを呼び出すCALL命令である場合(S44のY)、ステップS50に進み、CALL命令でなければ(S44のN)、ステップS46に進む。
ステップS50において、命令デコーダ62は、コール先が命令バッファ52であるかどうかを調べる。コール先が命令バッファ52であるかどうかはコールすべきアドレスを格納したレジスタの種類によって判別することができる。
コール先が命令バッファ52ではない、すなわち通常のコール命令である場合(S50のN)、スタックに現在のプログラムカウンタ64の値を格納して退避し(S56)、プログラムカウンタ64に命令メモリ66のコール先アドレスを投入する(S58)。プログラムカウンタ64に命令メモリ66のコール先アドレスが投入されることにより、命令メモリ66からコール先アドレスの命令コードがフェッチされ、命令デコーダ62によりデコードされて実行に移される。このように、シェーダプログラムにコール命令がある場合は、サブルーチンに分岐してサブルーチンが実行される。
コール先が命令バッファ52である場合(S50のY)、スタックに現在のプログラムカウンタ64の値を格納して退避し(S52)、プログラムカウンタ64に命令バッファ52のコール先アドレスを投入する(S54)。プログラムカウンタ64に命令バッファ52のコール先アドレスが投入されることにより、命令バッファ52からコール先アドレスの命令コードがフェッチされ、命令デコーダ62によりデコードされて実行に移される。これにより、描画対象のオブジェクト単位で実行されるシェーダプログラム自身は分岐することなく、命令マップによりピクセル単位でサブルーチンが切り替えられて実行される。
一連のCALL命令の処理が終わると、ステップS40に戻り、次の命令の処理が続行する。
ステップS46において、命令デコーダ62は、TEX命令、CALL命令以外のLD命令やST命令などの各種命令を実行する。プログラムの終端に達し、次に実行するべき命令がない場合(S48のY)、命令デコーダ62によるプログラムのデコード処理を終了し、そうでない場合(S48のN)、ステップS40に戻り、次の命令のデコード処理が続行する。
図5(a)〜(c)は、あるオブジェクトをレンダリングするためのシェーダプログラムの例を説明する図である。図5(a)は、シェーダプログラムの0番地から4番地までを示すもので、通常のテクスチャマッピングを実行するプログラムである。
プログラムの0番地は、ロード(LD)命令であり、ラスタライザ10から取得した第2引数のパラメータ$P0の値を第1引数のレジスタ$0にロードする。パラメータ$P0にはピクセルのU座標値が格納されている。プログラムの1番地も、LD命令であり、ラスタライザ10から取得した第2引数のパラメータ$P1の値を第1引数のレジスタ$1にロードする。パラメータ$P1にはピクセルのV座標値が格納されている。
プログラムの2番地は、テクスチャロード(TEX)命令であり、第2、第3引数のレジスタ$0、$1に格納されたUV座標値にもとづいてテクスチャユニット70に格納されたテクスチャマップからテクスチャの属性値を取得し、第1引数のレジスタ$2に出力する。
プログラムの3番地は、LD命令であり、ラスタライザ10から取得した第2引数のパラメータ$P2の値を第1引数のレジスタ$3にロードする。パラメータ$P2にはピクセルのカラー値が格納されている。
プログラムの4番地は、乗算(MUL)命令であり、第2引数のレジスタ$2の値に第3引数のレジスタ$3の値を乗算し、第1引数のレジスタ$4に代入する。第2引数のレジスタ$2にはピクセルにマッピングされるテクスチャのカラー値が格納されており、第3引数のレジスタ$3にはピクセルの元のカラー値が格納されているから、これらを掛け合わせることでテクスチャのカラー値がピクセルのカラー値に合成され、テクスチャマッピング後のカラー値が得られる。
図5(b)は、シェーダプログラムの5番地から8番地までを示すもので、命令マップにもとづいてピクセル単位でサブルーチンを実行するプログラムである。
プログラムの5番地は、LD命令であり、ラスタライザ10から取得した第2引数のパラメータ$P3の値を第1引数のレジスタ$0にロードする。パラメータ$P3には命令マップのU座標値が格納されている。プログラムの6番地も、LD命令であり、ラスタライザ10から取得した第2引数のパラメータ$P4の値を第1引数のレジスタ$1にロードする。パラメータ$P4には命令マップのV座標値が格納されている。
プログラムの7番地は、TEX命令であり、第2、第3引数のレジスタ$0、$1に格納されたUV座標値にもとづいて命令マップから被参照値を取得し、第1引数のレジスタ$IM0で指定された命令バッファ52のアドレスに書き込む命令である。命令マップからUV座標値にもとづいて読み出された被参照値は、この場合、プログラムの飛び先アドレスである。
プログラムの8番地は、コール(CALL)命令であり、第1引数のレジスタ$IM0で指定された命令バッファ52のアドレスをコールする。これにより、命令バッファ52の$IM0番地に格納された飛び先アドレスに格納されているサブルーチンが命令マップから読み出され、処理中のピクセルに対してそのサブルーチンが実行される。
図6は、UV座標値に対応づけてサブルーチンを格納した命令マップを説明する図である。UV座標値が(0,0)、(0,1)、(1,0)、(1,1)である4つのテクセルのそれぞれに対応づけて、IM0からIM3までのコール先アドレスが設けられ、各コール先アドレス毎にサブルーチンが格納されている。シェーダ30から指定されたUV座標値にもとづいて、コール先アドレスが読み出され、命令デコーダ62がそのコール先アドレスをコールすることで、ピクセル単位でサブルーチンが切り替えられて実行される。
UV座標値(0,0)に対応するコール先アドレスIM0には、ノーオペレーション(NOP)、すなわち何もしないでリターンするサブルーチンが格納されている。
UV座標値(0,1)に対応するコール先アドレスIM1には、加算(ADD)命令、すなわち第2引数のレジスタ$3の値に第3引数のレジスタ$4の値を加算し、第1引数のレジスタ$5に格納するサブルーチンが格納されている。
UV座標値(1,0)に対応するコール先アドレスIM2には、減算(SUB)命令、すなわち第2引数のレジスタ$3の値から第3引数のレジスタ$4の値を減算し、第1引数のレジスタ$5に格納するサブルーチンが格納されている。
UV座標値(1,1)に対応するコール先アドレスIM3には、転送(MOV)命令、すなわち第2引数のレジスタ$4の値を第1引数のレジスタ$5に転送するサブルーチンが格納されている。
図5(c)に戻り、シェーダプログラムの続きを説明する。図5(c)は、シェーダプログラムの9番地からD番地までを示すもので、フレームバッファ40に格納されているピクセルデータとの間でアルファブレンディングをして最終的なピクセルデータをフレームバッファ40に書き戻すプログラムである。
プログラムの9番地は、LD命令であり、ラスタライザ10から取得した第2引数のパラメータ$P5の値を第1引数のレジスタ$7にロードする命令である。パラメータ$P5にはアルファ(α)値が格納されている。
プログラムのA番地は、LD命令であり、第2引数のレジスタ$DB0で指定されたフレームバッファ40のアドレスからピクセルカラー値を取得し、第1引数のレジスタ$6にロードする。
プログラムのB番地は、SUB命令であり、第2引数のレジスタ$5の値から第3引数のレジスタ$6の値を減算し、第1引数のレジスタ$8に格納する。
プログラムのC番地は、積和(MAD)命令であり、第2引数のレジスタ$7の値に第3引数のレジスタ$8の値を掛け算し、第4引数のレジスタ$6の値を加算した結果を第1引数のレジスタ$9に格納する。これにより、2つのレジスタ$5、$6の値について、α・($5−$6)+$6=α・$5+(1−α)・$6の計算がなされ、2つのピクセル値を(1−α):αの比で混合するアルファブレンディングが行われる。
プログラムのD番地は、ストア(ST)命令であり、第2引数のレジスタ$9に格納されているアルファブレンディング後のピクセルカラー値を第1引数のレジスタ$DB0で指定されたフレームバッファ40のアドレスにストアする。
図7(a)、(b)は、あるオブジェクトに対して命令マップにもとづいてピクセル単位でサブルーチンが実行され、描画処理される様子を説明する図である。
図7(a)は、命令マップ80の例を示す図である。命令マップ80は、テクスチャと同様のデータ構造をもち、UV座標値で規定される各要素には命令に関するデータ、ここではサブルーチンのコール先アドレスが格納される。
命令マップ80の第1領域82では、マッピング先のピクセルに対して図6で説明したADD命令を実行すべく、コール先アドレスIM1が格納されている。また、命令マップ80の第2領域84では、マッピング先のピクセルに対して図6で説明したSUB命令を実行すべく、コール先アドレスIM2が格納されている。
同様に、命令マップ80の第3領域86では、マッピング先のピクセルに対して図6で説明したMOV命令を実行すべく、コール先アドレスIM3が格納されている。また、それ以外の領域では、マッピング先のピクセルに何ら命令を適用しないため、図6で説明したNOPを実行すべく、コール先アドレスIM0が格納されている。
図7(b)は、図7(a)の命令マップ80にもとづいて描画演算処理されたオブジェクト200のフレームバッファ40における描画データを示す図である。図7(a)の命令マップ80がオブジェクト200の表面にマッピングされることにより、マッピング先の各ピクセルにおいて命令マップ80に指定されたコール先アドレスのサブルーチンが実行される。
オブジェクト200の第1領域42には、命令マップ80の第1領域82がマッピングされ、マッピング先の各ピクセルにおいて、命令マップ80に格納されていたコール先アドレスIM1のサブルーチンであるADD命令が実行される。また、オブジェクト200の第2領域44には、命令マップ80の第2領域84がマッピングされ、マッピング先の各ピクセルにおいて、命令マップ80に格納されていたコール先アドレスIM2のサブルーチンであるSUB命令が実行される。
同様に、オブジェクト200の第3領域46には、命令マップ80の第3領域86がマッピングされ、マッピング先の各ピクセルにおいて、命令マップ80に格納されていたコール先アドレスIM2のサブルーチンであるMOV命令が実行される。また、オブジェクト200のそれ以外の領域には、命令マップ80のIM0が格納されている領域がマッピングされるため、コール先アドレスIM0のサブルーチンであるNOPが実行されるだけであり、シェーディング効果に変化は生じない。
このようにして、命令マップに基づいてオブジェクトの表面の領域によってマッピングされる命令を異ならせることにより、ピクセル単位で異なるシェーディング効果をもたせることができる。描画対象のオブジェクトのピクセル単位で異なるシェーディングアルゴリズムを適用する例として、たとえば、自動車の車体のある部分にだけさびを表示し、他の部分は光沢のある状態のままにすることで同一のオブジェクトの表面であっても箇所により質感の違いをもたせることができる。
以上述べたように、本実施の形態によれば、テクスチャマッピングの方法によって命令マップをオブジェクト表面にマッピングすることにより、ピクセル毎に適用されるべき命令を切り替え、きめ細かな描画制御を行い、高品質の描画データを生成することができる。描画対象のオブジェクトを同一のシェーダプログラムで描画処理する場合でも、命令マップにおいてピクセル単位で実行すべき命令を指定することができるため、プログラマビリティが格段に向上し、複雑なシェーダプログラムを簡単に実現することができる。
また、命令マップを用いることにより、オブジェクト単位で実行されるシェーダプログラム内ではサブルーチンコールをしない、もしくはサブルーチンコールをしても高速化できるため、サブルーチンの呼び出しと分岐先からのリターンによるペナルティが発生せず、処理効率が犠牲になることがない。したがって、複雑なシェーダプログラムであってもピクセルパイプライン処理によって高速に実行することができる。
一般に、ピクセルシェーダにおいては、短いプログラムをピクセル単位で何度も繰り返し実行することになるから、シェーダプログラム内に直接的に分岐命令を取り入れると実行効率が著しく低下する。しかし、本実施の形態では、コアプログラムの全体は最初にロードしたままプログラムを入れ替える必要はなく、命令マップをマッピングすることでピクセル毎に指定されたサブルーチンを読み込み、ピクセル単位でサブルーチンを切り替えて異なる描画アルゴリズムを実行することができる。本実施の形態の描画処理装置は、テクスチャマッピングの手法を命令のマッピングに利用して、シェーダプログラムのサブルーチンをプリフェッチする機構を提供していると言うことができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
実施の形態では、テクスチャマップまたは命令マップとして、UV座標値にテクスチャの属性値や命令に関するデータなどの被参照値を対応づけた2次元構造のマップを例に挙げて説明したが、そのような2次元構造のテクスチャマップまたは命令マップを複数階層化して設けて、UV座標値の他に、レイヤ番号を指定することにより、いずれかのレイヤのマップの被参照値を読み出すことのできるレイヤ構造のテクスチャマップまたは命令マップを用いてもよい。
ポリゴン面にテクスチャ画像をマッピングするとともに、命令マップもマッピングする場合は、1つのコンフィギュレーションで複数のテクスチャを同時に扱えるようにし、テクスチャロード命令にテクスチャ番号を指示するための添え字をつけて、テクスチャマップを格納したテクスチャと、命令マップを格納したテクスチャを使い分けるように構成してもよい。たとえば、TEX1、TEX2などの命令を設け、TEX1の場合は、テクスチャのカラー値を格納した第1のテクスチャを用い、TEX2の場合は、命令に関するデータを格納した第2のテクスチャを用いるなどの区別をしてもよい。これにより、同一のポリゴンにテクスチャ画像をマッピングした上で、命令マップもマッピングしてピクセル単位で命令を実行することができる。前述のレイヤ構造のテクスチャは、このような目的で用いることもでき、たとえば、第1レイヤのテクスチャはテクスチャマップ、第2レイヤのテクスチャは命令マップのように構成してもよい。
テクスチャマップは、テクスチャ画像に限らず、バンプマッピングに用いる法線ベクトルやディスプレースメントマッピング(Displacement Mapping)に用いる高さデータなどをUV座標値に対応づけて格納したものであってもよい。このような法線ベクトルや高さデータ、関数値などをUV座標値に対応づけて格納したマップもテクスチャマップとして扱い、テクスチャマッピングにより、ピクセルにマッピングすることができる。
命令マップは、たとえば、オブジェクトに適用すべきシェーダプログラムをプログラミングするときにあらかじめ作成される。命令マップの作成を支援するために、描画領域毎にシェーディング処理を指定するためのユーザインタフェースを設け、指定されたシェーディング処理に関する命令コードをその描画領域に含まれるピクセルの座標値に対応づけて格納することにより、自動的に命令マップを生成する自動生成装置を設けたり、そのような自動生成を支援するツールをコンピュータプログラムとして提供してもよい。命令マップの自動生成支援ツールを用いれば、オブジェクトの表面に適用すべきシェーディング効果を指定するだけで、ピクセル単位の命令マップを自動生成することができ、プログラミングの知識を持たないコンピュータグラフィックスのデザイナであっても、ピクセル単位の複雑なシェーダプログラムを作成することができる。
実施の形態の描画処理装置100では、テクスチャユニット70のテクスチャメモリ76に命令マップを格納したが、フレームバッファ40に命令マップを記憶し、フレームバッファ40に記憶された命令マップから命令に関するデータを読み出してレジスタファイル32に保持し、制御部50がレジスタファイル32から命令に関するデータを取得して命令バッファ52に保持する構成でもよい。また、制御部50が直接フレームバッファ40に記憶された命令マップから命令に関するデータを読み出し、命令バッファ52に保持する構成でもよい。また、テクスチャメモリ76内の命令マップとフレームバッファ40内の命令マップとを併用する構成であってもよい。
また、実施の形態の描画処理装置100において、テクスチャユニット70を含まない構成にし、制御部50が、テクスチャマッピングの方法によらないで、フレームバッファ40に格納されたデータをフレームバッファ40のアドレスを直接指定して取得し、命令バッファ52に保持するようにしてもよい。この場合、フレームバッファ40に格納された描画データの一部や中間データを命令のパラメータなどに利用してもよい。同様に、制御部50が、レジスタファイル32に保持された演算部34による演算の中間結果を取得し、命令バッファ52に保持するようにしてもよい。レジスタファイル32やフレームバッファ40に保持された値を命令に利用することにより、たとえば、演算結果をシェーダプログラムにフィードバックして、演算結果によって異なる命令を描画ユニットに適用することもできるようになる。
実施の形態の描画処理装置100では、命令バッファ52には、命令マップから参照された命令に関するデータが保持されたが、命令バッファ52に命令マップ自体もしくは命令マップの一部が保持されるように構成してもよい。
実施の形態に係る描画処理装置の構成図である。 図1のシェーダユニットの制御機構の詳細を説明する図である。 図2の制御部による描画制御手順を説明するフローチャートである。 図2の命令デコーダによるシェーダプログラムのデコード手順を説明するフローチャートである。 図2の命令メモリに格納されたシェーダプログラムの例を説明する図である。 図2のテクスチャメモリに格納された命令マップの例を説明する図である。 図6の命令マップにもとづいて描画処理された結果を説明する図である。
符号の説明
10 ラスタライザ、 20 シェーダユニット、 30 シェーダ、 32 レジスタファイル、 34 演算部、 36 合成部、 40 フレームバッファ、 50 制御部、 52 命令バッファ、 60 命令処理部、 62 命令デコーダ、 64 プログラムカウンタ、 66 命令メモリ、 70 テクスチャユニット、 72 参照アドレス生成部、 74 補間部、 76 テクスチャメモリ、 80 命令マップ、 100 描画処理装置。

Claims (5)

  1. 描画対象物の3次元曲面に適用されるべきテクスチャの属性値を描画対象物の3次元曲面上に定義される2次元パラメータ座標に対応づけて格納したテクスチャマップを記憶するテクスチャメモリと、
    描画ユニット単位で描画演算処理される描画対象物の該各々の描画ユニットのデータに対してそれぞれ命令を実行する演算処理部と、
    前記演算処理部から描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標を指定するデータを受け取り、その指定された2次元パラメータ座標に対応するテクスチャの属性値前記テクスチャマップから読み出して前記描画対象物の前記3次元曲面上の点に適用するために前記演算処理部に供給するテクスチャユニットと
    前記演算処理部に供給すべき命令に関するデータを保持する命令バッファと、
    前記命令バッファに保持された命令に関するデータを取得し、その命令を解読して前記演算処理部に供給する命令処理部とを含み、
    前記テクスチャメモリは、前記描画対象物の3次元曲面に適用されるべき命令に関するデータを前記描画対象物の3次元曲面上に定義される2次元パラメータ座標に対応づけて格納した命令マップをさらに記憶し、
    前記テクスチャユニットは、前記指定された2次元パラメータ座標値に対応する命令に関するデータを前記命令マップから読み出して前記描画対象物の前記3次元曲面上の点に適用するために前記命令バッファに格納し、
    前記命令処理部は、前記命令マップから読み出された前記命令に関するデータを前記命令バッファから取得し、その命令を解読して前記描画対象物の3次元曲面上の点に適用するために前記演算処理部に供給することを特徴とする描画処理装置。
  2. 前記演算処理部は、
    前記描画ユニットのデータを保持するレジスタと、
    前記レジスタから前記描画ユニットのデータを読み出して命令を実行する演算器とを含み、
    前記テクスチャユニットは、
    前記指定された2次元パラメータ座標を参照して前記テクスチャマップから読み出されたテクスチャの属性値に基づいたデータを前記レジスタに供給し、
    前記命令処理部は、
    前記指定された2次元パラメータ座標を参照して前記命令マップから読み出された命令に関するデータに対して、その命令を実行するための制御信号を前記演算器に供給することを特徴とする請求項1に記載の描画処理装置。
  3. 描画ユニット単位で描画演算処理される描画対象物の3次元曲面に適用されるべき命令に関するデータを前記描画対象物の3次元曲面上に定義される2次元パラメータ座標に対応づけてテクスチャマップの構造で格納した命令マップをテクスチャメモリに記憶し、
    前記描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標値を指定するデータを受け取り、その指定された2次元パラメータ座標値に対応するテクスチャの属性値を前記テクスチャメモリから読み出して前記描画対象物の前記3次元曲面上の点にマッピングさせるテクスチャマッピングを実行するテクスチャユニットの構成を用いることにより、前記命令マップを参照して、描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標に対応する命令に関するデータを読み出し、読み出した命令に関するデータを前記描画対象物の前記3次元曲面上の点に適用して前記描画ユニットを演算処理することを特徴とする描画処理方法。
  4. 描画ユニット単位で描画演算処理される描画対象物の3次元曲面に適用されるべきテクスチャの属性値および前記描画対象物の3次元曲面に適用されるべき命令に関するデータのいずれをも前記描画対象物の3次元曲面上に定義される2次元パラメータ座標に対応づけて格納可能に構成されたマップをテクスチャメモリに記憶し、
    前記描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標値を指定するデータを受け取り、その指定された2次元パラメータ座標値に対応するテクセルを前記テクスチャメモリから読み出して前記描画対象物の前記3次元曲面上の点にマッピングさせるテクスチャマッピングを実行するテクスチャユニットの構成を用いることにより、前記マップを参照するためのロード命令を受けて、描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標に対応する値を前記マップから読み出し、前記ロード命令の出力先のレジスタに応じて、前記ロード命令により読み出される値が前記テクスチャの属性値または前記命令に関するデータのいずれであるかを判別し、その読み出した値が前記命令に関するデータである場合には、その命令を前記描画対象物の前記3次元曲面上の点に適用して前記描画ユニットを演算処理し、その読み出した値が前記テクスチャの属性値である場合には、その属性値にしたがってテクスチャを前記描画ユニットに適用することを特徴とする描画処理方法。
  5. 描画ユニット単位で描画演算処理される描画対象物の3次元曲面に適用されるべき命令に関するデータを前記描画対象物の3次元曲面上に定義される2次元パラメータ座標に対応づけてテクスチャマップの形式で格納した命令マップのデータ構造であって、前記描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標値を指定するデータを受け取り、その指定された2次元パラメータ座標値に対応するテクセルを前記テクスチャメモリから読み出して前記描画対象物の前記3次元曲面上の点にマッピングさせるテクスチャマッピングを実行するテクスチャユニットの構成を用いて、描画ユニットのスクリーン座標に対応する描画対象物の3次元曲面上の点の2次元パラメータ座標が指定されたロード命令が実行されることにより、指定された2次元パラメータ座標に対応づけられた命令に関するデータが前記描画対象物の前記表面上の点に適用するために読み出されるように構成されてなることを特徴とする命令マップのデータ構造。
JP2004338087A 2004-11-22 2004-11-22 描画処理装置および描画処理方法 Expired - Fee Related JP4692956B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004338087A JP4692956B2 (ja) 2004-11-22 2004-11-22 描画処理装置および描画処理方法
US11/719,914 US20080098206A1 (en) 2004-11-22 2005-09-22 Plotting Device And Plotting Method
PCT/JP2005/017492 WO2006054389A1 (ja) 2004-11-22 2005-09-22 描画処理装置および描画処理方法
EP05785254A EP1826725A4 (en) 2004-11-22 2005-09-22 PLOTT SETUP AND PLOTT PROCEDURE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004338087A JP4692956B2 (ja) 2004-11-22 2004-11-22 描画処理装置および描画処理方法

Publications (2)

Publication Number Publication Date
JP2006146721A JP2006146721A (ja) 2006-06-08
JP4692956B2 true JP4692956B2 (ja) 2011-06-01

Family

ID=36406934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004338087A Expired - Fee Related JP4692956B2 (ja) 2004-11-22 2004-11-22 描画処理装置および描画処理方法

Country Status (4)

Country Link
US (1) US20080098206A1 (ja)
EP (1) EP1826725A4 (ja)
JP (1) JP4692956B2 (ja)
WO (1) WO2006054389A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502029B2 (en) * 2006-01-17 2009-03-10 Silicon Integrated Systems Corp. Instruction folding mechanism, method for performing the same and pixel processing system employing the same
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US10777010B1 (en) 2018-03-16 2020-09-15 Amazon Technologies, Inc. Dynamic environment mapping for augmented reality
US10559121B1 (en) 2018-03-16 2020-02-11 Amazon Technologies, Inc. Infrared reflectivity determinations for augmented reality rendering
US10607567B1 (en) * 2018-03-16 2020-03-31 Amazon Technologies, Inc. Color variant environment mapping for augmented reality

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0754551B2 (ja) * 1986-09-24 1995-06-07 ダイキン工業株式会社 多角形ぬりつぶし装置
US5167018A (en) * 1986-09-24 1992-11-24 Daikin Industries, Ltd. Polygon-filling apparatus
JPS63153684A (ja) * 1986-12-17 1988-06-27 Hitachi Ltd 描画処理装置
GB2240015A (en) * 1990-01-15 1991-07-17 Philips Electronic Associated Texture memory addressing
GB2267203B (en) * 1992-05-15 1997-03-19 Fujitsu Ltd Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping
JP3096387B2 (ja) * 1994-01-28 2000-10-10 三菱電機株式会社 数値演算処理装置
JP3462566B2 (ja) * 1994-04-08 2003-11-05 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
JPH0822556A (ja) * 1994-07-08 1996-01-23 Ricoh Co Ltd テクスチャマッピング装置
US5889526A (en) * 1994-11-25 1999-03-30 Matsushita Electric Industrial Co., Ltd. Interpolation apparatus and method, and image generation apparatus including such an apparatus
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US6026217A (en) * 1996-06-21 2000-02-15 Digital Equipment Corporation Method and apparatus for eliminating the transpose buffer during a decomposed forward or inverse 2-dimensional discrete cosine transform through operand decomposition storage and retrieval
US6215898B1 (en) * 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
US5926406A (en) * 1997-04-30 1999-07-20 Hewlett-Packard, Co. System and method for calculating floating point exponential values in a geometry accelerator
US6002410A (en) * 1997-08-25 1999-12-14 Chromatic Research, Inc. Reconfigurable texture cache
JP2976945B2 (ja) * 1997-09-11 1999-11-10 日本電気株式会社 画像描画装置
US6204859B1 (en) * 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
US6831659B1 (en) * 1998-05-20 2004-12-14 Kabushiki Kaisha Sega Enterprises Image processor unit, game machine, image processing method, and recording medium
JPH11338427A (ja) * 1998-05-22 1999-12-10 Fujitsu Ltd 表示装置
US6259455B1 (en) * 1998-06-30 2001-07-10 Cirrus Logic, Inc. Method and apparatus for applying specular highlighting with specular components included with texture maps
AU5688199A (en) * 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
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
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US7111155B1 (en) * 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US20030142107A1 (en) * 1999-07-16 2003-07-31 Intel Corporation Pixel engine
JP4568950B2 (ja) * 2000-02-29 2010-10-27 ソニー株式会社 グラフィックス描画装置
US6924816B2 (en) * 2000-03-17 2005-08-02 Sun Microsystems, Inc. Compensating for the chromatic distortion of displayed images
US6724394B1 (en) * 2000-05-31 2004-04-20 Nvidia Corporation Programmable pixel shading architecture
US6664963B1 (en) * 2000-05-31 2003-12-16 Nvidia Corporation System, method and computer program product for programmable shading using pixel shaders
US6765573B2 (en) * 2000-10-26 2004-07-20 Square Enix Co., Ltd. Surface shading using stored texture map based on bidirectional reflectance distribution function
US7023431B2 (en) * 2001-03-01 2006-04-04 Microsoft Corporation Method and system for providing data to a graphics chip in a graphics display system
US6661423B2 (en) * 2001-05-18 2003-12-09 Sun Microsystems, Inc. Splitting grouped writes to different memory blocks
JP3549871B2 (ja) * 2001-07-27 2004-08-04 株式会社ソニー・コンピュータエンタテインメント 描画処理装置及び方法、描画処理プログラムを記録した記録媒体、描画処理プログラム
US7187383B2 (en) * 2002-03-01 2007-03-06 3D Labs Inc., Ltd Yield enhancement of complex chips
JP4062942B2 (ja) * 2002-03-19 2008-03-19 富士ゼロックス株式会社 画像処理装置
JP4136432B2 (ja) * 2002-04-15 2008-08-20 松下電器産業株式会社 図形描画装置
US6825843B2 (en) * 2002-07-18 2004-11-30 Nvidia Corporation Method and apparatus for loop and branch instructions in a programmable graphics pipeline
AU2003298666A1 (en) * 2002-11-15 2004-06-15 Warner Bros. Entertainment Inc. Reality-based light environment for digital imaging in motion pictures
AU2003900772A0 (en) * 2003-02-21 2003-03-13 Canon Kabushiki Kaisha Reducing the number of compositing operations performed in a pixel sequential rendering system
US7530062B2 (en) * 2003-05-23 2009-05-05 Microsoft Corporation Optimizing compiler transforms for a high level shader language
US7978197B2 (en) * 2003-11-14 2011-07-12 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US7733347B2 (en) * 2004-11-05 2010-06-08 Microsoft Corporation Automated construction of shader programs
US7630549B2 (en) * 2004-11-15 2009-12-08 Siemens Medical Solutions Usa. Inc. GPU accelerated multi-label digital photo and video editing

Also Published As

Publication number Publication date
US20080098206A1 (en) 2008-04-24
JP2006146721A (ja) 2006-06-08
EP1826725A4 (en) 2011-08-17
WO2006054389A1 (ja) 2006-05-26
EP1826725A1 (en) 2007-08-29

Similar Documents

Publication Publication Date Title
US7158141B2 (en) Programmable 3D graphics pipeline for multimedia applications
US7777750B1 (en) Texture arrays in a graphics library
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US9922457B2 (en) Computing tessellation coordinates using dedicated hardware
US20090051687A1 (en) Image processing device
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
JP4158413B2 (ja) 画像処理装置
JP4198087B2 (ja) 画像生成装置および画像生成方法
US6831658B2 (en) Anti-aliasing interlaced video formats for large kernel convolution
KR20240169001A (ko) 이미지 분류를 위한 잠금 메커니즘
JP2025509246A (ja) 超解像度アップスケーリング
US10192348B2 (en) Method and apparatus for processing texture
US20040012610A1 (en) Anti-aliasing interlaced video formats for large kernel convolution
JP4692956B2 (ja) 描画処理装置および描画処理方法
JP2023525725A (ja) データ圧縮の方法及び装置
JP2006244426A (ja) テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
US7405735B2 (en) Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch
US20100302259A1 (en) Drawing data processing method, graphics drawing system and graphics drawing data generation program
EP1288863B1 (en) Method and device for drawing
US7088368B1 (en) Methods and systems for rendering computer graphics
US20100277488A1 (en) Deferred Material Rasterization
US12205193B2 (en) Device and method of implementing subpass interleaving of tiled image rendering
US7385604B1 (en) Fragment scattering
JP2006163944A (ja) 法線マップデータ生成方法、描画処理方法および描画処理装置
US7256796B1 (en) Per-fragment control for writing an output buffer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070123

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070507

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070517

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070629

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110128

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

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

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4692956

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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