JP2004317878A - グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム - Google Patents
グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム Download PDFInfo
- Publication number
- JP2004317878A JP2004317878A JP2003113188A JP2003113188A JP2004317878A JP 2004317878 A JP2004317878 A JP 2004317878A JP 2003113188 A JP2003113188 A JP 2003113188A JP 2003113188 A JP2003113188 A JP 2003113188A JP 2004317878 A JP2004317878 A JP 2004317878A
- Authority
- JP
- Japan
- Prior art keywords
- pixel data
- shading processing
- processing unit
- write address
- pixel
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【解決手段】ピクセルデータにシェーディング処理を施すシェーディング処理部21と、ビデオメモリ13から出力されるテクスチャデータ及びマップデータをシェーディング処理部21に入力可能な第1のパスと、シェーディング処理部21から出力されるピクセルデータをビデオメモリ13に出力可能な第2のパスと、ピクセル展開部20から出力されるピクセルデータ及びこのピクセルデータの代わりにビデオメモリ13から出力されるピクセルデータをシェーディング処理部21に入力可能な第3のパスとを具備する。
【選択図】 図4
Description
【発明の属する技術分野】
この発明はグラフィックスプロセッサ、そのグラフィックスプロセッサを用いたグラフィックスカード及びグラフィクス処理システムに関する。
【0002】
【従来の技術】
コンピュータグラフィックス、例えば、3次元グラフィックスにおけるリアル感は年々高まってきている。
【0003】
リアル感を向上させるためには、モデルの面にマッピングするテクスチャ及びマップのテーブル数を増加させ、かつ各テーブルのサイズを大きくする必要がある。複数のテクスチャをピクセルにマッピングする例としては、特許文献1、2に記載されている。
【0004】
さらに、リアル感を向上させるためには、多数かつ大サイズのテーブルによる、大規模な演算を高速に行わなければならない。
【0005】
【特許文献1】
米国特許第6,181,352号明細書
【0006】
【特許文献2】
米国特許第6,333,744号明細書
【0007】
【発明が解決しようとする課題】
3次元グラフィックスにおけるリアル感向上の要求に伴い、グラフィックスプロセッサの演算能力不足や、処理速度不足の事情が顕著になってきた。
【0008】
この発明は、上記の事情に鑑み為されたもので、その目的は、演算能力及び処理速度を向上させることが可能なグラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システムを提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するために、この発明の第1態様に係るグラフィックスプロセッサは、ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第2のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスとを具備することを特徴とする。
【0010】
上記目的を達成するために、この発明の第2態様に係るグラフィックスプロセッサは、ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第2のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部とを具備することを特徴とする。
【0011】
上記目的を達成するために、この発明の第3態様に係るグラフィックスカードは、電子機器に接続可能な第1のコネクタと、前記第1のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスと、前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するD/Aコンバータと、前記D/Aコンバータの出力をディスプレイに接続可能な第2のコネクタとを具備することを特徴とする。
【0012】
上記目的を達成するために、この発明の第4態様に係るグラフィックスカードは、電子機器に接続可能な第1のコネクタと、前記第1のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するD/Aコンバータと、前記D/Aコンバータの出力をディスプレイに接続可能な第2のコネクタとを具備することを特徴とする。
【0013】
上記目的を達成するために、この発明の第5態様に係るグラフィックス処理システムは、周辺機器に接続可能なインターフェースバスと、CPUと、前記インターフェースバス及び前記CPUに接続されるバス・ブリッジと、前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスと、前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するD/Aコンバータとを具備することを特徴とする。
【0014】
上記目的を達成するために、この発明の第6態様に係るグラフィックス処理システムは、周辺機器に接続可能なインターフェースバスと、CPUと、前記インターフェースバス及び前記CPUに接続されるバス・ブリッジと、前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するD/Aコンバータとを具備することを特徴とする。
【0015】
【発明の実施の形態】
以下、この発明の実施形態を、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【0016】
(第1実施形態)
第1実施形態の説明に先立ち、参考例に係るグラフィックスプロセッサを説明する。
【0017】
図1A〜図1Cは、第1実施形態の参考例に係るグラフィックスプロセッサの動作を示す図である。
【0018】
ピクセルの描画に複雑な処理が伴うとき、シェーディング処理部の、テーブル引き及び演算のリソースが足りなくなることがある。この場合には、シェーディング処理をマルチパスで実行する。
【0019】
例えば、図1Aに示すように、ポリゴンをピクセル展開部101に入力し、ポリゴンをピクセルデータに展開する。次に、展開されたピクセルデータをシェーディング処理部102に入力し、ピクセルにシェーディング処理を施し、ピクセルを描画する。描画の途中で、シェーディング処理部102のリソースが足りなくなったとき、シェーディング処理の途中経過をフレームバッファ103に書き込み、シェーディング処理部102を空ける(図1B)。この後、残りのシェーディング処理を行い、フレームバッファ103に書き込む(図1C)。この場合、フレームバッファ103は1次元のFIFOバッファとする。
【0020】
一度に処理しきれない複雑な処理の場合、本参考例のように、シェーディング処理を複数に分けて行う。
【0021】
本第1実施形態は、一度に処理しきれない複雑な処理であっても、処理速度及び演算能力を向上できるグラフィックスプロセッサに関する。
【0022】
図2は、この発明が適用されるグラフィックス処理システムの一例を示すブロック図である。
【0023】
図2に示すように、インターフェースバス(以下I/Fバスという)1には周辺機器、例えば、コントローラ2、DVDドライブ3、ハードディスク4及び通信装置5が接続されている。I/Fバス1は、さらに、バス・ブリッジ6に接続されている。バス・ブリッジ6は、CPU7、及びグラフィックスプロセッサ(以下GPUという)8に接続されている。バス・ブリッジ6は、I/Fバス1をCPU7に接続するか、あるいはI/Fバス1をGPU8に接続するか、あるいはCPU7をGPU8に接続するかを選択する。例えば、I/Fバス1に出力された情報がCPU7に伝えるべき情報、及びCPU7が出力した情報がI/Fバス1に伝えるべき情報の場合には、I/Fバス1をCPU7に接続する。また、I/Fバス1に出力された情報がGPU8に伝えるべき情報、及びGPU8が出力した情報がI/Fバス1に伝えるべき情報の場合には、I/Fバス1をGPU8に接続する。また、CPU7が出力した情報がGPU8に伝えるべき情報、及びGPU8が出力した情報がCPU7に伝えるべき情報の場合には、CPU7をGPU8に接続する。
【0024】
図3は、GPUの一例を示すブロック図である。
【0025】
図3に示すように、GPU8は、システム・インタフェース(以下システム・I/Fという)9、グラフィックス描画部10、メモリ・インタフェース(以下メモリ・I/Fという)11、及び画像出力部12を有する。バス・ブリッジ6からの情報は、システム・I/F9を介してグラフィックス描画部10に入力される。グラフィックス描画部10は、バス・ブリッジ6からの情報、例えば、CPU7からの画像表示データ、例えば、ポリゴンを受け、ポリゴンをピクセルデータに展開し、展開したピクセルデータにシェーディング処理を施し、システム・I/F9及びメモリ・I/Fを介してビデオメモリ13に書き込む。ビデオメモリ13は、テクスチャデータ及びマップデータを記憶するテクスチャメモリ30と、グラフィックス描画部10からの出力が、例えば、スクリーンイメージとして書き込まれるフレームバッファ31とを有する。テクスチャメモリ30から出力されたテクスチャデータ及びマップデータは、メモリ・I/F11、システム・I/F9を介してグラフィックス描画部10に入力され、ピクセルに対するシェーディング処理に利用される。フレームバッファ31から出力されたスクリーンイメージは、メモリ・I/F11、システム・I/F9及び画像出力部12を介して、D/Aコンバータ14に入力される。D/Aコンバータ14は、フレームバッファからの出力をアナログ信号に変換し、ビデオ信号出力として出力する。ビデオ信号出力は、ディスプレイ(図示せず)に入力される。
【0026】
なお、上記グラフィックス処理システム及びGPUは一例であって、図2、図3に示した構成に限られるものではない。
【0027】
図4は、この発明の第1実施形態に係るGPU及びビデオメモリを示すブロック図である。
【0028】
図4に示すように、本例に係るGPU8のグラフィックス描画部10は、ピクセル展開部20及びシェーディング処理部21を有する。ピクセル展開部20は、例えば、I/Fバス1又はCPU7から出力されたポリゴンを、システム・I/F9を介して受け、このポリゴンをピクセルデータに展開する。展開されたピクセルデータはシェーディング処理部21に入力される。シェーディング処理部21はテクスチャメモリ30から出力されたテクスチャデータ及びマップデータに基づき、ピクセルにシェーディング処理を施す。シェーディング処理部21の出力は、フレームバッファ31に書き込まれる。さらに、本例では、フレームバッファ31の出力を、ピクセル展開部20を通さずに、シェーディング処理部21及びテクスチャメモリ30に入力するパス40を有する。
【0029】
次に、その動作の一例を説明する。
【0030】
図5A〜図5Eは、この発明の第1実施形態に係るGPU及びビデオメモリの動作の一例を示す図である。
【0031】
まず、図5Aに示すように、例えば、CPU7から出力された画面表示データ、例えば、ポリゴンをピクセル展開部20に入力する。ピクセル展開部20は、ポリゴンをピクセルデータに展開する。次に、展開されたピクセルデータをシェーディング処理部21に入力する。次に、描画するべきピクセルであるか否かを判断する。この判断は、例えば、シェーディング処理部21で行われる。
【0032】
次に、図5Bに示すように、“描画するべきピクセルである”と判断されたピクセルデータをシェーディング処理部21から出力し、フレームバッファ31に書き込む。“描画をしなくて良い”と判断されたピクセルデータについては出力しない。描画するべきピクセルであるか否かの判断の一例は、画面に表示した際、視点位置から見えるピクセルであるか否かである。“視点位置から見える”と判断されたピクセルについて、そのピクセルデータをフレームバッファ31に書き込めば良い。
【0033】
次に、図5Cに示すように、フレームバッファ31に書き込まれたピクセルデータを読み出し、パス40を介してシェーディング処理部21に再入力する。次に、シェーディング処理部21は、再入力されたピクセルデータに基づきテクスチャメモリ30から対応したテーブルを読み出し、ピクセルにシェーディング処理を施し、ピクセルを描画する。
【0034】
次に、図5Dに示すように、シェーディングされたピクセルデータをシェーディング処理部21から出力し、例えば、スクリーンイメージとしてフレームバッファ31に書き込む。スクリーンイメージは、図5Eに示すように、フレームバッファ31から読み出され、メモリ・I/F11、システム・I/F9及び画像出力部12を介してD/Aコンバータ14に入力される。D/Aコンバータ14はスクリーンイメージをビデオ信号に変換してディスプレイに入力する。ディスプレイはビデオ信号に基づきスクリーンイメージを表示する。
【0035】
このように、第1実施形態では、シェーディングを開始する前に、描画するべきピクセルであるか否かを判定し、描画するべきピクセルのピクセルデータをフレームバッファ31に書き込む。この後、フレームバッファ31に書き込まれたピクセルデータをフレームバッファ31から読み出し、パス40を介してシェーディング処理部21に再入力する。このため、シェーディング処理部21は、描画するべきピクセルのみを描画し、描画しなくても良いピクセルについては描画しなくて済む。従って、シェーディング処理するピクセルの数が減り、例えば、ピクセルの描画に、一度に処理しきれない複雑な処理を伴うような場合でも、一度に処理することが可能となる。
【0036】
第1実施形態によれば、ピクセルの描画に複雑な処理を伴う場合でも、一度に処理することが可能となるので、例えば、参考例のように、処理を二度に分ける場合に比較して処理速度が向上する。また、シェーディング処理部21は、描画しなくても良いピクセルについては描画しないので演算能力も向上する。
【0037】
さらに、第1実施形態によれば、ピクセルデータをフレームバッファ31から、ピクセル展開部20を通さずにシェーディング処理部21に戻す。このため、ピクセル展開部20以前の処理には負担がかからない。
【0038】
第1実施形態において、パス40は、シェーディング処理部21だけでなく、テクスチャメモリ30にも接続されている。テクスチャメモリ30に接続されたパス40の使い方の一例は次の通りである。
【0039】
例えば、“描画するべきピクセルである”と判断されたピクセルデータについては、シェーディング処理部21において、途中までシェーディング処理を施しておいても良い。途中までシェーディングされたピクセルデータについては、直接にシェーディング処理部21に戻さず、例えば、テクスチャメモリ30を介してシェーディング処理部21に戻す。
【0040】
描画が進んでいないピクセルデータは、ピクセル展開部20から出力されるピクセルデータと同じであり、例えば、ピクセル展開部20の出力に戻し、ピクセル展開部20の出力を介してシェーディング処理部21に直接戻すことが可能である。しかし、描画が進んだピクセルデータは、ピクセル展開部20から出力されるピクセルデータとは同じではなく、ピクセル展開部20の出力を介してシェーディング処理部21に直接に戻すと、例えば、データの不整合等の不具合を招くことがある。このような不具合は、描画が進んだピクセルデータについては、シェーディング処理部21に直接に戻さず、一旦テクスチャメモリ30に入力し、テクスチャメモリ30の出力を介してシェーディング処理部21に戻すことで解消可能である。
【0041】
なお、“描画するべきピクセルである”と判断されたピクセルデータに、途中までシェーディング処理を施しておくことの利点は、ピクセルデータに、シェーディング処理を施さないまま再入力する場合に比べて、シェーディング処理時間を短縮できることである。
【0042】
(第2実施形態)
ピクセル展開部20は、通常、ハードワイヤードで構成される。ピクセル展開部20がハードワイヤードで構成されると、一つの展開方法でしか描画できない。本第2実施形態は、ピクセル展開部20がハードワイヤードで構成され、かつピクセル展開部20が複数の展開方法をサポートしていなくても、複数の展開方法により描画可能とするGPUである。
【0043】
図6は、この発明の第2実施形態に係るGPU及びビデオメモリを示すブロック図である。
【0044】
図6に示すように、本例に係るGPUの、特にグラフィックス描画部10は、ピクセル展開部20、シェーディング処理部21に加えて、書き込みアドレス計算部50を、さらに有する。
【0045】
フレームバッファ31への書き込みアドレスは、通常、ピクセル展開部20でのピクセル展開時に決定されるピクセル座標値に応じて決定される。
【0046】
本第2実施形態に係るGPUの書き込みアドレス計算部50は、フレームバッファ31への書き込みアドレスを、ピクセル展開部20で決定される書き込みアドレス以外の情報に基づき決定する。
【0047】
以下、書き込みアドレスの決定の一例を説明する。
【0048】
図7及び図8は、ピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図である。
【0049】
図7は、ピクセル展開部20がラスタスキャンを用いてポリゴンをピクセルデータに展開した場合を示す。ラスタスキャンの場合、例えば、16個のピクセルデータ0〜15は0、1、2、…、13、14、15の順序で出力される。フレームバッファ31への書き込みアドレスはラスタスキャンの出力順序に従って決定され、例えば、ピクセルデータ0〜15は、フレームバッファ31のアドレスA0〜A15に順番に記憶される。フレームバッファ31からの読み出しは、アドレスA0からA15に向かって行う。これにより、フレームバッファ31からは、ラスタスキャンと同じ出力順序でピクセルデータが出力される。
【0050】
図8は、ピクセル展開部20がラスタスキャンを用いてポリゴンをピクセルデータに展開し、かつ、例えば、MPEGで使用されるジグザグスキャンに対応させる場合を示す。
【0051】
図8に示すように、書き込みアドレス計算部50は、ジグザグスキャンした時の、ピクセルデータ0〜15のフレームバッファ31への書き込みアドレスを計算する。ジグザグスキャンした場合には、例えば、16個のピクセルデータ0〜15が、0、1、4、8、5、2、3、6、9、12、13、10、7、11、14、15の順序で出力される。そこで、この順序に合うように、ピクセルデータ0〜15の書き込みアドレスが計算される。具体的には、ピクセルデータ0をアドレスA0、ピクセルデータ1をアドレスA1、ピクセルデータ2をアドレスA5、ピクセルデータ3をアドレスA6、ピクセルデータ4をアドレスA2、…、ピクセルデータ12をアドレスA9、ピクセルデータ13をアドレスA10、ピクセルデータ14をアドレスA14、ピクセルデータ15をアドレスA15に記憶させる。フレームバッファ31からの読み出しは、アドレスA0からA15に向かって行う。これにより、フレームバッファ31からはジグザグスキャンと同じ出力順序でピクセルデータが出力される。
【0052】
ピクセルデータは、パス40を使ってシェーディング処理部21に戻される。シェーディング処理部21に戻される際、ピクセルデータはジグザグスキャンに合った順序でシェーディング処理部21に再入力される。この後、再入力されたピクセルデータにシェーディング処理を施す。
【0053】
第2実施形態によれば、ピクセル展開部20が、例えば、ラスタスキャンのみをサポートしていた場合でも、ピクセルデータがシェーディング処理部21に再入力された際には、ジグザグスキャンに応じた順序で入力できる。この結果、ピクセル展開部20がラスタスキャンのみをサポートしていた場合でも、グラフィックス描画部10は、ラスタスキャン以外の展開方法により描画することが可能となる。
【0054】
書き込みアドレス計算部50を用いて書き込みアドレスを変える際には、例えば、書き込みアドレスの指示、あるいは変更を指示するアドレス計算情報が使われる。アドレス計算情報は、例えば、グラフィックス描画部10の外から書き込みアドレス計算部50に入力することができる。この場合、書き込みアドレス計算部50は、入力されたアドレス計算情報に基づき、書き込みアドレスを計算し、計算結果に従って書き込みアドレスを決定する。
【0055】
また、アドレス計算情報は、シェーディング処理部21の出力に含ませることも可能である。この場合、書き込みアドレス計算部50は、シェーディング処理部21の出力に基づき書き込みアドレスを計算し、計算結果に従って書き込みアドレスを決定する。例えば、シェーディング処理部21の出力に、ジグザグスキャンによるピクセル展開を指示するアドレス計算情報を含ませた場合、書き込みアドレス計算部50は、アドレス計算情報を読み取り、ジグザグスキャンによるピクセル展開に合うように書き込みアドレスを計算する。各ピクセルデータは、書き込みアドレス計算部50において、ジグザグスキャンによるピクセル展開に合致するように出力順序が並び変えられ、フレームバッファ31に書き込まれる。
【0056】
アドレス計算情報をシェーディング処理部21の出力に含ませた場合、アドレス計算情報は、シェーディング処理部21と書き込みアドレス計算部50とを接続する配線を介して書き込みアドレス計算部50に入力される。このため、アドレス計算情報を入力するための入力端子を、書き込みアドレス計算部50に別途用意する必要がない。従って、アドレス計算情報を、シェーディング処理部21の出力以外から取得する場合に比較して、GPU8の回路規模の増大を抑制できる、という利点がある。
【0057】
アドレス計算情報はGPU8以外の回路、例えば、CPU7から出力されても良いし、GPU8内の回路で付加されても良い。アドレス計算情報をCPU7から出力する場合には、アドレス計算情報は、例えば、CPU7が出力する画面表示データに含ませておけば良い。あるいはCPU7が画面表示データを出力するのに先行して、CPU7からアドレス計算情報を出力しても良い。
【0058】
アドレス計算情報をGPU8内の回路で付加する場合には、例えば、シェーディング処理の状況もしくは結果に基づいてアドレス計算情報をシェーディング処理部21の出力に付加すれば良い。アドレス計算情報を、GPU8内の回路で付加する場合、アドレス計算情報は、CPU7からの情報に関わらず、例えば、シェーディング処理の状況もしくは結果に基づいてGPU8が独自に生成できる。このため、アドレス計算情報をCPU7から得る場合に比較して、GPU8が独自に書き込みアドレスを変更でき、フレキシビリティの高い書き込みアドレスの変更が可能になる。
【0059】
さらに、第2実施形態では、ピクセル展開後に、ピクセルの書き込みアドレスを計算する。これによって、書き込みアドレスをピクセル単位で変更することが可能となる。書き込みアドレスを、ピクセル単位で変更することによって、書き込みアドレスを、オブジェクト単位やポリゴン単位で変更する場合に比較して、より小さな単位で変更できる。この例に関する実施形態の一例は後述する。
【0060】
なお、第2実施形態では、ピクセルデータの書き込みアドレスを計算し、計算結果に従ってピクセルデータを並びかえ、並びかえたピクセルデータをシェーディング処理部21へ戻し、並びかえたピクセルデータにシェーディング処理を施す、という手順であった。
【0061】
しかし、ピクセルデータにシェーディング処理を施し、シェーディングされたピクセルの書き込みアドレスを計算し、計算結果に従ってシェーディングされたピクセルを並びかえる、という手順にすることも可能である。この手順の場合には、パス40を設ける必要は無い。
【0062】
(第3実施形態)
従来のグラフィックスプロセッサは、シェーディング処理時、一つの平面ポリゴンに対して一つのテーブルしか引けなかったが、近時のグラフィックスプロセッサでは、一つの平面ポリゴンに対して複数のテーブルを引けるようになっている(図9)。さらに、リアル感の向上に伴い、使用するテーブルのサイズが年々大きくなってきており、次に使用するテーブルの場所を予測するようになってきた。例えば、次に使用するテーブルの場所を予測し、予測したテーブルを、例えば、動作が高速なキャッシュメモリに一時的に保持しておく。これにより、テーブルを引く際のアクセス時間が短縮され、グラフィックスプロセッサの処理速度が向上する。
【0063】
しかし、図9に示すように、最初のテーブル110に依存して引かれるテーブル111があった場合には、テーブル111においてランダムアクセス性が増す。ランダムアクセス性が増すと、使用する場所の予測は困難になる。キャッシュメモリの容量が小さい場合には、引こうとしたテーブルがキャッシュメモリに無く、キャッシュメモリよりも動作が低速なテクスチャメモリからテーブルを引かなければならない状況がしばしば発生する。このため、グラフィックスプロセッサの処理速度が劣化する。
【0064】
第3実施形態は、第2実施形態と同様に、書き込みアドレス計算部50を持つ。第3実施形態の書き込みアドレス計算部50は、次のシェーディング処理が効率良く実行されるように書き込みアドレスを計算する。この計算結果に従って書き込みアドレスを決定し、次のシェーディング処理が効率良く実行されるようにピクセルを並びかえてフレームバッファ31に書き込む。この後、並びかえたピクセルをシェーディング処理部21に戻し、次のシェーディング処理を行う。
【0065】
図10は、この発明の第3実施形態に係るGPU及びビデオメモリを示すブロック図である。
【0066】
次のシェーディング処理を効率良く実行するには、例えば、次のシェーディング処理においてテーブル引きが効率良く実行されれば良い。そこで、第3実施形態では、テーブル引きの際のランダムアクセス性が軽減されるように書き込みアドレスを計算する。この計算結果に従って書き込みアドレスを決定し、テーブル引きの際のランダムアクセス性が軽減されるようにピクセルを並びかえてフレームバッファ31に書き込む。この後、並び替えたピクセルを、パス40を介してシェーディング処理部21に戻し、次のシェーディング処理を行う。この際のシェーディング処理はテーブル引きが効率良く実行されるために、処理速度が向上する。以下、具体的な一例を説明する。
【0067】
本例は、バンプマップ(bump map)とキューブ環境マップ(cube environment map)とを用いたシェーディングである。
【0068】
図11Aはバンプマップ、視線ベクトル及び反射ベクトルとキューブ環境マップとの関係を示す図、図11Bはバンプマップとキューブ環境マップとを用いたシェーディング処理の手順の一例を示す図である。
【0069】
まず、図11A、図11Bに示すように、まず、平面ポリゴン(ピクセルデータ)に凹凸のテーブル(バンプマップ)60を引き、その形状により視線ベクトル61−1、61−2の反射ベクトル62−1、62−2を計算する。次に、反射ベクトル62−1、62−2から、ピクセルがキューブ環境マップ63のどの場所を使用してシェーディング処理されるのかを計算する。ここで、バンプマップ60の凹凸の状態によっては、たとえ隣接した領域の描画であっても、キューブ環境マップ63の場所が隣接しない場合がある。例えば、図11Aに示すように、凹凸の斜面64では、反射ベクトル62−1がキューブ環境マップ63の上面に当たるのに対して、この斜面に隣接した凹凸の頂点65付近では、反射ベクトル62−2がキューブ環境マップ63の左面に当たるようになる。キューブ環境マップ63の場所が隣接しなくなると、斜面64の描画にはキューブ環境マップ63の上面のテーブルを引き、これに続く頂点65の描画にはキューブ環境マップ63の左面のテーブルを引く、というように処理しなければならず、テーブル引きに際してランダムアクセス性が増す。
【0070】
これを解消するために、本例では次のような処理を行う。図12は、本例に係るシェーディング処理を行うGPU及びビデオメモリを示すブロック図である。
【0071】
図12に示すように、本例のフレームバッファ31は、バッファ0〜バッファkに分かれている。書き込みアドレス計算部50は、シェーディング処理部21でバンプマッピングされたピクセルデータを、どのバッファ0〜バッファkに書き込むのかを計算する。キューブ環境マップ63は、例えば、図13に示すように、前後左右上下の6平面に展開することができる。そこで、バンプマッピングされたピクセルデータが、キューブ環境マップのどの面を映すのかを、バンプマップ、視線ベクトル及び反射ベクトルを使って計算する。この計算は、シェーディング処理部21で行われる。計算結果、即ちキューブ環境マップのマップ位置情報は、例えば、シェーディング処理部21の出力に付加される。アドレス計算部50は、マップ位置情報を読み取る。アドレス計算部50は、読み取ったマップ位置情報に従って、バンプマッピングされたピクセルデータを、ピクセルが映す面に応じてソートし、6つのバッファ0〜バッファ5のいずれかに書き込む。本例では、バッファ0〜バッファ5がそれぞれ、前面、上面、右面、左面、後面、下面に対応している。本例において、バッファ0〜バッファ5に書き込まれるピクセルデータは、例えば、バンプマップ60はマッピングされているが、キューブ環境マップ63はマッピングされていないシェーディング処理途中のデータである。処理途中のピクセルデータには、例えば、スクリーン座標x、y、z、座標、及びピクセルの色等の描画情報に加えて、マップ位置情報が含まれる。ここまでの流れを、図14A〜図14Dに示す。
【0072】
まず、図14Aに示すように、例えば、CPU7から出力された画面表示データ、例えば、ポリゴンをピクセル展開部20に入力する。ピクセル展開部20は、ポリゴンをピクセルデータに展開する。次に、ピクセルデータをシェーディング処理部21に入力する。次に、シェーディング処理部21で、ピクセルにシェーディング処理を施す。本例では、各ピクセルデータにバンプマップをマッピングする。この際、上述したように、各ピクセルデータが、キューブ環境マップ63のどの面を映すのかが計算され、計算結果に従ったマップ位置情報がシェーディング処理部21の出力に付加される。
【0073】
次に、図14B〜図14Dに示すように、アドレス計算部50は、シェーディング処理部21の出力に付加されたマップ位置情報を読み取り、読み取ったマップ位置情報に従って書き込みアドレスを計算する。次に、計算結果に従ってバンプマッピングされたピクセルデータを前面、上面、右面、左面、後面、下面にソートし、6つのバッファ0〜バッファ5のいずれかに書き込む。
【0074】
書き込み終了後の流れを、図15A〜図15Dに示す。
【0075】
まず、図15Aに示すように、例えば、バッファ0からバンプマッピングされたピクセルデータを読み出し、読み出したピクセルデータを、パス40を介してシェーディング処理部21に入力する。次に、テクスチャメモリ30からキューブ環境マップの前面に対応したテーブルを読み出し、シェーディング処理部21で、テーブルに記述されている前面の情報をピクセルにマッピングし、書き込みアドレス計算部50を介してフレームバッファ31に書き込む。本例では、フレームバッファ31のうち、例えば、バッファ0に書き込む。
【0076】
前面のマッピングが終了したら、図15Bに示すように、例えば、バッファ1からバンプマッピングされたピクセルデータを読み出し、読み出したピクセルデータを、パス40を介してシェーディング処理部21に入力する。次に、テクスチャメモリ30からキューブ環境マップの上面に対応したテーブルを読み出し、シェーディング処理部21で、テーブルに記述されている上面の情報をピクセルにマッピングし、書き込みアドレス計算部50を介してフレームバッファ31に書き込む。本例では、フレームバッファ31のうち、例えば、バッファ0に書き込む。
【0077】
このような動作を、図15Cに示すように、バッファ5まで繰り返す
ここで、書き込みアドレス計算部50は、キューブ環境マップの面ごとに振り分けられたピクセルデータを、例えば、ピクセル展開方式に合うように戻し、フレームバッファ31に書き込むようにしても良い。この時、環境マッピングされたピクセルデータは、一個のバッファに書き込まれるようにしても良い。本例では、バッファ0に書き込まれる。
【0078】
次に、図15Dに示すように、書き込まれたピクセルデータを、フレームバッファ31から、例えば、スクリーンイメージとして読み出す。
【0079】
本例によれば、ピクセルデータを、キューブ環境マップの前面、上面、右面、左面、後面及び下面に応じて振り分けるので、キューブ環境マップのテーブル引きの際、例えば、前面の次に下面というように、引かれるテーブルがランダムに変化することを抑制できる。
【0080】
なお、第3実施形態では、バッファ0〜バッファ5をキューブ環境マップ63の前面、上面、右面、左面、後面及び下面の6面に割り当てたが、キューブ環境マップ63の各面のマップが大きければ、各面をいくつかのブロック、例えば、図16Aに示すように、4つのブロック66に分割することも可能である。この場合、4ブロック×6面=24枚のブロック66が得られる。24枚のブロック66を24個のバッファ0〜バッファ23に一つずつ割り当てるようにしても良い。もちろん、ブロックの分割数は任意である。
【0081】
また、第3実施形態では、環境マップとしてキューブ環境マップを例示したが、環境マップはキューブ環境マップに限られるものではない。例えば、図16Bに示すように球体環境マップ67にも適用できる。図16Bに示す例では、球体環境マップ67が、上下4枚、合計8枚のブロック66に分割されている。8枚のブロック66を8個のバッファ0〜バッファ7に一つずつ割り当てることで、第3実施形態を、球体環境マップ67に適用することが可能となる。もちろん、球体環境マップ67においてもブロックの分割数は任意である。
【0082】
以上、第3実施形態によれば、次のシェーディング処理、例えば、環境マップのテーブルを引く際、そのランダムアクセス性を軽減できる。
【0083】
(第4実施形態)
本例は、オブジェクトに遠近感を出し、グラフィックスのリアル感を向上させる手法に関する。
【0084】
図17Aには、深度(奥行き)の異なる3つのオブジェクト71、72、73が示されている。本例ではオブジェクト71が最も視点に近く、オブジェクト72、73の順で視点から遠ざかる。図17Bは、オブジェクト71、72、73を視点から見た図である。図17Bでは、オブジェクト71、72、73がシェーディングされていない状態を目視化している。この状態ではオブジェクト71、72、73に遠近感は感じられない。遠近感を出すために、オブジェクト71、72、73に対して、例えば、次のような処理を行う。
【0085】
オブジェクト71、72、73の深度、例えば、視点からの距離を計算し、図18A〜図18Cに示すように、オブジェクト71、72、73を深度別に振り分ける。この振り分けはプログラムで実行され、例えば、CPU7で処理される。この後、深度別に振り分けたオブジェクト71、72、73を、視点から遠い順に順次GPU8に入力し、描画する。
【0086】
まず、図19Aに示すように、視点から最も遠い位置にあるオブジェクト73を描画する。そして、ある範囲、例えば、オブジェクト73全体の描画を終えたら、図19Bに示すように、オブジェクト73の深度、例えば、視点もしくは焦点からのずれに見合ったフィルタをオブジェクト73にかけ、オブジェクト73をぼかす。
【0087】
次に、図19Cに示すように、2番目に遠い位置にあるオブジェクト72を上記同様に描画し、例えば、オブジェクト72全体の描画を終えたら、図19Dに示すように、例えば、視点もしくは焦点からのずれに見合ったフィルタをオブジェクト72にかけ、オブジェクト72をぼかす。この後、図19Eに示すように、オブジェクト72を、ぼかし済みのオブジェクト73にマージする。
【0088】
次に、図19Fに示すように、視点から最も近いオブジェクト71を描画し、例えば、オブジェクト71全体の描画を終えた後、図19Gに示すように、オブジェクト71を、ぼかし済みのオブジェクト72、73にマージする。なお、オブジェクト71には焦点が合っている。焦点が合ったオブジェクトは、例えば、ぼかさなくて良い。
【0089】
又は、図20A〜図20Cに示すように、プログラムで深度別に振り分けたオブジェクト71、72、73を順次描画し、別々のバッファにそれぞれ書き込む。次に、図20D、図20Eに示すように、焦点からずれているオブジェクト72、73に対して、各バッファで、例えば、視点もしくは焦点からのずれに見合うように異なるぼかしをかける。この後、図20Eに示すように、オブジェクト71、ぼかし済みのオブジェクト72、73をマージする。
【0090】
以上のような処理を施すことで、オブジェクト71、72、73には遠近感が出て、グラフィックスのリアル感が増す。
【0091】
しかし、上記手法は、オブジェクト71、72、73ごと、もしくはオブジェクト71、72、73を構成するポリゴンごとにぼかしをかける手法であり、リアル感の、さらなる向上には限界がある。
【0092】
また、オブジェクト71、72、73の深度別の振り分けは、プログラムで実行され、例えば、CPU7で処理される。このため、CPU7の作業が増える、という事情がある。
【0093】
そこで、第4実施形態では、次のような処理を行う。概要を述べれば、第3実施形態では、ピクセルデータをキューブ環境マップの面ごとにソートし、ピクセルデータをキューブ環境マップの面ごとにシェーディングする、という処理を踏襲し、ピクセルデータを深度別にソートし、ピクセルデータを深度別にぼかしをかけていく、という処理である。第4実施形態では、最後に、各ピクセルデータをマージする。
【0094】
図21は、この発明の第4実施形態に係るGPU及びビデオメモリを示すブロック図である。
【0095】
図21に示すように、第4実施形態は、第3実施形態と同様に、書き込みアドレス計算部50を有し、フレームバッファ31は、k−1個のバッファ0〜バッファkに分かれている。
【0096】
第4実施形態では、GPU8入力前に、オブジェクト71、72、73を深度別に振り分けない。ピクセル展開部20には、深度別振り分けをしていないオブジェクト71、72、73が、例えば、直接に入力される。オブジェクト71、72、73はそれぞれ複数のポリゴン(図示せず)から構成されている。複数のポリゴンには、描画データの他、深度情報が含まれている。ピクセル展開部20は、ポリゴンをピクセルデータに展開する。ピクセルデータは、シェーディング処理部21に入力され、シェーディング処理が施され、シェーディング処理部21から出力される。シェーディングされたピクセルデータは、書き込みアドレス計算部50に入力される。書き込みアドレス計算部50は、シェーディングされたピクセルデータに含まれた深度情報を読み取り、ピクセルデータを深度に応じてソートし、バッファ0〜バッファkのいずれかに書き込む。
【0097】
書き込みが終了したら、例えば、バッファ0からピクセルデータを読み出し、読み出したピクセルデータを、例えば、パス40及びテクスチャメモリ30を介してシェーディング処理部21に入力する。次に、入力されたピクセルデータに、深度に応じたぼかしをかける。
【0098】
次に、例えば、バッファ1からピクセルデータを読み出し、読み出したピクセルデータを、例えば、パス40及びテクスチャメモリ30を介してシェーディング処理部21に入力する。次に、入力されたピクセルデータに、深度に応じたぼかしをかける。
【0099】
このような動作を、バッファkまで繰り返す。
【0100】
深度別のぼかしが終了したら、ぼかしがかけられた各ピクセルデータを、シェーディング処理部21から、書き込みアドレス計算部50を介してフレームバッファ31に書き込み、フレームバッファ31で各ピクセルデータをマージする。
以上、第4実施形態によれば、遠近感を出すためのぼかしを、オブジェクト単位やポリゴン単位では無く、ピクセル単位で実行する。このため、ピクセル単位でぼかしのかけ方を変えることができ、オブジェクト単位やポリゴン単位でぼかしのかけ方を変える手法に比較し、より細かにぼかしをかけることができ、グラフィックスのリアル感を、より向上させることができる。
【0101】
また、第4実施形態では、GPU8への入力前に、オブジェクト71、72、73の深度別の振り分けは行わなくて良い。このため、例えば、CPU7が行う作業を減らすことができ、CPU7の作業量を軽減できる。
【0102】
また、GPU8への入力前に、オブジェクト71、72、73を深度別に振り分けた場合には、振り分けたオブジェクト71、72、73を順次、一つ一つ描画しなくてはならない。
【0103】
対して、第4実施形態によれば、GPU8への入力前に、オブジェクト71、72、73の深度別の振り分けないので、オブジェクト71、72、73を一度に描画できる。このため、オブジェクト71、72、73を順次、一つ一つ描画する場合に比較して、処理速度を向上することが可能である。
【0104】
なお、第4実施形態において、ビデオメモリ13に、深度別に多数のバッファ0〜バッファkを持たせる余裕が無い場合には、ある範囲のピクセルのみ描画してぼかしをかけ、描画範囲を変えながら、描画及びぼかしを繰り返すようにしても良い。
【0105】
(第5実施形態)
本第5実施形態は、第1〜第4実施形態に係るグラフィックスプロセッサを利用したグラフィックスカードの一例である。グラフィックスカードは、ビデオカード、ビデオボードとも呼ばれ、例えば、パーソナルコンピュータに組み込まれ、パーソナルコンピュータの機能拡張等に使用される。
【0106】
図22は、この発明の第5実施形態に係るグラフィックスカードの一例を示すブロック図である。
【0107】
図22に示すように、グラフィックスカード75は、回路ボード76上に配置されたGPU8、ビデオメモリ13、D/Aコンバータ14、インターフェースコネクタ77及びディスプレイコネクタ78を有する。
【0108】
インターフェースコネクタ77は、カード75を、カード75外の電子機器に接続する電気的接点である。例えば、インターフェースコネクタ77は、GPU8を、図2を参照して説明したバス・ブリッジ6もしくはCPU7に接続する。インターフェースコネクタ77を介して入力された画面表示データ(IMG.D.D.)、例えば、ポリゴンは、配線79を介してGPU8に伝えられる。カード75を制御する制御信号(CNT)は、配線79を介して、例えば、GPU8とCPU7との間でやりとりされる。
【0109】
GPU8は、配線80を介してビデオメモリ13に接続される。本例では、ビデオメモリ13として4つのメモリ81が用意されており、例えば、2つをテクスチャメモリ30として使用し、残りの2つをフレームバッファ31として使用している。GPU8が出力したピクセルデータ(PIX.D.)は、配線80を介してビデオメモリ13に入力される。また、ビデオメモリ13は、ピクセルデータ(PIX.D.)、スクリーンイメージ(SCR.IMG.)、並びにテクスチャデータ及びマップデータ(T/M.D.)を出力する。これらデータは、配線80を介してGPU8に入力される。
【0110】
さらに、GPU8は、配線82を介してD/Aコンバータ14に接続される。ビデオメモリ13が出力したスクリーンイメージ(SCR.IMG.)は、GPU8及び配線82を介してD/Aコンバータ14に入力される。
【0111】
D/Aコンバータ14は、配線83を介してディスプレイコネクタ78に接続される。ディスプレイコネクタ78は、カード75を、カード75外のディスプレイに接続する電気的接点である。D/Aコンバータ14は、デジタル情報であるスクリーンイメージ(SCR.IMG.)を、アナログ情報であるビデオ信号(VID.SGL.)に変換し、ビデオ信号(VID.SGL.)を配線83及びディスプレイコネクタ78を介してディスプレイに出力する。
【0112】
図22に示すGPU8には、第1〜第4実施形態で説明したGPU8が使用される。
【0113】
図23は図22に示すGPU8の一例を示すブロック図である。本一例に係るGPU8は、パス40及び書き込みアドレス計算部50をそれぞれ有する。
【0114】
図23に示すように、画像表示データ(IMG.D.D.)は、システム・I/F9を介してピクセル展開部20に入力される。ピクセル展開部20は、画像表示データ(IMG.D.D.)をピクセルに展開してピクセルデータ(PIX.D.)を出力し、シェーディング処理部21のPIX.D.入力84に入力する。シェーディング処理部21は、例えば、上記第1〜第4実施形態で説明した処理を行う。シェーディング処理部21は、上記第1〜第4実施形態で説明した処理を行った後、ピクセルデータ(PIX.D.)を、PIX.D.出力86、書き込みアドレス計算部50、システム・I/F9及びメモリ・I/F11を介してビデオメモリ13に出力する。ここで、例えば、第2、第3、第4実施形態で説明したように、ビデオメモリ13の、例えば、フレームバッファ31への書き込みアドレスを変更する場合には、書き込みアドレス計算部50で書き込みアドレスを変更したのち、ピクセルデータ(PIX.D.)を出力する。
【0115】
ビデオメモリ13から出力されたピクセルデータ(PIX.D.)は、メモリ・I/F11、システム・I/F9及びパス40を介して、シェーディング処理部21のPIX.D.入力84に入力される。こののち、シェーディング処理部21は、例えば、上記第1〜第4実施形態で説明した処理を行う。この処理に際し、例えば、第1〜第4実施形態で説明したように、テーブルを使用する、あるいは描画途中のピクセルデータを使用する場合には、シェーディング処理部21は、メモリ・I/F11及びシステム・I/F9、T/M.D.入力85を介してテクスチャデータ及びマップデータ(T/M.D.)、並びに描画途中のピクセルデータを受け取る。シェーディング処理部21は、上記第1〜第4実施形態で説明した処理を行った後、ピクセルデータ(PIX.D.)を、PIX.D.出力86、書き込みアドレス計算部50、システム・I/F9及びメモリ・I/F11を介してビデオメモリ13に出力する。
【0116】
ビデオメモリ13から出力されたスクリーンイメージ(SCR.IMG.)は、メモリ・I/F11、システム・I/F9及び画像出力部12を介して、D/Aコンバータ14に出力される。
【0117】
このように、この発明の第1〜第4実施形態に係るグラフィックスプロセッサ及びビデオメモリを利用して、グラフィックスカード75を構築することも可能である。
【0118】
(第6実施形態)
図24A及び図24Bはそれぞれ、ピクセルデータをテクスチャメモリ30に入力する入力方法を示す図である。
【0119】
例えば、第1実施形態で説明した通り、フレームバッファ31に書き込んだピクセルデータ(PIX.D.)をテクスチャメモリ30に入力する際、パス40を介してシェーディング処理部21に入力し、シェーディング処理部21からテクスチャメモリ30に入力する方法(図24A)と、パス40を介してフレームバッファ31からテクスチャメモリ30に入力する方法(図24B)との二通りがある。
【0120】
これらの使い方の一例は、上述した通り、描画が進んでいないピクセルデータは、ピクセル展開部20の出力に戻し、ピクセル展開部20の出力を介してシェーディング処理部21に直接に戻し、描画が進んだピクセルデータは、シェーディング処理部21に直接に戻さず、一旦、テクスチャメモリ30に入力し、テクスチャメモリ30の出力を介してシェーディング処理部21に戻す。
【0121】
ピクセルデータを、一旦、テクスチャメモリ30に入力する場合には、次の2通りの方式が考えられる。
【0122】
例えば、ビデオメモリ13が外付けであり、グラフィックスカード75に搭載される場合には、例えば、図25Aに示すように、ビデオメモリ13のフレームバッファ31とテクスチャメモリ30とを接続するパス87を新たに設定し、ピクセルデータを、新たに設定したパス87を介して、フレームバッファ31からテクスチャメモリ30に入力する。この場合には、グラフィックスカード75のシステムは変更される。
【0123】
また、例えば、グラフィックスカード75のシステムを変更したくない場合には、図25Bに示すように、ピクセルデータを、フレームバッファ31からGPU8に入力した後、GPU8からテクスチャメモリ30に入力する。
【0124】
図25Bに示すように、ピクセルデータを、GPU8を介してテクスチャメモリ30に入力する場合には、ピクセルデータが、GPU8のシェーディング処理部21に到達する前にGPU8内で折り返し、テクスチャメモリ30に入力する。ピクセルデータをGPU8の何処で折り返すかは、任意である。本例では、一例として、メモリ・I/F11で折り返す例を示している。メモリ・I/F11は、ピクセルデータを受ける。ピクセルデータがシェーディング処理部21に入力するべきものである場合には、メモリ・I/F11は、ピクセルデータをシステム・I/F9を介してシェーディング処理部21に入力する。反対に、ピクセルデータがテクスチャメモリ30に入力するべきものである場合には、メモリ・I/F11は、ピクセルデータを折り返し、テクスチャメモリ30に入力する。
【0125】
第6実施形態のうち、図25Aに示す例では、ピクセルデータを、フレームバッファ31からテクスチャメモリ30に直接入力するので、処理の高速性に優れている。反面、ビデオメモリ13が外付けであり、GPU8と別のチップであった場合、フレームバッファ31とテクスチャメモリ30とを接続するパス87を設定する必要がある。このため、例えば、グラフィックスカード75のシステムを変更する必要がある。
【0126】
対して、図25Bに示す例ではバス87を設定する必要がなく、グラフィックスカード75のシステムを変更しなくて済む、という利点がある。
【0127】
このように、ピクセルデータを、テクスチャメモリ30の出力を介してシェーディング処理部21に戻す場合には、ピクセルデータを、フレームバッファ31からテクスチャメモリ30に直接入力するか、フレームバッファ31からGPU8を介してテクスチャメモリ30に入力するかの二通りの方式がある。これら方式のどちらを使うかは、必要に応じて決定されれば良い。
【0128】
以上、この発明を第1〜第6実施形態により説明したが、この発明は、これら実施形態それぞれに限定されるものではなく、その実施にあたっては、発明の要旨を逸脱しない範囲で種々に変形することが可能である。
【0129】
例えば、上記実施形態係るGPU8では、図26Aに示すように、ビデオメモリ13を、GPU8とは別のLSIチップとして有していたが、図26Bに示すように、ビデオメモリ13、即ちテクスチャメモリ30及びフレームバッファ31を、GPU8のLSIチップ内に集積しても良い。
【0130】
さらに、ビデオメモリ13として専用のメモリを設けなくても、例えば、図26Cに示すように、ビデオメモリ13の機能をCPUメモリ15にシェアすることも可能である。また、図26Dに示すように、ビデオメモリ13の機能を電子機器のメインメモリ17もしくはハードディスク4にシェアすることも可能である。
【0131】
また、上記実施形態はそれぞれ、単独で実施することが可能であるが、適宜組み合わせて実施することも、もちろん可能である。
【0132】
また、上記各実施形態には、種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
【0133】
【発明の効果】
この発明によれば、演算能力及び処理速度を向上させることが可能なグラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システムを提供できる。
【図面の簡単な説明】
【図1】図1A〜図1Cはこの発明の第1実施形態の参考例に係るグラフィックスプロセッサの動作を示す図
【図2】図2はこの発明が適用されるグラフィックス処理システムの一例を示すブロック図
【図3】図3はグラフィックスプロセッサの一例を示すブロック図
【図4】図4はこの発明の第1実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図5】図5A〜図5Eはこの発明の第1実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図6】図6はこの発明の第2実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図7】図7はピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図
【図8】図8はピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図
【図9】図9はこの発明の第3実施形態の参考例に係るグラフィックスプロセッサの動作を示す図
【図10】図10はこの発明の第3実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図11】図11Aはバンプマップ、視線ベクトル及び反射ベクトルとキューブ環境マップとの関係を示す図、図11Bはバンプマップとキューブ環境マップとを用いたシェーディング処理の手順の一例を示す図
【図12】図12はこの発明の第3実施形態に係るグラフィックスプロセッサ及びビデオメモリの具体的一例を示すブロック図
【図13】図13はキューブ環境マップの各面とバッファとの関係を示す図
【図14】図14A〜図14Dはこの発明の第3実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図15】図15A〜図15Dはこの発明の第3実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図16】図16Aはキューブ環境マップを示す図、図16Bは球体環境マップを示す図
【図17】図17Aは深度の異なるオブジェクトを示す図、図17Bは深度の異なるオブジェクトを視点から見た図
【図18】図18A〜図18Cは深度別に振り分けたオブジェクトを示す図
【図19】図19A〜図19Gはこの発明の第4実施形態の参考例に係るグラフィックスプロセッサの描画手順を示す図
【図20】図20A〜図20Fはこの発明の第4実施形態の別の参考例に係るグラフィックスプロセッサの描画手順を示す図
【図21】図21はこの発明の第4実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図22】図22はこの発明の第5実施形態に係るグラフィックスカードの一例を示すブロック図
【図23】図23は図22に示すGPU8の一例を示すブロック図
【図24】図24A及び図24Bはピクセルデータをテクスチャメモリに入力する入力方法を示す図
【図25】図25Aはこの発明の第6実施形態に係るグラフィックスプロセッサ及びビデオメモリの一例を示す図、図25Bはこの発明の第6実施形態に係るグラフィックスプロセッサ及びビデオメモリの他を示すブロック図
【図26】図26A乃至図26Dは第1〜第6実施形態の変形例を示す図
【符号の説明】
1…インターフェースバス、2…コントローラ、3…DVDドライブ、4…ハードディスク、5…通信装置、6…バス・ブリッジ、7…CPU、8…グラフィックスプロセッサ(GPU)、9…システム・インタフェース、10…グラフィックス描画部、11…メモリ・インタフェース、12…画像出力部、13…ビデオメモリ、14…D/Aコンバータ、15…CPUメモリ、16…ジオメトリ処理部、17…メインメモリ、20…ピクセル展開部、21…シェーディング処理部、30…テクスチャメモリ30…フレームバッファ、40、87…パス、50…アドレス計算部、60…バンプマップ、61…視線ベクトル、62…反射ベクトル、63…キューブ環境マップ、64…斜面、65…頂点、66…ブロック、71、72、73…オブジェクト、75…グラフィックスカード、76…回路ボード、77…インターフェースコネクタ、78…ディスプレイコネクタ、79、80、82、83…配線、81…メモリ、84…ピクセルデータ入力、85…テクスチャデータ及びマップデータ入力、86…ピクセルデータ出力
Claims (21)
- ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第2のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスと
を具備することを特徴とするグラフィックスプロセッサ。 - ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第2のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と
を具備することを特徴とするグラフィックスプロセッサ。 - 前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項1に記載のグラフィックスプロセッサ。
- 前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項2及び請求項3いずれかに記載のグラフィックスプロセッサ。
- 前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項2乃至請求項4いずれか一項に記載のグラフィックスプロセッサ。
- 前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項2乃至請求項4いずれか一項に記載のグラフィックスプロセッサ。
- 前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項2乃至請求項4いずれか一項に記載のグラフィックスプロセッサ。
- 電子機器に接続可能な第1のコネクタと、
前記第1のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスと、
前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するD/Aコンバータと、
前記D/Aコンバータの出力をディスプレイに接続可能な第2のコネクタと
を具備することを特徴とするグラフィックスカード。 - 電子機器に接続可能な第1のコネクタと、
前記第1のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、
前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するD/Aコンバータと、
前記D/Aコンバータの出力をディスプレイに接続可能な第2のコネクタと
を具備することを特徴とするグラフィックスカード。 - 前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項8に記載のグラフィックスカード。
- 前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項9及び請求項10いずれかに記載のグラフィックスカード。
- 前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項9乃至請求項11いずれか一項に記載のグラフィックスカード。
- 前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項9乃至請求項11いずれか一項に記載のグラフィックスカード。
- 前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項9乃至請求項11いずれか一項に記載のグラフィックスカード。
- 周辺機器に接続可能なインターフェースバスと、
CPUと、
前記インターフェースバス及び前記CPUに接続されるバス・ブリッジと、
前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第3のパスと、
前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するD/Aコンバータと
を具備することを特徴とするグラフィックス処理システム。 - 周辺機器に接続可能なインターフェースバスと、
CPUと、
前記インターフェースバス及び前記CPUに接続されるバス・ブリッジと、
前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第1のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第2のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、
前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するD/Aコンバータと
を具備することを特徴とするグラフィックス処理システム。 - 前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項15に記載のグラフィックス処理システム。
- 前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項16及び請求項17いずれかに記載のグラフィックス処理システム。
- 前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項16乃至請求項18いずれか一項に記載のグラフィックス処理システム。
- 前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項16乃至請求項18いずれか一項に記載のグラフィックスカード。
- 前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項16乃至請求項18いずれか一項に記載のグラフィックスカード。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003113188A JP3756888B2 (ja) | 2003-04-17 | 2003-04-17 | グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム |
US10/619,435 US6940519B2 (en) | 2003-04-17 | 2003-07-16 | Graphics processor, graphics card and graphics processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003113188A JP3756888B2 (ja) | 2003-04-17 | 2003-04-17 | グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004317878A true JP2004317878A (ja) | 2004-11-11 |
JP3756888B2 JP3756888B2 (ja) | 2006-03-15 |
Family
ID=33157028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003113188A Expired - Fee Related JP3756888B2 (ja) | 2003-04-17 | 2003-04-17 | グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6940519B2 (ja) |
JP (1) | JP3756888B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025954A (ja) * | 2007-07-18 | 2009-02-05 | Fuji Xerox Co Ltd | データ処理装置及びデータ処理プログラム |
JP2011164773A (ja) * | 2010-02-05 | 2011-08-25 | Toshiba Denpa Products Kk | 3次元海洋波表示方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7245302B1 (en) | 2003-10-30 | 2007-07-17 | Nvidia Corporation | Processing high numbers of independent textures in a 3-D graphics pipeline |
CN102360170B (zh) | 2005-02-10 | 2014-03-12 | Asml荷兰有限公司 | 浸没液体、曝光装置及曝光方法 |
JP2007249791A (ja) * | 2006-03-17 | 2007-09-27 | Sony Corp | 画像処理装置および画像処理方法、並びにプログラム |
US8913073B2 (en) * | 2006-08-09 | 2014-12-16 | Adobe Systems Incorporated | Interpolation according to a function represented using unevenly spaced samples of the function |
US7737997B2 (en) * | 2006-12-28 | 2010-06-15 | Intel Corporation | Collision detection of concave bodies using art gallery problem and cube maps |
US8306367B2 (en) * | 2007-06-08 | 2012-11-06 | Apple Inc. | Method and apparatus for managing image-processing operations |
TWI697865B (zh) * | 2019-01-24 | 2020-07-01 | 神雲科技股份有限公司 | 具圖形處理運算資源配置功能之電子裝置與其控制方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815166A (en) * | 1995-03-24 | 1998-09-29 | 3Dlabs Inc., Ltd. | Graphics subsystem with slaveable rasterizer |
US6333744B1 (en) | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
US6181352B1 (en) | 1999-03-22 | 2001-01-30 | Nvidia Corporation | Graphics pipeline selectively providing multiple pixels or multiple textures |
JP2001195347A (ja) * | 2000-01-12 | 2001-07-19 | Mitsubishi Electric Corp | Dma転送装置 |
JP2003216943A (ja) * | 2002-01-22 | 2003-07-31 | Toshiba Corp | 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法 |
JP2004280157A (ja) * | 2003-03-12 | 2004-10-07 | Toshiba Corp | 画像処理装置 |
-
2003
- 2003-04-17 JP JP2003113188A patent/JP3756888B2/ja not_active Expired - Fee Related
- 2003-07-16 US US10/619,435 patent/US6940519B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025954A (ja) * | 2007-07-18 | 2009-02-05 | Fuji Xerox Co Ltd | データ処理装置及びデータ処理プログラム |
JP2011164773A (ja) * | 2010-02-05 | 2011-08-25 | Toshiba Denpa Products Kk | 3次元海洋波表示方法 |
Also Published As
Publication number | Publication date |
---|---|
US6940519B2 (en) | 2005-09-06 |
JP3756888B2 (ja) | 2006-03-15 |
US20040207624A1 (en) | 2004-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4598030B2 (ja) | グラフィックスパイプラインにおけるタイルベース精度のラスタライズ | |
JP3761085B2 (ja) | 画像処理装置及びその構成部品、レンダリング処理方法 | |
JP3543942B2 (ja) | 画像生成装置 | |
US7525547B1 (en) | Programming multiple chips from a command buffer to process multiple images | |
JP4704348B2 (ja) | 画像生成装置および画像生成方法 | |
US9082204B2 (en) | Storage structures for stitching primitives in graphics processing | |
JP2000011204A (ja) | 画像処理方法及び画像処理プログラムを記録した記録媒体 | |
JP3756888B2 (ja) | グラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システム | |
US20020004421A1 (en) | Computer readable recording medium recording a program for causing a light source to be displayed on a game screen and the program, and game screen display method and apparatus | |
JP4193979B2 (ja) | シャドウボリューム生成プログラム及びゲーム装置 | |
JP2002140722A (ja) | エイリアシングを除去した画像を描画する装置及び方法 | |
JP2005182207A (ja) | 画像描画装置及び方法、プログラム並びに記録媒体 | |
JP5304443B2 (ja) | 描画データ処理方法、図形描画システム、及び図形描画データ作成プログラム | |
JP3979162B2 (ja) | 画像処理装置およびその方法 | |
JP4691494B2 (ja) | 画像描画装置、頂点選出方法、頂点選出プログラム及び集積回路 | |
JP4843744B1 (ja) | 集積回路装置及び電子機器 | |
JP3971448B2 (ja) | 描画装置及び描画方法 | |
JP3934111B2 (ja) | 描画装置及び描画方法 | |
JP3867071B2 (ja) | 画像処理装置、画像処理方法 | |
JP4669334B2 (ja) | エッジ・マルチサンプリングハイブリッドアンチエイリアス | |
JP3579680B2 (ja) | 画像処理装置及びプログラム | |
KR101663023B1 (ko) | 그래픽 처리 장치 및 방법 | |
JP4554834B2 (ja) | 画像処理装置及び方法並びにそのプログラム | |
JP6132902B1 (ja) | コンピュータグラフィック装置 | |
JP4419480B2 (ja) | 画像処理装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050909 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051121 |
|
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: 20051220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100106 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110106 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140106 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |