(57)【要約】【課題】  テクスチャマッピングの手法により、いろいろなテクスチャが使われるため、資源管理が容易ではない。【解決手段】  シェーダユニット３０の描画演算処理部３４は、テクスチャ構造体５２を参照するための３次元テクセル座標値（ｕ，ｖ，ｗ）を指定したテクスチャ命令をテクスチャユニット７０に対して発行する。テクスチャユニット７０のテクスチャ読み出し部７６は、シェーダユニット３０から３次元テクセル座標値（ｕ，ｖ，ｗ）を受け取り、テクスチャ構造体５２の内、第３テクセル座標値ｗに対応するテクスチャから２次元テクセル座標（ｕ，ｖ）に対応するテクセル値を読み出す。フィルタ７４は、レジスタファイル７２に設定されたフィルタリングモードにしたがって、テクスチャ読み出し部７６により読み出されたテクセル値の補間を行い、補間値をシェーダユニット３０の描画演算処理部３４に与える。【選択図】  図２
2006244426.tif 000002
【特許請求の範囲】
【請求項１】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ記憶部と、
描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出すテクスチャ読み出し部と、
読み出された前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するフィルタとを含み、
前記第３パラメータとして、前記テクスチャ構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理装置。
【請求項２】
前記テクスチャ構造体は、レイヤ単位で規定される２次元テクスチャをレイヤ数だけ設けたレイヤ構造を有し、前記第３パラメータは、前記レイヤを指定する番号であることを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項３】
前記テクスチャ構造体は、奥行きレベルの異なる２次元テクスチャを奥行き方向に複数並べたボリュームテクスチャの構造を有し、前記第３パラメータは、前記奥行きに関するパラメータであることを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項４】
前記テクスチャ読み出し部は、前記第３パラメータとして指定された奥行きに関するパラメータに対応する２つの異なる奥行きレベルの２次元テクスチャを選択し、選択された２つの異なる奥行きレベルの２次元テクスチャの各々から、指定された前記２次元パラメータ座標に対応するテクセル値を読み出し、
前記フィルタは、前記２つの異なる奥行きレベルの２次元テクスチャ間で前記テクセル値を補間することにより、前記描画対象物の表面に適用されるテクスチャに関する値を算出することを特徴とする請求項３に記載のテクスチャ処理装置。
【請求項５】
前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有し、前記第３パラメータは、前記面を指定する番号であることを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項６】
前記テクスチャ構造体を一括して参照するためのベースアドレスを格納するレジスタをさらに設け、
前記テクスチャ読み出し部は、前記レジスタに格納された前記ベースアドレスに対して、指定された第３パラメータに依存するオフセット値を加算することにより、指定された第３パラメータに対応する前記２次元テクスチャの参照アドレスを生成し、前記参照アドレスを基準にして、指定された２次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項１から５のいずれかに記載のテクスチャ処理装置。
【請求項７】
前記テクスチャ構造体に含まれる複数の２次元テクスチャの各々は、段階的に解像度を異ならせた一組のミップマップテクスチャであり、
前記テクスチャ読み出し部は、前記描画対象物の表面に適用されるテクスチャの描画詳細度の指定も受け、指定された第３パラメータに対応する一組のミップマップテクスチャの内、指定された描画詳細度に対応する解像度のミップマップテクスチャを選択し、選択されたミップマップテクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項１から６のいずれかに記載のテクスチャ処理装置。
【請求項８】
前記テクスチャ読み出し部は、指定された第３パラメータに対応する一組のミップマップテクスチャの内、指定された描画詳細度に対応する２つの異なる解像度のミップマップテクスチャを選択し、選択された２つの異なる解像度のミップマップテクスチャの各々から、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出し、
前記フィルタは、前記２つの異なる解像度のミップマップテクスチャ間で前記テクセル値を補間することにより、前記描画対象物の表面に適用されるテクスチャに関する値を算出することを特徴とする請求項７に記載のテクスチャ処理装置。
【請求項９】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ構造体を格納するテクスチャ記憶部と、
描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出して、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出するテクスチャ処理部と、
前記テクスチャ処理部から出力される前記テクスチャに関する補間値を用いて、前記描画対象物の描画演算処理を行う描画処理部とを含み、
前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有し、
前記描画処理部は、前記描画対象物の表面の反射ベクトルにもとづいて、前記表面に写像される環境テクスチャの面番号とその面内における２次元パラメータ座標値とを求め、求めた面番号を前記第３パラメータとして２次元パラメータ座標値とともに前記テクスチャ処理部に対して指定し、
前記テクスチャ処理部は、前記テクスチャ構造体の内、前記描画処理部により前記第３パラメータとして指定された前記面番号に対応する環境テクスチャから、前記描画処理部により指定された前記２次元パラメータ座標値に対応するテクセル値を読み出し、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出することを特徴とする描画処理装置。
【請求項１０】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられた構造体を有し、前記２次元パラメータ座標値および前記第３パラメータを指定したテクスチャの読み出し命令により、指定された第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応する前記テクセル値のサンプリングが可能に構成され、前記第３パラメータとして、前記構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記構造体の統一的な参照が可能に構成されたことを特徴とするテクスチャのデータ構造。
【請求項１１】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を保持したテクスチャメモリに対して、描画対象物の表面に適用されるテクスチャについて前記第３パラメータと前記表面上の２次元パラメータ座標値を指定したテクスチャの読み出し命令を実行することにより、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値をサンプリングするステップと、
サンプリングされた前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するステップとを含み、
前記第３パラメータとして、前記テクスチャ構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、描画データを演算処理するテクスチャ処理装置、描画処理装置、およびテクスチャ処理方法に関する。
【背景技術】
【０００２】
３次元コンピュータグラフィックスでは、一般的に３次元空間のオブジェクトを多数のポリゴンにより表現するポリゴンモデルが利用される。ポリゴンモデルの描画処理において、光源、視点位置、物体表面の反射率などを考慮してポリゴン表面に陰影をつけるシェーディングが行われる。また、写実性の高い画像を生成するために、ポリゴンモデルの表面にテクスチャ画像を貼り付けるテクスチャマッピングが行われる。
【０００３】
テクスチャマッピングに使われるテクスチャは、通常は２次元テクスチャであるが、より質感の高い表現をするために、奥行き方向にもテクスチャをもたせたボリュームテクスチャが使われることがある。ボリュームテクスチャは、描画対象物の断面を描画したり、雲や炎のような３次元構造をもつ描画対象物や半透明の描画対象物にテクスチャをマッピングするために用いられる。
【０００４】
また、周囲の環境をテクスチャとして描画表面に映り込ませる環境マッピングが行われることがある。描画対象物を囲む仮想立方体の各面に環境テクスチャをあらかじめ投影しておき、立方体の各面の環境テクスチャを描画表面に写像するキューブ環境マッピングでは、環境テクスチャは６面のキューブマップの構成になる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、テクスチャマッピングの手法によってテクスチャにはいろいろな種類があり、その手法に特有のテクスチャ演算を専用に実行できるハードウエアを設けると、描画処理装置の回路規模が大きくなり、装置コストが高くなる。また、テクスチャマッピング手法に応じてハードウエアを構成すると、レジスタやメモリなどの資源管理も複雑になる。また、各種テクスチャを利用するために特有のパラメータを設定したり、特有の命令を実行するなど、プログラミングの手間もかかる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、各種テクスチャを統一的に利用することができるリソース管理の面で優れた描画処理技術を提供することにある。また、別の目的は、複数のテクスチャを効率良く切り替えて利用することのできる描画処理技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のテクスチャ処理装置は、テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ記憶部と、描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出すテクスチャ読み出し部と、読み出された前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するフィルタとを含む。前記第３パラメータとして、前記テクスチャ構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照される。
【０００８】
ここで、テクスチャが描画対象物の表面に適用されるとは、テクスチャのカラー値などが描画面にマッピングされることの他、テクスチャに関する値、たとえば法線ベクトルの値や関数値などが描画面に適用されることも含む趣旨である。
【０００９】
本発明の別の態様は、描画処理装置である。この装置は、テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ構造体を格納するテクスチャ記憶部と、描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出して、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出するテクスチャ処理部と、前記テクスチャ処理部から出力される前記テクスチャに関する補間値を用いて、前記描画対象物の描画演算処理を行う描画処理部とを含む。前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有する。前記描画処理部は、前記描画対象物の表面の反射ベクトルにもとづいて、前記表面に写像される環境テクスチャの面番号とその面内における２次元パラメータ座標値とを求め、求めた面番号を前記第３パラメータとして２次元パラメータ座標値とともに前記テクスチャ処理部に対して指定し、前記テクスチャ処理部は、前記テクスチャ構造体の内、前記描画処理部により前記第３パラメータとして指定された前記面番号に対応する環境テクスチャから、前記描画処理部により指定された前記２次元パラメータ座標値に対応するテクセル値を読み出し、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出する。
【００１０】
本発明のさらに別の態様は、テクスチャのデータ構造である。このテクスチャのデータ構造は、テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられた構造体を有し、前記２次元パラメータ座標値および前記第３パラメータを指定したテクスチャの読み出し命令により、指定された第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応する前記テクセル値のサンプリングが可能に構成され、前記第３パラメータとして、前記構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記構造体の統一的な参照が可能に構成されてなる。
【００１１】
本発明のさらに別の態様は、テクスチャ処理方法である。この方法は、テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を保持したテクスチャメモリに対して、描画対象物の表面に適用されるテクスチャについて前記第３パラメータと前記表面上の２次元パラメータ座標値を指定したテクスチャの読み出し命令を実行することにより、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値をサンプリングするステップと、サンプリングされた前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するステップとを含み、前記第３パラメータとして、前記テクスチャ構造体に含まれる前記複数の２次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照される。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、テクスチャマッピングの利便性を高めるとともに、テクスチャ処理の効率を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
図１は、実施の形態に係る描画処理装置１００の構成図である。描画処理装置１００は、３次元モデル情報にもとづいて２次元画面に表示するための描画データを生成するレンダリング処理を行う。
【００１５】
ラスタライザ１０は、メモリもしくは他のプロセッサや頂点シェーダなどから描画対象となるプリミティブの頂点データを取得し、描画するスクリーンに対応したピクセル情報に変換する。描画プリミティブは、３次元オブジェクトをポリゴンモデルで表した場合の点、線、三角形、四角形などの幾何学図形の描画単位であり、頂点単位で表されるデータである。ラスタライザ１０は、３次元空間上の描画プリミティブを投影変換により描画平面上の図形に変換するビュー変換を行い、さらに、描画平面上の図形を描画平面の水平方向に沿ってスキャンしながら、１列毎に量子化されたピクセルに変換する。
【００１６】
ラスタライザ１０により、描画プリミティブがピクセル展開され、各ピクセルについて、ＲＧＢ３原色で表されるカラー値、透明度を示すアルファ値、奥行きを示すＺ値、テクスチャ属性を参照するためのパラメータ座標であるＵＶ座標値などを含むピクセル情報が算出される。
【００１７】
ラスタライザ１０は、１つ以上のピクセルを含む所定サイズのピクセル集合の単位で上記のラスタライズ処理を行い、ラスタライズ処理後のピクセル集合をバッファリングしながら、ピクセル集合の単位でシェーダユニット３０に順次供給する。ラスタライザ１０からシェーダユニット３０に供給されたピクセル集合は、シェーダユニット３０においてパイプライン処理される。ピクセル集合は、ラスタライザ１０が一度に処理するピクセルをまとめたものであり、ラスタライズ処理の単位であり、また同時に、シェーダユニット３０における描画演算処理の単位にもなっている。
【００１８】
シェーダユニット３０は、非同期動作する複数のピクセルシェーダを含み、それぞれが担当するピクセル集合を処理することでピクセルの描画処理を並列に実行する。シェーダユニット３０は、ラスタライザ１０からピクセル集合単位で分配されるピクセル情報をもとに、シェーディング処理を行ってピクセルのカラー値を求め、さらに、テクスチャマッピングを行う場合は、テクスチャユニット７０から得られるテクスチャのカラー値を合成して最終的なピクセルのカラー値を算出し、メモリ５０にピクセルデータを書き込む。
【００１９】
テクスチャユニット７０は、シェーダユニット３０において処理されるピクセルにテクスチャデータをマッピングする処理を行う。本実施の形態では、テクスチャユニット７０は、複数の２次元テクスチャを設けたテクスチャ構造体（以下、単に「テクスチャ構造体」と呼ぶ）を利用する。テクスチャ構造体に含まれる２次元テクスチャには、テクスチャのカラー値などの属性値が２次元パラメータ座標（ｕ，ｖ）に対応づけてテクセル値として格納される。
【００２０】
なお、テクスチャ構造体に含まれる２次元テクスチャは、特別な場合として、テクセルの位置座標として第１パラメータｕだけをもたせた１次元テクスチャであってもよい。２次元テクスチャにおいて、第２パラメータｖが常に０であるとして、ｖ方向を無視することで、１次元テクスチャを２次元テクスチャの特殊な場合として扱うことができる。そこで、以下では、特殊な場合として１次元テクスチャも含める趣旨でテクスチャの次元を一般的に２次元として説明する。
【００２１】
テクスチャ構造体に含まれる複数の２次元テクスチャの少なくとも１つからテクセル値を参照するために、テクスチャ構造体に含まれる２次元テクスチャの少なくとも１つを指定するための第３パラメータｗが、テクセル位置を指定する２次元パラメータ座標（ｕ，ｖ）における第１パラメータｕおよび第２パラメータｖとは別に設けられる。
【００２２】
ポリゴン面上のピクセルにマッピングされるテクスチャは、第３パラメータｗとポリゴン面上に定義される２次元パラメータ座標（ｕ，ｖ）との組み合わせた３次元パラメータ座標（ｕ，ｖ，ｗ）によって指定される。以下、パラメータ座標をテクセル座標と呼び、第３パラメータｗも第３テクセル座標ｗと呼ぶが、第３テクセル座標ｗは、基本的に、テクスチャ構造体に含まれる複数の２次元テクスチャの少なくとも１つを指定するために使われる値であり、２次元テクセル座標は、テクスチャの幅と高さに対応するが、第３テクセル座標は、必ずしもテクスチャの奥行きに対応するものではないことに留意する。第３テクセル座標ｗがどのように意味づけられるかは、テクスチャ構造体に含まれる複数の２次元テクスチャ間の関連性に依存するからである。
【００２３】
テクスチャユニット７０は、シェーダユニット３０からピクセルにマッピングされるテクスチャ構造体の３次元テクセル座標値（ｕ，ｖ，ｗ）を取得し、テクスチャ構造体の内、第３テクセル座標ｗに対応する２次元テクスチャから２次元テクセル座標値（ｕ，ｖ）に対応するテクセル値を読み出し、読み出したテクセル値を補間し、シェーダユニット３０にその補間値を供給する。
【００２４】
シェーダユニット３０は、さらに、メモリ５０に保持された描画データに対して、フォギング、アルファブレンディング等の処理を行い、最終的なピクセルのカラー値を求め、メモリ５０のピクセルデータを更新する。
【００２５】
メモリ５０は、シェーダユニット３０により生成されたピクセルデータをスクリーン座標で格納するフレームバッファとして機能する領域をもつ。フレームバッファに格納されたピクセルデータは、最終描画画像であることも、シェーディング処理過程にある中間画像であることもある。フレームバッファに記憶されたピクセルデータは、表示装置に出力されて表示される。
【００２６】
図２は、シェーダユニット３０およびテクスチャユニット７０の構成を示す図である。
【００２７】
シェーダユニット３０のレジスタファイル３２、テクスチャユニット７０のレジスタファイル７２にはそれぞれ、テクスチャマッピングを行うために必要なコンフィグレーション情報が設定される。コンフィグレーション情報には、メモリ５０に格納されたテクスチャ構造体５２を一括して参照するためのベースアドレス、テクスチャマッピングの際のフィルタリングモードなどの各種パラメータが含まれる。
【００２８】
シェーダユニット３０の描画演算処理部３４は、レジスタファイル３２に設定されたコンフィグレーション情報にもとづいて、テクスチャ構造体５２からテクスチャを参照するための３次元テクセル座標値（ｕ，ｖ，ｗ）を指定したテクスチャ命令をテクスチャユニット７０に対して発行することにより、テクスチャユニット７０からピクセルにマッピングされるテクスチャの補間値を取得する。描画演算処理部３４は、テクスチャユニット７０から取得したテクスチャの補間値をもちいて最終的なピクセルのカラー値を算出し、描画データ５４としてメモリ５０に書き込む。
【００２９】
テクスチャユニット７０のテクスチャ読み出し部７６は、シェーダユニット３０から３次元テクセル座標値（ｕ，ｖ，ｗ）を受け取る。テクスチャ読み出し部７６は、レジスタファイル７２に保持されたテクスチャ構造体５２のベースアドレスに、第３テクセル座標値ｗに依存して決まるオフセット値を加算することにより、指定された第３テクセル座標値ｗに対応するテクスチャの参照アドレスを生成する。テクスチャ読み出し部７６は、その参照アドレスで指定されるテクスチャから、レジスタファイル７２に設定されたフィルタリングモードのしたがって、２次元テクセル座標（ｕ，ｖ）に対応するテクセル値を読み出す。テクスチャ読み出し部７６は、読み出したテクセル値をフィルタ７４に与える。
【００３０】
なお、テクスチャ読み出し部７６は、メモリ５０に格納されたテクスチャ構造体５２を直接参照せずに、テクスチャユニット７０内に設けられたキャッシュメモリにキャッシュされたテクスチャ構造体５２を参照するように構成してもよい。
【００３１】
描画演算処理部３４は、３次元テクセル座標値（ｕ，ｖ，ｗ）以外に、描画対象オブジェクトの描画詳細度を示すＬＯＤ（level of detail）値をパラメータとして指定したテクスチャ命令を発行することもできる。その場合、テクスチャ読み出し部７６は、ミップマップテクスチャの構造をもつテクスチャ構造体５２において、ＬＯＤ値に対応する解像度レベルのミップマップテクスチャを参照する。
【００３２】
フィルタ７４は、レジスタファイル７２に設定されたフィルタリングモードにしたがって、テクスチャ読み出し部７６により読み出されたテクセル値の補間を行い、補間値をシェーダユニット３０の描画演算処理部３４に与える。
【００３３】
フィルタ７４は、多段構成の内挿演算器を用いて、ｕ、ｖ２方向のバイリニア補間結果に対して、さらにｗ方向またはミップマップの解像度レベルの方向に補間を行うトライリニアサンプリングを実行することができる。また、フィルタ７４は、多段構成の内挿演算器を選択的に機能させることにより、トライリニアサンプリング以外に、モノリニアサンプリングやバイリニアサンプリングも実行することができる。
【００３４】
モノリニアサンプリングでは、第３テクセル座標ｗに対応する２つの近傍テクスチャのそれぞれから、指定テクセル座標（ｕ，ｖ）の最近傍テクセルがサンプリングされ、２つの近傍テクスチャ間で補間される。また、ＬＯＤ値が指定された場合は、ミップマップの解像度レベルの内、ＬＯＤ値に対応する２つの近傍解像度レベルのテクスチャのそれぞれから、指定テクセル座標（ｕ，ｖ）の最近傍テクセルがサンプリングされ、２つの近傍解像度レベル間で補間される。
【００３５】
バイリニアサンプリングでは、第３テクセル座標ｗに対応するテクスチャから指定テクセル座標（ｕ，ｖ）の４近傍テクセルがサンプリングされ、ｕ、ｖの２方向に補間される。また、ＬＯＤ値が指定された場合は、ミップマップの解像度レベルの内、ＬＯＤ値に対応するテクスチャから指定テクセル座標（ｕ，ｖ）の４近傍テクセルがサンプリングされ、ｕ、ｖの２方向に補間される。
【００３６】
トライリニアサンプリングでは、第３テクセル座標ｗに対応する２つの近傍テクスチャのそれぞれから、指定テクセル座標（ｕ，ｖ）の４近傍テクセルがサンプリングされ、各テクスチャでｕ、ｖの２方向に補間された上で、２つの近傍テクスチャ間でさらに補間される。また、ＬＯＤ値が指定された場合は、ミップマップの解像度レベルの内、ＬＯＤ値に対応する２つの近傍解像度レベルのテクスチャのそれぞれから、指定テクセル座標（ｕ，ｖ）の４近傍テクセルがサンプリングされ、各解像度レベルでｕ、ｖの２方向に補間された上で、２つの近傍解像度レベル間でさらに補間される。
【００３７】
フィルタ７４は、レジスタファイル７２に設定されたフィルタリングモードによっていずれかの補間に切り替えて実行する。なお、フィルタ７４は、いずれの内挿演算器も機能させずに、指定テクセル座標（ｕ，ｖ）の最近傍テクセルをサンプリングしてそのまま出力するポイントサンプリングも実行することができる。
【００３８】
さらに、フィルタ７４は、内挿演算器の差分器、乗算器、および加算器の機能構成を適宜流用して、演算処理に多少の変形を加えることにより、線形補間以外の演算を行うことも可能であり、バイリニア補間やトライリニア補間以外の有用な演算を行うこともできる。これにより、フィルタ７４は、後述のテクセル座標（ｕ，ｖ）の偏差分を求める計算や、テクセル座標（ｕ，ｖ）がマッピングされる描画面のＬＯＤ値を求める計算を実行することができる。
【００３９】
図３は、図２のメモリ５０に格納されたテクスチャ構造体５２のデータ構造を説明する図である。テクスチャ構造体５２は、既に説明したように、２次元テクスチャを複数設けたものであり、第３パラメータｗによりいずれかの２次元テクスチャを指定できるように構成されている。ここでは、複数の２次元テクスチャを格納するデータ構造の一例として、複数の２次元テクスチャが同図の縦方向に配置された構成を説明するが、第３パラメータｗによっていずれかの２次元テクスチャをアドレス指定できる構成であれば、複数の２次元テクスチャのメモリ上での配置の形態は問わない。
【００４０】
また、以下では、便宜上、同図のように縦方向に並べて配置された複数の２次元テクスチャの縦方向について述べる場合に、「レイヤ」という言葉を使うが、これは、複数の２次元テクスチャが層状に関連性をもつことを意味するものではなく、単に縦方向の並びの位置を指しているだけである。
【００４１】
さらに、各レイヤの２次元テクスチャは、段階的に解像度を異ならせた一組のミップマップテクスチャの構造をもつことができる。同図の横方向にはミップマップの解像度レベル（以下、単に「ミップレベル」という）が図示されている。
【００４２】
ミップレベル０について、縦方向に見た場合、レイヤ０、レイヤ１、レイヤ２の順に、高さと幅が共通するテクスチャＡ０、テクスチャＡ１、テクスチャＡ２が配置される。ミップレベル１についても、レイヤ０、レイヤ１、レイヤ２の順に、高さと幅が共通するテクスチャＢ０、テクスチャＢ１、テクスチャＢ２が配置される。ミップレベル１のテクスチャＢ０〜Ｂ２の幅と高さはそれぞれ、ミップレベル０のテクスチャＡ０〜Ａ２の幅と高さの半分である。同様に、ミップレベル２のレイヤ０〜２に配置されるテクスチャＣ０〜Ｃ２の幅と高さはそれぞれ、ミップレベル１のレイヤ０〜２のテクスチャＢ０〜Ｂ２の幅と高さのさらに半分である。
【００４３】
横方向に見た場合、レイヤ０には、ミップレベル０のテクスチャＡ０、ミップレベル１のテクスチャＢ０、ミップレベル２のテクスチャＣ０の順にミップレベルの異なるテクスチャが配置されている。同様に、レイヤ１、レイヤ２にもミップレベルの異なるテクスチャが格納されている。
【００４４】
テクスチャ構造体５２のレイヤ数およびミップレベル数は、レジスタファイル７２の設定により変更可能である。テクスチャ構造体５２にミップマップテクスチャの構造を設けるかどうかもレジスタファイル７２の設定により選択することができる。ミップマップテクスチャを用いない場合は、同一サイズの２次元テクスチャが各レイヤに一つずつ設けられた構成となる。図３で言えば、ミップマップテクスチャを用いないテクスチャ構造体５２は、ミップレベル０のテクスチャＡ０、Ａ１、Ａ２だけが存在するデータ構造となる。
【００４５】
また、テクスチャ構造体５２に、レイヤの構造を設けるかどうかもレジスタファイル７２の設定により選択可能である。レイヤの構造を設けない場合は、複数のミップレベルのテクスチャが１レイヤ分だけ設けられた構成となる。図３で言えば、レイヤ構造を設けないテクスチャ構造体５２は、レイヤ０のテクスチャＡ０、Ｂ０、Ｃ０だけが存在するデータ構造となる。テクスチャ構造体５２には、このようなレイヤが一つでミップレベルが複数のテクスチャも特別な場合として含まれる。さらにレイヤが１つでミップレベルを設けない通常の１枚のテクスチャもテクスチャ構造体５２の特別な場合として扱う。
【００４６】
テクスチャ読み出し部７６は、メモリ５０に格納されたテクスチャ構造体５２に対して、レイヤ番号ＮとミップレベルＭを指定することにより、指定したレイヤＮに属する指定したミップレベルＭのテクスチャを参照する。たとえば、レイヤ２、ミップレベル１を指定すると、レイヤ２に属するミップレベル１のテクスチャＢ１を参照することができる。テクスチャ読み出し部７６は、指定したレイヤおよびミップレベルのテクスチャ内において、２次元テクセル座標（ｕ，ｖ）を指定することで、テクスチャのテクセル値をサンプリングする。
【００４７】
テクセル値は、テクスチャに関する値として、ＲＧＢ３色のカラー値であってもよく、カラー値のインデックスであってもよい。後者の場合は、カラールックアップテーブルを参照してインデックスが実際のカラー値に変換される。また、テクスチャマッピングの一例としてバンプマッピングを行う場合は、テクスチャに法線ベクトルを格納することになり、その場合、テクセル値は法線ベクトルの値である。また、パラメータにもとづいてプログラムによってテクスチャを生成するプロシージャルテクスチャ（procedural texture）を利用する場合は、テクセル値はパラメータ値や関数値となる。
【００４８】
図４〜図６を参照して、テクスチャ構造体５２からのテクセル値のサンプリングのいくつかの例を説明する。
【００４９】
図４は、バイリニアサンプリングを説明する図である。テクスチャ読み出し部７６は、第３テクセル座標ｗに対応するレイヤとして参照レイヤＮを求め、また、指定されたＬＯＤ値に対応するミップレベルとして参照ミップレベルＭを求める。テクスチャ読み出し部７６は、参照レイヤＮと参照ミップレベルＭにより指定されるテクスチャ５１ａから、テクセル座標値（ｕ，ｖ）で表される点の近傍にある４つのテクセル５３ａを読み出す。
【００５０】
フィルタ７４は、この４近傍のテクセル５３ａの値をｕ方向およびｖ方向に線形補間することにより、テクセル座標値（ｕ，ｖ）に対応する補間値を求める。
【００５１】
図５は、ミップレベル間のトライリニアサンプリングを説明する図である。テクスチャ読み出し部７６は、第３テクセル座標ｗに対応するレイヤとして参照レイヤＮを求め、また、指定されたＬＯＤ値に対応するミップレベルとして、２つの参照ミップレベルＭ、Ｍ＋１を求める。テクスチャ読み出し部７６は、参照レイヤＮと第１参照ミップレベルＭにより指定される第１テクスチャ５１ａから、テクセル座標値（ｕ，ｖ）で表される点の近傍にある４つのテクセル５３ａを読み出す。また、テクスチャ読み出し部７６は、参照レイヤＮと第２参照ミップレベルＭ＋１により指定される第２テクスチャ５１ａから、テクセル座標値（ｕ，ｖ）で表される点の近傍の４つのテクセル５３ｂを読み出す。
【００５２】
フィルタ７４は、第１参照ミップレベルＭの４近傍のテクセル５３ａの値と、第２参照ミップレベルの４近傍のテクセル５３ｂの値を、ｕ、ｖ、ミップレベルの３方向に線形に補間するトライリニア補間を行うことにより、テクセル座標値（ｕ，ｖ）に対応する補間値を算出する。
【００５３】
図６は、レイヤ間のモノリニアサンプリングを説明する図である。テクスチャ読み出し部７６は、第３テクセル座標ｗに対応するレイヤとして、２つの参照レイヤＮ、Ｎ＋１を求め、また、指定されたＬＯＤ値に対するミップレベルとして参照ミップレベルＭを求める。テクスチャ読み出し部７６は、第１参照レイヤＮとミップレベルＭにより指定される第１テクスチャ５１ｃから、テクセル座標値（ｕ，ｖ）で表される点の最近傍にあるテクセル５３ｃを読み出す。また、テクスチャ読み出し部７６は、第２参照レイヤＮ＋１とミップレベルＭにより指定される第１テクスチャ５１ｄから、テクセル座標値（ｕ，ｖ）で表される点の最近傍にあるテクセル５３ｄを読み出す。
【００５４】
フィルタ７４は、第１参照レイヤＮのテクセル５３ｃの値と、第２参照レイヤＮ＋１のテクセル５３ｄの値を線形補間することにより、テクセル座標値（ｕ，ｖ，ｗ）に対応する補間値を算出する。
【００５５】
図６において、２つの参照レイヤＮ、Ｎ＋１の各々において、テクセル座標値（ｕ，ｖ）で表される点の近傍にある４つのテクセルをサンプリングし、２つの参照レイヤＮ、Ｎ＋１間でｕ、ｖ、ｗの３方向に線形補間するトライリニア補間を行うこともできる。
【００５６】
図７は、テクスチャユニット７０によるテクスチャマッピング処理の手順を説明するフローチャートである。
【００５７】
シェーダユニット３０は、テクスチャユニット７０に対して、テクスチャ構造体５２を参照するためのテクセル座標値（ｕ，ｖ，ｗ）とＬＯＤ値を指定する（Ｓ１０）。ここで、シェーダユニット３０から入力されるＬＯＤ値は、後述のテクセル座標の偏差分により決まる描画表面上の内部的なＬＯＤ値と区別する意味で、外部ＬＯＤ値と呼ぶ。外部ＬＯＤ値は、描画対象物のＺ値などに応じて決められる。
【００５８】
より具体的には、シェーダユニット３０は、外部ＬＯＤ値と第３テクセル座標値ｗをパラメータに指定したテクスチャセット命令ｔｓｅｔを発行し、その後、２次元テクセル座標値（ｕ，ｖ）をパラメータに指定したテクスチャロード命令ｔｌｄを発行する。テクスチャユニット７０は、テクスチャロード命令ｔｌｄの発行を受けて、テクスチャマッピングの動作を開始する。
【００５９】
テクスチャユニット７０は、入力されたパラメータのデータ型の変換を行う。シェーダユニット３０は、浮動小数点数で演算を行うが、テクスチャユニット７０は、テクスチャマッピングのハードウエアを効率良く利用するために、計算を速く実行できる固定小数点数を用いる。そこで、テクスチャユニット７０は、入力されたテクセル座標などのパラメータのデータ型を浮動小数点から固定小数点に変換する。
【００６０】
フィルタ７４は、テクセル座標（ｕ，ｖ）におけるｕ方向、ｖ方向の傾きを示す偏差分を次のように算出する（Ｓ１２）。
【００６１】
縦横２ピクセルの描画領域において、４ピクセル（ｘ，ｙ）、（ｘ＋１，ｙ）、（ｘ，ｙ＋１）、（ｘ＋１，ｙ＋１）のそれぞれのテクセル座標が（Ｕ０，Ｖ０）、（Ｕ１，Ｖ１）、（Ｕ２，Ｖ２）、（Ｕ３，Ｖ３）であるとする。
【００６２】
フィルタ７４は、ピクセル座標（ｘ，ｙ）の変化に対するテクセル座標（ｕ，ｖ）の変化量ｄｕ／ｄｘ、ｄｕ／ｄｙ、ｄｖ／ｄｘ、ｄｖ／ｄｙを次式の偏差分により求める。
ｄｕ／ｄｘ＝（（Ｕ１−Ｕ０）＋（Ｕ３−Ｕ２））／２
ｄｖ／ｄｘ＝（（Ｖ１−Ｖ０）＋（Ｖ３−Ｖ２））／２
ｄｕ／ｄｙ＝（（Ｕ２−Ｕ０）＋（Ｕ３−Ｕ１））／２
ｄｖ／ｄｙ＝（（Ｖ２−Ｖ０）＋（Ｖ３−Ｖ１））／２
【００６３】
これらの偏差分は、テクセル座標がスクリーンのｘ方向、ｙ方向に局所的に変化する量を示すものであり、テクスチャがマッピングされる曲面のＬＯＤ値を求めるために利用される。
【００６４】
フィルタ７４は、テクセル座標（ｕ，ｖ）の偏差分にもとづいて、次のようにテクセル座標（ｕ，ｖ）におけるＬＯＤ値を算出する（Ｓ１４）。
【００６５】
Ｐｘ＝［（ｄｕ／ｄｘ）２＋（ｄｖ／ｄｘ）２］１／２
Ｐｙ＝［（ｄｕ／ｄｙ）２＋（ｄｖ／ｄｙ）２］１／２
ＬＯＤ＝ｌｏｇ２（ｍａｘ（Ｐｘ、Ｐｙ））
【００６６】
このようにして計算されるテクセル座標（ｕ，ｖ）のＬＯＤ値を、シェーダユニット３０から指定される外部ＬＯＤ値と区別する意味で内部ＬＯＤ値と呼ぶ。フィルタ７４は、内部ＬＯＤ値に外部ＬＯＤ値をオフセットとして加算する。外部ＬＯＤ値によりオフセットされたＬＯＤ値をバイアスＬＯＤ値と呼ぶ。
【００６７】
フィルタ７４は、バイアスＬＯＤ値に応じてそのテクスチャを描画する際のフィルタを選択する（Ｓ１６）。フィルタには、縮小フィルタと拡大フィルタがあり、バイアスＬＯＤ値が所定の値以下の場合、すなわち描画詳細度が所定のレベル以下である場合は、テクスチャの拡大を行う拡大フィルタを選択し、そうでない場合、すなわち描画詳細度が所定のレベルよりも高い場合は、テクスチャの縮小を行う縮小フィルタを選択する。
【００６８】
フィルタ７４は、ミップレベルにおける補正処理を行う（Ｓ１８）。テクスチャユニット７０は、まずステップＳ１４で求めたバイアスＬＯＤ値によってミップレベルを求める。ミップレベル間の補間を行わない場合は、バイアスＬＯＤ値に０．５を加算し、整数値に丸めることによりＬＯＤ値に最も近いミップレベルＭを求める。ミップレベル間の補間を行う場合は、バイアスＬＯＤ値を整数値に丸めた値を第１ミップレベルＭとして求め、第１ミップレベルに１を加えた値を第２ミップレベルＭ＋１として求める。これによりバイアスＬＯＤ値の近傍の２つのミップレベルが得られる。
【００６９】
次に、フィルタ７４は、こうして求めたミップレベルＭにもとづいてテクセル座標値（ｕ，ｖ）とテクスチャサイズを補正する。テクセル座標値（ｕ，ｖ）は、ミップレベル０のテクスチャについて指定されたものであるから、ミップレベルＭのテクスチャを参照するときは、ミップレベルＭのテクスチャサイズに対応した値に補正する必要がある。ミップレベルＭに対応した第１、第２テクセル座標値ｕ、ｖは、元のミップレベル０における第１、第２テクセル座標値ｕ、ｖをそれぞれ２Ｍで除算することにより得られる。なお、ｗ方向はミップレベルとは無関係であるから、第３テクセル座標値ｗは補正されない。
【００７０】
また、フィルタ７４は、レジスタファイル７２に設定されているミップレベル０のテクスチャサイズをミップレベルＭに対応するサイズに補正する。これは元のミップレベル０のテクスチャの高さおよび幅をそれぞれ２Ｍで除算することにより得られる。
【００７１】
テクスチャ読み出し部７６は、テクスチャ構造体５２の２次元テクスチャ内でテクセルを指定するテクセル番号を求める（Ｓ２０）。テクスチャ内に格納されたテクセルを２次元配列とみなしたとき、テクセル番号は、テクスチャ内のテクセルを指定する２次元配列のインデックスである。
【００７２】
テクセル座標値（ｕ，ｖ）は実数値であるが、テクセル番号は、テクセル座標値（ｕ，ｖ）を整数に丸めた添え字（ｉ，ｊ）で表される。テクセル座標（ｕ，ｖ）で示される点の４近傍のテクセルをテクセル番号で指定する場合は、テクセル番号は（ｉ，ｊ）、（ｉ＋１，ｊ）、（ｉ，ｊ＋１）、（ｉ＋１，ｊ＋１）の４つになる。
【００７３】
テクスチャ構造体５２の場合、２次元テクスチャがレイヤ方向とミップレベル方向に複数設けられているため、レイヤ番号を指定する第３インデックスｋ、ミップレベルを指定する第４インデックスｍをさらに追加して、テクセル番号を（ｉ，ｊ，ｋ，ｍ）で表す。たとえば、２つのレイヤＮ、Ｎ＋１の間で内挿を行う場合は、テクセル番号を（ｉ，ｊ，Ｎ，Ｍ）、（ｉ，ｊ，Ｎ＋１，Ｍ）と指定する。また、２つのミップレベルＭ、Ｍ＋１の間で内挿を行う場合は、テクセル番号を（ｉ，ｊ，Ｎ，Ｍ）、（ｉ，ｊ，Ｎ，Ｍ＋１）と指定する。
【００７４】
フィルタ７４は、フィルタリングに使用する内挿係数を算出する（Ｓ２２）。内挿係数は、ミップレベルＭに対応するように補正された第１、第２テクセル座標値ｕ、ｖの小数部で与えられる。ｕ方向の内挿係数αはミップレベルＭにおける第１テクセル座標ｕの値の小数部、ｖ方向の内挿係数βはミップレベルＭにおける第２テクセル座標ｖの値の小数部である。また、ｗ方向の補間、すなわちレイヤ間の内挿を行う場合は、ｗ方向の内挿係数γは、第３テクセル座標値ｗの値の小数部で与えられる。ＬＯＤ値に応じた補間、すなわちミップレベル間で内挿を行う場合は、ミップレベル方向の内挿係数δは、バイアスＬＯＤ値の小数部で与えられる。
【００７５】
テクスチャ読み出し部７６は、テクスチャの参照アドレスを算出する（Ｓ２４）。テクスチャ読み出し部７６は、コンフィグレーション時にレジスタファイル７２に設定されたテクスチャ構造体５２のベースアドレスに、各レイヤに属する各ミップレベルのテクスチャのサイズをレイヤ番号がＮ、ミップマップレベルがＭになるまで加算していくことで、指定されたレイヤ番号ＮおよびミップレベルＭのテクスチャを参照するためのアドレスを算出する。
【００７６】
テクスチャ読み出し部７６は、ステップＳ２４で得たテクスチャの参照アドレスを基準にして、ステップＳ２０で得たテクセル番号で指定されたテクセルをサンプリングする（Ｓ２６）。ポイントサンプリングの場合は、１つのテクセルがサンプリングされるが、バイリニア補間をする場合は、４近傍テクセルがサンプリングされる。
【００７７】
フィルタ７４は、サンプリングされたテクセルをバイリニア補間、トライリニア補間などによりフィルタリングする（Ｓ２８）。フィルタ７４は、フィルタリングにより得られた補間値をシェーダユニット３０で扱う浮動小数点にフォーマット変換して出力する（Ｓ３０）。
【００７８】
上記のテクスチャマッピング処理の手順では説明を省略したが、テクセル座標がテクスチャをサンプルしない位置にあるときのラップモードとして、クランプ処理、リピート処理のいずれかが行われる。テクセルをサンプリングする際、テクスチャ画像のエッジをまたがることがあるため、ラップモードの処理が必要となる。クランプ処理では、テクセル座標を所定の値の範囲にクランプする。リピート処理では、テクセル番号を循環させることで、同じテクスチャが繰り返されるように扱う。
【００７９】
以上で述べた本実施の形態の描画処理装置１００が利用するテクスチャ構造体５２は、一般的には、３次元テクセル座標（ｕ，ｖ，ｗ）で統一的に参照できるようにした複数の２次元テクスチャの集まりであるが、構成上は、複数の２次元テクスチャ間にいかなる関連性をもたせても、あるいは、何ら関連性をもたせなくてもよく、用途に合わせて自由に利用することができる。
【００８０】
たとえば、テクスチャ構造体５２は、いわゆる「レイヤテクスチャ」として利用することができる。レイヤテクスチャは、複数の２次元テクスチャが互いに関連性をもって層をなして形成されたものであり、アプリケーションによってはテクスチャを層状に重ね合わせることを前提とすることもある。この場合、第３テクセル座標ｗは、レイヤ番号を指定するために用いられる。なお、上記の実施の形態でテクスチャ構造体５２を説明する際に用いた「レイヤ」という言葉は、「レイヤテクスチャ」でいうところの狭義の意味でのレイヤを意味するものではなく、単にテクスチャ構造体５２内に並べて配置された複数の２次元テクスチャの位置を特定する意味で用いた。
【００８１】
また、テクスチャ構造体５２は、いわゆる「ボリュームテクスチャ」として利用することもある。ボリュームテクスチャは、複数の２次元テクスチャの間に奥行き方向の関連性をもたせ、幅と高さの他、奥行きの次元をもつテクスチャとして構成される。この場合、第３テクセル座標ｗは、奥行き値を指定するために用いられる。ボリュームテクスチャでは、テクスチャ構造体５２のレイヤは奥行きに対応するため、レイヤ間の補間が意味をなす。
【００８２】
なお、上記の実施の形態では、テクスチャ構造体５２の最大レイヤ数は、ハードウエアの実装によって、８、１６、３２などに制限されることになるが、テクスチャ構造体５２をボリュームテクスチャとして利用する場合、奥行き方向をさらに増やしたいことがある。たとえば、プロシージャルテクスチャを利用する場合、パーリン（Perlin）によるノイズ生成アルゴリズムにより、ノイズテクスチャをいくつも生成し、それらを何層にも重ね合わせることで質感をもたせる。このような３次元構造のテクスチャでは、奥行き方向として、たとえば６４レイヤを必要とすることもある。
【００８３】
このような場合、テクスチャ構造体５２の各テクスチャのテクセルのコンポーネントをレイヤとして利用することで、レイヤ数を増やすことが可能である。テクスチャの各テクセルは、一般にはＲＧＢ値とアルファ値を格納するために４コンポーネントをもつ。このコンポーネントをレイヤに対応づけて、各テクセルを４レイヤの値のセットとして扱うことにすれば、仮にテクスチャ構造体５２の最大レイヤ数が１６であっても、１６×４＝６４レイヤとして扱うことができる。これにより、ノイズテクスチャとして、６４レイヤの多重化が可能になる。
【００８４】
シェーダユニット３０は、ノイズテクスチャを生成するために、第３テクセル座標値ｗとして、０から６３までの値を指定したテクスチャ命令を実行することになる。しかし、テクスチャユニット７０では、あくまでも１６レイヤのテクスチャ構造体５２を処理するため、テクスチャ読み出し部７６は、第３テクセル座標値ｗを４で除算した商と余りを求め、商によって０から１５までのレイヤ番号を取得し、余りによってコンポーネント番号を取得する。テクスチャ読み出し部７６は、取得したレイヤ番号とコンポーネント番号を用いて、指定レイヤのテクスチャ内で指定コンポーネントを参照することで、テクスチャ構造体５２から該当するテクセルをサンプリングすることができる。
【００８５】
以上、テクスチャ構造体５２を、一般的に、複数の独立した２次元テクスチャの集まりとして説明し、いわゆる「レイヤテクスチャ」や「ボリュームテクスチャ」としても利用できることを説明したが、テクスチャ構造体５２は、さらに、キューブ環境マッピング（以下、単にキューブマッピングという）において使用する６面の環境テクスチャを格納するために用いることもできる。以下、テクスチャ構造体５２を用いて、本実施の形態の描画処理装置１００によりキューブマッピング処理を行う方法を説明する。
【００８６】
図８は、キューブマッピングにおける描画対象物を囲む仮想的な立方体とその面を示す図である。キューブマッピングでは、同図のように、描画対象物の存在するワールド座標空間に定義されたワールド座標系（ｘ，ｙ，ｚ）のｘｙ面、ｙｚ面、ｚｘ面に対して各面が平行である仮想立方体を想定する。仮想立方体の各面の向きは、ポジティブＸ、ネガティブＸ、ポジティブＹ、ネガティブＹ、ポジティブＺ、ネガティブＺの６方向であり、この６方向により仮想立方体の各面を識別する。立方体の各面には描画対象物に写像される環境テクスチャがあらかじめ投影されている。
【００８７】
図９は、図８の仮想立方体の展開図において、テクスチャ座標（Ｓ，Ｔ）の各軸Ｓ、Ｔの方向とワールド座標（ｘ，ｙ，ｚ）の各軸ｘ、ｙ、ｚの方向の対応関係を説明する図である。テクスチャ座標（Ｓ，Ｔ）のＳ軸、Ｔ軸は、同図に示す方向に定義されている。ポジティブＸ面については、テクスチャ座標のＳ軸はワールド座標のｚ軸の負の方向（−ｚ）にあり、テクスチャ座標のＴ軸はワールド座標のｙ軸の負の方向（−ｙ）にある。ネガティブＸ面については、Ｓ軸はワールド座標のｚ軸の正の方向（ｚ）、Ｔ軸はワールド座標のｙ軸の負の方向（−ｙ）にある。
【００８８】
同様に、ポジティブＹ面のＳ軸、Ｔ軸は、それぞれワールド座標のｘ軸の正の方向（ｘ）、ｚ軸の正の方向（ｚ）にあり、ネガティブＹ面のＳ軸、Ｔ軸は、それぞれワールド座標のｘ軸の正の方向（ｘ）、ｚ軸の負の方向（−ｚ）にある。また、ポジティブＺ面のＳ軸、Ｔ軸は、それぞれワールド座標のｘ軸の正の方向（ｘ）、ｙ軸の負の方向（−ｙ）にあり、ネガティブＺ面のＳ軸、Ｔ軸は、それぞれワールド座標のｘ軸の負の方向（−ｘ）、ｙ軸の負の方向（−ｙ）にある。
【００８９】
キューブマッピングでは、描画表面上の反射ベクトルｒを算出し、反射ベクトルｒの方向が仮想立方体のいずれの面と交わるかを判定する。反射ベクトルｒが交わる仮想立方体の面をターゲット面と呼ぶ。ターゲット面は、反射ベクトルの最大成分（メジャー成分という）が指し示すキューブ面である。
【００９０】
ターゲット面が決まると、反射ベクトルｒのメジャー成分とメジャー軸方向が決まる。反射ベクトルｒの成分を（ｖｘ，ｖｙ，ｖｚ）とおくと、反射ベクトルｒに対するターゲット面がポジティブＸであるとき、メジャー軸方向はｘ軸の正の方向（これを＋ＶＸと記す）であり、メジャー成分は反射ベクトルのｘ成分ｖｘである。ターゲット面がネガティブＸであるとき、メジャー軸方向はｘ軸の負の方向（−ＶＸ）、メジャー成分は反射ベクトルのｘ成分ｖｘである。
【００９１】
同様に、ターゲット面がポジティブＹのとき、メジャー軸方向は＋ＶＹ、メジャー成分はｖｙであり、ターゲット面がネガティブＹのとき、メジャー軸方向は−ＶＹ、メジャー成分はｖｙである。また、ターゲット面がポジティブＺのとき、メジャー軸方向は＋ＶＺ、メジャー成分はｖｚであり、ターゲット面がネガティブＺのとき、メジャー軸方向は−ＶＺ、メジャー成分はｖｚである。
【００９２】
反射ベクトルｒの終点（ｖｘ，ｖｙ，ｖｚ）をターゲット面上にメジャー軸方向に射影した点は、描画表面に写像されるテクスチャの点であり、その点のテクスチャ座標（Ｓｃ，Ｔｃ）は、反射ベクトルの成分を用いて表される。ここで、図９で説明したように、各キューブ面でテクスチャ座標のＳ軸およびＴ軸は、ワールド座標の対応する軸と方向が正負反対になることもある。たとえば、ターゲット面がポジティブＸである場合は、テクスチャ座標のＳ軸、Ｔ軸は、図９で説明したように、それぞれ−ｚ方向、−ｙ方向であったから、ポジティブＸ面上のテクスチャ座標（Ｓｃ，Ｔｃ）は、反射ベクトルのｚ成分とｙ成分を用いて（−ｖｚ，−ｖｙ）で与えられる。他のターゲット面の場合も同様にテクスチャ座標を反射ベクトルｒの成分を用いて表すことができる。
【００９３】
図１０は、ターゲット面、ターゲット面上のテクスチャ座標（Ｓｃ，Ｔｃ）、およびメジャー成分の対応関係をまとめて示す図である。
【００９４】
メジャー軸方向が＋ＶＸの場合、ターゲット面はポジティブＸ、Ｓｃは−ｖｚ、Ｔｃは−ｖｙ、メジャー成分はｖｘである。メジャー軸方向が−ＶＸの場合、ターゲット面はネガティブＸ、Ｓｃはｖｚ、Ｔｃは−ｖｙ、メジャー成分はｖｘである。
【００９５】
メジャー軸方向が＋ＶＹの場合、ターゲット面はポジティブＹ、Ｓｃはｖｘ、Ｔｃはｖｚ、メジャー成分はｖｙである。メジャー軸方向が−ＶＹの場合、ターゲット面はネガティブＹ、Ｓｃはｖｘ、Ｔｃは−ｖｚ、メジャー成分はｖｙである。
【００９６】
メジャー軸方向が＋ＶＺの場合、ターゲット面はポジティブＺ、Ｓｃはｖｘ、Ｔｃは−ｖｙ、メジャー成分はｖｚである。メジャー軸方向が−ＶＺの場合、ターゲット面はネガティブＺ、Ｓｃは−ｖｘ、Ｔｃは−ｖｙ、メジャー成分はｖｚである。
【００９７】
図１０に示すように、ターゲット面、テクスチャ座標（Ｓｃ，Ｔｃ）、メジャー成分の対応関係は、メジャー軸方向によって一意に決まるため、キューブマップを指定するには、メジャー軸方向を指定すればよい。
【００９８】
図１１（ａ）〜（ｄ）は、テクスチャ構造体５２をキューブマップとして用いる方法を説明する図である。
【００９９】
図１１（ａ）は、キューブマップ用のテクスチャ構造体５２のデータ構造を示す図である。テクスチャ構造体５２のレイヤ方向はキューブ面に対応づけられ、各レイヤには仮想立方体の各面の環境テクスチャであるキューブマップが２次元テクスチャとして格納される。仮想立方体の６面に対応してテクスチャ構造体５２のレイヤ数は６である。レイヤ番号はキューブ面を識別するマップＩＤに対応している。
【０１００】
マップＩＤは、メジャー軸方向に対応しており、メジャー軸方向が決まれば、それに対応するマップＩＤにより各面のキューブマップを選択することができる。マップＩＤとメジャー軸方向の対応関係については、同図のように、マップＩＤ０〜５のそれぞれにメジャー軸＋ＶＸ、−ＶＸ、＋ＶＹ、−ＶＹ、＋ＶＺ、−ＶＺが対応づけられる。また、各ミップレベルには解像度の異なるキューブマップが設けられており、ここではミップレベル０〜２の３段階の解像度の例が示されている。
【０１０１】
図１１（ｂ）は、ミップレベル０の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。図１１（ａ）のマップＩＤ０のテクスチャ（マップ０と呼ぶ）は、図１１（ｂ）の仮想立方体のポジティブＸ面の環境テクスチャに対応する。マップＩＤ１のテクスチャ（マップ１）は、仮想立方体のネガティブＸ面の環境テクスチャに対応する。以下、同様にマップ２、マップ３、マップ４、マップ５は、仮想立方体のポジティブＹ面、ネガティブＹ面、ポジティブＺ面、ネガティブＺ面の環境テクスチャにそれぞれ対応する。
【０１０２】
図１１（ｃ）は、ミップレベル０に比べて解像度が１／２になったミップレベル１の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。図１１（ｄ）は、ミップレベル０に比べて解像度が１／４になったミップレベル２の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。レイヤとキューブ面の対応関係は、図１１（ｂ）と同じである。
【０１０３】
マップＩＤは、レイヤ番号を指定するときと同様、第３テクセル座標ｗにより指定することができる。したがって、３次元テクセル座標（ｕ，ｖ，ｗ）とＬＯＤ値を指定するテクスチャ命令を用いて、ミップマップを用いたキューブマッピングを行うことができる。
【０１０４】
図１２は、描画処理装置１００によるキューブマッピング処理の手順を説明するフローチャートである。
【０１０５】
シェーダユニット３０の描画演算処理部３４は、描画表面の反射ベクトルｒを算出する（Ｓ４０）。反射ベクトルｒは、視線ベクトルｅと描画表面の法線ベクトルｎを用いて、計算式ｒ＝２（ｎ・ｅ）ｎ−ｅにより求めることができる。
【０１０６】
描画演算処理部３４は、反射ベクトルｒのメジャー成分にもとづいて、マップＩＤに対応するメジャー軸方向と、ターゲット面におけるテクスチャ座標（Ｓｃ，Ｔｃ）を算出する（Ｓ４２）。これは図１０で説明した通りである。
【０１０７】
描画演算処理部３４は、テクスチャ座標（Ｓｃ，Ｔｃ）をテクセル座標（ｕ，ｖ）に変換する（Ｓ４４）。テクセル座標（ｕ，ｖ）は、テクスチャの幅、高さをそれぞれｗｉｄｔｈ、ｈｅｉｇｈｔとすると、テクスチャ座標（Ｓｃ，Ｔｃ）をメジャー成分の絶対値｜ｍａｊｏｒ｜で除算して正規化することにより、次式のように求めることができる。
【０１０８】
ｕ＝（ｗｉｄｔｈ／２）・（Ｓｃ／｜ｍａｊｏｒ｜＋１）
ｖ＝（ｈｅｉｇｈｔ／２）・（Ｔｃ／｜ｍａｊｏｒ｜＋１）
【０１０９】
ここで、テクスチャユニット７０のレジスタファイル７２に設定されたテクスチャの幅と高さの値と一致する値をシェーダユニット３０のレジスタファイル３２にも設定しておき、描画演算処理部３４がレジスタファイル３２から参照できるようにする。
【０１１０】
描画演算処理部３４は、こうして求めた２次元テクセル座標（ｕ，ｖ）と、マップＩＤを指定する第３テクセル座標ｗとからなる３次元テクセル座標（ｕ，ｖ，ｗ）をパラメータに指定したテクスチャ命令をテクスチャユニット７０に発行する。ミップマップを用いる場合は、テクスチャ命令にさらに外部ＬＯＤ値をパラメータとして指定する。
【０１１１】
より具体的には、描画演算処理部３４は、外部ＬＯＤ値と、マップＩＤである第３テクセル座標値ｗとをパラメータに指定したテクスチャセット命令ｔｓｅｔを発行し、その後、２次元テクセル座標値（ｕ，ｖ）をパラメータに指定したテクスチャロード命令ｔｌｄを発行する。テクスチャユニット７０は、テクスチャロード命令ｔｌｄの発行を受けて、テクスチャマッピングの動作を開始する。
【０１１２】
テクスチャユニット７０は、描画演算処理部３４から指定された３次元テクセル座標（ｕ，ｖ，ｗ）と外部ＬＯＤ値にもとづいて、テクスチャ構造体５２を用いたキューブマッピング処理を行う（Ｓ４６）。このキューブマッピング処理は、第３テクセル座標ｗがマップＩＤを示す以外は、図７のフローチャートで示したテクスチャマッピング処理と同様にして行うことができる。なお、キューブマッピングでは、レイヤ間の補間は意味をなさないため行われない。
【０１１３】
以上述べたように、本実施の形態の描画処理装置１００によれば、３次元テクセル座標（ｕ，ｖ，ｗ）を指定してテクスチャ構造体５２からテクセルをサンプリングして補間することができる。第３テクセル座標ｗは、一般にはテクスチャ構造体５２に含まれる複数の２次元テクスチャの少なくとも１つを指定するために用いられるが、テクスチャ構造体５２がレイヤテクスチャとして用いられる場合は、レイヤ番号を指定するために、テクスチャ構造体５２がボリュームテクスチャとして用いられる場合は、奥行きに関するパラメータを指定するためにも用いることができる。さらに、テクスチャ構造体５２のレイヤをキューブ面に対応づければ、テクスチャ構造体５２は、６面のキューブマップを格納したテクスチャとして扱うこともでき、第３テクセル座標としてキューブ面を指定することで、キューブマッピングを行うことができる。
【０１１４】
このように、テクスチャ構造体５２は、第３テクセル座標ｗの意味づけ次第で、複数の独立した２次元テクスチャの集まりとして扱うことも、２次元テクスチャが層状に形成されたレイヤテクスチャとして扱うことも、奥行き方向の次元をもつボリュームテクスチャとして扱うことも、６面のキューブマップテクスチャとして扱うこともできるため、テクスチャ構造体５２を処理するテクスチャマッピング用の同一のハードウエア構成、同一のインタフェースをレイヤテクスチャ、ボリュームテクスチャ、キューブマップテクスチャのいずれの用途にも兼用して用いることができる。したがって、テクスチャユニット７０の回路規模を小さく抑えることができ、テクスチャユニット７０内のレジスタやキャッシュ、メモリなどの資源管理も容易になる。また、インタフェースが統一されているため、テクスチャマッピング処理のプログラミングも容易である。
【０１１５】
また、テクスチャ構造体５２を参照するためのアドレス情報や、テクスチャ構造体５２を利用したテクスチャマッピングのフィルタリングモードなどの各種パラメータは、１回のコンフィグレーションによりレジスタファイルに設定することができる。レイヤを切り替えてテクスチャ構造体５２内の２次元テクスチャを参照しても、レジスタの設定情報すなわちコンテキストを変更する必要がなく、コンテキスト切り替えのオーバーヘッドなしで、効率良くテクスチャマッピングを行うことができる。また、テクスチャ構造体５２では、複数のテクスチャを用いることができるため、高い描画品質を実現することができる。このように、本実施の形態によれば、処理効率を維持しながら、複数のテクスチャを使い分けて描画品質の向上を図ることができる。
【０１１６】
また、本実施の形態の描画処理装置１００によるキューブマッピング処理では、反射ベクトルを算出し、反射ベクトルからテクセル座標を求める計算をシェーダユニット３０の描画演算処理部３４において行い、キューブマップを参照してテクセル値をサンプリングして補間する処理はテクスチャユニット７０において行う。テクスチャユニット７０は、内挿演算器によるテクスチャマッピング専用のハードウエア構成をもつため、テクスチャ演算能力が高い。一方、シェーダユニット３０は、プログラムによって複雑な演算処理を実行する能力があり、反射ベクトルの算出のような複雑な演算も高速に実行できる。本実施の形態の描画処理装置１００では、キューブマッピング処理の内、高度な演算能力を必要とする処理は、シェーダユニット３０で行い、テクスチャ演算に係る処理は、専用のテクスチャユニット７０で行うことにより、処理を分担して、描画処理装置１００全体の描画処理の効率化が図られている。
【０１１７】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【０１１８】
上記の説明では、レイヤ間の補間およびミップレベル間の補間は、２つのレイヤ間、２つのミップレベル間で行われたが、３つ以上のレイヤもしくはミップレベルを用いて補間を行うようにしてもよい。また、サンプリングするテクセルの個数についても、４近傍テクセルに限られない。８近傍テクセルをサンプリングしてそれらのテクセル間で補間をしてもよい。
【０１１９】
また、上記の説明では、等方性（isotropic）テクセルサンプリングを説明したが、異方性（anisotropic）フィルタリングを行ってもよい。異方性テクセルサンプリングは、スクリーンのＸＹ面に対してテクセル座標のＵＶ面の傾きが大きい場合に特に有効である。異方性テクセルサンプリングでは、スクリーンのＸＹ面におけるテクセル座標の変化の大きさと方向を求め、その変化の方向に変化の大きさに応じた回数のポイントサンプリング、バイリニアサンプリング、トライリニアサンプリングなどを繰り返すことで描画品質を維持する。
【図面の簡単な説明】
【０１２０】
【図１】実施の形態に係る描画処理装置の構成図である。
【図２】図１のシェーダユニットおよびテクスチャユニットの構成を示す図である。
【図３】図２のテクスチャ構造体のデータ構造を説明する図である。
【図４】バイリニアサンプリングを説明する図である。
【図５】ミップマップの解像度レベル間のトライリニアサンプリングを説明する図である。
【図６】レイヤ間のモノリニアサンプリングを説明する図である。
【図７】実施の形態に係るテクスチャユニットによるテクスチャマッピング処理の手順を説明するフローチャートである。
【図８】キューブマッピングにおける描画対象物を囲む仮想的な立方体とその面を示す図である。
【図９】図８の仮想立方体の展開図において、テクスチャ座標の各軸の方向とワールド座標の各軸の方向の対応関係を説明する図である。
【図１０】キューブマッピングにおけるターゲット面、ターゲット面上のテクスチャ座標、およびメジャー成分の対応関係をまとめて示す図である。
【図１１】テクスチャ構造体をキューブマップとして用いる方法を説明する図である。
【図１２】実施の形態に係る描画処理装置によるキューブマッピング処理の手順を説明するフローチャートである。
【符号の説明】
【０１２１】
１０  ラスタライザ、  ３０  シェーダユニット、  ３２  レジスタファイル、  ３４  描画演算処理部、  ５０  メモリ、  ５２  テクスチャ構造体、  ５４  描画データ、  ７０  テクスチャユニット、  ７２  レジスタファイル、  ７４  フィルタ、  ７６  テクスチャ読み出し部、  １００  描画処理装置。
【図１】
2006244426.tif 000003
【図２】
2006244426.tif 000004
【図３】
2006244426.tif 000005
【図４】
2006244426.tif 000006
【図５】
2006244426.tif 000007
【図６】
2006244426.tif 000008
【図７】
2006244426.tif 000009
【図８】
2006244426.tif 000010
【図９】
2006244426.tif 000011
【図１０】
2006244426.tif 000012
【図１１】
2006244426.tif 000013
【図１２】
2006244426.tif 000014
【手続補正書】
【提出日】平成18年3月24日(2006.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ記憶部と、
描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出すテクスチャ読み出し部と、
読み出された前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するフィルタとを含み、
前記テクスチャ構造体は、レイヤ単位で規定される２次元テクスチャをレイヤ数だけ設けたレイヤ構造、奥行きレベルの異なる２次元テクスチャを奥行き方向に複数並べたボリュームテクスチャの構造、および前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造のいずれかを有し、
前記テクスチャ構造体が前記レイヤ構造を有する場合は、前記第３パラメータとして前記レイヤを指定する番号が指定され、前記テクスチャ構造体が前記ボリュームテクスチャの構造を有する場合は、前記第３パラメータとして前記奥行きに関するパラメータが指定され、前記テクスチャ構造体が前記環境テクスチャを立方体の面数だけ設けた構造を有する場合は、前記第３パラメータとして前記立方体の面を指定する番号が指定されることにより、前記レイヤ構造、前記ボリュームテクスチャの構造、前記環境テクスチャを立方体の面数だけ設けた構造のいずれかの種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理装置。
【請求項２】
前記テクスチャ構造体を一括して参照するためのベースアドレスを格納するレジスタをさらに設け、
前記テクスチャ読み出し部は、前記レジスタに格納された前記ベースアドレスに対して、指定された第３パラメータに依存するオフセット値を加算することにより、指定された第３パラメータに対応する前記２次元テクスチャの参照アドレスを生成し、前記参照アドレスを基準にして、指定された２次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項１に記載のテクスチャ処理装置。
【請求項３】
前記テクスチャ構造体に含まれる複数の２次元テクスチャの各々は、段階的に解像度を異ならせた一組のミップマップテクスチャであり、
前記テクスチャ読み出し部は、前記描画対象物の表面に適用されるテクスチャの描画詳細度の指定も受け、指定された第３パラメータに対応する一組のミップマップテクスチャの内、指定された描画詳細度に対応する解像度のミップマップテクスチャを選択し、選択されたミップマップテクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項１または２に記載のテクスチャ処理装置。
【請求項４】
前記テクスチャ読み出し部は、指定された第３パラメータに対応する一組のミップマップテクスチャの内、指定された描画詳細度に対応する２つの異なる解像度のミップマップテクスチャを選択し、選択された２つの異なる解像度のミップマップテクスチャの各々から、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出し、
前記フィルタは、前記２つの異なる解像度のミップマップテクスチャ間で前記テクセル値を補間することにより、前記描画対象物の表面に適用されるテクスチャに関する値を算出することを特徴とする請求項３に記載のテクスチャ処理装置。
【請求項５】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ構造体を格納するテクスチャ記憶部と、
描画対象物の表面に適用されるテクスチャについて前記第３パラメータの指定と前記表面上の２次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値を読み出して、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出するテクスチャ処理部と、
前記テクスチャ処理部から出力される前記テクスチャに関する補間値を用いて、前記描画対象物の描画演算処理を行う描画処理部とを含み、
前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有し、
前記描画処理部は、前記描画対象物の表面の反射ベクトルにもとづいて、前記表面に写像される環境テクスチャの面番号とその面内における２次元パラメータ座標値とを求め、求めた面番号を前記第３パラメータとして２次元パラメータ座標値とともに前記テクスチャ処理部に対して指定し、
前記テクスチャ処理部は、前記テクスチャ構造体の内、前記描画処理部により前記第３パラメータとして指定された前記面番号に対応する環境テクスチャから、前記描画処理部により指定された前記２次元パラメータ座標値に対応するテクセル値を読み出し、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出することを特徴とする描画処理装置。
【請求項６】
コンピュータにより発行されるテクスチャ読み出し命令により値がサンプリングされるテクスチャのデータ構造であって、
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられた構造体を有し、
前記コンピュータにより発行される前記２次元パラメータ座標値および前記第３パラメータを指定したテクスチャの読み出し命令により、指定された第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応する前記テクセル値がサンプリングされ、
前記テクスチャ構造体は、レイヤ単位で規定される２次元テクスチャをレイヤ数だけ設けたレイヤ構造、奥行きレベルの異なる２次元テクスチャを奥行き方向に複数並べたボリュームテクスチャの構造、および前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造のいずれかを有し、
前記コンピュータにより発行されるテクスチャ読み出し命令において、前記テクスチャ構造体が前記レイヤ構造を有する場合は、前記第３パラメータとして前記レイヤを指定する番号が指定され、前記テクスチャ構造体が前記ボリュームテクスチャの構造を有する場合は、前記第３パラメータとして前記奥行きに関するパラメータが指定され、前記テクスチャ構造体が前記環境テクスチャを立方体の面数だけ設けた構造を有する場合は、前記第３パラメータとして前記立方体の面を指定する番号が指定されることにより、前記レイヤ構造、前記ボリュームテクスチャの構造、前記環境テクスチャを立方体の面数だけ設けた構造のいずれかの種類の前記テクスチャ構造体が前記コンピュータにより統一的に参照されることを特徴とするテクスチャのデータ構造。
【請求項７】
テクスチャに関する値を２次元パラメータ座標に対応づけてテクセル値として格納した２次元テクスチャが複数設けられ、前記複数の２次元テクスチャの少なくとも１つを指定するための第３パラメータが前記２次元パラメータ座標における第１および第２パラメータとは別に設けられたテクスチャ構造体を保持したテクスチャメモリに対して、描画対象物の表面に適用されるテクスチャについて前記第３パラメータと前記表面上の２次元パラメータ座標値を指定したテクスチャの読み出し命令を実行することにより、指定された前記第３パラメータに対応する前記２次元テクスチャから、指定された前記２次元パラメータ座標値に対応するテクセル値をサンプリングするステップと、
サンプリングされた前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するステップとを含み、
前記テクスチャ構造体は、レイヤ単位で規定される２次元テクスチャをレイヤ数だけ設けたレイヤ構造、奥行きレベルの異なる２次元テクスチャを奥行き方向に複数並べたボリュームテクスチャの構造、および前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造のいずれかを有し、
前記テクスチャ構造体が前記レイヤ構造を有する場合は、前記第３パラメータとして前記レイヤを指定する番号が指定され、前記テクスチャ構造体が前記ボリュームテクスチャの構造を有する場合は、前記第３パラメータとして前記奥行きに関するパラメータが指定され、前記テクスチャ構造体が前記環境テクスチャを立方体の面数だけ設けた構造を有する場合は、前記第３パラメータとして前記立方体の面を指定する番号が指定されることにより、前記レイヤ構造、前記ボリュームテクスチャの構造、前記環境テクスチャを立方体の面数だけ設けた構造のいずれかの種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理方法。