(57)【特許請求の範囲】
【請求項１】
エンボス型バンプマッピングを行うグラフィックス処理システムであって、
ポリゴンの複数の頂点の各々の接線および従法線ベクトルデータを記述する頂点アトリビュート記述子を与える手段、
ライト方向ベクトルを計算する手段、
前記ライト方向ベクトルと前記接線および従法線ベクトルデータとに応答して前記頂点の各々のテクスチャ座標変位を計算する手段、
前記計算したテクスチャ座標変位に応答してテクスチャ座標値を発生する手段、および
エンボス効果を与えるために前記テクスチャ座標値に基づいて前記ポリゴンをテクスチャマッピングする手段を含み、
テクスチャ座標変位計算手段が前記テクスチャ座標変位を計算するために法線ベクトルデータを使用しない、グラフィックス処理システム。
【請求項２】
前記頂点毎のデータは少なくとも、法線，接線，および従法線ベクトルを含む、請求項１記載のグラフィックス処理システム。
【請求項３】
さらに、接線および従法線ベクトルを目空間へ変換する手段を備える、請求項１記載のグラフィックス処理システム。
【請求項４】
テクスチャ座標変位計算手段は、計算したライト方向ベクトルと接線および従法線ベクトルとの間でベクトル内積計算を行う手段を含む、請求項１記載のグラフィックス処理システム。
【請求項５】
ライト方向ベクトル計算手段は少なくとも正規化したライト−頂点間ベクトルを計算する手段を含む、請求項１記載のグラフィックス処理システム。
【請求項６】
エンボス型バンプマッピングを行うグラフィックス処理システムであって、
エンボス型バンプマッピングテクスチャ変位を発生することを特定する一般化したテクスチャ座標発生関数をデコードする手段、
デコード手段に応答して従法線およびライト方向情報に基づいて入力テクスチャ座標を乱す手段、
高さフィールドバンプマップにおいてテクセルをルックアップするために入力テクスチャ座標と乱されたテクスチャ座標とを使用する手段、
テクセル値に基づいてバンプ高さ情報を計算する手段、および
エンボス型バンプマッピングを与えるためにバンプ高さ情報をピクセルカラー情報に結合する手段を含む、グラフィックス処理システム。
【請求項７】
乱す手段はハードウェア中において行われる、請求項６記載のグラフィックス処理システム。
【請求項８】
乱す手段は、接線ベクトルおよび従法線ベクトルならびにライト方向ベクトルと各ベクトルとの内積に基づいてテクスチャ座標変位値を計算する手段を含む、請求項６記載のグラフィックス処理システム。
【請求項９】
計算手段は、入力テクスチャ座標を用いて獲得したテクセルデータから乱されたテクスチャ座標を用いて獲得したテクセルデータを減算する手段を含む、請求項６記載のグラフィックス処理システム。
【請求項１０】
デコード手段は、接線ベクトルおよび従法線ベクトルを特定する一般化した頂点アトリビュート記述関数をデコードする手段を含む、請求項６記載のグラフィックス処理システム。
【請求項１１】
接線および従法線ベクトルは別のメモリインデックスを参照することによって特定される、請求項１０記載のグラフィックス処理システム。
【請求項１２】
プロセサ、および変換およびライティング回路を有する別のグラフィクス処理パイプラインを含むグラフィクスシステムにおいて、
パイプラインがポリゴンの複数の頂点の各々の接線および従法線から計算したテクスチャ座標変位に応答してテクセルに基づいてエンボス型バンプマッピングを行い、
グラフィクスパイプラインの頂点変換およびライティング回路中にテクスチャ座標変位計算回路を設けたことを特徴とする、システム。
【請求項１３】
プロセサ、および別のグラフィクス処理パイプラインを含むグラフィクスシステムにおいて、
パイプラインがポリゴンの複数の頂点の各々の接線および従法線から計算したテクスチャ座標変位に応答してテクセルに基づいてエンボス型バンプマッピングを行い、
テクスチャ座標変位計算をパイプライン内で行うようにしたことを特徴とする、システム。
【請求項１４】
頂点変換およびライティング処理ハードウェアと、少なくとも接線および従法線のオブジェクト空間表面ベクトルを特定するための増強されたＡＰＩ頂点アトリビュート記述コマンド関数とを有し、ジオメトリ処理およびライティングハードウェアがオブジェクト空間の接線および従法線ベクトルを目空間へ変換し、ライト位置および頂点位置に基づいて目空間のライト方向ベクトルを計算し、そしてエンボステクスチャ効果を創る際に使用するためのテクスチャ座標変位を発生するために計算したライト方向ベクトルと変換した接線および従法線表面ベクトルとの間のベクトル内積計算を行うグラフィクス処理システムにおいて、
接線および従法線ベクトルは、モデルビューマトリクスをスケーリングしかつ接線および従法線ベクトルへそのスケーリングしたモデルビューマトリクスを適用することによってスケーリングされることを特徴とする、グラフィクス処理システム。
【請求項１５】
関連のメモリ中にストアされているポリゴン頂点アトリビュートデータおよびテクスチャカラーデータに少なくとも部分的に応答してイメージをレンダリングしかつ表示するグラフィクス処理システムにおいて、
ハードウェアにおいて実現された頂点変換およびライティング処理部分が、
ベクトル内積を計算するために少なくとも２つの別個の内積計算回路を含むベクトル処理ユニット、および
エンボステクスチャ効果を創る際に使用するために少なくとも正規化したライト−頂点間ベクトルおよびテクスチャ変位値のセットを計算するためのバンプマッピングユニットを備えることを特徴とする、グラフィクス処理システム。
【請求項１６】
関連のメモリにストアされているポリゴン頂点アトリビュートデータおよびテクスチャカラーデータに少なくとも部分的に応答してイメージをレンダリングしかつ表示するグラフィクス処理システムであって、少なくともエンボス型バンプマッピングテクスチャ効果を実現するためのテクスチャ座標変位値を発生するための頂点変換およびライティング処理ハードウェアを含み、
頂点変換およびライティング処理ハードウェアは
ベクトルデータを目空間へ変換するための第１のベクトル内積計算ユニット、
ライティング方向のベクトル内積を計算するための第２のベクトル内積計算ユニット、
入力値の交互の平方根を計算するための逆平方根計算ユニット、
少なくとも１つの浮動小数点乗算器ユニット、および
少なくとも１つの浮動小数点加算器ユニットを備え、
ＡＰＩバンプマッピング関数命令に応答して頂点変換およびライティング処理ハードウェアが頂点毎のベクトルデータを目空間へ変換し、ライティング方向のベクトル内積に基づいてテクスチャ座標変位値を計算し、そしてエンボス型バンプマッピングテクスチャ効果を生成する際に使用するために変位値をテクスチャ座標に加算する、グラフィクス処理システム。
【請求項１７】
頂点毎に少なくとも法線，接線および従法線ベクトルを特定しもしくはメモリ中にストアされているこれらのベクトルの少なくとも各々へのインデックスを特定するグラフィクスＡＰＩ頂点アトリビュート関数をさらに含む、請求項１６記載のグラフィクス処理システム。
【請求項１８】
ＡＰＩバンプマッピング関数はエンボス効果を生成するための少なくとも８つの異なるテクスチャのいずれかを特定するように定義されている、請求項１６記載のグラフィクス処理システム。
【請求項１９】
法線，接線および従法線ベクトルはそれぞれ３２ビットのベクトル要素を含む、請求項１６記載のグラフィクス処理システム。
【請求項２０】
関連のメモリにストアされているポリゴンの頂点アトリビュートデータおよびテクスチャカラーデータに少なくとも部分的に応答してイメージをレンダリングしかつ表示し、少なくとも座標空間変換およびベクトル内積を計算するためのハードウェアを含むジオメトリ変換ユニットを備え、エンボス型バンプマッピングテクスチャ効果を実現するグラフィクス処理システムであって、
メモリ中に、イメージをマッピングするための２つの直交軸を表す少なくとも２つの座標値によってパラメータ化されたカラー値を含むテクスチャデータイメージをストアする手段、および
ライト位置情報，テクスチャ座標情報，頂点位置情報およびポリゴンの頂点毎のオブジェクト空間の法線，従法線および接線ベクトルデータをジオメトリ変換ユニットに供給する手段を含み、
その頂点毎の前記従法線および接線ベクトルデータはそれぞれオブジェクト空間座標系においてバンプマップイメージの各直交軸へマッピングし、さらに
オブジェクト空間の法線，従法線および接線ベクトルデータを目空間座標系へ変換する手段、
ライト位置および頂点位置情報からライト方向ベクトルを計算する手段、
ライト方向ベクトルと従法線および接線の目空間ベクトル成分の各々との間のベクトル内積に基づいてテクスチャ座標変位を計算する手段、
変位されたテクスチャ座標のセットを得るためにテクスチャ座標変位を目空間テクスチャ座標へ加算する手段、
変位されたテクスチャ座標のセットを使用してストアされたテクスチャデータイメージからテクスチャカラーデータを抽出する手段、および
１つのパスでテクスチャ減算を行う手段を含む、グラフィックス処理システム。
【請求項２１】
エンボス型バンプマッピングを行うグラフィックス処理システムであって、
ポリゴンの複数の頂点の各々の接線および従法線ベクトルの記述を与える手段、
ライト方向ベクトルを与える手段、
前記ライト方向ベクトルと前記接線および従法線ベクトルとに応答して前記頂点の各々のテクスチャ座標変位を計算する手段、
前記計算したテクスチャ座標変位に応答してテクスチャ座標を発生する手段、および
１つのパスでテクスチャ減算を行うテクスチャ結合演算を与える手段を含んで、前記テクスチャ座標に基づいて前記ポリゴンをテクスチャマッピングする手段を含む、グラフィックス処理システム。
【請求項２２】
前記テクスチャ結合手段はテクスチャハードウェアにおいて行われる、請求項２１記載のグラフィックス処理システム。
【請求項２３】
さらに、モデルビューマトリクスをスケーリングしかつそのスケーリングしたモデルビューマトリクスをベクトルデータに付与することによって接線および従法線ベクトルデータをスケーリングする手段を含む、請求項２１記載のグラフィックス処理システム。
【請求項２４】
テクスチャ座標変位計算手段は法線ベクトルを使用しない、請求項２１記載のグラフィックス処理システム。
【請求項２５】
テクスチャ座標変位計算手段は、
ライト方向ベクトルと接線ベクトルとの間の第１のベクトル内積、ライト方向ベクトルと従法線ベクトルとの間の第２のベクトル内積、およびライト方向ベクトルの平方を並列的に計算する、請求項２１記載のグラフィックス処理システム。
【請求項２６】
テクスチャ座標変位計算手段は２つの別個の内積計算ユニットを用いて行われ、第１の内積計算ユニットは接線および従法線ベクトルの目空間変換を計算し、第２の内積計算ユニットはライト方向ベクトルと接線および従法線ベクトルの各々との間の少なくともベクトル内積を計算する、請求項２１記載のグラフィックス処理システム。
【請求項２７】
ロジックアレイ，およびそのロジックアレイ中に設けられ、ポリゴンの複数の頂点の各々の接線および従法線ベクトルとライト方向ベクトルとに基づいてエンボス型バンプマッピングを行うパイプライン構成を含むグラフィクスチップにおいて、
前記パイプライン構成が、内積計算ユニットおよびスケーリングファクタを受けるようにされた関連するロジック回路を含み、その内積計算ユニットおよび関連するロジック回路はスケーリングファクタに応答してモデルビューマトリクスをスケーリングしかつそのスケーリングしたモデルビューマトリクスを接線および従法線ベクトルに付与して前記頂点の各々のテクスチャ座標変位を与え、さらに前記テクスチャ座標変位に応答してエンボス効果を発生するテクスチャマッピングおよび結合回路を含む、グラフィクスチップ。
【請求項２８】
前記テクスチャマッピングおよび結合回路は１つのパスでテクスチャ減算を行う、請求項２７記載のグラフィクスチップ。
【請求項２９】
内積計算ユニットは変位を計算するために法線入力ベクトルを使用しない、請求項２７記載のグラフィクスチップ。
【請求項３０】
さらに、従法線および接線ベクトルとライト方向ベクトルとの間の内積を並列的に計算する別の内積計算ユニットを含む、請求項２７記載のグラフィクスチップ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明はコンピュータグラフィクスに関し、より特定的には、家庭用ビデオゲームプラットフォームのようなインタラクティブなグラフィクスシステムに関する。さらに特定的には、この発明は、レンダリングしたオブジェクト上での拡散光テクスチャのためのエンボス型バンプマッピング(emboss-style bump-mapping)効果を実現するテクスチャ座標変位の効率的な発生に関する。
【０００２】
【発明の背景および発明の概要】
多くの人々はかなりリアルな恐竜，エイリアン，生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き，各オブジェクトを照らすように見える照明の方向，各オブジェクトの表面テクスチャ，および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【０００３】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された３次元（３Ｄ）グラフィクスは、ほとんど高価な特殊なフライトシミュレータ，ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64（登録商標）や今や利用可能であるパソコン用の種々の３Ｄグラフィクスカードのような比較的安価な３Ｄグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな３Ｄアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【０００４】
グラフィクスシステム設計者が過去に直面した問題は、たとえば、ランダムな表面の傷(flaws)，でこぼこ(irregularities, roughness)，隆起(バンプ：bump)，あるいは他の非平滑表面変形を有する実際のオブジェクトの表面と同じような態様で、種々のライティング(lighting) 条件に反応する本物らしく見える表面特性をもって、３Ｄオブジェクトを如何にテクスチャリングするかである。いくつかの例ではそのような微小な表面特性が実際にモデリングされ得たかもしれないが、そのような複雑な表面を３Ｄオブジェクトにトランスレートしかつレンダリングするために要する時間は、大部分のリアルタイムでのもしくはインタラクティブなゲームアプリケーションをほとんど不可能にする。したがって、この問題に対する種々のソリューションが提案されている。たとえば、一般的に「バンプマッピング」として知られている技術が開発され、それによって、非平坦表面の変化をライティングされたオブジェクト上に生成するという効果を近似することができる。たとえば、ＪＦブリンの「しわのある表面のシミュレーション」コンピュータグラフィクス、（ＳＩＧＲＡＰＨ’７８会報）、ｖｏｌ．１２，Ｎｏ． ３、ｐｐ．２８６−２９２（１９７８年８月）；「コンピュータ合成画像のための光反射のモデル」、コンピュータグラフィクスおよび教育的技術の第４回会議の会報（１９７７年）；およびトム・マクリノルズおよびデビット・ブライスによる「オープンＧＬでのプログラミング：先進レンダリング」ＳＩＧＲＡＰＨ９７年コースの第８．３章の「テクスチャによるバンプマッピング」を参照されたい。基本的に、バンプマッピングによれば、グラフィクスアプリケーションのプログラマは、微小表面変化を高低差(height difference) としてモデリングし、かつ次いで、それらの差の値を表面ライティング効果を計算する際に用いる表面の法線ベクトルへの乱れ(perturbation) として１つの表面にわたって付与することによって、たくさんのジオメトリを使うことなしに、オブジェクトの表面に本物らしさを付加することができる。実際に、バンプマッピングは、ピクセルベースで表面法線を乱すことによって、ポリゴン（またはプリミティブ）のシェーディングを修正する。下にあるジオメトリがほぼ平坦であっても、シェーディングによって表面をでこぼこに(bumpy) 見せることができる。
【０００５】
拡散光(diffuse-lit) でテクスチャリングされた表面を有するバンプマッピング効果の単純な形式を実現することに向けられた大部分の従来のアプローチは、一般的に、各ピクセル毎に、特定のテクスチャ座標におけるバンプマッピングテクスチャイメージの第１のサンプルとテクスチャ座標変位における同じテクスチャイメージの第２のサンプルとの間の差を計算することを伴う。さらに、テクスチャ座標変位マップを計算することは、表面接線および従法線ベクトル（binormals）の目空間(eye-space) 成分を使用する計算を一般的に含む。特に、テクスチャイメージ上でエンボス型の効果を有するバンプマッピングの単純な形式を実現するためには、目空間（ビュー空間／カメラ空間:view-space/camera-space）参照フレーム（これは表示のためのレンダリングに先立つ後続のラスタライジング処理の助けとなる）においてテクスチャ座標変位を計算しかつ付与することが最も効率的である。したがって、エンボス型バンプマッピングのためのテクスチャ座標変位は、好ましくは、頂点における頂点位置および表面従法線がモデル空間(model-space) からピクセルレンダリングのための目空間へ変換された後に計算されかつ発生される。
【０００６】
典型的には、家庭用ビデオゲームシステムのような低価格グラフィクス処理システムにおいては、頂点変換およびライティング（Ｔ＆Ｌ：transformation and lighting）演算はグラフィクスシステムのホストＣＰＵを用いてアプリケーションプログラムによって共通的に行われる。その理由は、一義的には、ソフトウェアによるＴ＆Ｌの実現ではホストＣＰＵにおける計算的な仕事が大きくなるけれども、特別のハードウェアを使用するより通常安価であるからである。しかしながら、ハードウェアによるＴ＆Ｌの実現は、ゲームシステムにおいては好ましいことである。なぜなら、そのハードウェアによって非常に速くレンダリングできるばかりでなく、ゲーム戦略(strategy)および改良されたゲーム性能のためのＡＩ計算のような他の所要のタスクを行うためのホストＣＰＵの処理時間を大きくすることができるからである。さらに、ホストＣＰＵ上のアプリケーションソフトウェアによってＴ＆Ｌ演算を行うグラフィクスレンダリング構成においては、バンプマッピングのためのテクスチャ座標計算を行うような付加的な処理タスクが処理のオーバヘッドを非常に大きくしてしまう。
【０００７】
専用のグラフィクスハードウェアによってそのＴ＆Ｌ演算を行うグラフィクスレンダリングシステムにおいては、ホストＣＰＵは、典型的には、モデル空間の頂点アトリビュートをその専用Ｔ＆Ｌハードウェアに与え、そのハードウェアにすべての座標空間変換やライティング計算を行わせる。したがって、頂点位置および表面法線／従法線ベクトルの空間変換を行うＴ＆Ｌハードウェアに後続するバンプマッピング目的のためのテクスチャ座標変位をホストＣＰＵが特別に効率的に計算する必要はない。本質的に、バンプマッピング演算が行われるときにはいつも、このことは、専用Ｔ＆Ｌハードウェアを利用することから得られるレンダリング速度の改善を効果的に制限することがない。
【０００８】
この発明は、必要なテクスチャ座標変位を計算するためにホストＣＰＵのアプリケーションソフトウェアを必要とせず、少なくともエンボス型バンプマッピングテクスチャ効果を実現するためのテクスチャ座標変位の効率的な発生のための技術や構成ないし配置をグラフィクスレンダリングシステムに与えてこの問題を解決する。３つの頂点毎の表面従法線（すなわち、法線，接線および従法線）を特定することができる増強されたＡＰＩ(applications program interface)頂点アトリビュート関数が利用され、ホストＣＰＵのアプリケーションソフトウェアは、表面法線や他の従来の頂点毎のアトリビュートを与えるのに加えて、オブジェクト空間における頂点毎の必要な付加的な接線および従法線表面ベクトルを計算するだけでよい。
【０００９】
この発明の局面によって与えられるいくつかの特徴は
・１つのパスにおいてテクスチャ減算を行うことができるテクスチャ結合ユニットの使用
・テクスチャハードウェアにおいてテクスチャ結合を行うバンプマッピングのためのテクスチャ結合の使用
・モデルビューマトリクスをスケーリングしかつそのモデルビューマトリクスを従法線へ付与することによって従法線（接線：Tangentおよび従法線：Binormal）をスケーリングすること
・従法線および接線ベクトルを用いるがしかし法線(Normal)入力ベクトルを用いないテクスチャ変位の計算
・２つの別個の内積計算ユニット（１つの内積計算ユニットはモデルビューマトリクス乗算を行い、第２の内積計算ユニットはライト方向ベクトルとともに接線および従法線の内積ならびにライト方向(light direction)ベクトルの平方を並列に計算する）の使用を通しての増大された性能
・少数の別個の演算を使用して必要な計算を行うことができる完全にパイプライン化したハードウェア
この発明の１つの局面によれば、グラフィクスレンダリングシステムは増強された頂点変換およびライティング（Ｔ＆Ｌ）ハードウェアを備え、それは従来のＴ＆Ｌ演算に加えて、少なくとも簡単なエンボス型バンプマッピングを行うことができる。この型のバンプマッピングは、オブジェクトの表面ジオメトリがアニメーション化されているときに有用である。Ｔ＆Ｌハードウェアのベクトルジオメトリ処理部分は、オブジェクト空間の頂点表面従法線（すなわち、接線および従法線ベクトル）の目空間への変換処理および変換した従法線によるライト方向（ライト−頂点間）ベクトル内積に基づくテクスチャ座標変位の計算の処理を組み込むように増強される。
【００１０】
この発明の他の局面によれば、増強された頂点アトリビュート記述ＡＰＩ関数が、頂点位置および光源位置と一緒に３つの頂点表面従法線（法線，従法線および接線）をＴ＆Ｌベクトルジオメトリ処理ハードウェアへ与える。このジオメトリ処理ハードウェアは、次いで、表面従法線を目空間へ変換し、目空間におけるライトベクトルを計算し、そのベクトル成分を、エンボス型バンプマッピングテクスチャ効果を生成する際に使用するための適宜のテクスチャ座標変位を計算するために使用する。
【００１１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００１２】
【実施例】
図１は対話型（インタラクティブ）３Ｄコンピュータグラフィクスシステム５０の一例を示す。システム５０は対話型３Ｄビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【００１３】
この実施例において、システム５０は３次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム５０は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム５０は、手持ちコントローラ５２ａおよび５２ｂまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム５０は、リアルタイム３Ｄインタラクティブ表示を必要としないアプリケーション（たとえば２Ｄ表示の発生やおよび／またはノンインタラクティブ表示）に使用できるが、高品質の３Ｄ映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【００１４】
システム５０を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット５４を、カラーテレビ５６または他の表示装置に、両者の間にケーブル５８を接続することによって、接続する。主ユニット５４はカラーテレビ５６を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面５９上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ６１Ｌおよび６１Ｒを通して音声として再生される。
【００１５】
ユーザはまた主ユニット５４を電源につなぐ必要がある。この電源は従来のＡＣアダプタ（図示せず）であってよく、そのＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット５４を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【００１６】
ユーザは主ユニット５４を制御するために手持ちコントローラ５２ａおよび５２ｂを用いる。コントロール６０は、たとえば、３Ｄ世界内においてテレビ５６に表示されているキャラクタが移動すべき方向（上または下、左または右、近づいてまたは遠ざかって）を指示するために使用され得る。コントロール６０は、また他のアプリケーションのための入力（たとえばメニュー選択，ポインタ／カーソル制御，その他）を与える。コントローラ５２は多様な形態をとり得る。この実施例においては、図示されるコントローラ５２は、各々ジョイスティック，押しボタンおよび／または方向スイッチのようなコントロール６０を含む。コントローラ５２は、ケーブルによって、もしくは電磁波（たとえば電波または赤外線）を介してワイヤレスで、主ユニット５４に接続され得る。
【００１７】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体６２を選択し、その記憶媒体を主ユニット５４のスロット６４に差し込む。記憶媒体６２は、たとえば、特別にエンコードされおよび／または記号化された光学的ならびに／もしくは磁気的ディスクであってよい。ユーザは主ユニット５４をオンするために電源スイッチ６６を操作し、主ユニットがその記憶媒体６２にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ５２を操作する。たとえば、コントロール６０を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール６０を動かすことによって、動画キャラクタを異なる方向に移動させ、または３Ｄ世界におけるユーザの視点を変化させる。記憶媒体６２にストアされている具体的なソフトウェアによって、コントローラ５２上の種々のコントロール６０は異なる時間で異なる機能を達成することができる。
全体システムの例
図２はシステム５０の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ（ＣＰＵ）１１０，
・主メモリ１１２，および
・グラフィクス／オーディオプロセサ１１４
を含む。
【００１８】
この実施例において、主プロセサ１１０（たとえばＩＢＭパワーＰＣ７５０の改良版）は、手持ちコントローラ５２（および／または他の入力デバイス）からの入力をグラフィクス／オーディオプロセサ１１４を通して受ける。主プロセサ１１０はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置１０６を介して、たとえば外部記憶媒体６２から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ１１０は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。
【００１９】
この実施例では、主プロセサ１１０は３Ｄグラフィクス／オーディオコマンドを発生し、それらをグラフィクス／オーディオプロセサ１１４に送る。グラフィクス／オーディオプロセサ１１４はこれらのコマンドを処理し、ディスプレイ５９上での可視映像を生成し、ステレオスピーカ６１Ｒおよび６１Ｌもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【００２０】
実施例のシステム５０はビデオエンコーダ１２０を含み、このビデオエンコーダは、グラフィクス／オーディオプロセサ１１４からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ５６のような標準的な表示装置上での表示に適したアナログおよび／またはディジタルビデオ信号に変換する。システム１００はまたオーディオコーデック（圧縮器／伸長器）１２２を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック１２２はバッファ１２４を介してオーディオ入力を受けることができ、処理（たとえば、プロセサが生成したおよび／または大容量記憶媒体アクセス装置１０６のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング）するために、そのオーディオ入力をグラフィクス／オーディオプロセサ１１４に与える。この実施例におけるグラフィクス／オーディオプロセサ１１４は、オーディオタスクに利用可能なオーディオメモリ１２６にオーディオ関連情報をストアすることができる。グラフィクス／オーディオプロセサ１１４は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック１２２に与え、したがってそのオーディオ出力信号が（たとえばバッファアンプ１２８Ｌおよび１２８Ｒを介して）スピーカ６１Ｌおよび６１Ｒによって再生され得る。
【００２１】
グラフィクス／オーディオプロセサ１１４はシステム１００内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス１３０は大容量記憶媒体アクセス装置１０６および／または他のコンポーネントと通信するために用いられる。シリアル周辺バス１３２は多様な周辺機器または、たとえば、
・ＰＲＯＭおよび／またはＲＴＣ（リアルタイムクロック）１３４，
・モデム１３６もしくは他のネットワークインタフェース（それはシステム１００を、プログラム命令および／またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク１３８に接続する），および
・フラッシュメモリ１４０
を含む他のデバイスと通信する。
別の外部シリアルバス１４２は、付加的な拡張メモリ１４４（たとえばメモリカード）もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス１３０，１３２および１４２に接続するために使用され得る。
グラフィクス／オーディオプロセサの例
図３は実施例のグラフィクス／オーディオプロセサ１１４を示すブロック図である。或る実施例においては、グラフィクス／オーディオプロセサ１１４はシングルチップＡＳＩＣであってよい。この実施例においては、グラフィクス／オーディオプロセサ１１４は、
・プロセサインタフェース１５０，
・メモリインタフェース／コントローラ１５２，
・３Ｄグラフィクスプロセサ１５４，
・オーディオディジタル信号プロセサ（ＤＳＰ）１５６，
・オーディオメモリインタフェース１５８，
・オーディオインタフェース／ミキサ１６０，
・周辺コントローラ１６２，および
・表示コントローラ１６４
を含む。
【００２２】
３Ｄグラフィクスプロセサ１５４はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ１５６はオーディオ処理タスクを実行する。表示コントローラ１６４は主メモリ１１２からの映像情報にアクセスし、表示装置１０２上での表示のためにその映像情報をビデオエンコーダ１２０に与える。オーディオインタフェース／ミキサ１６０はオーディオコーデック１２２をインタフェースし、また異なるソースからのオーディオ（たとえば、大容量記憶媒体アクセス装置１０６からのオーディオストリーム，オーディオＤＳＰ１５６の出力，およびオーディオコーデック１２２を通して受ける外部オーディオ入力）をミックスすることができる。プロセサインタフェース１５０は主プロセサ１１０およびグラフィクス／オーディオプロセサ１１４の間のデータおよび制御インタフェースを提供する。
【００２３】
メモリインタフェース１５２はグラフィクス／オーディオプロセサ１１４とメモリ１１２との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ１１０は、プロセサインタフェース１５０およびグラフィクス／オーディオプロセサ１１４の一部であるメモリインタフェース１５２を介して、主メモリ１１２にアクセスする。周辺コントローラ１６２はグラフィクス／オーディオプロセサ１１４と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース１５８はオーディオメモリ１２６とのインタフェースを提供する。
グラフィクスパイプラインの例
図４は図３の３Ｄグラフィクスプロセサ１５４をより詳細に示すグラフィクス処理システムを示す。この３Ｄグラフィクスプロセサ１５４は、とりわけ、コマンドプロセサ２００および３Ｄグラフィクスパイプライン１８０を含む。主プロセサ１１０はデータストリーム（たとえばグラフィクスコマンドストリームおよび表示リスト）をコマンドプロセサ２００に通信する。主プロセサ１１０はメモリレイテンシを最小化するために２レベルキャッシュ１１２を有し、さらにまたグラフィクス／オーディオプロセサ１１４に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ１１１を有する。この書込収集バッファ１１は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス／オーディオプロセサ１１４からのデータを１つのキャッシュラインに送る。
【００２４】
コマンドプロセサ２００は主プロセサ１１０からの表示コマンドを受け、それらを解剖し、メモリコントローラ１５２を介して共用メモリ１１２からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ２００は、２Ｄおよび／または３Ｄ処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン１８０に与える。グラフィクスパイプライン１８０はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ／ビデオインタフェースユニット１６４によるアクセスのために主メモリ１２０に転送され得て、この映像情報は表示装置１５６上にパイプライン１８０のフレームバッファ出力を表示する。
【００２５】
図５はグラフィクスプロセサ１５４を用いて実行される処理を図解的に示すブロックロジックフロー図である。主プロセサ１０は、グラフィクスコマンドストリーム２１０，表示リスト２１２および頂点アレイ２１４を主メモリ１１２にストアし、ポインタをバスインタフェース１５０を介してコマンドプロセサ２００に送る。主プロセサ１１０は主メモリ１１０内に割り付けられた１つ以上のグラフィクスＦＩＦＯバッファ２１０にグラフィクスコマンドをストアする。このコマンドプロセサ２００は、
・同期／フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップＦＩＦＯメモリバッファ２１６を介して主メモリ１１２からのコマンドストリーム，
・オンチップコールＦＩＦＯメモリバッファ２１８を介して主メモリ１１２からの表示リスト２１２，および
・コマンドストリームからおよび／または主メモリ１１２の頂点アレイ２１４からの頂点アトリビュートを頂点キャッシュ２２０を介して
取り込む。
【００２６】
コマンドプロセサ２００はコマンド処理動作２００ａを実行し、そのコマンド処理動作２００ａはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング／ラスタライゼーションのためにグラフィクスパイプライン１８０に与える。プログラマブルメモリ調停回路１３０（グラフィクスメモリ要求調停回路：図４）は、グラフィクスパイプライン１８０，コマンドプロセサ２００および表示コントローラ／ビデオインタフェースユニット１６４の間での共用主メモリ１１２へのアクセスを調停する。
【００２７】
図４は、グラフィクスパイプライン１８０が
・変換ユニット３００，
・セットアップ／ラスタライザ４００，
・テクスチャユニット５００，
・テクスチャ環境ユニット６００，および
・ピクセルエンジン７００
を含むことを示す。
【００２８】
変換ユニット３００は多様な２Ｄおよび３Ｄ変換および他の動作３００ａ（図５）を実行する。変換ユニット３００は変換処理３００ａに用いられるマトリクスをストアするための１つ以上のマトリクスメモリ３００ｂを含む。変換ユニット３００は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標（３００ｃ）を計算する。変換ユニット３００はまたポリゴンクリッピング／カリング(clipping/culling)３００ｄを実行する。変換ユニット３００ｂによってまた達成されるライティング(lighting) 処理３００ｅが、この実施例では８つまでの独立した照明(light：ライト)について、頂点毎にライティング計算を行う。変換ユニット３００は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング／カリング動作（３００ｄ）のために、テクスチャ座標を発生する（３００ｃ）。
【００２９】
セットアップ／ラスタライザ４００はセットアップユニットを含み、このセットアップユニットは、変換ユニット３００からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション，テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する１つ以上のラスタライザユニット（４００ｂ）に送る。
【００３０】
テクスチャユニット５００は、オンチップテクスチャメモリ（ＴＭＥＭ）５０２を含んでもよく、たとえば、
・主メモリ１１２からのテクスチャ５０４の検索、
・たとえばマルチテクスチャ処理，ポストキャッシュテクスチャ伸長，テクスチャフィルタリング，エンボシング，投影テクスチャの使用を通しての陰影付け，およびアルファトランスパーレンシおよびデプスを用いるＢＬＩＴを含むテクスチャ処理（５００ａ）、
・バンプマッピング，偽(pseudo)テクスチャおよびテクスチャタイル(tiling)効果（５００ｂ）のためのテクスチャ座標変位を計算するバンプマップ処理、および
・間接テクスチャ処理（５００ｃ）
を含むテクスチャリングに関連する種々のタスクを実行する。
【００３１】
テクスチャユニット５００は正規（非間接）および間接テクスチャルックアップ演算の両方を用いてテクスチャ処理を行う。具体的なグラフィクスパイプライン回路および正規（直接）および間接テクスチャルックアップ演算を行う手順のより詳細な説明が同じ出願人に譲渡された同時係属中の特願２００１−４２６６７「グラフィクスシステムにおける直接および間接テクスチャ処理方法および装置」に開示されていて、ここでは参照によってその内容を取り入れる。
【００３２】
テクスチャユニット５００はテクスチャ環境処理（６００ａ）のためにフィルタされたテクスチャ値をテクスチャ環境ユニット６００に出力する。テクスチャ環境ユニット６００は、ポリゴンおよびテクスチャカラー／アルファ／デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理（６００ｂ）を実行する。テクスチャ環境ユニット６００はたとえばカラー／アルファ変調，エンボシング，詳細テクスチャ，テクスチャスワッピング，クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行する多数のステージを提供する。テクスチャ環境ユニット６００はまた、１つのパスでハードウェア内のテクスチャを結合（たとえば、減算）する。テクスチャ環境ユニットに関するより詳細は、「グラフィクスシステム用再循環シェードツリーブレンダ」（特願２００１−８１８９２）に開示されていて、ここでは参照によってそれを取り入れる。
【００３３】
ピクセルエンジン７００はデプス（ｚ）比較（７００ａ）およびピクセルブレンディング（７００ｂ）を実行する。この実施例では、ピクセルエンジン７００はデータを埋め込み（オンチップ）フレームバッファメモリ７０２にストアする。グラフィクスパイプライン１８０は、フレームバッファおよび／またはテクスチャ情報をローカルにストアするために１つ以上の埋め込みＤＲＡＭメモリ７０２を含む。ｚ比較７００ａは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン１８０におけるより早い段階で実行される（たとえば、ｚ比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る）。このピクセルエンジン７００は表示コントローラ／ビデオインタフェースユニット１６４による主メモリ１１２へのアクセスのために、オンチップフレームバッファ７０２を周期的に書き込むコピー動作７００ｃを含む。このコピー動作７００ｃはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ７０２の内容を主メモリ１１２中のテクスチャにコピーするために使用され得る。アンチエイリアシング(anti-aliasing：エイリアス補正)および他のフィルタリングがコピー動作中に実行され得る。最終的に主メモリ１１２にストアされるグラフィクスパイプライン１８０のフレームバッファ出力は、表示コントローラ／ビデオインタフェースユニット１６４によってフレーム毎に読み出される。表示コントローラ／ビデオインタフェース１６４は表示装置５６上での表示のためにディジタルＲＧＢピクセル値を与える。
エンボス型バンプマッピングテクスチャ座標発生の例
図６は上で述べたシステムにおいてエンボス型バンプマッピングを行うために使用される基本的な処理ステップの例示的なセットを示すフローチャートである。この実施例において、図６の大部分のステップはコマンドプロセサ２００によって供給される頂点毎の接線および従法線ベクトルデータに基づいて変換ユニット３００によって行われる。コマンドプロセサ２００はそのような頂点毎の値を主プロセサ１１０および／または主メモリ１１２から得ることができる。
【００３４】
簡単にいうと、グラフィクスパイプラインは、関連のメモリ内にテクスチャイメージとしてストアされているポリゴンの頂点アトリビュートデータおよびテクセルのカラーデータに少なくとも部分的に応答して表示のためにイメージをレンダリングしかつ準備する。グラフィクスレンダリングパイプラインは頂点変換およびライティング（Ｔ＆Ｌ）ハードウェアを備え、そのハードウェアは従来のＴ＆Ｌ演算に加えて簡単なバンプマッピング演算を行うことができる。パイプラインハードウェアは、たとえば、グラフィクスシステムの主ＣＰＵ上で実行中のグラフィクスアプリケーションによって頂点毎に供給されるオブジェクト空間（モデル空間）の表面従法線を利用してエンボス型バンプマッピング効果を実現するためのテクスチャ座標変位を効率的に発生する。増強された頂点アトリビュート記述コマンド関数は、頂点位置，光源（ライト）位置およびテクスチャ座標のような他の頂点アトリビュートに加えて、頂点毎の複数の表面従法線の通信および処理を容易にする。増強された頂点アトリビュート関数はオブジェクト空間座標においてホストＣＰＵによって与えられる法線，接線および従法線表面ベクトル（Ｎ，ＴおよびＢ）を特定し、バンプマッピングに必要な量のデータを効率的に圧縮するように３つの表面ベクトルの各々について頂点毎の別のメモリインデックスを使用する。Ｔ＆Ｌハードウェアのベクトルジオメトリ処理部分はまた２つの別個の内積計算ユニットを設けることによって増強され、スケーリングされたモデルビューマトリクスを用いて接線および従法線表面ベクトルを目空間へ変換し、目空間においてライト方向ベクトルを計算し、そしてその計算したライト方向ベクトルと変換した接線および従法線ベクトルとの間の並列的な内積計算を行って、エンボステクスチャ効果を創る際に使用するための適宜のテクスチャ座標変位を効率的に発生する。
【００３５】
実施例において、システム５０は、まず、バンプマッピング演算で使用するためにテクスチャメモリ５０２（図４参照）中にテクスチャイメージをストアする（ブロック８００）。コマンドプロセサ２００は、次いで、適宜のグラフィクスＡＰＩにおいて定義されている頂点アトリビュート関数を使用する変換ユニット３００へ、オブジェクト空間ベースで接線および従法線ベクトルデータを与える（ブロック８０２）。変換ユニット３００はその接線および従法線ベクトルデータを目空間へ変換する（ブロック８０４）。変換ユニット３００はまた、ライト方向（ライト−頂点間）ベクトルおよび正規化したライト方向ベクトルを計算する（ブロック８０６）。変換ユニット３００は、次いで、テクスチャ座標変位および頂点毎の新しいテクスチャ座標値を計算する（ブロック８０８，８１０）。テクスチャ環境（ＴＥＶ）ユニット６００は、テクスチャメモリ５０２にストアされている元のテクスチャからその変位によって規定されるオフセットテクスチャを差し引くことによってエンボステクスチャを発生する（ブロック８１２）。換言すれば、元のテクスチャが非変位座標（ｓ，ｔ）および変位座標（ｓ＋Δｓ，ｔ＋Δｔ）を用いてルックアップされ、テクスチャ値がピクセル毎に減算される。この結果がグラフィクスパイプライン１８０における頂点毎の局所的な拡散ライティングと結合され、結果的に得られたエンボスイメージが表示装置５６上での表示のためにレンダリングされる（ブロック８１４）。エンボスイメージの結果はまた他のテクスチャと結合されてもよい。
【００３６】
詳細に述べると、上で述べたバンプマッピングは、少なくとも、(1) 入力テクスチャ座標に基づくテクスチャ座標変位（Δｓ，Δｔ）（ブロック８０８），(2) 正規化したライト方向（ブロック８０６）および(3) 頂点毎の座標ベース(basic)関数（ブロック８０２）を発生する。用いられる好ましいベース関数は直交オブジェクト空間座標ベースである。この座標系の３つの直交軸が表面法線ベクトル，表面「接線」ベクトルおよび第２の相互に直角の表面接線の「従法線」ベクトルによって、接線（Ｔ）および従法線（Ｂ）ベクトルがｓにおけるテクスチャ勾配およびｔにおけるテクスチャ勾配（すなわち、増分ｓまたはｔ）に対応する方向に向けられて規定される。２つの直交表面接線ベクトルＴおよびＢはまた、「従法線」と呼ばれる。ブロック８０２はこれらの値を与える。この座標系上に投影されるオブジェクト空間座標のライトベクトル（ブロック８０６）は、次いで、バンプマッピングのためのテクスチャ座標変位を計算するために使用される。すなわち、２つの従法線ＴおよびＢの各々上へのライト方向ベクトルの投影は、ライトが引き起こすテクスチャ空間変位の量を与える。基本的に、テクスチャ上のライト（すなわち、ライト方向ベクトル）はそれの表面従法線成分および各テクスチャ勾配に対応するそれの（ｓ，ｔ）座標成分とに分解される。ライト方向ベクトルのこれら（ｓ，ｔ）座標成分は、バンプマッピングにおいて使用される（Δｓ，Δｔ）のテクスチャ座標変位（ブロック８０８）である。
【００３７】
効率的なレンダリングのために上で述べた演算を適切に行うためには、各頂点における接線および従法線ベクトルが向けられたオブジェクト（これはオブジェクト空間においてテクスチャｓおよびｔ軸にマッピングする）が好ましくは最初に目空間へ変換される。したがって、この発明の実施例においては、コマンドプロセサ２００がこれら頂点毎の２つの従法線を変換ユニット３００へ供給する（ブロック８０４）。変換ユニットは、次いで、そのバ従法線を目空間へ変換する（ブロック８０４）。（この実施例においては、たとえば、平滑な表面で供給される従法線は一定であったとしても、コマンドプロセサ２００は頂点毎にその従法線を変換ユニット３００へ供給する。）数学的にいえば、次の演算が変換ユニット３００によって行われる。
【００３８】
【数１】
0004691273.tif 000002
ただし、Tv = (Txv, Tyv, Tzv) および Bv = (Bxv, Byv, Bzv) はコマンドプロセサ２００から供給される頂点毎の従法線 である。
【００３９】
Ｔｖベクトルは好ましくは正規化されてオブジェクト空間中のｓテクスチャ軸に整列されなければならず、Ｂｖベクトルは好ましくは正規化されてオブジェクト空間中におけるｔテクスチャ軸に整列されなければならない。モデルビュー変換マトリクスは純粋に回転的であり、それは従法線のユニット長(unit length) を維持する。しかしながら、もし従法線のスケーリングが必要な場合には、モデルビュー変換マトリクスはスケーラによって乗算され得る。この与えられたスケーリング値は、次いで、従法線の新たなユニット長となる。このことは、ソースデータやアルゴリズムを変えることなしにバンプマッピング効果を視覚的に増大させるために使用され得る。
【００４０】
従法線の座標系が与えられると、変換ユニット３００によって使用されるライト回転マトリクス（ブロック８０６）が次のようになる。
【００４１】
【数２】
0004691273.tif 000003
ただし、 (Tx, Ty, Tz) は増加方向ｓにおいてｓ軸に沿って配向された変換した従法線であり、 (Bx, By, Bz) は増加方向ｔにおいてｔ軸に沿って配向された変換した従法線である。
【００４２】
ライト位置（目空間中における）と現在の変換した目空間中における頂点との差を正規化することによってライトベクトルが計算される（ブロック８０６）。
【００４３】
【数３】
0004691273.tif 000004
【００４４】
テクスチャ座標変位（Δｓ，Δｔ）は次いで、頂点毎に次のようにして計算される（ブロック８０８）。
【００４５】
【数４】
0004691273.tif 000005
【００４６】
この好ましい例のアルゴリズムは変位を計算するために法線入力ベクトルを使用していないことに注目されたい。従法線および接線ベクトルだけが必要である。他の実施例は目空間法線を余分な行として含む３×３マトリクス乗算を特定する。
【００４７】
計算した頂点毎のデルタオフセット（Δｓ，Δｔ）は、次いで、頂点毎に発生される変換後の（すなわち、目空間への変換後の）テクスチャ座標に加算され（ブロック８１０）、新しいテクスチャ座標Ｓ１およびＴ１を得る。
【００４８】
【数５】
0004691273.tif 000006
【００４９】
エンボスバンプマッピングテクスチャ座標発生ハードウェアの具体例
エンボス型バンプマッピングのための上で述べた計算を効率的に実現するために、変換ユニット３００は予め結線した(hardwired) 計算ロジック回路を含み、少なくとも次のようなエンボスバンプマッピングに関連するベクトルおよび座標計算を行う。
【００５０】
［数６］
Teye = MV・T
Beye = MV・B
L = Veye − Lpos
L2
Teye・L
Beye・L
1／||L||= 1／√ (L2)
Δs = T・L／||L||
Δt = B・L／||L||
(S1, T1) = (S0 + Δs, T0 + Δt)
ただし、 T および B は各オブジェクト空間の接線(Tangent) および従法線 (Binormal)ベクトル、MV はベクトルを目空間へ変換するための要素値を有する変換マトリクス、Lposは光（ライト）位置ベクトル、 Veye は頂点位置ベクトル、L はライト−頂点間 (light-to-vertex) ベクトル、||L|| は正規化したライト方向ベクトル、 (S0, T0) は正規(regular) 変換テクスチャ座標、(Δs, Δt) は発生されたテクスチャ座標変位値、(S1,T1) エンボスバンプマッピングにおいて使用される「オフセット」テクスチャがそれから得られる新しいテクスチャ座標である。
【００５１】
図７は、エンボス型バンプマッピングを実現するために必要なテクスチャ座標変位（Δｓ，Δｔ）を効率的に発生するために変換ユニット３００中に設けられるハードウェアによって達成される機能的動作のロジックフローを図解するブロック図である。主プロセサ１１０上で動作しているグラフィクスアプリケーションは、オブジェクト空間の従法線ＴおよびＢを計算しかつコマンドプロセサ２００を介してそれらを変換ユニット３００へ供給する。ＡＰＩの増強された頂点アトリビュート記述関数が用いられ、それによって、頂点毎の別のメモリインデックスを介して法線，接線および従法線ベクトルデータを特定することができる。コマンドプロセサはこのベクトルデータを変換ユニット３００へ与える。少なくとも３つの表面従法線を許容することに加えて、増強された頂点アトリビュート関数によって、プログラマは、バンプマッピングのために明示的に特定される必要のあるデータの量を効果的に圧縮するように、３つの表面従法線の各々について別の頂点毎のメモリインデックスを使用することができる。上で述べたように、供給された接線および従法線ベクトルは、オブジェクト空間中において、テクスチャのｓおよびｔ軸に対して頂点毎にマッピングしなければならない。変換ユニット３００内のベクトル内積乗算回路は、次いで、これらのベクトルを、図７および図８に図示するように、目空間へ変換する。
【００５２】
再び図７を参照して、ブロック３００ｆは具体的なベクトル内積処理ハードウェアを概略的に示し、このハードウェアはエンボス型バンプマッピングに関する以外の計算を行う際にも変換ユニット３００によって利用される。ブロック３００ｇがエンボスバンプマッピング計算により一層有用な変換ユニットハードウェアを概略的に示すが、このブロック３００ｇのハードウェアもまた他の機能を実行する際に有用である。エンボス型バンプマッピングのために、第１内積計算ユニット３０１は接線および従法線ベクトルの目空間変換を計算する。変換された結果はマルチプレクシング／ステージングバッファ３０２に一時的にストアされる。ライト−頂点間ベクトル計算３０４は頂点位置ベクトルデータＶｅｙｅおよびライト位置ベクトルデータＬｐｏｓで行われ、ライト方向ベクトルデータＬを与える。第２の内積計算ユニット３０３は次のものを並列的に計算するために利用される。
【００５３】
・ライト方向ベクトルＬと各従法線ベクトルＴならびにＢとの間のベクトル内積
・ライト方向ベクトルＬからのＬ2ベクトル積
このＬ2ベクトル積は続いて、ライト方向ベクトルの逆数値を計算するための逆平方根計算ユニット３０５に与えられる。内積ユニット３０３からの従法線および接線ベクトルライティング内積Ｔ・ＬおよびＢ・Ｌは、ユニット３０５からのライト方向ベクトルの計算された逆数値と一緒に浮動小数点乗算器３０６に与えられる。浮動小数点乗算器３０６は、次いで、テクスチャ座標変位ΔｓおよびΔｔを計算し、それらは浮動小数点加算器３０８に与えられる。変換されたテクスチャ座標Ｓ０およびＴ０は頂点毎に遅延ＦＩＦＯ３０７に与えられるとともに、必要なときに浮動小数点加算器３０８に与えられ、計算された座標変位ΔｓおよびΔｔに結合される。発生された新しいテクスチャ座標Ｓ１およびＴ１は、次いで、変換ユニット３００内の頂点バッファユニット（図示せず）へ与えられ、さらに、グラフィクスパイプライン１８０を介して、テクスチャルックアップのためにテクスチャユニット５００へ与えられる。好ましい実施例において、用いられているテクスチャ結合ユニットは多数のパスではなく１つのパスでテクスチャ減算を行うことができる。好ましいテクスチャ結合演算はアキュムレーション(accumulation)バッファを使用しないが、テクスチャ結合をテクスチャハードウェア内で行う。
【００５４】
図８は、図７のエンボスバンプマッピング関数を実行するための変換ユニット３００内の内積計算ユニット３０１および３０３ならびにライト方向計算ハードウェアのより詳細なブロック図を示す。好ましい実施例は少なくとも２４ビットの浮動小数点数値を処理することができるディジタルロジックハードウェアを利用する。図８に図示するように、ベクトル内積ユニット３０１は浮動小数点加算器３１３および３１４に結合された浮動小数点乗算器３１０，３１１および３１２を含む。２つの表面従法線ＢおよびＴは頂点キャッシュＲＡＭ２２０（図５）から浮動小数点乗算器３１０，３１１および３１２に与えられる。入力ＦＩＦＯ３１５は、接線および従法線ベクトルを目空間へ変換するための変換マトリクスデータをマトリクスメモリ３００ｂから受け、マトリクス要素値を浮動小数点乗算器３１０，３１１および３１２に与える。浮動小数点加算器３０４は、変換された目空間頂点位置データおよび入力ライト位置／方向ベクトルデータからライト方向ベクトルＬを決定するためのライト−頂点間ベクトル計算を行う。
【００５５】
ベクトル内積ユニット３０３はライト方向ベクトルと接線および従法線目空間ベクトル成分とのベクトル内積を計算するための浮動小数点乗算器３１７，３１８および３１９ならびに浮動小数点加算器３２０および３２１を含む。内積ユニット３０３はまた、浮動小数点加算器３０４、および内積ユニット３０１からのライト方向ベクトルおよび変換された目空間接線および従法線ベクトルデータを受信しかつステージング(staging) するためのマルチプレクサ３０２を含む。浮動小数点乗算器３１７ないし３１９は浮動小数点加算器３２０および３２１との組み合わせで用いられ、ライト方向ベクトル平方積Ｌ2，接線ライティングベクトル内積（Ｔ・Ｌ）および従法線ライティング内積（Ｂ・Ｌ）を浮動小数点加算器３２１の出力に与える。
【００５６】
内積ユニット３０１および内積ユニット３０３を用いて変換ユニット３００内においてパイプラインデータクロックサイクル／ステージ毎に発生するエンボス型バンプマッピングを達成するための計算的なイベントの例示的なスケジュールを図解するテーブルを以下に示す。
【００５７】
【表１】
0004691273.tif 000007
【００５８】
１番から８番まで番号が付けられた関連するサイクル／ステージ中において、接線および従法線ベクトルが内積ユニット３０１内へロードされ、目空間への変換が計算される。サイクル９ないし１１中において、目空間の頂点複合成分および負に符号化されたライト位置成分を用いて、浮動小数点加算器３０４によって、ライト方向ベクトル成分Ｌｘ，ＬｙおよびＬｚが計算される。サイクル１１ないし１３中において、計算された接線ベクトル目空間成分がマルチプレクシング／ステージングバッファ３０２へロードされる。サイクル１４中において、計算されたライト方向ベクトルＬと計算された接線目空間ベクトルＴｅｙｅ＝（Ｔｘｅ，Ｔｙｅ，Ｔｚｅ）が、Ｔ・Ｌ内積を計算するためにベクトル内積ユニット３０３にロードされる。サイクル１５において、計算されたライト方向ベクトルＬが、ライト方向ベクトル平方積Ｌ2を計算するために、ベクトル内積ユニット３０３へ再度ロードされる。最後に、従法線目空間ベクトルＢｅｙｅ＝（Ｂｘｅ，Ｂｙｅ，Ｂｚｅ）がサイクル１８においてＢ・Ｌ内積を計算するためにロードされる。上で述べたハードウェアは完全にパイプライン化されていて、最小数の別個の演算において所要の値を計算することができる。
ＡＰＩ関数コマンドの例
好ましい実施例において、増強されたグラフィクスＡＰＩ関数は変換ユニット３００内においてテクスチャ座標発生を初期化するために使用される。現在の頂点アトリビュート情報がテクスチャ座標を発生するために使用される従来のテクスチャ座標発生に加えて、好ましいグラフィクスＡＰＩは、他のテクスチャ座標発生関数をコールしかつ使用できる増強されたテクスチャ発生関数をサポートする。例示的な増強されたＡＰＩテクスチャ座標発生関数を以下に示す。
【００５９】
【表２】
0004691273.tif 000008
【００６０】
上で例示したＡＰＩ関数は他のテクスチャ座標発生関数に加えて、一般的なテクスチャ座標発生を定義する。MatIdxは、デフォルトのテクスチャマトリクスインデックスとして設定され、それによって、発生されたテクスチャ座標が変換される。この実施例において、エンボス型バンプマッピングを実現するために、上述のＡＰＩ関数は、Funcとともに使用されてGX_TG_BUMP* を設定する。ただし、「＊」は、エンボスのために選択され得る８つまでの可能な異なるライト（光源位置）のいずれかを示す０−７の数字である。
【００６１】
以下のものは、上で述べた一般的なテクスチャ座標発生関数の例示的なＣ／Ｃ＋＋言語による例を示す。
【００６２】
【表３】
0004691273.tif 000009
【００６３】
「func」でGX_TG_BUMP0-7 を設定すると、システム５０は、頂点毎の特定された従法線およびライト方向情報に基づいて入力テクスチャ座標を乱すことによって、エンボス型バンプマッピングを実行する。元のテクスチャ座標およびオフセットテクスチャ座標は、メモリ１１２にストアされている高さフィールド(height-field)バンプマップテクスチャからテクセルをルックアップするために使用される。ＴＥＶユニット６００は、バンプ高さを見つけるために、これらの値をハードウェア中で１つのパスで減算するために使用され、その値は、エンボス型バンプマッピングを提供するために、ピクセルの最終カラーに加算される。GX_BUMP0 はバンプマップ計算においてライト０が用いられることを示し、GX_BUMP1 はライト１が用いられることを示し、以下同様である。
【００６４】
バンプマップのためのdst_coord は順番に番号が付与され、すなわち、ベーステクスチャ座標＝ｎであり、バンプオフセットテクスチャ座標＝ｎ＋１である。バンプマップテクスチャ座標は座標が変換（GX_TG_MTX2×4 およびGX_TG_MTX3×4）から発生された後でかつ座標がライティングチャネル（GX_TG_SRTG）から発生される前に発生されなければならない。例を以下に示す。
【００６５】
【表４】
0004691273.tif 000010
【００６６】
互換性のある他の実施例
上述のシステム５０のあるものは上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム５０をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム５０のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム５０のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび／または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【００６７】
一例として、エミュレータがシステム５０のハードウェアおよび／またはソフトウェア構成（プラットフォーム）とは異なるハードウェアおよび／またはソフトウェア構成（プラットフォーム）を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび／またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび／またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム５０のハードウェアおよび／またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのＤＳＰ処理がパソコンによってエミュレートされ得る。
【００６８】
或る汎用ディジタルコンピュータ（たとえばＩＢＭやマッキントッシュのパソコンおよびそれらの同等物）は、ダイレクトＸ(DirectX)または他の標準的な３ＤグラフィクスコマンドＡＰＩｓに従った３Ｄグラフィクスパイプラインを提供する３Ｄグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム５０のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理，３Ｄグラフィクス，音声，周辺および他の能力をシミュレートする。
【００６９】
図９はホストプラットフォーム１２０１，エミュレータコンポーネント１３０３および記憶媒体６２上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト１２０１は、たとえばパソコン，ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ１３０３はそのホストプラットフォーム１２０１上で走るソフトウェアおよび／またはハードウェアであり、記憶媒体６２からのコマンド，データおよび他の情報のそのホスト１２０１によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ１３０３は記憶媒体６２からシステム５０によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト１２０１によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【００７０】
一例として、ソフトウェアがＩＢＭパワーＰＣまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト１２０１が異なる（たとえばインテル）プロセサを用いるパソコンである場合、エミュレータ１２０３は記憶媒体１３０５からの１つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を１つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ１２０３はまたグラフィクス／オーディオプロセサ１１４によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ／あるいは生成し、そしてホスト１２０１上で利用可能なハードウェアおよび／またはソフトウェアグラフィクス／オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ１３０３はホスト１２０１の特別なグラフィクスおよび／または音声ハードウェア（たとえば標準的なダイレクトＸ，オープンＧＬおよび／または音声ＡＰＩｓ）によって処理され得るコマンドにこれらのコマンドを変換する。
【００７１】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ１３０３は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース（ＧＵＩ）を備える。一例において、そのようなエミュレータ１３０３はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。エミュレータ内における特定のグラフィクスサポートハードウェアが図７および図８で示すエンボス型バンプマッピング機能（関数）を含まない場合には、エミュレータの設計者は、
・エンボス型バンプマッピングコマンドを、グラフィクスサポートハードウェアが理解する他のグラフィクスＡＰＩコマンドにトランスレートするか、
・プロセサの速度に依存する性能における潜在的な相応の減少で、バンプマッピング関数（機能）をソフトウェア的に実現するか、
・エンボス効果を含まないレンダリングイメージを与えるように、バンプマッピングコマンドを「無視」する
のどれかの選択肢を有する。
【００７２】
図６のフローチャートは、全体として、ソフトウェアで、ハードウェアで、あるいはソフトウェアとハードウェアの組み合わせによって、実現でき、他方、好ましい実施例は、これらの計算の殆どをハードウェアを用いて行い、大きくした速度性能や他の利点を得るようにしている。しかしながら、他の実施例（たとえば、非常に速いプロセサが利用できるような場合）では、図６の計算やステップをソフトウェアで実現し、類似のまたは同一のイメージ結果を与えるようにしてもよい。
【００７３】
図１０はエミュレータ１３０３で用いるに適したエミュレーションホストシステム１２０１を図解的に示す。このシステム１２０１は処理ユニット１２０３およびシステムメモリ１２０５を含む。システムバス１２０７がシステムメモリ１２０５を含む種々のシステムコンポーネンツを処理ユニット１２０３に結合する。システムバス１２０７は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ，周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ１２０７はＲＯＭ１２５２およびＲＡＭ１２５４を含む。起動中においてのようにパソコンシステム１２０１中のエレメント（要素）間に情報を伝送する手助けをする基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）１２５６がＲＯＭ１２５２中にストアされる。システム１２０１はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ１２０９が（典型的には固定の）磁気ハードディスク１２１１から読み出しそれへ書き込む。付加的な（たぶんオプションとしての）磁気ディスクドライブ１２１３が着脱可能な「フロッピィ」または他の磁気ディスク１２５１から読み出しかつそれへ書き込む。光ディスクドライブ１２１７はＣＤ−ＲＯＭあるいは他の光学媒体のような着脱自在な光ディスク１２１９から読み出しかつそれへ書き込む。ハードディスクドライブ１２０９および光ディスクドライブ１２１７は、ハードディスクドライブインタフェース１２２１および光ディスクドライブインタフェース１２２５によって、システムバス１２０７にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム１２０１のためのコンピュータ読出可能な命令，データ構造，プログラムモジュール，ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体（たとえば磁気カセット，フラッシュメモリカード，ディジタルビデオディスク，ベルヌーイカートリッジ，ＲＡＭ，ＲＯＭあるいはその他のもの）がまた使用できる。
【００７４】
エミュレータ１３０３を含む多数のプログラムモジュールがハードディスク１２１１，着脱可能な磁気ディスク１２１５，光ディスク１２１９および／またはシステムメモリ１２０５のＲＯＭ１２５２および／またはＲＡＭ１２５４にストアされ得る。このようなプログラムモジュールはグラフィクス／音声ＡＰＩｓ，１つ以上のアプリケーションプログラム，他のプログラムモジュール，プログラムデータおよびゲームデータを提供するオペレーティングシステム（ＯＳ）を含む。ユーザは、キーボード１２２７，ポインティングデバイス１２２９，マイクロフォン，ジョイスティック，ゲームコントローラ，衛星アンテナ(satellite dish)，スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム１２０１にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス１２０７に結合されたシリアルポートインタフェース１２３１を通して処理ユニット１２０３に接続され得るが、パラレルポート，ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ１２３５のようなインタフェースを介してシステムバス１２０７に接続される。
【００７５】
システム１２０１はモデム１１５４またはインターネットのようなネットワーク１１５２を通しての通信を確立するための他のネットワークインタフェース手段を含む。内蔵もしくは外付けであってよいモデム１１５４はシリアルポートインタフェース１２３１を介してシステムバス１２３に接続される。システム１２０１がローカルエリアネットワーク１１５８を介して遠隔コンピュータ装置１１５０（たとえば他のシステム１２０１）と通信するのを許容するために、ネットワークインタフェース１１５６がまた設けられてもよい（もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク１１５２もしくは他の通信経路を介してもよい）。システム１２０１はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【００７６】
一例では、ビデオアダプタ１２３５は、マイクロソフト(Microsoft)のダイレクトＸ７．０、または他のバージョンのような標準的な３Ｄグラフィクスアプリケーションプログラマインタフェースに基づいて発行された３Ｄグラフィクスコマンドに応答して、高速の３Ｄグラフィクスレンダリングを提供する３Ｄグラフィクスパイプラインチップセットを含んでもよい。１組のスピーカ１２３７はまた、バス１２０７によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス１２０７に接続される。これらのハードウェア能力によって記憶媒体１３０５中にストアされているソフトウェアを再生するためにシステム１２０１に十分なグラフィクスおよび音声の速度性能を与えることができる。
【００７７】
上で参照したすべての書類をここで、参照によって取り入れる。
【００７８】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図１】図１はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図２】図２は図１実施例のコンピュータグラフィクスシステムのブロック図である。
【図３】図３は図２に示す実施例のグラフィクス／オーディオプロセサのブロック図である。
【図４】図４は図３に示す実施例の３Ｄグラフィクスプロセサのブロック図である。
【図５】図４のグラフィクス／オーディオプロセサの例示的なロジックフロー図である。
【図６】図６はエンボス型バンプマッピングを実現するための例示的なステップを図解するフローチャートである。
【図７】図７はエンボス型バンプマッピングを実現するために変換ユニットに設けられるベクトル処理およびバンプマッピングハードウェアの例示的なロジックフロー図である。
【図８】図８はエンボス型バンプマッピングを実現するために変換ユニットに設けられた内積計算ユニットおよびライト方向計算ハードウェアの詳細な例を示すブロック図である。
【図９】図９は互換性のある実施例を示す。
【図１０】図１０は別の互換性のある実施例を示す。
【符号の説明】
５０  …インタラクティブ３Ｄコンピュータグラフィクスシステム
５４  …主ユニット
１１０  …主プロセサ
１１２  …主メモリ
１８０  …グラフィクスパイプライン
２００  …キャッシュ／コマンドプロセサ
３００  …変換ユニット
３０１  …第１内積計算ユニット
３０３  …第２内積計算ユニット
５００  …テクスチャユニット
５０２  …テクスチャメモリ
６００  …テクスチャ環境（ＴＥＶ）ユニット
【図１】
0004691273.tif 000011
【図２】
0004691273.tif 000012
【図３】
0004691273.tif 000013
【図４】
0004691273.tif 000014
【図５】
0004691273.tif 000015
【図６】
0004691273.tif 000016
【図７】
0004691273.tif 000017
【図８】
0004691273.tif 000018
【図９】
0004691273.tif 000019
【図１０】
0004691273.tif 000020