(57)【要約】【課題】演算能力及び処理速度を向上させることが可能なグラフィックスプロセッサを提供すること。【解決手段】ピクセルデータにシェーディング処理を施すシェーディング処理部２１と、ビデオメモリ１３から出力されるテクスチャデータ及びマップデータをシェーディング処理部２１に入力可能な第１のパスと、シェーディング処理部２１から出力されるピクセルデータをビデオメモリ１３に出力可能な第２のパスと、ピクセル展開部２０から出力されるピクセルデータ及びこのピクセルデータの代わりにビデオメモリ１３から出力されるピクセルデータをシェーディング処理部２１に入力可能な第３のパスとを具備する。【選択図】    図４
2004317878.tif 000002
【特許請求の範囲】
【請求項１】
ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第２のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスと
を具備することを特徴とするグラフィックスプロセッサ。
【請求項２】
ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第２のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と
を具備することを特徴とするグラフィックスプロセッサ。
【請求項３】
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項１に記載のグラフィックスプロセッサ。
【請求項４】
前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項２及び請求項３いずれかに記載のグラフィックスプロセッサ。
【請求項５】
前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項２乃至請求項４いずれか一項に記載のグラフィックスプロセッサ。
【請求項６】
前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項２乃至請求項４いずれか一項に記載のグラフィックスプロセッサ。
【請求項７】
前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項２乃至請求項４いずれか一項に記載のグラフィックスプロセッサ。
【請求項８】
電子機器に接続可能な第１のコネクタと、
前記第１のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスと、
前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するＤ／Ａコンバータと、
前記Ｄ／Ａコンバータの出力をディスプレイに接続可能な第２のコネクタと
を具備することを特徴とするグラフィックスカード。
【請求項９】
電子機器に接続可能な第１のコネクタと、
前記第１のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、
前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するＤ／Ａコンバータと、
前記Ｄ／Ａコンバータの出力をディスプレイに接続可能な第２のコネクタと
を具備することを特徴とするグラフィックスカード。
【請求項１０】
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項８に記載のグラフィックスカード。
【請求項１１】
前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項９及び請求項１０いずれかに記載のグラフィックスカード。
【請求項１２】
前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項９乃至請求項１１いずれか一項に記載のグラフィックスカード。
【請求項１３】
前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項９乃至請求項１１いずれか一項に記載のグラフィックスカード。
【請求項１４】
前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項９乃至請求項１１いずれか一項に記載のグラフィックスカード。
【請求項１５】
周辺機器に接続可能なインターフェースバスと、
ＣＰＵと、
前記インターフェースバス及び前記ＣＰＵに接続されるバス・ブリッジと、
前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、
ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスと、
前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するＤ／Ａコンバータと
を具備することを特徴とするグラフィックス処理システム。
【請求項１６】
周辺機器に接続可能なインターフェースバスと、
ＣＰＵと、
前記インターフェースバス及び前記ＣＰＵに接続されるバス・ブリッジと、
前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、
前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、
ビデオメモリと、
前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、
前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、
前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するＤ／Ａコンバータと
を具備することを特徴とするグラフィックス処理システム。
【請求項１７】
前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部を、さらに、具備することを特徴とする請求項１５に記載のグラフィックス処理システム。
【請求項１８】
前記書き込みアドレス計算情報は、前記シェーディング処理部の出力に付加されることを特徴とする請求項１６及び請求項１７いずれかに記載のグラフィックス処理システム。
【請求項１９】
前記書き込みアドレス計算情報は、ピクセル展開方式に応じた情報を含むことを特徴とする請求項１６乃至請求項１８いずれか一項に記載のグラフィックス処理システム。
【請求項２０】
前記書き込みアドレス計算情報は、環境マップの位置を示す情報を含むことを特徴とする請求項１６乃至請求項１８いずれか一項に記載のグラフィックスカード。
【請求項２１】
前記書き込みアドレス計算情報は、ピクセルの深度を示す情報を含むことを特徴とする請求項１６乃至請求項１８いずれか一項に記載のグラフィックスカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はグラフィックスプロセッサ、そのグラフィックスプロセッサを用いたグラフィックスカード及びグラフィクス処理システムに関する。
【０００２】
【従来の技術】
コンピュータグラフィックス、例えば、３次元グラフィックスにおけるリアル感は年々高まってきている。
【０００３】
リアル感を向上させるためには、モデルの面にマッピングするテクスチャ及びマップのテーブル数を増加させ、かつ各テーブルのサイズを大きくする必要がある。複数のテクスチャをピクセルにマッピングする例としては、特許文献１、２に記載されている。
【０００４】
さらに、リアル感を向上させるためには、多数かつ大サイズのテーブルによる、大規模な演算を高速に行わなければならない。
【０００５】
【特許文献１】
米国特許第６，１８１，３５２号明細書
【０００６】
【特許文献２】
米国特許第６，３３３，７４４号明細書
【０００７】
【発明が解決しようとする課題】
３次元グラフィックスにおけるリアル感向上の要求に伴い、グラフィックスプロセッサの演算能力不足や、処理速度不足の事情が顕著になってきた。
【０００８】
この発明は、上記の事情に鑑み為されたもので、その目的は、演算能力及び処理速度を向上させることが可能なグラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システムを提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、この発明の第１態様に係るグラフィックスプロセッサは、ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第２のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスとを具備することを特徴とする。
【００１０】
上記目的を達成するために、この発明の第２態様に係るグラフィックスプロセッサは、ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力可能な第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力可能な第２のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを、書き込みアドレス計算情報に従って計算する書き込みアドレス計算部とを具備することを特徴とする。
【００１１】
上記目的を達成するために、この発明の第３態様に係るグラフィックスカードは、電子機器に接続可能な第１のコネクタと、前記第１のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスと、前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するＤ／Ａコンバータと、前記Ｄ／Ａコンバータの出力をディスプレイに接続可能な第２のコネクタとを具備することを特徴とする。
【００１２】
上記目的を達成するために、この発明の第４態様に係るグラフィックスカードは、電子機器に接続可能な第１のコネクタと、前記第１のコネクタを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、前記ビデオメモリから出力されるスクリーンイメージをビデオ信号に変換するＤ／Ａコンバータと、前記Ｄ／Ａコンバータの出力をディスプレイに接続可能な第２のコネクタとを具備することを特徴とする。
【００１３】
上記目的を達成するために、この発明の第５態様に係るグラフィックス処理システムは、周辺機器に接続可能なインターフェースバスと、ＣＰＵと、前記インターフェースバス及び前記ＣＰＵに接続されるバス・ブリッジと、前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、ピクセル展開部から出力されるピクセルデータ及びこのピクセルデータの代わりに前記ビデオメモリから出力されるピクセルデータを前記シェーディング処理部に入力可能な第３のパスと、前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するＤ／Ａコンバータとを具備することを特徴とする。
【００１４】
上記目的を達成するために、この発明の第６態様に係るグラフィックス処理システムは、周辺機器に接続可能なインターフェースバスと、ＣＰＵと、前記インターフェースバス及び前記ＣＰＵに接続されるバス・ブリッジと、前記バス・ブリッジを介して画像表示データを受け、前記画像表示データをピクセルに展開し、ピクセルデータを生成するピクセル展開部と、前記ピクセルデータにシェーディング処理を施すシェーディング処理部と、ビデオメモリと、前記ビデオメモリから出力されるテクスチャデータ及びマップデータを前記シェーディング処理部に入力する第１のパスと、前記シェーディング処理部から出力されるピクセルデータを前記ビデオメモリに出力する第２のパスと、前記シェーディング処理部から出力されるピクセルデータの、前記ビデオメモリへの書き込みアドレスを書き込みアドレス計算情報に従って計算する書き込みアドレス計算部と、前記ビデオメモリから出力されるピクセルデータをビデオ信号に変換するＤ／Ａコンバータとを具備することを特徴とする。
【００１５】
【発明の実施の形態】
以下、この発明の実施形態を、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１６】
（第１実施形態）
第１実施形態の説明に先立ち、参考例に係るグラフィックスプロセッサを説明する。
【００１７】
図１Ａ〜図１Ｃは、第１実施形態の参考例に係るグラフィックスプロセッサの動作を示す図である。
【００１８】
ピクセルの描画に複雑な処理が伴うとき、シェーディング処理部の、テーブル引き及び演算のリソースが足りなくなることがある。この場合には、シェーディング処理をマルチパスで実行する。
【００１９】
例えば、図１Ａに示すように、ポリゴンをピクセル展開部１０１に入力し、ポリゴンをピクセルデータに展開する。次に、展開されたピクセルデータをシェーディング処理部１０２に入力し、ピクセルにシェーディング処理を施し、ピクセルを描画する。描画の途中で、シェーディング処理部１０２のリソースが足りなくなったとき、シェーディング処理の途中経過をフレームバッファ１０３に書き込み、シェーディング処理部１０２を空ける（図１Ｂ）。この後、残りのシェーディング処理を行い、フレームバッファ１０３に書き込む（図１Ｃ）。この場合、フレームバッファ１０３は１次元のＦＩＦＯバッファとする。
【００２０】
一度に処理しきれない複雑な処理の場合、本参考例のように、シェーディング処理を複数に分けて行う。
【００２１】
本第１実施形態は、一度に処理しきれない複雑な処理であっても、処理速度及び演算能力を向上できるグラフィックスプロセッサに関する。
【００２２】
図２は、この発明が適用されるグラフィックス処理システムの一例を示すブロック図である。
【００２３】
図２に示すように、インターフェースバス（以下Ｉ／Ｆバスという）１には周辺機器、例えば、コントローラ２、ＤＶＤドライブ３、ハードディスク４及び通信装置５が接続されている。Ｉ／Ｆバス１は、さらに、バス・ブリッジ６に接続されている。バス・ブリッジ６は、ＣＰＵ７、及びグラフィックスプロセッサ（以下ＧＰＵという）８に接続されている。バス・ブリッジ６は、Ｉ／Ｆバス１をＣＰＵ７に接続するか、あるいはＩ／Ｆバス１をＧＰＵ８に接続するか、あるいはＣＰＵ７をＧＰＵ８に接続するかを選択する。例えば、Ｉ／Ｆバス１に出力された情報がＣＰＵ７に伝えるべき情報、及びＣＰＵ７が出力した情報がＩ／Ｆバス１に伝えるべき情報の場合には、Ｉ／Ｆバス１をＣＰＵ７に接続する。また、Ｉ／Ｆバス１に出力された情報がＧＰＵ８に伝えるべき情報、及びＧＰＵ８が出力した情報がＩ／Ｆバス１に伝えるべき情報の場合には、Ｉ／Ｆバス１をＧＰＵ８に接続する。また、ＣＰＵ７が出力した情報がＧＰＵ８に伝えるべき情報、及びＧＰＵ８が出力した情報がＣＰＵ７に伝えるべき情報の場合には、ＣＰＵ７をＧＰＵ８に接続する。
【００２４】
図３は、ＧＰＵの一例を示すブロック図である。
【００２５】
図３に示すように、ＧＰＵ８は、システム・インタフェース（以下システム・Ｉ／Ｆという）９、グラフィックス描画部１０、メモリ・インタフェース（以下メモリ・Ｉ／Ｆという）１１、及び画像出力部１２を有する。バス・ブリッジ６からの情報は、システム・Ｉ／Ｆ９を介してグラフィックス描画部１０に入力される。グラフィックス描画部１０は、バス・ブリッジ６からの情報、例えば、ＣＰＵ７からの画像表示データ、例えば、ポリゴンを受け、ポリゴンをピクセルデータに展開し、展開したピクセルデータにシェーディング処理を施し、システム・Ｉ／Ｆ９及びメモリ・Ｉ／Ｆを介してビデオメモリ１３に書き込む。ビデオメモリ１３は、テクスチャデータ及びマップデータを記憶するテクスチャメモリ３０と、グラフィックス描画部１０からの出力が、例えば、スクリーンイメージとして書き込まれるフレームバッファ３１とを有する。テクスチャメモリ３０から出力されたテクスチャデータ及びマップデータは、メモリ・Ｉ／Ｆ１１、システム・Ｉ／Ｆ９を介してグラフィックス描画部１０に入力され、ピクセルに対するシェーディング処理に利用される。フレームバッファ３１から出力されたスクリーンイメージは、メモリ・Ｉ／Ｆ１１、システム・Ｉ／Ｆ９及び画像出力部１２を介して、Ｄ／Ａコンバータ１４に入力される。Ｄ／Ａコンバータ１４は、フレームバッファからの出力をアナログ信号に変換し、ビデオ信号出力として出力する。ビデオ信号出力は、ディスプレイ（図示せず）に入力される。
【００２６】
なお、上記グラフィックス処理システム及びＧＰＵは一例であって、図２、図３に示した構成に限られるものではない。
【００２７】
図４は、この発明の第１実施形態に係るＧＰＵ及びビデオメモリを示すブロック図である。
【００２８】
図４に示すように、本例に係るＧＰＵ８のグラフィックス描画部１０は、ピクセル展開部２０及びシェーディング処理部２１を有する。ピクセル展開部２０は、例えば、Ｉ／Ｆバス１又はＣＰＵ７から出力されたポリゴンを、システム・Ｉ／Ｆ９を介して受け、このポリゴンをピクセルデータに展開する。展開されたピクセルデータはシェーディング処理部２１に入力される。シェーディング処理部２１はテクスチャメモリ３０から出力されたテクスチャデータ及びマップデータに基づき、ピクセルにシェーディング処理を施す。シェーディング処理部２１の出力は、フレームバッファ３１に書き込まれる。さらに、本例では、フレームバッファ３１の出力を、ピクセル展開部２０を通さずに、シェーディング処理部２１及びテクスチャメモリ３０に入力するパス４０を有する。
【００２９】
次に、その動作の一例を説明する。
【００３０】
図５Ａ〜図５Ｅは、この発明の第１実施形態に係るＧＰＵ及びビデオメモリの動作の一例を示す図である。
【００３１】
まず、図５Ａに示すように、例えば、ＣＰＵ７から出力された画面表示データ、例えば、ポリゴンをピクセル展開部２０に入力する。ピクセル展開部２０は、ポリゴンをピクセルデータに展開する。次に、展開されたピクセルデータをシェーディング処理部２１に入力する。次に、描画するべきピクセルであるか否かを判断する。この判断は、例えば、シェーディング処理部２１で行われる。
【００３２】
次に、図５Ｂに示すように、“描画するべきピクセルである”と判断されたピクセルデータをシェーディング処理部２１から出力し、フレームバッファ３１に書き込む。“描画をしなくて良い”と判断されたピクセルデータについては出力しない。描画するべきピクセルであるか否かの判断の一例は、画面に表示した際、視点位置から見えるピクセルであるか否かである。“視点位置から見える”と判断されたピクセルについて、そのピクセルデータをフレームバッファ３１に書き込めば良い。
【００３３】
次に、図５Ｃに示すように、フレームバッファ３１に書き込まれたピクセルデータを読み出し、パス４０を介してシェーディング処理部２１に再入力する。次に、シェーディング処理部２１は、再入力されたピクセルデータに基づきテクスチャメモリ３０から対応したテーブルを読み出し、ピクセルにシェーディング処理を施し、ピクセルを描画する。
【００３４】
次に、図５Ｄに示すように、シェーディングされたピクセルデータをシェーディング処理部２１から出力し、例えば、スクリーンイメージとしてフレームバッファ３１に書き込む。スクリーンイメージは、図５Ｅに示すように、フレームバッファ３１から読み出され、メモリ・Ｉ／Ｆ１１、システム・Ｉ／Ｆ９及び画像出力部１２を介してＤ／Ａコンバータ１４に入力される。Ｄ／Ａコンバータ１４はスクリーンイメージをビデオ信号に変換してディスプレイに入力する。ディスプレイはビデオ信号に基づきスクリーンイメージを表示する。
【００３５】
このように、第１実施形態では、シェーディングを開始する前に、描画するべきピクセルであるか否かを判定し、描画するべきピクセルのピクセルデータをフレームバッファ３１に書き込む。この後、フレームバッファ３１に書き込まれたピクセルデータをフレームバッファ３１から読み出し、パス４０を介してシェーディング処理部２１に再入力する。このため、シェーディング処理部２１は、描画するべきピクセルのみを描画し、描画しなくても良いピクセルについては描画しなくて済む。従って、シェーディング処理するピクセルの数が減り、例えば、ピクセルの描画に、一度に処理しきれない複雑な処理を伴うような場合でも、一度に処理することが可能となる。
【００３６】
第１実施形態によれば、ピクセルの描画に複雑な処理を伴う場合でも、一度に処理することが可能となるので、例えば、参考例のように、処理を二度に分ける場合に比較して処理速度が向上する。また、シェーディング処理部２１は、描画しなくても良いピクセルについては描画しないので演算能力も向上する。
【００３７】
さらに、第１実施形態によれば、ピクセルデータをフレームバッファ３１から、ピクセル展開部２０を通さずにシェーディング処理部２１に戻す。このため、ピクセル展開部２０以前の処理には負担がかからない。
【００３８】
第１実施形態において、パス４０は、シェーディング処理部２１だけでなく、テクスチャメモリ３０にも接続されている。テクスチャメモリ３０に接続されたパス４０の使い方の一例は次の通りである。
【００３９】
例えば、“描画するべきピクセルである”と判断されたピクセルデータについては、シェーディング処理部２１において、途中までシェーディング処理を施しておいても良い。途中までシェーディングされたピクセルデータについては、直接にシェーディング処理部２１に戻さず、例えば、テクスチャメモリ３０を介してシェーディング処理部２１に戻す。
【００４０】
描画が進んでいないピクセルデータは、ピクセル展開部２０から出力されるピクセルデータと同じであり、例えば、ピクセル展開部２０の出力に戻し、ピクセル展開部２０の出力を介してシェーディング処理部２１に直接戻すことが可能である。しかし、描画が進んだピクセルデータは、ピクセル展開部２０から出力されるピクセルデータとは同じではなく、ピクセル展開部２０の出力を介してシェーディング処理部２１に直接に戻すと、例えば、データの不整合等の不具合を招くことがある。このような不具合は、描画が進んだピクセルデータについては、シェーディング処理部２１に直接に戻さず、一旦テクスチャメモリ３０に入力し、テクスチャメモリ３０の出力を介してシェーディング処理部２１に戻すことで解消可能である。
【００４１】
なお、“描画するべきピクセルである”と判断されたピクセルデータに、途中までシェーディング処理を施しておくことの利点は、ピクセルデータに、シェーディング処理を施さないまま再入力する場合に比べて、シェーディング処理時間を短縮できることである。
【００４２】
（第２実施形態）
ピクセル展開部２０は、通常、ハードワイヤードで構成される。ピクセル展開部２０がハードワイヤードで構成されると、一つの展開方法でしか描画できない。本第２実施形態は、ピクセル展開部２０がハードワイヤードで構成され、かつピクセル展開部２０が複数の展開方法をサポートしていなくても、複数の展開方法により描画可能とするＧＰＵである。
【００４３】
図６は、この発明の第２実施形態に係るＧＰＵ及びビデオメモリを示すブロック図である。
【００４４】
図６に示すように、本例に係るＧＰＵの、特にグラフィックス描画部１０は、ピクセル展開部２０、シェーディング処理部２１に加えて、書き込みアドレス計算部５０を、さらに有する。
【００４５】
フレームバッファ３１への書き込みアドレスは、通常、ピクセル展開部２０でのピクセル展開時に決定されるピクセル座標値に応じて決定される。
【００４６】
本第２実施形態に係るＧＰＵの書き込みアドレス計算部５０は、フレームバッファ３１への書き込みアドレスを、ピクセル展開部２０で決定される書き込みアドレス以外の情報に基づき決定する。
【００４７】
以下、書き込みアドレスの決定の一例を説明する。
【００４８】
図７及び図８は、ピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図である。
【００４９】
図７は、ピクセル展開部２０がラスタスキャンを用いてポリゴンをピクセルデータに展開した場合を示す。ラスタスキャンの場合、例えば、１６個のピクセルデータ０〜１５は０、１、２、…、１３、１４、１５の順序で出力される。フレームバッファ３１への書き込みアドレスはラスタスキャンの出力順序に従って決定され、例えば、ピクセルデータ０〜１５は、フレームバッファ３１のアドレスＡ０〜Ａ１５に順番に記憶される。フレームバッファ３１からの読み出しは、アドレスＡ０からＡ１５に向かって行う。これにより、フレームバッファ３１からは、ラスタスキャンと同じ出力順序でピクセルデータが出力される。
【００５０】
図８は、ピクセル展開部２０がラスタスキャンを用いてポリゴンをピクセルデータに展開し、かつ、例えば、ＭＰＥＧで使用されるジグザグスキャンに対応させる場合を示す。
【００５１】
図８に示すように、書き込みアドレス計算部５０は、ジグザグスキャンした時の、ピクセルデータ０〜１５のフレームバッファ３１への書き込みアドレスを計算する。ジグザグスキャンした場合には、例えば、１６個のピクセルデータ０〜１５が、０、１、４、８、５、２、３、６、９、１２、１３、１０、７、１１、１４、１５の順序で出力される。そこで、この順序に合うように、ピクセルデータ０〜１５の書き込みアドレスが計算される。具体的には、ピクセルデータ０をアドレスＡ０、ピクセルデータ１をアドレスＡ１、ピクセルデータ２をアドレスＡ５、ピクセルデータ３をアドレスＡ６、ピクセルデータ４をアドレスＡ２、…、ピクセルデータ１２をアドレスＡ９、ピクセルデータ１３をアドレスＡ１０、ピクセルデータ１４をアドレスＡ１４、ピクセルデータ１５をアドレスＡ１５に記憶させる。フレームバッファ３１からの読み出しは、アドレスＡ０からＡ１５に向かって行う。これにより、フレームバッファ３１からはジグザグスキャンと同じ出力順序でピクセルデータが出力される。
【００５２】
ピクセルデータは、パス４０を使ってシェーディング処理部２１に戻される。シェーディング処理部２１に戻される際、ピクセルデータはジグザグスキャンに合った順序でシェーディング処理部２１に再入力される。この後、再入力されたピクセルデータにシェーディング処理を施す。
【００５３】
第２実施形態によれば、ピクセル展開部２０が、例えば、ラスタスキャンのみをサポートしていた場合でも、ピクセルデータがシェーディング処理部２１に再入力された際には、ジグザグスキャンに応じた順序で入力できる。この結果、ピクセル展開部２０がラスタスキャンのみをサポートしていた場合でも、グラフィックス描画部１０は、ラスタスキャン以外の展開方法により描画することが可能となる。
【００５４】
書き込みアドレス計算部５０を用いて書き込みアドレスを変える際には、例えば、書き込みアドレスの指示、あるいは変更を指示するアドレス計算情報が使われる。アドレス計算情報は、例えば、グラフィックス描画部１０の外から書き込みアドレス計算部５０に入力することができる。この場合、書き込みアドレス計算部５０は、入力されたアドレス計算情報に基づき、書き込みアドレスを計算し、計算結果に従って書き込みアドレスを決定する。
【００５５】
また、アドレス計算情報は、シェーディング処理部２１の出力に含ませることも可能である。この場合、書き込みアドレス計算部５０は、シェーディング処理部２１の出力に基づき書き込みアドレスを計算し、計算結果に従って書き込みアドレスを決定する。例えば、シェーディング処理部２１の出力に、ジグザグスキャンによるピクセル展開を指示するアドレス計算情報を含ませた場合、書き込みアドレス計算部５０は、アドレス計算情報を読み取り、ジグザグスキャンによるピクセル展開に合うように書き込みアドレスを計算する。各ピクセルデータは、書き込みアドレス計算部５０において、ジグザグスキャンによるピクセル展開に合致するように出力順序が並び変えられ、フレームバッファ３１に書き込まれる。
【００５６】
アドレス計算情報をシェーディング処理部２１の出力に含ませた場合、アドレス計算情報は、シェーディング処理部２１と書き込みアドレス計算部５０とを接続する配線を介して書き込みアドレス計算部５０に入力される。このため、アドレス計算情報を入力するための入力端子を、書き込みアドレス計算部５０に別途用意する必要がない。従って、アドレス計算情報を、シェーディング処理部２１の出力以外から取得する場合に比較して、ＧＰＵ８の回路規模の増大を抑制できる、という利点がある。
【００５７】
アドレス計算情報はＧＰＵ８以外の回路、例えば、ＣＰＵ７から出力されても良いし、ＧＰＵ８内の回路で付加されても良い。アドレス計算情報をＣＰＵ７から出力する場合には、アドレス計算情報は、例えば、ＣＰＵ７が出力する画面表示データに含ませておけば良い。あるいはＣＰＵ７が画面表示データを出力するのに先行して、ＣＰＵ７からアドレス計算情報を出力しても良い。
【００５８】
アドレス計算情報をＧＰＵ８内の回路で付加する場合には、例えば、シェーディング処理の状況もしくは結果に基づいてアドレス計算情報をシェーディング処理部２１の出力に付加すれば良い。アドレス計算情報を、ＧＰＵ８内の回路で付加する場合、アドレス計算情報は、ＣＰＵ７からの情報に関わらず、例えば、シェーディング処理の状況もしくは結果に基づいてＧＰＵ８が独自に生成できる。このため、アドレス計算情報をＣＰＵ７から得る場合に比較して、ＧＰＵ８が独自に書き込みアドレスを変更でき、フレキシビリティの高い書き込みアドレスの変更が可能になる。
【００５９】
さらに、第２実施形態では、ピクセル展開後に、ピクセルの書き込みアドレスを計算する。これによって、書き込みアドレスをピクセル単位で変更することが可能となる。書き込みアドレスを、ピクセル単位で変更することによって、書き込みアドレスを、オブジェクト単位やポリゴン単位で変更する場合に比較して、より小さな単位で変更できる。この例に関する実施形態の一例は後述する。
【００６０】
なお、第２実施形態では、ピクセルデータの書き込みアドレスを計算し、計算結果に従ってピクセルデータを並びかえ、並びかえたピクセルデータをシェーディング処理部２１へ戻し、並びかえたピクセルデータにシェーディング処理を施す、という手順であった。
【００６１】
しかし、ピクセルデータにシェーディング処理を施し、シェーディングされたピクセルの書き込みアドレスを計算し、計算結果に従ってシェーディングされたピクセルを並びかえる、という手順にすることも可能である。この手順の場合には、パス４０を設ける必要は無い。
【００６２】
（第３実施形態）
従来のグラフィックスプロセッサは、シェーディング処理時、一つの平面ポリゴンに対して一つのテーブルしか引けなかったが、近時のグラフィックスプロセッサでは、一つの平面ポリゴンに対して複数のテーブルを引けるようになっている（図９）。さらに、リアル感の向上に伴い、使用するテーブルのサイズが年々大きくなってきており、次に使用するテーブルの場所を予測するようになってきた。例えば、次に使用するテーブルの場所を予測し、予測したテーブルを、例えば、動作が高速なキャッシュメモリに一時的に保持しておく。これにより、テーブルを引く際のアクセス時間が短縮され、グラフィックスプロセッサの処理速度が向上する。
【００６３】
しかし、図９に示すように、最初のテーブル１１０に依存して引かれるテーブル１１１があった場合には、テーブル１１１においてランダムアクセス性が増す。ランダムアクセス性が増すと、使用する場所の予測は困難になる。キャッシュメモリの容量が小さい場合には、引こうとしたテーブルがキャッシュメモリに無く、キャッシュメモリよりも動作が低速なテクスチャメモリからテーブルを引かなければならない状況がしばしば発生する。このため、グラフィックスプロセッサの処理速度が劣化する。
【００６４】
第３実施形態は、第２実施形態と同様に、書き込みアドレス計算部５０を持つ。第３実施形態の書き込みアドレス計算部５０は、次のシェーディング処理が効率良く実行されるように書き込みアドレスを計算する。この計算結果に従って書き込みアドレスを決定し、次のシェーディング処理が効率良く実行されるようにピクセルを並びかえてフレームバッファ３１に書き込む。この後、並びかえたピクセルをシェーディング処理部２１に戻し、次のシェーディング処理を行う。
【００６５】
図１０は、この発明の第３実施形態に係るＧＰＵ及びビデオメモリを示すブロック図である。
【００６６】
次のシェーディング処理を効率良く実行するには、例えば、次のシェーディング処理においてテーブル引きが効率良く実行されれば良い。そこで、第３実施形態では、テーブル引きの際のランダムアクセス性が軽減されるように書き込みアドレスを計算する。この計算結果に従って書き込みアドレスを決定し、テーブル引きの際のランダムアクセス性が軽減されるようにピクセルを並びかえてフレームバッファ３１に書き込む。この後、並び替えたピクセルを、パス４０を介してシェーディング処理部２１に戻し、次のシェーディング処理を行う。この際のシェーディング処理はテーブル引きが効率良く実行されるために、処理速度が向上する。以下、具体的な一例を説明する。
【００６７】
本例は、バンプマップ（ｂｕｍｐ  ｍａｐ）とキューブ環境マップ（ｃｕｂｅ  ｅｎｖｉｒｏｎｍｅｎｔ  ｍａｐ）とを用いたシェーディングである。
【００６８】
図１１Ａはバンプマップ、視線ベクトル及び反射ベクトルとキューブ環境マップとの関係を示す図、図１１Ｂはバンプマップとキューブ環境マップとを用いたシェーディング処理の手順の一例を示す図である。
【００６９】
まず、図１１Ａ、図１１Ｂに示すように、まず、平面ポリゴン（ピクセルデータ）に凹凸のテーブル（バンプマップ）６０を引き、その形状により視線ベクトル６１−１、６１−２の反射ベクトル６２−１、６２−２を計算する。次に、反射ベクトル６２−１、６２−２から、ピクセルがキューブ環境マップ６３のどの場所を使用してシェーディング処理されるのかを計算する。ここで、バンプマップ６０の凹凸の状態によっては、たとえ隣接した領域の描画であっても、キューブ環境マップ６３の場所が隣接しない場合がある。例えば、図１１Ａに示すように、凹凸の斜面６４では、反射ベクトル６２−１がキューブ環境マップ６３の上面に当たるのに対して、この斜面に隣接した凹凸の頂点６５付近では、反射ベクトル６２−２がキューブ環境マップ６３の左面に当たるようになる。キューブ環境マップ６３の場所が隣接しなくなると、斜面６４の描画にはキューブ環境マップ６３の上面のテーブルを引き、これに続く頂点６５の描画にはキューブ環境マップ６３の左面のテーブルを引く、というように処理しなければならず、テーブル引きに際してランダムアクセス性が増す。
【００７０】
これを解消するために、本例では次のような処理を行う。図１２は、本例に係るシェーディング処理を行うＧＰＵ及びビデオメモリを示すブロック図である。
【００７１】
図１２に示すように、本例のフレームバッファ３１は、バッファ０〜バッファｋに分かれている。書き込みアドレス計算部５０は、シェーディング処理部２１でバンプマッピングされたピクセルデータを、どのバッファ０〜バッファｋに書き込むのかを計算する。キューブ環境マップ６３は、例えば、図１３に示すように、前後左右上下の６平面に展開することができる。そこで、バンプマッピングされたピクセルデータが、キューブ環境マップのどの面を映すのかを、バンプマップ、視線ベクトル及び反射ベクトルを使って計算する。この計算は、シェーディング処理部２１で行われる。計算結果、即ちキューブ環境マップのマップ位置情報は、例えば、シェーディング処理部２１の出力に付加される。アドレス計算部５０は、マップ位置情報を読み取る。アドレス計算部５０は、読み取ったマップ位置情報に従って、バンプマッピングされたピクセルデータを、ピクセルが映す面に応じてソートし、６つのバッファ０〜バッファ５のいずれかに書き込む。本例では、バッファ０〜バッファ５がそれぞれ、前面、上面、右面、左面、後面、下面に対応している。本例において、バッファ０〜バッファ５に書き込まれるピクセルデータは、例えば、バンプマップ６０はマッピングされているが、キューブ環境マップ６３はマッピングされていないシェーディング処理途中のデータである。処理途中のピクセルデータには、例えば、スクリーン座標ｘ、ｙ、ｚ、座標、及びピクセルの色等の描画情報に加えて、マップ位置情報が含まれる。ここまでの流れを、図１４Ａ〜図１４Ｄに示す。
【００７２】
まず、図１４Ａに示すように、例えば、ＣＰＵ７から出力された画面表示データ、例えば、ポリゴンをピクセル展開部２０に入力する。ピクセル展開部２０は、ポリゴンをピクセルデータに展開する。次に、ピクセルデータをシェーディング処理部２１に入力する。次に、シェーディング処理部２１で、ピクセルにシェーディング処理を施す。本例では、各ピクセルデータにバンプマップをマッピングする。この際、上述したように、各ピクセルデータが、キューブ環境マップ６３のどの面を映すのかが計算され、計算結果に従ったマップ位置情報がシェーディング処理部２１の出力に付加される。
【００７３】
次に、図１４Ｂ〜図１４Ｄに示すように、アドレス計算部５０は、シェーディング処理部２１の出力に付加されたマップ位置情報を読み取り、読み取ったマップ位置情報に従って書き込みアドレスを計算する。次に、計算結果に従ってバンプマッピングされたピクセルデータを前面、上面、右面、左面、後面、下面にソートし、６つのバッファ０〜バッファ５のいずれかに書き込む。
【００７４】
書き込み終了後の流れを、図１５Ａ〜図１５Ｄに示す。
【００７５】
まず、図１５Ａに示すように、例えば、バッファ０からバンプマッピングされたピクセルデータを読み出し、読み出したピクセルデータを、パス４０を介してシェーディング処理部２１に入力する。次に、テクスチャメモリ３０からキューブ環境マップの前面に対応したテーブルを読み出し、シェーディング処理部２１で、テーブルに記述されている前面の情報をピクセルにマッピングし、書き込みアドレス計算部５０を介してフレームバッファ３１に書き込む。本例では、フレームバッファ３１のうち、例えば、バッファ０に書き込む。
【００７６】
前面のマッピングが終了したら、図１５Ｂに示すように、例えば、バッファ１からバンプマッピングされたピクセルデータを読み出し、読み出したピクセルデータを、パス４０を介してシェーディング処理部２１に入力する。次に、テクスチャメモリ３０からキューブ環境マップの上面に対応したテーブルを読み出し、シェーディング処理部２１で、テーブルに記述されている上面の情報をピクセルにマッピングし、書き込みアドレス計算部５０を介してフレームバッファ３１に書き込む。本例では、フレームバッファ３１のうち、例えば、バッファ０に書き込む。
【００７７】
このような動作を、図１５Ｃに示すように、バッファ５まで繰り返す
ここで、書き込みアドレス計算部５０は、キューブ環境マップの面ごとに振り分けられたピクセルデータを、例えば、ピクセル展開方式に合うように戻し、フレームバッファ３１に書き込むようにしても良い。この時、環境マッピングされたピクセルデータは、一個のバッファに書き込まれるようにしても良い。本例では、バッファ０に書き込まれる。
【００７８】
次に、図１５Ｄに示すように、書き込まれたピクセルデータを、フレームバッファ３１から、例えば、スクリーンイメージとして読み出す。
【００７９】
本例によれば、ピクセルデータを、キューブ環境マップの前面、上面、右面、左面、後面及び下面に応じて振り分けるので、キューブ環境マップのテーブル引きの際、例えば、前面の次に下面というように、引かれるテーブルがランダムに変化することを抑制できる。
【００８０】
なお、第３実施形態では、バッファ０〜バッファ５をキューブ環境マップ６３の前面、上面、右面、左面、後面及び下面の６面に割り当てたが、キューブ環境マップ６３の各面のマップが大きければ、各面をいくつかのブロック、例えば、図１６Ａに示すように、４つのブロック６６に分割することも可能である。この場合、４ブロック×６面＝２４枚のブロック６６が得られる。２４枚のブロック６６を２４個のバッファ０〜バッファ２３に一つずつ割り当てるようにしても良い。もちろん、ブロックの分割数は任意である。
【００８１】
また、第３実施形態では、環境マップとしてキューブ環境マップを例示したが、環境マップはキューブ環境マップに限られるものではない。例えば、図１６Ｂに示すように球体環境マップ６７にも適用できる。図１６Ｂに示す例では、球体環境マップ６７が、上下４枚、合計８枚のブロック６６に分割されている。８枚のブロック６６を８個のバッファ０〜バッファ７に一つずつ割り当てることで、第３実施形態を、球体環境マップ６７に適用することが可能となる。もちろん、球体環境マップ６７においてもブロックの分割数は任意である。
【００８２】
以上、第３実施形態によれば、次のシェーディング処理、例えば、環境マップのテーブルを引く際、そのランダムアクセス性を軽減できる。
【００８３】
（第４実施形態）
本例は、オブジェクトに遠近感を出し、グラフィックスのリアル感を向上させる手法に関する。
【００８４】
図１７Ａには、深度（奥行き）の異なる３つのオブジェクト７１、７２、７３が示されている。本例ではオブジェクト７１が最も視点に近く、オブジェクト７２、７３の順で視点から遠ざかる。図１７Ｂは、オブジェクト７１、７２、７３を視点から見た図である。図１７Ｂでは、オブジェクト７１、７２、７３がシェーディングされていない状態を目視化している。この状態ではオブジェクト７１、７２、７３に遠近感は感じられない。遠近感を出すために、オブジェクト７１、７２、７３に対して、例えば、次のような処理を行う。
【００８５】
オブジェクト７１、７２、７３の深度、例えば、視点からの距離を計算し、図１８Ａ〜図１８Ｃに示すように、オブジェクト７１、７２、７３を深度別に振り分ける。この振り分けはプログラムで実行され、例えば、ＣＰＵ７で処理される。この後、深度別に振り分けたオブジェクト７１、７２、７３を、視点から遠い順に順次ＧＰＵ８に入力し、描画する。
【００８６】
まず、図１９Ａに示すように、視点から最も遠い位置にあるオブジェクト７３を描画する。そして、ある範囲、例えば、オブジェクト７３全体の描画を終えたら、図１９Ｂに示すように、オブジェクト７３の深度、例えば、視点もしくは焦点からのずれに見合ったフィルタをオブジェクト７３にかけ、オブジェクト７３をぼかす。
【００８７】
次に、図１９Ｃに示すように、２番目に遠い位置にあるオブジェクト７２を上記同様に描画し、例えば、オブジェクト７２全体の描画を終えたら、図１９Ｄに示すように、例えば、視点もしくは焦点からのずれに見合ったフィルタをオブジェクト７２にかけ、オブジェクト７２をぼかす。この後、図１９Ｅに示すように、オブジェクト７２を、ぼかし済みのオブジェクト７３にマージする。
【００８８】
次に、図１９Ｆに示すように、視点から最も近いオブジェクト７１を描画し、例えば、オブジェクト７１全体の描画を終えた後、図１９Ｇに示すように、オブジェクト７１を、ぼかし済みのオブジェクト７２、７３にマージする。なお、オブジェクト７１には焦点が合っている。焦点が合ったオブジェクトは、例えば、ぼかさなくて良い。
【００８９】
又は、図２０Ａ〜図２０Ｃに示すように、プログラムで深度別に振り分けたオブジェクト７１、７２、７３を順次描画し、別々のバッファにそれぞれ書き込む。次に、図２０Ｄ、図２０Ｅに示すように、焦点からずれているオブジェクト７２、７３に対して、各バッファで、例えば、視点もしくは焦点からのずれに見合うように異なるぼかしをかける。この後、図２０Ｅに示すように、オブジェクト７１、ぼかし済みのオブジェクト７２、７３をマージする。
【００９０】
以上のような処理を施すことで、オブジェクト７１、７２、７３には遠近感が出て、グラフィックスのリアル感が増す。
【００９１】
しかし、上記手法は、オブジェクト７１、７２、７３ごと、もしくはオブジェクト７１、７２、７３を構成するポリゴンごとにぼかしをかける手法であり、リアル感の、さらなる向上には限界がある。
【００９２】
また、オブジェクト７１、７２、７３の深度別の振り分けは、プログラムで実行され、例えば、ＣＰＵ７で処理される。このため、ＣＰＵ７の作業が増える、という事情がある。
【００９３】
そこで、第４実施形態では、次のような処理を行う。概要を述べれば、第３実施形態では、ピクセルデータをキューブ環境マップの面ごとにソートし、ピクセルデータをキューブ環境マップの面ごとにシェーディングする、という処理を踏襲し、ピクセルデータを深度別にソートし、ピクセルデータを深度別にぼかしをかけていく、という処理である。第４実施形態では、最後に、各ピクセルデータをマージする。
【００９４】
図２１は、この発明の第４実施形態に係るＧＰＵ及びビデオメモリを示すブロック図である。
【００９５】
図２１に示すように、第４実施形態は、第３実施形態と同様に、書き込みアドレス計算部５０を有し、フレームバッファ３１は、ｋ−１個のバッファ０〜バッファｋに分かれている。
【００９６】
第４実施形態では、ＧＰＵ８入力前に、オブジェクト７１、７２、７３を深度別に振り分けない。ピクセル展開部２０には、深度別振り分けをしていないオブジェクト７１、７２、７３が、例えば、直接に入力される。オブジェクト７１、７２、７３はそれぞれ複数のポリゴン（図示せず）から構成されている。複数のポリゴンには、描画データの他、深度情報が含まれている。ピクセル展開部２０は、ポリゴンをピクセルデータに展開する。ピクセルデータは、シェーディング処理部２１に入力され、シェーディング処理が施され、シェーディング処理部２１から出力される。シェーディングされたピクセルデータは、書き込みアドレス計算部５０に入力される。書き込みアドレス計算部５０は、シェーディングされたピクセルデータに含まれた深度情報を読み取り、ピクセルデータを深度に応じてソートし、バッファ０〜バッファｋのいずれかに書き込む。
【００９７】
書き込みが終了したら、例えば、バッファ０からピクセルデータを読み出し、読み出したピクセルデータを、例えば、パス４０及びテクスチャメモリ３０を介してシェーディング処理部２１に入力する。次に、入力されたピクセルデータに、深度に応じたぼかしをかける。
【００９８】
次に、例えば、バッファ１からピクセルデータを読み出し、読み出したピクセルデータを、例えば、パス４０及びテクスチャメモリ３０を介してシェーディング処理部２１に入力する。次に、入力されたピクセルデータに、深度に応じたぼかしをかける。
【００９９】
このような動作を、バッファｋまで繰り返す。
【０１００】
深度別のぼかしが終了したら、ぼかしがかけられた各ピクセルデータを、シェーディング処理部２１から、書き込みアドレス計算部５０を介してフレームバッファ３１に書き込み、フレームバッファ３１で各ピクセルデータをマージする。
以上、第４実施形態によれば、遠近感を出すためのぼかしを、オブジェクト単位やポリゴン単位では無く、ピクセル単位で実行する。このため、ピクセル単位でぼかしのかけ方を変えることができ、オブジェクト単位やポリゴン単位でぼかしのかけ方を変える手法に比較し、より細かにぼかしをかけることができ、グラフィックスのリアル感を、より向上させることができる。
【０１０１】
また、第４実施形態では、ＧＰＵ８への入力前に、オブジェクト７１、７２、７３の深度別の振り分けは行わなくて良い。このため、例えば、ＣＰＵ７が行う作業を減らすことができ、ＣＰＵ７の作業量を軽減できる。
【０１０２】
また、ＧＰＵ８への入力前に、オブジェクト７１、７２、７３を深度別に振り分けた場合には、振り分けたオブジェクト７１、７２、７３を順次、一つ一つ描画しなくてはならない。
【０１０３】
対して、第４実施形態によれば、ＧＰＵ８への入力前に、オブジェクト７１、７２、７３の深度別の振り分けないので、オブジェクト７１、７２、７３を一度に描画できる。このため、オブジェクト７１、７２、７３を順次、一つ一つ描画する場合に比較して、処理速度を向上することが可能である。
【０１０４】
なお、第４実施形態において、ビデオメモリ１３に、深度別に多数のバッファ０〜バッファｋを持たせる余裕が無い場合には、ある範囲のピクセルのみ描画してぼかしをかけ、描画範囲を変えながら、描画及びぼかしを繰り返すようにしても良い。
【０１０５】
（第５実施形態）
本第５実施形態は、第１〜第４実施形態に係るグラフィックスプロセッサを利用したグラフィックスカードの一例である。グラフィックスカードは、ビデオカード、ビデオボードとも呼ばれ、例えば、パーソナルコンピュータに組み込まれ、パーソナルコンピュータの機能拡張等に使用される。
【０１０６】
図２２は、この発明の第５実施形態に係るグラフィックスカードの一例を示すブロック図である。
【０１０７】
図２２に示すように、グラフィックスカード７５は、回路ボード７６上に配置されたＧＰＵ８、ビデオメモリ１３、Ｄ／Ａコンバータ１４、インターフェースコネクタ７７及びディスプレイコネクタ７８を有する。
【０１０８】
インターフェースコネクタ７７は、カード７５を、カード７５外の電子機器に接続する電気的接点である。例えば、インターフェースコネクタ７７は、ＧＰＵ８を、図２を参照して説明したバス・ブリッジ６もしくはＣＰＵ７に接続する。インターフェースコネクタ７７を介して入力された画面表示データ（ＩＭＧ．Ｄ．Ｄ．）、例えば、ポリゴンは、配線７９を介してＧＰＵ８に伝えられる。カード７５を制御する制御信号（ＣＮＴ）は、配線７９を介して、例えば、ＧＰＵ８とＣＰＵ７との間でやりとりされる。
【０１０９】
ＧＰＵ８は、配線８０を介してビデオメモリ１３に接続される。本例では、ビデオメモリ１３として４つのメモリ８１が用意されており、例えば、２つをテクスチャメモリ３０として使用し、残りの２つをフレームバッファ３１として使用している。ＧＰＵ８が出力したピクセルデータ（ＰＩＸ．Ｄ．）は、配線８０を介してビデオメモリ１３に入力される。また、ビデオメモリ１３は、ピクセルデータ（ＰＩＸ．Ｄ．）、スクリーンイメージ（ＳＣＲ．ＩＭＧ．）、並びにテクスチャデータ及びマップデータ（Ｔ／Ｍ．Ｄ．）を出力する。これらデータは、配線８０を介してＧＰＵ８に入力される。
【０１１０】
さらに、ＧＰＵ８は、配線８２を介してＤ／Ａコンバータ１４に接続される。ビデオメモリ１３が出力したスクリーンイメージ（ＳＣＲ．ＩＭＧ．）は、ＧＰＵ８及び配線８２を介してＤ／Ａコンバータ１４に入力される。
【０１１１】
Ｄ／Ａコンバータ１４は、配線８３を介してディスプレイコネクタ７８に接続される。ディスプレイコネクタ７８は、カード７５を、カード７５外のディスプレイに接続する電気的接点である。Ｄ／Ａコンバータ１４は、デジタル情報であるスクリーンイメージ（ＳＣＲ．ＩＭＧ．）を、アナログ情報であるビデオ信号（ＶＩＤ．ＳＧＬ．）に変換し、ビデオ信号（ＶＩＤ．ＳＧＬ．）を配線８３及びディスプレイコネクタ７８を介してディスプレイに出力する。
【０１１２】
図２２に示すＧＰＵ８には、第１〜第４実施形態で説明したＧＰＵ８が使用される。
【０１１３】
図２３は図２２に示すＧＰＵ８の一例を示すブロック図である。本一例に係るＧＰＵ８は、パス４０及び書き込みアドレス計算部５０をそれぞれ有する。
【０１１４】
図２３に示すように、画像表示データ（ＩＭＧ．Ｄ．Ｄ．）は、システム・Ｉ／Ｆ９を介してピクセル展開部２０に入力される。ピクセル展開部２０は、画像表示データ（ＩＭＧ．Ｄ．Ｄ．）をピクセルに展開してピクセルデータ（ＰＩＸ．Ｄ．）を出力し、シェーディング処理部２１のＰＩＸ．Ｄ．入力８４に入力する。シェーディング処理部２１は、例えば、上記第１〜第４実施形態で説明した処理を行う。シェーディング処理部２１は、上記第１〜第４実施形態で説明した処理を行った後、ピクセルデータ（ＰＩＸ．Ｄ．）を、ＰＩＸ．Ｄ．出力８６、書き込みアドレス計算部５０、システム・Ｉ／Ｆ９及びメモリ・Ｉ／Ｆ１１を介してビデオメモリ１３に出力する。ここで、例えば、第２、第３、第４実施形態で説明したように、ビデオメモリ１３の、例えば、フレームバッファ３１への書き込みアドレスを変更する場合には、書き込みアドレス計算部５０で書き込みアドレスを変更したのち、ピクセルデータ（ＰＩＸ．Ｄ．）を出力する。
【０１１５】
ビデオメモリ１３から出力されたピクセルデータ（ＰＩＸ．Ｄ．）は、メモリ・Ｉ／Ｆ１１、システム・Ｉ／Ｆ９及びパス４０を介して、シェーディング処理部２１のＰＩＸ．Ｄ．入力８４に入力される。こののち、シェーディング処理部２１は、例えば、上記第１〜第４実施形態で説明した処理を行う。この処理に際し、例えば、第１〜第４実施形態で説明したように、テーブルを使用する、あるいは描画途中のピクセルデータを使用する場合には、シェーディング処理部２１は、メモリ・Ｉ／Ｆ１１及びシステム・Ｉ／Ｆ９、Ｔ／Ｍ．Ｄ．入力８５を介してテクスチャデータ及びマップデータ（Ｔ／Ｍ．Ｄ．）、並びに描画途中のピクセルデータを受け取る。シェーディング処理部２１は、上記第１〜第４実施形態で説明した処理を行った後、ピクセルデータ（ＰＩＸ．Ｄ．）を、ＰＩＸ．Ｄ．出力８６、書き込みアドレス計算部５０、システム・Ｉ／Ｆ９及びメモリ・Ｉ／Ｆ１１を介してビデオメモリ１３に出力する。
【０１１６】
ビデオメモリ１３から出力されたスクリーンイメージ（ＳＣＲ．ＩＭＧ．）は、メモリ・Ｉ／Ｆ１１、システム・Ｉ／Ｆ９及び画像出力部１２を介して、Ｄ／Ａコンバータ１４に出力される。
【０１１７】
このように、この発明の第１〜第４実施形態に係るグラフィックスプロセッサ及びビデオメモリを利用して、グラフィックスカード７５を構築することも可能である。
【０１１８】
（第６実施形態）
図２４Ａ及び図２４Ｂはそれぞれ、ピクセルデータをテクスチャメモリ３０に入力する入力方法を示す図である。
【０１１９】
例えば、第１実施形態で説明した通り、フレームバッファ３１に書き込んだピクセルデータ（ＰＩＸ．Ｄ．）をテクスチャメモリ３０に入力する際、パス４０を介してシェーディング処理部２１に入力し、シェーディング処理部２１からテクスチャメモリ３０に入力する方法（図２４Ａ）と、パス４０を介してフレームバッファ３１からテクスチャメモリ３０に入力する方法（図２４Ｂ）との二通りがある。
【０１２０】
これらの使い方の一例は、上述した通り、描画が進んでいないピクセルデータは、ピクセル展開部２０の出力に戻し、ピクセル展開部２０の出力を介してシェーディング処理部２１に直接に戻し、描画が進んだピクセルデータは、シェーディング処理部２１に直接に戻さず、一旦、テクスチャメモリ３０に入力し、テクスチャメモリ３０の出力を介してシェーディング処理部２１に戻す。
【０１２１】
ピクセルデータを、一旦、テクスチャメモリ３０に入力する場合には、次の２通りの方式が考えられる。
【０１２２】
例えば、ビデオメモリ１３が外付けであり、グラフィックスカード７５に搭載される場合には、例えば、図２５Ａに示すように、ビデオメモリ１３のフレームバッファ３１とテクスチャメモリ３０とを接続するパス８７を新たに設定し、ピクセルデータを、新たに設定したパス８７を介して、フレームバッファ３１からテクスチャメモリ３０に入力する。この場合には、グラフィックスカード７５のシステムは変更される。
【０１２３】
また、例えば、グラフィックスカード７５のシステムを変更したくない場合には、図２５Ｂに示すように、ピクセルデータを、フレームバッファ３１からＧＰＵ８に入力した後、ＧＰＵ８からテクスチャメモリ３０に入力する。
【０１２４】
図２５Ｂに示すように、ピクセルデータを、ＧＰＵ８を介してテクスチャメモリ３０に入力する場合には、ピクセルデータが、ＧＰＵ８のシェーディング処理部２１に到達する前にＧＰＵ８内で折り返し、テクスチャメモリ３０に入力する。ピクセルデータをＧＰＵ８の何処で折り返すかは、任意である。本例では、一例として、メモリ・Ｉ／Ｆ１１で折り返す例を示している。メモリ・Ｉ／Ｆ１１は、ピクセルデータを受ける。ピクセルデータがシェーディング処理部２１に入力するべきものである場合には、メモリ・Ｉ／Ｆ１１は、ピクセルデータをシステム・Ｉ／Ｆ９を介してシェーディング処理部２１に入力する。反対に、ピクセルデータがテクスチャメモリ３０に入力するべきものである場合には、メモリ・Ｉ／Ｆ１１は、ピクセルデータを折り返し、テクスチャメモリ３０に入力する。
【０１２５】
第６実施形態のうち、図２５Ａに示す例では、ピクセルデータを、フレームバッファ３１からテクスチャメモリ３０に直接入力するので、処理の高速性に優れている。反面、ビデオメモリ１３が外付けであり、ＧＰＵ８と別のチップであった場合、フレームバッファ３１とテクスチャメモリ３０とを接続するパス８７を設定する必要がある。このため、例えば、グラフィックスカード７５のシステムを変更する必要がある。
【０１２６】
対して、図２５Ｂに示す例ではバス８７を設定する必要がなく、グラフィックスカード７５のシステムを変更しなくて済む、という利点がある。
【０１２７】
このように、ピクセルデータを、テクスチャメモリ３０の出力を介してシェーディング処理部２１に戻す場合には、ピクセルデータを、フレームバッファ３１からテクスチャメモリ３０に直接入力するか、フレームバッファ３１からＧＰＵ８を介してテクスチャメモリ３０に入力するかの二通りの方式がある。これら方式のどちらを使うかは、必要に応じて決定されれば良い。
【０１２８】
以上、この発明を第１〜第６実施形態により説明したが、この発明は、これら実施形態それぞれに限定されるものではなく、その実施にあたっては、発明の要旨を逸脱しない範囲で種々に変形することが可能である。
【０１２９】
例えば、上記実施形態係るＧＰＵ８では、図２６Ａに示すように、ビデオメモリ１３を、ＧＰＵ８とは別のＬＳＩチップとして有していたが、図２６Ｂに示すように、ビデオメモリ１３、即ちテクスチャメモリ３０及びフレームバッファ３１を、ＧＰＵ８のＬＳＩチップ内に集積しても良い。
【０１３０】
さらに、ビデオメモリ１３として専用のメモリを設けなくても、例えば、図２６Ｃに示すように、ビデオメモリ１３の機能をＣＰＵメモリ１５にシェアすることも可能である。また、図２６Ｄに示すように、ビデオメモリ１３の機能を電子機器のメインメモリ１７もしくはハードディスク４にシェアすることも可能である。
【０１３１】
また、上記実施形態はそれぞれ、単独で実施することが可能であるが、適宜組み合わせて実施することも、もちろん可能である。
【０１３２】
また、上記各実施形態には、種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
【０１３３】
【発明の効果】
この発明によれば、演算能力及び処理速度を向上させることが可能なグラフィックスプロセッサ、グラフィックスカード及びグラフィックス処理システムを提供できる。
【図面の簡単な説明】
【図１】図１Ａ〜図１Ｃはこの発明の第１実施形態の参考例に係るグラフィックスプロセッサの動作を示す図
【図２】図２はこの発明が適用されるグラフィックス処理システムの一例を示すブロック図
【図３】図３はグラフィックスプロセッサの一例を示すブロック図
【図４】図４はこの発明の第１実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図５】図５Ａ〜図５Ｅはこの発明の第１実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図６】図６はこの発明の第２実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図７】図７はピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図
【図８】図８はピクセル展開部の出力順序とフレームバッファへの書き込み順序との関係を示す図
【図９】図９はこの発明の第３実施形態の参考例に係るグラフィックスプロセッサの動作を示す図
【図１０】図１０はこの発明の第３実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図１１】図１１Ａはバンプマップ、視線ベクトル及び反射ベクトルとキューブ環境マップとの関係を示す図、図１１Ｂはバンプマップとキューブ環境マップとを用いたシェーディング処理の手順の一例を示す図
【図１２】図１２はこの発明の第３実施形態に係るグラフィックスプロセッサ及びビデオメモリの具体的一例を示すブロック図
【図１３】図１３はキューブ環境マップの各面とバッファとの関係を示す図
【図１４】図１４Ａ〜図１４Ｄはこの発明の第３実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図１５】図１５Ａ〜図１５Ｄはこの発明の第３実施形態に係るグラフィックスプロセッサ及びビデオメモリの動作の一例を示す図
【図１６】図１６Ａはキューブ環境マップを示す図、図１６Ｂは球体環境マップを示す図
【図１７】図１７Ａは深度の異なるオブジェクトを示す図、図１７Ｂは深度の異なるオブジェクトを視点から見た図
【図１８】図１８Ａ〜図１８Ｃは深度別に振り分けたオブジェクトを示す図
【図１９】図１９Ａ〜図１９Ｇはこの発明の第４実施形態の参考例に係るグラフィックスプロセッサの描画手順を示す図
【図２０】図２０Ａ〜図２０Ｆはこの発明の第４実施形態の別の参考例に係るグラフィックスプロセッサの描画手順を示す図
【図２１】図２１はこの発明の第４実施形態に係るグラフィックスプロセッサ及びビデオメモリを示すブロック図
【図２２】図２２はこの発明の第５実施形態に係るグラフィックスカードの一例を示すブロック図
【図２３】図２３は図２２に示すＧＰＵ８の一例を示すブロック図
【図２４】図２４Ａ及び図２４Ｂはピクセルデータをテクスチャメモリに入力する入力方法を示す図
【図２５】図２５Ａはこの発明の第６実施形態に係るグラフィックスプロセッサ及びビデオメモリの一例を示す図、図２５Ｂはこの発明の第６実施形態に係るグラフィックスプロセッサ及びビデオメモリの他を示すブロック図
【図２６】図２６Ａ乃至図２６Ｄは第１〜第６実施形態の変形例を示す図
【符号の説明】
１…インターフェースバス、２…コントローラ、３…ＤＶＤドライブ、４…ハードディスク、５…通信装置、６…バス・ブリッジ、７…ＣＰＵ、８…グラフィックスプロセッサ（ＧＰＵ）、９…システム・インタフェース、１０…グラフィックス描画部、１１…メモリ・インタフェース、１２…画像出力部、１３…ビデオメモリ、１４…Ｄ／Ａコンバータ、１５…ＣＰＵメモリ、１６…ジオメトリ処理部、１７…メインメモリ、２０…ピクセル展開部、２１…シェーディング処理部、３０…テクスチャメモリ３０…フレームバッファ、４０、８７…パス、５０…アドレス計算部、６０…バンプマップ、６１…視線ベクトル、６２…反射ベクトル、６３…キューブ環境マップ、６４…斜面、６５…頂点、６６…ブロック、７１、７２、７３…オブジェクト、７５…グラフィックスカード、７６…回路ボード、７７…インターフェースコネクタ、７８…ディスプレイコネクタ、７９、８０、８２、８３…配線、８１…メモリ、８４…ピクセルデータ入力、８５…テクスチャデータ及びマップデータ入力、８６…ピクセルデータ出力
【図１】
2004317878.tif 000003
【図２】
2004317878.tif 000004
【図３】
2004317878.tif 000005
【図４】
2004317878.tif 000006
【図５】
2004317878.tif 000007
【図６】
2004317878.tif 000008
【図７】
2004317878.tif 000009
【図８】
2004317878.tif 000010
【図９】
2004317878.tif 000011
【図１０】
2004317878.tif 000012
【図１１】
2004317878.tif 000013
【図１２】
2004317878.tif 000014
【図１３】
2004317878.tif 000015
【図１４】
2004317878.tif 000016
【図１５】
2004317878.tif 000017
【図１６】
2004317878.tif 000018
【図１７】
2004317878.tif 000019
【図１８】
2004317878.tif 000020
【図１９】
2004317878.tif 000021
【図２０】
2004317878.tif 000022
【図２１】
2004317878.tif 000023
【図２２】
2004317878.tif 000024
【図２３】
2004317878.tif 000025
【図２４】
2004317878.tif 000026
【図２５】
2004317878.tif 000027
【図２６】
2004317878.tif 000028