JP2006244426A - Texture processing device, picture drawing processing device, and texture processing method - Google Patents
Texture processing device, picture drawing processing device, and texture processing method Download PDFInfo
- Publication number
- JP2006244426A JP2006244426A JP2005063113A JP2005063113A JP2006244426A JP 2006244426 A JP2006244426 A JP 2006244426A JP 2005063113 A JP2005063113 A JP 2005063113A JP 2005063113 A JP2005063113 A JP 2005063113A JP 2006244426 A JP2006244426 A JP 2006244426A
- Authority
- JP
- Japan
- Prior art keywords
- texture
- dimensional
- parameter
- texel
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
Description
この発明は、描画データを演算処理するテクスチャ処理装置、描画処理装置、およびテクスチャ処理方法に関する。 The present invention relates to a texture processing device, a drawing processing device, and a texture processing method for performing arithmetic processing on drawing data.
3次元コンピュータグラフィックスでは、一般的に3次元空間のオブジェクトを多数のポリゴンにより表現するポリゴンモデルが利用される。ポリゴンモデルの描画処理において、光源、視点位置、物体表面の反射率などを考慮してポリゴン表面に陰影をつけるシェーディングが行われる。また、写実性の高い画像を生成するために、ポリゴンモデルの表面にテクスチャ画像を貼り付けるテクスチャマッピングが行われる。 In the three-dimensional computer graphics, a polygon model that expresses an object in a three-dimensional space with a large number of polygons is generally used. In the polygon model drawing process, shading is performed to shade the polygon surface in consideration of the light source, the viewpoint position, the reflectance of the object surface, and the like. Further, in order to generate an image with high realism, texture mapping is performed in which a texture image is pasted on the surface of the polygon model.
テクスチャマッピングに使われるテクスチャは、通常は2次元テクスチャであるが、より質感の高い表現をするために、奥行き方向にもテクスチャをもたせたボリュームテクスチャが使われることがある。ボリュームテクスチャは、描画対象物の断面を描画したり、雲や炎のような3次元構造をもつ描画対象物や半透明の描画対象物にテクスチャをマッピングするために用いられる。 The texture used for texture mapping is usually a two-dimensional texture, but a volume texture with a texture in the depth direction may be used in order to express a higher texture. The volume texture is used for drawing a cross section of the drawing object, or mapping the texture to a drawing object having a three-dimensional structure such as a cloud or a flame or a translucent drawing object.
また、周囲の環境をテクスチャとして描画表面に映り込ませる環境マッピングが行われることがある。描画対象物を囲む仮想立方体の各面に環境テクスチャをあらかじめ投影しておき、立方体の各面の環境テクスチャを描画表面に写像するキューブ環境マッピングでは、環境テクスチャは6面のキューブマップの構成になる。 In addition, environment mapping may be performed in which the surrounding environment is reflected on the drawing surface as a texture. In cube environment mapping in which an environment texture is projected in advance on each surface of a virtual cube surrounding a drawing object, and the environment texture of each surface of the cube is mapped onto the drawing surface, the environment texture has a six-sided cube map configuration. .
このように、テクスチャマッピングの手法によってテクスチャにはいろいろな種類があり、その手法に特有のテクスチャ演算を専用に実行できるハードウエアを設けると、描画処理装置の回路規模が大きくなり、装置コストが高くなる。また、テクスチャマッピング手法に応じてハードウエアを構成すると、レジスタやメモリなどの資源管理も複雑になる。また、各種テクスチャを利用するために特有のパラメータを設定したり、特有の命令を実行するなど、プログラミングの手間もかかる。 As described above, there are various types of textures depending on the texture mapping method, and if hardware that can execute dedicated texture operations specific to the method is provided, the circuit scale of the drawing processing device increases and the device cost increases. Become. Further, if hardware is configured according to the texture mapping method, resource management such as registers and memories becomes complicated. In addition, it takes time and effort for programming such as setting specific parameters to use various textures and executing specific commands.
本発明はこうした課題に鑑みてなされたものであり、その目的は、各種テクスチャを統一的に利用することができるリソース管理の面で優れた描画処理技術を提供することにある。また、別の目的は、複数のテクスチャを効率良く切り替えて利用することのできる描画処理技術を提供することにある。 The present invention has been made in view of these problems, and an object of the present invention is to provide a drawing processing technique that is excellent in terms of resource management, in which various textures can be used uniformly. Another object is to provide a drawing processing technique capable of efficiently switching and using a plurality of textures.
上記課題を解決するために、本発明のある態様のテクスチャ処理装置は、テクスチャに関する値を2次元パラメータ座標に対応づけてテクセル値として格納した2次元テクスチャが複数設けられ、前記複数の2次元テクスチャの少なくとも1つを指定するための第3パラメータが前記2次元パラメータ座標における第1および第2パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ記憶部と、描画対象物の表面に適用されるテクスチャについて前記第3パラメータの指定と前記表面上の2次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値を読み出すテクスチャ読み出し部と、読み出された前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するフィルタとを含む。前記第3パラメータとして、前記テクスチャ構造体に含まれる前記複数の2次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照される。 In order to solve the above-described problem, a texture processing apparatus according to an aspect of the present invention includes a plurality of two-dimensional textures in which values relating to texture are stored as texel values in association with two-dimensional parameter coordinates. A third parameter for designating at least one of the above is applied to the texture storage unit storing the texture structure provided separately from the first and second parameters in the two-dimensional parameter coordinates, and to the surface of the drawing object The texture is designated from the two-dimensional texture corresponding to the designated third parameter in the texture structure by receiving the designation of the third parameter and the designation of the two-dimensional parameter coordinate value on the surface. Texture reading that reads out the texel value corresponding to the two-dimensional parameter coordinate value If, by interpolating the texel values read, and a filter for calculating a value relating to a texture applied to the surface of the drawing object. By specifying a value corresponding to the relationship between the plurality of two-dimensional textures included in the texture structure as the third parameter, different types of the texture structures are uniformly referred to.
ここで、テクスチャが描画対象物の表面に適用されるとは、テクスチャのカラー値などが描画面にマッピングされることの他、テクスチャに関する値、たとえば法線ベクトルの値や関数値などが描画面に適用されることも含む趣旨である。 Here, texture is applied to the surface of the drawing object when texture color values are mapped to the drawing surface, as well as texture-related values such as normal vector values and function values. It is also intended to be applied to.
本発明の別の態様は、描画処理装置である。この装置は、テクスチャに関する値を2次元パラメータ座標に対応づけてテクセル値として格納した2次元テクスチャが複数設けられ、前記複数の2次元テクスチャの少なくとも1つを指定するための第3パラメータが前記2次元パラメータ座標における第1および第2パラメータとは別に設けられたテクスチャ構造体を格納するテクスチャ構造体を格納するテクスチャ記憶部と、描画対象物の表面に適用されるテクスチャについて前記第3パラメータの指定と前記表面上の2次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値を読み出して、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出するテクスチャ処理部と、前記テクスチャ処理部から出力される前記テクスチャに関する補間値を用いて、前記描画対象物の描画演算処理を行う描画処理部とを含む。前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有する。前記描画処理部は、前記描画対象物の表面の反射ベクトルにもとづいて、前記表面に写像される環境テクスチャの面番号とその面内における2次元パラメータ座標値とを求め、求めた面番号を前記第3パラメータとして2次元パラメータ座標値とともに前記テクスチャ処理部に対して指定し、前記テクスチャ処理部は、前記テクスチャ構造体の内、前記描画処理部により前記第3パラメータとして指定された前記面番号に対応する環境テクスチャから、前記描画処理部により指定された前記2次元パラメータ座標値に対応するテクセル値を読み出し、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出する。 Another aspect of the present invention is a drawing processing apparatus. This apparatus is provided with a plurality of two-dimensional textures in which values related to texture are stored as texel values in association with two-dimensional parameter coordinates, and a third parameter for designating at least one of the plurality of two-dimensional textures is the 2 A texture storage unit for storing a texture structure that is provided separately from the first and second parameters in the dimension parameter coordinates, and designation of the third parameter for the texture applied to the surface of the drawing target Corresponding to the designated two-dimensional parameter coordinate value from the two-dimensional texture corresponding to the designated third parameter in the texture structure. Texture to be read and applied to the surface of the drawing object Including a texture processing unit for calculating an interpolation value related, using interpolation value for the texture output from the texture processing unit, and a drawing processing unit for drawing processing of the drawing object. The texture structure has a structure in which the number of environmental textures projected on a cube surface virtually provided in the space where the drawing target exists is provided. The drawing processing unit obtains the surface number of the environmental texture mapped to the surface and the two-dimensional parameter coordinate value in the surface based on the reflection vector of the surface of the drawing object, A third parameter is specified to the texture processing unit together with a two-dimensional parameter coordinate value, and the texture processing unit sets the surface number specified as the third parameter by the drawing processing unit in the texture structure. A texel value corresponding to the two-dimensional parameter coordinate value designated by the drawing processing unit is read from the corresponding environment texture, and an interpolation value related to the texture applied to the surface of the drawing object is calculated.
本発明のさらに別の態様は、テクスチャのデータ構造である。このテクスチャのデータ構造は、テクスチャに関する値を2次元パラメータ座標に対応づけてテクセル値として格納した2次元テクスチャが複数設けられ、前記複数の2次元テクスチャの少なくとも1つを指定するための第3パラメータが前記2次元パラメータ座標における第1および第2パラメータとは別に設けられた構造体を有し、前記2次元パラメータ座標値および前記第3パラメータを指定したテクスチャの読み出し命令により、指定された第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応する前記テクセル値のサンプリングが可能に構成され、前記第3パラメータとして、前記構造体に含まれる前記複数の2次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記構造体の統一的な参照が可能に構成されてなる。 Yet another aspect of the present invention is a texture data structure. The texture data structure includes a plurality of two-dimensional textures in which texture-related values are stored as texel values in association with two-dimensional parameter coordinates, and a third parameter for designating at least one of the plurality of two-dimensional textures. Has a structure provided separately from the first and second parameters in the two-dimensional parameter coordinates, and the third specified by the texture read command specifying the two-dimensional parameter coordinate values and the third parameter The texel value corresponding to the specified two-dimensional parameter coordinate value can be sampled from the two-dimensional texture corresponding to the parameter, and the plurality of two-dimensional elements included in the structure as the third parameter By specifying a value according to the relationship between textures, Unified Reference Type of the structure so that it may be configured.
本発明のさらに別の態様は、テクスチャ処理方法である。この方法は、テクスチャに関する値を2次元パラメータ座標に対応づけてテクセル値として格納した2次元テクスチャが複数設けられ、前記複数の2次元テクスチャの少なくとも1つを指定するための第3パラメータが前記2次元パラメータ座標における第1および第2パラメータとは別に設けられたテクスチャ構造体を保持したテクスチャメモリに対して、描画対象物の表面に適用されるテクスチャについて前記第3パラメータと前記表面上の2次元パラメータ座標値を指定したテクスチャの読み出し命令を実行することにより、指定された前記第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値をサンプリングするステップと、サンプリングされた前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するステップとを含み、前記第3パラメータとして、前記テクスチャ構造体に含まれる前記複数の2次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照される。 Yet another embodiment of the present invention is a texture processing method. In this method, a plurality of two-dimensional textures in which texture-related values are stored as texel values in association with two-dimensional parameter coordinates are provided, and a third parameter for designating at least one of the plurality of two-dimensional textures is the 2 For a texture memory holding a texture structure provided separately from the first and second parameters in the dimension parameter coordinates, the third parameter and the two-dimensional on the surface for the texture applied to the surface of the drawing object Sampling a texel value corresponding to the specified two-dimensional parameter coordinate value from the two-dimensional texture corresponding to the specified third parameter by executing a texture read command specifying the parameter coordinate value And interpolate the sampled texel values Calculating a value related to the texture applied to the surface of the drawing object, and the third parameter is a value corresponding to the relationship between the plurality of two-dimensional textures included in the texture structure Is specified, different types of the texture structures are uniformly referred to.
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造などの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, an apparatus, a system, a computer program, a data structure, etc. are also effective as an aspect of the present invention.
本発明によれば、テクスチャマッピングの利便性を高めるとともに、テクスチャ処理の効率を向上させることができる。 According to the present invention, the convenience of texture mapping can be improved and the efficiency of texture processing can be improved.
図1は、実施の形態に係る描画処理装置100の構成図である。描画処理装置100は、3次元モデル情報にもとづいて2次元画面に表示するための描画データを生成するレンダリング処理を行う。
FIG. 1 is a configuration diagram of a
ラスタライザ10は、メモリもしくは他のプロセッサや頂点シェーダなどから描画対象となるプリミティブの頂点データを取得し、描画するスクリーンに対応したピクセル情報に変換する。描画プリミティブは、3次元オブジェクトをポリゴンモデルで表した場合の点、線、三角形、四角形などの幾何学図形の描画単位であり、頂点単位で表されるデータである。ラスタライザ10は、3次元空間上の描画プリミティブを投影変換により描画平面上の図形に変換するビュー変換を行い、さらに、描画平面上の図形を描画平面の水平方向に沿ってスキャンしながら、1列毎に量子化されたピクセルに変換する。
The
ラスタライザ10により、描画プリミティブがピクセル展開され、各ピクセルについて、RGB3原色で表されるカラー値、透明度を示すアルファ値、奥行きを示すZ値、テクスチャ属性を参照するためのパラメータ座標であるUV座標値などを含むピクセル情報が算出される。
The
ラスタライザ10は、1つ以上のピクセルを含む所定サイズのピクセル集合の単位で上記のラスタライズ処理を行い、ラスタライズ処理後のピクセル集合をバッファリングしながら、ピクセル集合の単位でシェーダユニット30に順次供給する。ラスタライザ10からシェーダユニット30に供給されたピクセル集合は、シェーダユニット30においてパイプライン処理される。ピクセル集合は、ラスタライザ10が一度に処理するピクセルをまとめたものであり、ラスタライズ処理の単位であり、また同時に、シェーダユニット30における描画演算処理の単位にもなっている。
The
シェーダユニット30は、非同期動作する複数のピクセルシェーダを含み、それぞれが担当するピクセル集合を処理することでピクセルの描画処理を並列に実行する。シェーダユニット30は、ラスタライザ10からピクセル集合単位で分配されるピクセル情報をもとに、シェーディング処理を行ってピクセルのカラー値を求め、さらに、テクスチャマッピングを行う場合は、テクスチャユニット70から得られるテクスチャのカラー値を合成して最終的なピクセルのカラー値を算出し、メモリ50にピクセルデータを書き込む。
The
テクスチャユニット70は、シェーダユニット30において処理されるピクセルにテクスチャデータをマッピングする処理を行う。本実施の形態では、テクスチャユニット70は、複数の2次元テクスチャを設けたテクスチャ構造体(以下、単に「テクスチャ構造体」と呼ぶ)を利用する。テクスチャ構造体に含まれる2次元テクスチャには、テクスチャのカラー値などの属性値が2次元パラメータ座標(u,v)に対応づけてテクセル値として格納される。
The
なお、テクスチャ構造体に含まれる2次元テクスチャは、特別な場合として、テクセルの位置座標として第1パラメータuだけをもたせた1次元テクスチャであってもよい。2次元テクスチャにおいて、第2パラメータvが常に0であるとして、v方向を無視することで、1次元テクスチャを2次元テクスチャの特殊な場合として扱うことができる。そこで、以下では、特殊な場合として1次元テクスチャも含める趣旨でテクスチャの次元を一般的に2次元として説明する。 Note that the two-dimensional texture included in the texture structure may be a one-dimensional texture having only the first parameter u as the position coordinates of the texel as a special case. In the two-dimensional texture, assuming that the second parameter v is always 0, the one-dimensional texture can be handled as a special case of the two-dimensional texture by ignoring the v direction. Therefore, in the following description, the texture dimension is generally assumed to be two-dimensional for the purpose of including a one-dimensional texture as a special case.
テクスチャ構造体に含まれる複数の2次元テクスチャの少なくとも1つからテクセル値を参照するために、テクスチャ構造体に含まれる2次元テクスチャの少なくとも1つを指定するための第3パラメータwが、テクセル位置を指定する2次元パラメータ座標(u,v)における第1パラメータuおよび第2パラメータvとは別に設けられる。 In order to refer to the texel value from at least one of the plurality of two-dimensional textures included in the texture structure, the third parameter w for designating at least one of the two-dimensional textures included in the texture structure is a texel position. Are provided separately from the first parameter u and the second parameter v in the two-dimensional parameter coordinates (u, v) for designating.
ポリゴン面上のピクセルにマッピングされるテクスチャは、第3パラメータwとポリゴン面上に定義される2次元パラメータ座標(u,v)との組み合わせた3次元パラメータ座標(u,v,w)によって指定される。以下、パラメータ座標をテクセル座標と呼び、第3パラメータwも第3テクセル座標wと呼ぶが、第3テクセル座標wは、基本的に、テクスチャ構造体に含まれる複数の2次元テクスチャの少なくとも1つを指定するために使われる値であり、2次元テクセル座標は、テクスチャの幅と高さに対応するが、第3テクセル座標は、必ずしもテクスチャの奥行きに対応するものではないことに留意する。第3テクセル座標wがどのように意味づけられるかは、テクスチャ構造体に含まれる複数の2次元テクスチャ間の関連性に依存するからである。 The texture to be mapped to the pixels on the polygon surface is specified by the three-dimensional parameter coordinates (u, v, w) in combination with the third parameter w and the two-dimensional parameter coordinates (u, v) defined on the polygon surface. Is done. Hereinafter, the parameter coordinates are referred to as texel coordinates, and the third parameter w is also referred to as third texel coordinate w. The third texel coordinate w is basically at least one of a plurality of two-dimensional textures included in the texture structure. Note that while the two-dimensional texel coordinates correspond to the width and height of the texture, the third texel coordinates do not necessarily correspond to the depth of the texture. This is because how the third texel coordinate w is given depends on the relationship between a plurality of two-dimensional textures included in the texture structure.
テクスチャユニット70は、シェーダユニット30からピクセルにマッピングされるテクスチャ構造体の3次元テクセル座標値(u,v,w)を取得し、テクスチャ構造体の内、第3テクセル座標wに対応する2次元テクスチャから2次元テクセル座標値(u,v)に対応するテクセル値を読み出し、読み出したテクセル値を補間し、シェーダユニット30にその補間値を供給する。
The
シェーダユニット30は、さらに、メモリ50に保持された描画データに対して、フォギング、アルファブレンディング等の処理を行い、最終的なピクセルのカラー値を求め、メモリ50のピクセルデータを更新する。
The
メモリ50は、シェーダユニット30により生成されたピクセルデータをスクリーン座標で格納するフレームバッファとして機能する領域をもつ。フレームバッファに格納されたピクセルデータは、最終描画画像であることも、シェーディング処理過程にある中間画像であることもある。フレームバッファに記憶されたピクセルデータは、表示装置に出力されて表示される。
The
図2は、シェーダユニット30およびテクスチャユニット70の構成を示す図である。
FIG. 2 is a diagram illustrating the configuration of the
シェーダユニット30のレジスタファイル32、テクスチャユニット70のレジスタファイル72にはそれぞれ、テクスチャマッピングを行うために必要なコンフィグレーション情報が設定される。コンフィグレーション情報には、メモリ50に格納されたテクスチャ構造体52を一括して参照するためのベースアドレス、テクスチャマッピングの際のフィルタリングモードなどの各種パラメータが含まれる。
Configuration information necessary for texture mapping is set in each of the
シェーダユニット30の描画演算処理部34は、レジスタファイル32に設定されたコンフィグレーション情報にもとづいて、テクスチャ構造体52からテクスチャを参照するための3次元テクセル座標値(u,v,w)を指定したテクスチャ命令をテクスチャユニット70に対して発行することにより、テクスチャユニット70からピクセルにマッピングされるテクスチャの補間値を取得する。描画演算処理部34は、テクスチャユニット70から取得したテクスチャの補間値をもちいて最終的なピクセルのカラー値を算出し、描画データ54としてメモリ50に書き込む。
The drawing
テクスチャユニット70のテクスチャ読み出し部76は、シェーダユニット30から3次元テクセル座標値(u,v,w)を受け取る。テクスチャ読み出し部76は、レジスタファイル72に保持されたテクスチャ構造体52のベースアドレスに、第3テクセル座標値wに依存して決まるオフセット値を加算することにより、指定された第3テクセル座標値wに対応するテクスチャの参照アドレスを生成する。テクスチャ読み出し部76は、その参照アドレスで指定されるテクスチャから、レジスタファイル72に設定されたフィルタリングモードのしたがって、2次元テクセル座標(u,v)に対応するテクセル値を読み出す。テクスチャ読み出し部76は、読み出したテクセル値をフィルタ74に与える。
The
なお、テクスチャ読み出し部76は、メモリ50に格納されたテクスチャ構造体52を直接参照せずに、テクスチャユニット70内に設けられたキャッシュメモリにキャッシュされたテクスチャ構造体52を参照するように構成してもよい。
The
描画演算処理部34は、3次元テクセル座標値(u,v,w)以外に、描画対象オブジェクトの描画詳細度を示すLOD(level of detail)値をパラメータとして指定したテクスチャ命令を発行することもできる。その場合、テクスチャ読み出し部76は、ミップマップテクスチャの構造をもつテクスチャ構造体52において、LOD値に対応する解像度レベルのミップマップテクスチャを参照する。
In addition to the three-dimensional texel coordinate value (u, v, w), the drawing
フィルタ74は、レジスタファイル72に設定されたフィルタリングモードにしたがって、テクスチャ読み出し部76により読み出されたテクセル値の補間を行い、補間値をシェーダユニット30の描画演算処理部34に与える。
The filter 74 performs interpolation of the texel value read by the
フィルタ74は、多段構成の内挿演算器を用いて、u、v2方向のバイリニア補間結果に対して、さらにw方向またはミップマップの解像度レベルの方向に補間を行うトライリニアサンプリングを実行することができる。また、フィルタ74は、多段構成の内挿演算器を選択的に機能させることにより、トライリニアサンプリング以外に、モノリニアサンプリングやバイリニアサンプリングも実行することができる。 The filter 74 may perform trilinear sampling that performs interpolation in the direction of the w direction or the resolution level of the mipmap on the bilinear interpolation result in the u and v2 directions using a multistage interpolation calculator. it can. The filter 74 can also perform monolinear sampling and bilinear sampling in addition to trilinear sampling by selectively functioning a multistage interpolation calculator.
モノリニアサンプリングでは、第3テクセル座標wに対応する2つの近傍テクスチャのそれぞれから、指定テクセル座標(u,v)の最近傍テクセルがサンプリングされ、2つの近傍テクスチャ間で補間される。また、LOD値が指定された場合は、ミップマップの解像度レベルの内、LOD値に対応する2つの近傍解像度レベルのテクスチャのそれぞれから、指定テクセル座標(u,v)の最近傍テクセルがサンプリングされ、2つの近傍解像度レベル間で補間される。 In monolinear sampling, the nearest texel of the designated texel coordinate (u, v) is sampled from each of the two neighboring textures corresponding to the third texel coordinate w, and is interpolated between the two neighboring textures. When the LOD value is designated, the nearest texel of the designated texel coordinate (u, v) is sampled from each of the two neighboring resolution level textures corresponding to the LOD value among the resolution levels of the mipmap. Interpolated between two neighboring resolution levels.
バイリニアサンプリングでは、第3テクセル座標wに対応するテクスチャから指定テクセル座標(u,v)の4近傍テクセルがサンプリングされ、u、vの2方向に補間される。また、LOD値が指定された場合は、ミップマップの解像度レベルの内、LOD値に対応するテクスチャから指定テクセル座標(u,v)の4近傍テクセルがサンプリングされ、u、vの2方向に補間される。 In bilinear sampling, four neighboring texels at designated texel coordinates (u, v) are sampled from the texture corresponding to the third texel coordinates w, and are interpolated in two directions u and v. When the LOD value is specified, four neighboring texels at the specified texel coordinates (u, v) are sampled from the texture corresponding to the LOD value within the resolution level of the mipmap and interpolated in two directions u and v. Is done.
トライリニアサンプリングでは、第3テクセル座標wに対応する2つの近傍テクスチャのそれぞれから、指定テクセル座標(u,v)の4近傍テクセルがサンプリングされ、各テクスチャでu、vの2方向に補間された上で、2つの近傍テクスチャ間でさらに補間される。また、LOD値が指定された場合は、ミップマップの解像度レベルの内、LOD値に対応する2つの近傍解像度レベルのテクスチャのそれぞれから、指定テクセル座標(u,v)の4近傍テクセルがサンプリングされ、各解像度レベルでu、vの2方向に補間された上で、2つの近傍解像度レベル間でさらに補間される。 In the trilinear sampling, four neighboring texels of designated texel coordinates (u, v) are sampled from each of two neighboring textures corresponding to the third texel coordinate w, and interpolated in two directions of u and v with each texture. Above, further interpolation is performed between two neighboring textures. When the LOD value is designated, four neighboring texels at the designated texel coordinates (u, v) are sampled from each of the two neighboring resolution level textures corresponding to the LOD value among the resolution levels of the mipmap. Then, after interpolating in two directions u and v at each resolution level, further interpolation is performed between two neighboring resolution levels.
フィルタ74は、レジスタファイル72に設定されたフィルタリングモードによっていずれかの補間に切り替えて実行する。なお、フィルタ74は、いずれの内挿演算器も機能させずに、指定テクセル座標(u,v)の最近傍テクセルをサンプリングしてそのまま出力するポイントサンプリングも実行することができる。
The filter 74 is switched to one of the interpolations according to the filtering mode set in the
さらに、フィルタ74は、内挿演算器の差分器、乗算器、および加算器の機能構成を適宜流用して、演算処理に多少の変形を加えることにより、線形補間以外の演算を行うことも可能であり、バイリニア補間やトライリニア補間以外の有用な演算を行うこともできる。これにより、フィルタ74は、後述のテクセル座標(u,v)の偏差分を求める計算や、テクセル座標(u,v)がマッピングされる描画面のLOD値を求める計算を実行することができる。 Furthermore, the filter 74 can perform operations other than linear interpolation by appropriately modifying the functional configuration of the difference unit, multiplier, and adder of the interpolation operation unit and adding some modifications to the operation processing. It is also possible to perform useful calculations other than bilinear interpolation and trilinear interpolation. Accordingly, the filter 74 can execute a calculation for obtaining a deviation of texel coordinates (u, v), which will be described later, and a calculation for obtaining a LOD value of a drawing surface to which the texel coordinates (u, v) are mapped.
図3は、図2のメモリ50に格納されたテクスチャ構造体52のデータ構造を説明する図である。テクスチャ構造体52は、既に説明したように、2次元テクスチャを複数設けたものであり、第3パラメータwによりいずれかの2次元テクスチャを指定できるように構成されている。ここでは、複数の2次元テクスチャを格納するデータ構造の一例として、複数の2次元テクスチャが同図の縦方向に配置された構成を説明するが、第3パラメータwによっていずれかの2次元テクスチャをアドレス指定できる構成であれば、複数の2次元テクスチャのメモリ上での配置の形態は問わない。
FIG. 3 is a diagram for explaining the data structure of the
また、以下では、便宜上、同図のように縦方向に並べて配置された複数の2次元テクスチャの縦方向について述べる場合に、「レイヤ」という言葉を使うが、これは、複数の2次元テクスチャが層状に関連性をもつことを意味するものではなく、単に縦方向の並びの位置を指しているだけである。 In the following, for convenience, the term “layer” is used to describe the vertical direction of a plurality of two-dimensional textures arranged side by side in the vertical direction as shown in FIG. It does not mean that there is a relationship in the form of a layer, it simply refers to the position of the vertical alignment.
さらに、各レイヤの2次元テクスチャは、段階的に解像度を異ならせた一組のミップマップテクスチャの構造をもつことができる。同図の横方向にはミップマップの解像度レベル(以下、単に「ミップレベル」という)が図示されている。 Furthermore, the two-dimensional texture of each layer can have a structure of a set of mipmap textures having different resolutions in stages. In the horizontal direction of the figure, the resolution level of the mipmap (hereinafter simply referred to as “mip level”) is shown.
ミップレベル0について、縦方向に見た場合、レイヤ0、レイヤ1、レイヤ2の順に、高さと幅が共通するテクスチャA0、テクスチャA1、テクスチャA2が配置される。ミップレベル1についても、レイヤ0、レイヤ1、レイヤ2の順に、高さと幅が共通するテクスチャB0、テクスチャB1、テクスチャB2が配置される。ミップレベル1のテクスチャB0〜B2の幅と高さはそれぞれ、ミップレベル0のテクスチャA0〜A2の幅と高さの半分である。同様に、ミップレベル2のレイヤ0〜2に配置されるテクスチャC0〜C2の幅と高さはそれぞれ、ミップレベル1のレイヤ0〜2のテクスチャB0〜B2の幅と高さのさらに半分である。
When the
横方向に見た場合、レイヤ0には、ミップレベル0のテクスチャA0、ミップレベル1のテクスチャB0、ミップレベル2のテクスチャC0の順にミップレベルの異なるテクスチャが配置されている。同様に、レイヤ1、レイヤ2にもミップレベルの異なるテクスチャが格納されている。
When viewed in the horizontal direction, in
テクスチャ構造体52のレイヤ数およびミップレベル数は、レジスタファイル72の設定により変更可能である。テクスチャ構造体52にミップマップテクスチャの構造を設けるかどうかもレジスタファイル72の設定により選択することができる。ミップマップテクスチャを用いない場合は、同一サイズの2次元テクスチャが各レイヤに一つずつ設けられた構成となる。図3で言えば、ミップマップテクスチャを用いないテクスチャ構造体52は、ミップレベル0のテクスチャA0、A1、A2だけが存在するデータ構造となる。
The number of layers and the number of mip levels in the
また、テクスチャ構造体52に、レイヤの構造を設けるかどうかもレジスタファイル72の設定により選択可能である。レイヤの構造を設けない場合は、複数のミップレベルのテクスチャが1レイヤ分だけ設けられた構成となる。図3で言えば、レイヤ構造を設けないテクスチャ構造体52は、レイヤ0のテクスチャA0、B0、C0だけが存在するデータ構造となる。テクスチャ構造体52には、このようなレイヤが一つでミップレベルが複数のテクスチャも特別な場合として含まれる。さらにレイヤが1つでミップレベルを設けない通常の1枚のテクスチャもテクスチャ構造体52の特別な場合として扱う。
Whether the
テクスチャ読み出し部76は、メモリ50に格納されたテクスチャ構造体52に対して、レイヤ番号NとミップレベルMを指定することにより、指定したレイヤNに属する指定したミップレベルMのテクスチャを参照する。たとえば、レイヤ2、ミップレベル1を指定すると、レイヤ2に属するミップレベル1のテクスチャB1を参照することができる。テクスチャ読み出し部76は、指定したレイヤおよびミップレベルのテクスチャ内において、2次元テクセル座標(u,v)を指定することで、テクスチャのテクセル値をサンプリングする。
The
テクセル値は、テクスチャに関する値として、RGB3色のカラー値であってもよく、カラー値のインデックスであってもよい。後者の場合は、カラールックアップテーブルを参照してインデックスが実際のカラー値に変換される。また、テクスチャマッピングの一例としてバンプマッピングを行う場合は、テクスチャに法線ベクトルを格納することになり、その場合、テクセル値は法線ベクトルの値である。また、パラメータにもとづいてプログラムによってテクスチャを生成するプロシージャルテクスチャ(procedural texture)を利用する場合は、テクセル値はパラメータ値や関数値となる。 The texel value may be a color value of three RGB colors or a color value index as a value related to the texture. In the latter case, the index is converted into an actual color value by referring to the color lookup table. When bump mapping is performed as an example of texture mapping, a normal vector is stored in the texture. In this case, the texel value is the value of the normal vector. In addition, when using a procedural texture that generates a texture by a program based on a parameter, the texel value is a parameter value or a function value.
図4〜図6を参照して、テクスチャ構造体52からのテクセル値のサンプリングのいくつかの例を説明する。
Several examples of sampling texel values from the
図4は、バイリニアサンプリングを説明する図である。テクスチャ読み出し部76は、第3テクセル座標wに対応するレイヤとして参照レイヤNを求め、また、指定されたLOD値に対応するミップレベルとして参照ミップレベルMを求める。テクスチャ読み出し部76は、参照レイヤNと参照ミップレベルMにより指定されるテクスチャ51aから、テクセル座標値(u,v)で表される点の近傍にある4つのテクセル53aを読み出す。
FIG. 4 is a diagram for explaining bilinear sampling. The
フィルタ74は、この4近傍のテクセル53aの値をu方向およびv方向に線形補間することにより、テクセル座標値(u,v)に対応する補間値を求める。
The filter 74 obtains an interpolation value corresponding to the texel coordinate value (u, v) by linearly interpolating the values of the four neighboring
図5は、ミップレベル間のトライリニアサンプリングを説明する図である。テクスチャ読み出し部76は、第3テクセル座標wに対応するレイヤとして参照レイヤNを求め、また、指定されたLOD値に対応するミップレベルとして、2つの参照ミップレベルM、M+1を求める。テクスチャ読み出し部76は、参照レイヤNと第1参照ミップレベルMにより指定される第1テクスチャ51aから、テクセル座標値(u,v)で表される点の近傍にある4つのテクセル53aを読み出す。また、テクスチャ読み出し部76は、参照レイヤNと第2参照ミップレベルM+1により指定される第2テクスチャ51aから、テクセル座標値(u,v)で表される点の近傍の4つのテクセル53bを読み出す。
FIG. 5 is a diagram for explaining trilinear sampling between mip levels. The
フィルタ74は、第1参照ミップレベルMの4近傍のテクセル53aの値と、第2参照ミップレベルの4近傍のテクセル53bの値を、u、v、ミップレベルの3方向に線形に補間するトライリニア補間を行うことにより、テクセル座標値(u,v)に対応する補間値を算出する。
The filter 74 performs a linear interpolation between the value of the
図6は、レイヤ間のモノリニアサンプリングを説明する図である。テクスチャ読み出し部76は、第3テクセル座標wに対応するレイヤとして、2つの参照レイヤN、N+1を求め、また、指定されたLOD値に対するミップレベルとして参照ミップレベルMを求める。テクスチャ読み出し部76は、第1参照レイヤNとミップレベルMにより指定される第1テクスチャ51cから、テクセル座標値(u,v)で表される点の最近傍にあるテクセル53cを読み出す。また、テクスチャ読み出し部76は、第2参照レイヤN+1とミップレベルMにより指定される第1テクスチャ51dから、テクセル座標値(u,v)で表される点の最近傍にあるテクセル53dを読み出す。
FIG. 6 is a diagram for explaining monolinear sampling between layers. The
フィルタ74は、第1参照レイヤNのテクセル53cの値と、第2参照レイヤN+1のテクセル53dの値を線形補間することにより、テクセル座標値(u,v,w)に対応する補間値を算出する。
The filter 74 calculates an interpolated value corresponding to the texel coordinate value (u, v, w) by linearly interpolating the value of the
図6において、2つの参照レイヤN、N+1の各々において、テクセル座標値(u,v)で表される点の近傍にある4つのテクセルをサンプリングし、2つの参照レイヤN、N+1間でu、v、wの3方向に線形補間するトライリニア補間を行うこともできる。 In FIG. 6, in each of the two reference layers N and N + 1, four texels in the vicinity of the point represented by the texel coordinate value (u, v) are sampled, and u, between the two reference layers N and N + 1, Trilinear interpolation that linearly interpolates in the three directions v and w can also be performed.
図7は、テクスチャユニット70によるテクスチャマッピング処理の手順を説明するフローチャートである。
FIG. 7 is a flowchart for explaining the procedure of the texture mapping process by the
シェーダユニット30は、テクスチャユニット70に対して、テクスチャ構造体52を参照するためのテクセル座標値(u,v,w)とLOD値を指定する(S10)。ここで、シェーダユニット30から入力されるLOD値は、後述のテクセル座標の偏差分により決まる描画表面上の内部的なLOD値と区別する意味で、外部LOD値と呼ぶ。外部LOD値は、描画対象物のZ値などに応じて決められる。
The
より具体的には、シェーダユニット30は、外部LOD値と第3テクセル座標値wをパラメータに指定したテクスチャセット命令tsetを発行し、その後、2次元テクセル座標値(u,v)をパラメータに指定したテクスチャロード命令tldを発行する。テクスチャユニット70は、テクスチャロード命令tldの発行を受けて、テクスチャマッピングの動作を開始する。
More specifically, the
テクスチャユニット70は、入力されたパラメータのデータ型の変換を行う。シェーダユニット30は、浮動小数点数で演算を行うが、テクスチャユニット70は、テクスチャマッピングのハードウエアを効率良く利用するために、計算を速く実行できる固定小数点数を用いる。そこで、テクスチャユニット70は、入力されたテクセル座標などのパラメータのデータ型を浮動小数点から固定小数点に変換する。
The
フィルタ74は、テクセル座標(u,v)におけるu方向、v方向の傾きを示す偏差分を次のように算出する(S12)。 The filter 74 calculates a deviation indicating the inclination in the u direction and the v direction in the texel coordinates (u, v) as follows (S12).
縦横2ピクセルの描画領域において、4ピクセル(x,y)、(x+1,y)、(x,y+1)、(x+1,y+1)のそれぞれのテクセル座標が(U0,V0)、(U1,V1)、(U2,V2)、(U3,V3)であるとする。 In the drawing area of 2 pixels vertically and horizontally, the texel coordinates of 4 pixels (x, y), (x + 1, y), (x, y + 1), (x + 1, y + 1) are (U0, V0), (U1, V1). , (U2, V2), (U3, V3).
フィルタ74は、ピクセル座標(x,y)の変化に対するテクセル座標(u,v)の変化量du/dx、du/dy、dv/dx、dv/dyを次式の偏差分により求める。
du/dx=((U1−U0)+(U3−U2))/2
dv/dx=((V1−V0)+(V3−V2))/2
du/dy=((U2−U0)+(U3−U1))/2
dv/dy=((V2−V0)+(V3−V1))/2
The filter 74 obtains a change amount du / dx, du / dy, dv / dx, dv / dy of the texel coordinate (u, v) with respect to a change of the pixel coordinate (x, y) by a deviation of the following expression.
du / dx = ((U1-U0) + (U3-U2)) / 2
dv / dx = ((V1-V0) + (V3-V2)) / 2
du / dy = ((U2-U0) + (U3-U1)) / 2
dv / dy = ((V2-V0) + (V3-V1)) / 2
これらの偏差分は、テクセル座標がスクリーンのx方向、y方向に局所的に変化する量を示すものであり、テクスチャがマッピングされる曲面のLOD値を求めるために利用される。 These deviations indicate the amount by which the texel coordinates locally change in the x and y directions of the screen, and are used to obtain the LOD value of the curved surface to which the texture is mapped.
フィルタ74は、テクセル座標(u,v)の偏差分にもとづいて、次のようにテクセル座標(u,v)におけるLOD値を算出する(S14)。 Based on the deviation of the texel coordinates (u, v), the filter 74 calculates the LOD value at the texel coordinates (u, v) as follows (S14).
Px=[(du/dx)2+(dv/dx)2]1/2
Py=[(du/dy)2+(dv/dy)2]1/2
LOD=log2(max(Px、Py))
Px = [(du / dx) 2 + (dv / dx) 2 ] 1/2
Py = [(du / dy) 2 + (dv / dy) 2 ] 1/2
LOD = log 2 (max (Px, Py))
このようにして計算されるテクセル座標(u,v)のLOD値を、シェーダユニット30から指定される外部LOD値と区別する意味で内部LOD値と呼ぶ。フィルタ74は、内部LOD値に外部LOD値をオフセットとして加算する。外部LOD値によりオフセットされたLOD値をバイアスLOD値と呼ぶ。
The LOD value of the texel coordinates (u, v) calculated in this way is referred to as an internal LOD value in order to distinguish it from the external LOD value specified from the
フィルタ74は、バイアスLOD値に応じてそのテクスチャを描画する際のフィルタを選択する(S16)。フィルタには、縮小フィルタと拡大フィルタがあり、バイアスLOD値が所定の値以下の場合、すなわち描画詳細度が所定のレベル以下である場合は、テクスチャの拡大を行う拡大フィルタを選択し、そうでない場合、すなわち描画詳細度が所定のレベルよりも高い場合は、テクスチャの縮小を行う縮小フィルタを選択する。 The filter 74 selects a filter for drawing the texture according to the bias LOD value (S16). The filter includes a reduction filter and an enlargement filter. When the bias LOD value is equal to or lower than a predetermined value, that is, when the drawing detail level is equal to or lower than a predetermined level, the enlargement filter for enlarging the texture is selected. In this case, that is, when the drawing detail level is higher than a predetermined level, a reduction filter for reducing the texture is selected.
フィルタ74は、ミップレベルにおける補正処理を行う(S18)。テクスチャユニット70は、まずステップS14で求めたバイアスLOD値によってミップレベルを求める。ミップレベル間の補間を行わない場合は、バイアスLOD値に0.5を加算し、整数値に丸めることによりLOD値に最も近いミップレベルMを求める。ミップレベル間の補間を行う場合は、バイアスLOD値を整数値に丸めた値を第1ミップレベルMとして求め、第1ミップレベルに1を加えた値を第2ミップレベルM+1として求める。これによりバイアスLOD値の近傍の2つのミップレベルが得られる。
The filter 74 performs correction processing at the mip level (S18). The
次に、フィルタ74は、こうして求めたミップレベルMにもとづいてテクセル座標値(u,v)とテクスチャサイズを補正する。テクセル座標値(u,v)は、ミップレベル0のテクスチャについて指定されたものであるから、ミップレベルMのテクスチャを参照するときは、ミップレベルMのテクスチャサイズに対応した値に補正する必要がある。ミップレベルMに対応した第1、第2テクセル座標値u、vは、元のミップレベル0における第1、第2テクセル座標値u、vをそれぞれ2Mで除算することにより得られる。なお、w方向はミップレベルとは無関係であるから、第3テクセル座標値wは補正されない。
Next, the filter 74 corrects the texel coordinate value (u, v) and the texture size based on the mip level M thus obtained. Since the texel coordinate value (u, v) is specified for the texture of the
また、フィルタ74は、レジスタファイル72に設定されているミップレベル0のテクスチャサイズをミップレベルMに対応するサイズに補正する。これは元のミップレベル0のテクスチャの高さおよび幅をそれぞれ2Mで除算することにより得られる。
Further, the filter 74 corrects the texture size of the
テクスチャ読み出し部76は、テクスチャ構造体52の2次元テクスチャ内でテクセルを指定するテクセル番号を求める(S20)。テクスチャ内に格納されたテクセルを2次元配列とみなしたとき、テクセル番号は、テクスチャ内のテクセルを指定する2次元配列のインデックスである。
The
テクセル座標値(u,v)は実数値であるが、テクセル番号は、テクセル座標値(u,v)を整数に丸めた添え字(i,j)で表される。テクセル座標(u,v)で示される点の4近傍のテクセルをテクセル番号で指定する場合は、テクセル番号は(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)の4つになる。 The texel coordinate value (u, v) is a real value, but the texel number is represented by a subscript (i, j) obtained by rounding the texel coordinate value (u, v) to an integer. When a texel number near the point indicated by the texel coordinates (u, v) is designated by a texel number, the texel numbers are (i, j), (i + 1, j), (i, j + 1), (i + 1, j + 1). 4).
テクスチャ構造体52の場合、2次元テクスチャがレイヤ方向とミップレベル方向に複数設けられているため、レイヤ番号を指定する第3インデックスk、ミップレベルを指定する第4インデックスmをさらに追加して、テクセル番号を(i,j,k,m)で表す。たとえば、2つのレイヤN、N+1の間で内挿を行う場合は、テクセル番号を(i,j,N,M)、(i,j,N+1,M)と指定する。また、2つのミップレベルM、M+1の間で内挿を行う場合は、テクセル番号を(i,j,N,M)、(i,j,N,M+1)と指定する。
In the case of the
フィルタ74は、フィルタリングに使用する内挿係数を算出する(S22)。内挿係数は、ミップレベルMに対応するように補正された第1、第2テクセル座標値u、vの小数部で与えられる。u方向の内挿係数αはミップレベルMにおける第1テクセル座標uの値の小数部、v方向の内挿係数βはミップレベルMにおける第2テクセル座標vの値の小数部である。また、w方向の補間、すなわちレイヤ間の内挿を行う場合は、w方向の内挿係数γは、第3テクセル座標値wの値の小数部で与えられる。LOD値に応じた補間、すなわちミップレベル間で内挿を行う場合は、ミップレベル方向の内挿係数δは、バイアスLOD値の小数部で与えられる。 The filter 74 calculates an interpolation coefficient used for filtering (S22). The interpolation coefficient is given by the decimal part of the first and second texel coordinate values u and v corrected to correspond to the mip level M. The u-direction interpolation coefficient α is the decimal part of the value of the first texel coordinate u at the mip level M, and the v-direction interpolation coefficient β is the decimal part of the value of the second texel coordinate v at the mip level M. When interpolation in the w direction, that is, interpolation between layers, is performed, the interpolation coefficient γ in the w direction is given by the decimal part of the value of the third texel coordinate value w. When interpolation according to the LOD value, that is, interpolation between mip levels, the interpolation coefficient δ in the mip level direction is given by the fractional part of the bias LOD value.
テクスチャ読み出し部76は、テクスチャの参照アドレスを算出する(S24)。テクスチャ読み出し部76は、コンフィグレーション時にレジスタファイル72に設定されたテクスチャ構造体52のベースアドレスに、各レイヤに属する各ミップレベルのテクスチャのサイズをレイヤ番号がN、ミップマップレベルがMになるまで加算していくことで、指定されたレイヤ番号NおよびミップレベルMのテクスチャを参照するためのアドレスを算出する。
The
テクスチャ読み出し部76は、ステップS24で得たテクスチャの参照アドレスを基準にして、ステップS20で得たテクセル番号で指定されたテクセルをサンプリングする(S26)。ポイントサンプリングの場合は、1つのテクセルがサンプリングされるが、バイリニア補間をする場合は、4近傍テクセルがサンプリングされる。
The
フィルタ74は、サンプリングされたテクセルをバイリニア補間、トライリニア補間などによりフィルタリングする(S28)。フィルタ74は、フィルタリングにより得られた補間値をシェーダユニット30で扱う浮動小数点にフォーマット変換して出力する(S30)。
The filter 74 filters the sampled texel by bilinear interpolation, trilinear interpolation, or the like (S28). The filter 74 converts the interpolation value obtained by filtering into a floating point handled by the
上記のテクスチャマッピング処理の手順では説明を省略したが、テクセル座標がテクスチャをサンプルしない位置にあるときのラップモードとして、クランプ処理、リピート処理のいずれかが行われる。テクセルをサンプリングする際、テクスチャ画像のエッジをまたがることがあるため、ラップモードの処理が必要となる。クランプ処理では、テクセル座標を所定の値の範囲にクランプする。リピート処理では、テクセル番号を循環させることで、同じテクスチャが繰り返されるように扱う。 Although description is omitted in the procedure of the texture mapping process, either a clamp process or a repeat process is performed as a wrap mode when the texel coordinates are at a position where the texture is not sampled. When sampling a texel, the texture image may be crossed over, so processing in the wrap mode is required. In the clamping process, the texel coordinates are clamped within a predetermined value range. In repeat processing, texel numbers are circulated so that the same texture is repeated.
以上で述べた本実施の形態の描画処理装置100が利用するテクスチャ構造体52は、一般的には、3次元テクセル座標(u,v,w)で統一的に参照できるようにした複数の2次元テクスチャの集まりであるが、構成上は、複数の2次元テクスチャ間にいかなる関連性をもたせても、あるいは、何ら関連性をもたせなくてもよく、用途に合わせて自由に利用することができる。
The
たとえば、テクスチャ構造体52は、いわゆる「レイヤテクスチャ」として利用することができる。レイヤテクスチャは、複数の2次元テクスチャが互いに関連性をもって層をなして形成されたものであり、アプリケーションによってはテクスチャを層状に重ね合わせることを前提とすることもある。この場合、第3テクセル座標wは、レイヤ番号を指定するために用いられる。なお、上記の実施の形態でテクスチャ構造体52を説明する際に用いた「レイヤ」という言葉は、「レイヤテクスチャ」でいうところの狭義の意味でのレイヤを意味するものではなく、単にテクスチャ構造体52内に並べて配置された複数の2次元テクスチャの位置を特定する意味で用いた。
For example, the
また、テクスチャ構造体52は、いわゆる「ボリュームテクスチャ」として利用することもある。ボリュームテクスチャは、複数の2次元テクスチャの間に奥行き方向の関連性をもたせ、幅と高さの他、奥行きの次元をもつテクスチャとして構成される。この場合、第3テクセル座標wは、奥行き値を指定するために用いられる。ボリュームテクスチャでは、テクスチャ構造体52のレイヤは奥行きに対応するため、レイヤ間の補間が意味をなす。
The
なお、上記の実施の形態では、テクスチャ構造体52の最大レイヤ数は、ハードウエアの実装によって、8、16、32などに制限されることになるが、テクスチャ構造体52をボリュームテクスチャとして利用する場合、奥行き方向をさらに増やしたいことがある。たとえば、プロシージャルテクスチャを利用する場合、パーリン(Perlin)によるノイズ生成アルゴリズムにより、ノイズテクスチャをいくつも生成し、それらを何層にも重ね合わせることで質感をもたせる。このような3次元構造のテクスチャでは、奥行き方向として、たとえば64レイヤを必要とすることもある。
In the above embodiment, the maximum number of layers of the
このような場合、テクスチャ構造体52の各テクスチャのテクセルのコンポーネントをレイヤとして利用することで、レイヤ数を増やすことが可能である。テクスチャの各テクセルは、一般にはRGB値とアルファ値を格納するために4コンポーネントをもつ。このコンポーネントをレイヤに対応づけて、各テクセルを4レイヤの値のセットとして扱うことにすれば、仮にテクスチャ構造体52の最大レイヤ数が16であっても、16×4=64レイヤとして扱うことができる。これにより、ノイズテクスチャとして、64レイヤの多重化が可能になる。
In such a case, the number of layers can be increased by using the texel component of each texture of the
シェーダユニット30は、ノイズテクスチャを生成するために、第3テクセル座標値wとして、0から63までの値を指定したテクスチャ命令を実行することになる。しかし、テクスチャユニット70では、あくまでも16レイヤのテクスチャ構造体52を処理するため、テクスチャ読み出し部76は、第3テクセル座標値wを4で除算した商と余りを求め、商によって0から15までのレイヤ番号を取得し、余りによってコンポーネント番号を取得する。テクスチャ読み出し部76は、取得したレイヤ番号とコンポーネント番号を用いて、指定レイヤのテクスチャ内で指定コンポーネントを参照することで、テクスチャ構造体52から該当するテクセルをサンプリングすることができる。
The
以上、テクスチャ構造体52を、一般的に、複数の独立した2次元テクスチャの集まりとして説明し、いわゆる「レイヤテクスチャ」や「ボリュームテクスチャ」としても利用できることを説明したが、テクスチャ構造体52は、さらに、キューブ環境マッピング(以下、単にキューブマッピングという)において使用する6面の環境テクスチャを格納するために用いることもできる。以下、テクスチャ構造体52を用いて、本実施の形態の描画処理装置100によりキューブマッピング処理を行う方法を説明する。
As described above, the
図8は、キューブマッピングにおける描画対象物を囲む仮想的な立方体とその面を示す図である。キューブマッピングでは、同図のように、描画対象物の存在するワールド座標空間に定義されたワールド座標系(x,y,z)のxy面、yz面、zx面に対して各面が平行である仮想立方体を想定する。仮想立方体の各面の向きは、ポジティブX、ネガティブX、ポジティブY、ネガティブY、ポジティブZ、ネガティブZの6方向であり、この6方向により仮想立方体の各面を識別する。立方体の各面には描画対象物に写像される環境テクスチャがあらかじめ投影されている。 FIG. 8 is a diagram showing a virtual cube surrounding a drawing object in cube mapping and its surface. In cube mapping, as shown in the figure, each plane is parallel to the xy plane, yz plane, and zx plane of the world coordinate system (x, y, z) defined in the world coordinate space in which the drawing object exists. Assume a virtual cube. The orientation of each face of the virtual cube has six directions of positive X, negative X, positive Y, negative Y, positive Z, and negative Z, and each face of the virtual cube is identified by these six directions. An environmental texture to be mapped onto the drawing object is projected in advance on each surface of the cube.
図9は、図8の仮想立方体の展開図において、テクスチャ座標(S,T)の各軸S、Tの方向とワールド座標(x,y,z)の各軸x、y、zの方向の対応関係を説明する図である。テクスチャ座標(S,T)のS軸、T軸は、同図に示す方向に定義されている。ポジティブX面については、テクスチャ座標のS軸はワールド座標のz軸の負の方向(−z)にあり、テクスチャ座標のT軸はワールド座標のy軸の負の方向(−y)にある。ネガティブX面については、S軸はワールド座標のz軸の正の方向(z)、T軸はワールド座標のy軸の負の方向(−y)にある。 FIG. 9 is a development view of the virtual cube of FIG. 8 in the direction of each axis S, T of the texture coordinates (S, T) and the direction of each axis x, y, z of the world coordinates (x, y, z). It is a figure explaining a correspondence. The S-axis and T-axis of the texture coordinates (S, T) are defined in the direction shown in FIG. For the positive X plane, the texture coordinate S-axis is in the negative direction (-z) of the world coordinate z-axis, and the texture coordinate T-axis is in the negative direction (-y) of the world coordinate y-axis. For the negative X plane, the S axis is in the positive z-axis direction of the world coordinates (z), and the T axis is in the negative y-axis direction of the world coordinates (-y).
同様に、ポジティブY面のS軸、T軸は、それぞれワールド座標のx軸の正の方向(x)、z軸の正の方向(z)にあり、ネガティブY面のS軸、T軸は、それぞれワールド座標のx軸の正の方向(x)、z軸の負の方向(−z)にある。また、ポジティブZ面のS軸、T軸は、それぞれワールド座標のx軸の正の方向(x)、y軸の負の方向(−y)にあり、ネガティブZ面のS軸、T軸は、それぞれワールド座標のx軸の負の方向(−x)、y軸の負の方向(−y)にある。 Similarly, the S axis and T axis of the positive Y plane are respectively in the positive direction (x) of the x axis of the world coordinates and the positive direction (z) of the z axis, and the S axis and T axis of the negative Y plane are , Respectively in the positive direction (x) of the x-axis of the world coordinates and in the negative direction (−z) of the z-axis. Further, the S axis and T axis of the positive Z plane are respectively in the positive direction (x) of the x axis of the world coordinate and the negative direction (−y) of the y axis, and the S axis and T axis of the negative Z plane are , Respectively, in the negative direction (−x) of the x axis of the world coordinates and in the negative direction (−y) of the y axis.
キューブマッピングでは、描画表面上の反射ベクトルrを算出し、反射ベクトルrの方向が仮想立方体のいずれの面と交わるかを判定する。反射ベクトルrが交わる仮想立方体の面をターゲット面と呼ぶ。ターゲット面は、反射ベクトルの最大成分(メジャー成分という)が指し示すキューブ面である。 In cube mapping, a reflection vector r on the drawing surface is calculated, and it is determined which surface of the virtual cube intersects the direction of the reflection vector r. The surface of the virtual cube where the reflection vectors r intersect is called the target surface. The target surface is a cube surface indicated by the maximum component (referred to as a major component) of the reflection vector.
ターゲット面が決まると、反射ベクトルrのメジャー成分とメジャー軸方向が決まる。反射ベクトルrの成分を(vx,vy,vz)とおくと、反射ベクトルrに対するターゲット面がポジティブXであるとき、メジャー軸方向はx軸の正の方向(これを+VXと記す)であり、メジャー成分は反射ベクトルのx成分vxである。ターゲット面がネガティブXであるとき、メジャー軸方向はx軸の負の方向(−VX)、メジャー成分は反射ベクトルのx成分vxである。 When the target surface is determined, the major component of the reflection vector r and the major axis direction are determined. When the component of the reflection vector r is (vx, vy, vz), when the target surface with respect to the reflection vector r is positive X, the major axis direction is the positive direction of the x axis (this is denoted as + VX), The major component is the x component vx of the reflection vector. When the target surface is negative X, the major axis direction is the negative x-axis direction (−VX), and the major component is the x component vx of the reflection vector.
同様に、ターゲット面がポジティブYのとき、メジャー軸方向は+VY、メジャー成分はvyであり、ターゲット面がネガティブYのとき、メジャー軸方向は−VY、メジャー成分はvyである。また、ターゲット面がポジティブZのとき、メジャー軸方向は+VZ、メジャー成分はvzであり、ターゲット面がネガティブZのとき、メジャー軸方向は−VZ、メジャー成分はvzである。 Similarly, when the target surface is positive Y, the major axis direction is + VY and the major component is vy. When the target surface is negative Y, the major axis direction is −VY and the major component is vy. When the target surface is positive Z, the major axis direction is + VZ and the major component is vz. When the target surface is negative Z, the major axis direction is −VZ and the major component is vz.
反射ベクトルrの終点(vx,vy,vz)をターゲット面上にメジャー軸方向に射影した点は、描画表面に写像されるテクスチャの点であり、その点のテクスチャ座標(Sc,Tc)は、反射ベクトルの成分を用いて表される。ここで、図9で説明したように、各キューブ面でテクスチャ座標のS軸およびT軸は、ワールド座標の対応する軸と方向が正負反対になることもある。たとえば、ターゲット面がポジティブXである場合は、テクスチャ座標のS軸、T軸は、図9で説明したように、それぞれ−z方向、−y方向であったから、ポジティブX面上のテクスチャ座標(Sc,Tc)は、反射ベクトルのz成分とy成分を用いて(−vz,−vy)で与えられる。他のターゲット面の場合も同様にテクスチャ座標を反射ベクトルrの成分を用いて表すことができる。 A point obtained by projecting the end point (vx, vy, vz) of the reflection vector r onto the target surface in the major axis direction is a texture point mapped onto the drawing surface, and the texture coordinates (Sc, Tc) of the point are It is expressed using the component of the reflection vector. Here, as described with reference to FIG. 9, the direction of the S-axis and T-axis of the texture coordinates on each cube surface may be opposite to the corresponding axis of the world coordinates. For example, when the target plane is positive X, the S-axis and T-axis of the texture coordinates are the −z direction and the −y direction, respectively, as described in FIG. (Sc, Tc) is given by (−vz, −vy) using the z component and y component of the reflection vector. Similarly, in the case of other target surfaces, the texture coordinates can be expressed using the component of the reflection vector r.
図10は、ターゲット面、ターゲット面上のテクスチャ座標(Sc,Tc)、およびメジャー成分の対応関係をまとめて示す図である。 FIG. 10 is a diagram collectively showing the correspondence between the target surface, the texture coordinates (Sc, Tc) on the target surface, and the major component.
メジャー軸方向が+VXの場合、ターゲット面はポジティブX、Scは−vz、Tcは−vy、メジャー成分はvxである。メジャー軸方向が−VXの場合、ターゲット面はネガティブX、Scはvz、Tcは−vy、メジャー成分はvxである。 When the major axis direction is + VX, the target surface is positive X, Sc is −vz, Tc is −vy, and the major component is vx. When the major axis direction is −VX, the target surface is negative X, Sc is vz, Tc is −vy, and the major component is vx.
メジャー軸方向が+VYの場合、ターゲット面はポジティブY、Scはvx、Tcはvz、メジャー成分はvyである。メジャー軸方向が−VYの場合、ターゲット面はネガティブY、Scはvx、Tcは−vz、メジャー成分はvyである。 When the major axis direction is + VY, the target surface is positive Y, Sc is vx, Tc is vz, and the major component is vy. When the major axis direction is -VY, the target surface is negative Y, Sc is vx, Tc is -vz, and the major component is vy.
メジャー軸方向が+VZの場合、ターゲット面はポジティブZ、Scはvx、Tcは−vy、メジャー成分はvzである。メジャー軸方向が−VZの場合、ターゲット面はネガティブZ、Scは−vx、Tcは−vy、メジャー成分はvzである。 When the major axis direction is + VZ, the target surface is positive Z, Sc is vx, Tc is -vy, and the major component is vz. When the major axis direction is −VZ, the target surface is negative Z, Sc is −vx, Tc is −vy, and the major component is vz.
図10に示すように、ターゲット面、テクスチャ座標(Sc,Tc)、メジャー成分の対応関係は、メジャー軸方向によって一意に決まるため、キューブマップを指定するには、メジャー軸方向を指定すればよい。 As shown in FIG. 10, since the correspondence relationship between the target surface, texture coordinates (Sc, Tc), and the major component is uniquely determined by the major axis direction, the major axis direction may be designated to designate the cube map. .
図11(a)〜(d)は、テクスチャ構造体52をキューブマップとして用いる方法を説明する図である。
FIGS. 11A to 11D are diagrams illustrating a method of using the
図11(a)は、キューブマップ用のテクスチャ構造体52のデータ構造を示す図である。テクスチャ構造体52のレイヤ方向はキューブ面に対応づけられ、各レイヤには仮想立方体の各面の環境テクスチャであるキューブマップが2次元テクスチャとして格納される。仮想立方体の6面に対応してテクスチャ構造体52のレイヤ数は6である。レイヤ番号はキューブ面を識別するマップIDに対応している。
FIG. 11A shows the data structure of the
マップIDは、メジャー軸方向に対応しており、メジャー軸方向が決まれば、それに対応するマップIDにより各面のキューブマップを選択することができる。マップIDとメジャー軸方向の対応関係については、同図のように、マップID0〜5のそれぞれにメジャー軸+VX、−VX、+VY、−VY、+VZ、−VZが対応づけられる。また、各ミップレベルには解像度の異なるキューブマップが設けられており、ここではミップレベル0〜2の3段階の解像度の例が示されている。
The map ID corresponds to the major axis direction. If the major axis direction is determined, the cube map of each surface can be selected by the corresponding map ID. As for the correspondence relationship between the map ID and the major axis direction, major axes + VX, −VX, + VY, −VY, + VZ, and −VZ are associated with
図11(b)は、ミップレベル0の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。図11(a)のマップID0のテクスチャ(マップ0と呼ぶ)は、図11(b)の仮想立方体のポジティブX面の環境テクスチャに対応する。マップID1のテクスチャ(マップ1)は、仮想立方体のネガティブX面の環境テクスチャに対応する。以下、同様にマップ2、マップ3、マップ4、マップ5は、仮想立方体のポジティブY面、ネガティブY面、ポジティブZ面、ネガティブZ面の環境テクスチャにそれぞれ対応する。
FIG. 11B is a diagram illustrating a correspondence relationship between the texture of each layer at the
図11(c)は、ミップレベル0に比べて解像度が1/2になったミップレベル1の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。図11(d)は、ミップレベル0に比べて解像度が1/4になったミップレベル2の各レイヤのテクスチャと仮想立方体の各面の対応関係を示す図である。レイヤとキューブ面の対応関係は、図11(b)と同じである。
FIG. 11C is a diagram illustrating a correspondence relationship between the texture of each layer of the mip level 1 whose resolution is halved compared to the
マップIDは、レイヤ番号を指定するときと同様、第3テクセル座標wにより指定することができる。したがって、3次元テクセル座標(u,v,w)とLOD値を指定するテクスチャ命令を用いて、ミップマップを用いたキューブマッピングを行うことができる。 The map ID can be specified by the third texel coordinate w as in the case of specifying the layer number. Therefore, cube mapping using a mipmap can be performed using a texture command that specifies three-dimensional texel coordinates (u, v, w) and LOD values.
図12は、描画処理装置100によるキューブマッピング処理の手順を説明するフローチャートである。
FIG. 12 is a flowchart for explaining the procedure of cube mapping processing by the
シェーダユニット30の描画演算処理部34は、描画表面の反射ベクトルrを算出する(S40)。反射ベクトルrは、視線ベクトルeと描画表面の法線ベクトルnを用いて、計算式r=2(n・e)n−eにより求めることができる。
The drawing
描画演算処理部34は、反射ベクトルrのメジャー成分にもとづいて、マップIDに対応するメジャー軸方向と、ターゲット面におけるテクスチャ座標(Sc,Tc)を算出する(S42)。これは図10で説明した通りである。
The drawing
描画演算処理部34は、テクスチャ座標(Sc,Tc)をテクセル座標(u,v)に変換する(S44)。テクセル座標(u,v)は、テクスチャの幅、高さをそれぞれwidth、heightとすると、テクスチャ座標(Sc,Tc)をメジャー成分の絶対値|major|で除算して正規化することにより、次式のように求めることができる。
The drawing
u=(width/2)・(Sc/|major|+1)
v=(height/2)・(Tc/|major|+1)
u = (width / 2) · (Sc / | major | +1)
v = (height / 2). (Tc / | major | +1)
ここで、テクスチャユニット70のレジスタファイル72に設定されたテクスチャの幅と高さの値と一致する値をシェーダユニット30のレジスタファイル32にも設定しておき、描画演算処理部34がレジスタファイル32から参照できるようにする。
Here, values that match the width and height values of the texture set in the
描画演算処理部34は、こうして求めた2次元テクセル座標(u,v)と、マップIDを指定する第3テクセル座標wとからなる3次元テクセル座標(u,v,w)をパラメータに指定したテクスチャ命令をテクスチャユニット70に発行する。ミップマップを用いる場合は、テクスチャ命令にさらに外部LOD値をパラメータとして指定する。
The drawing
より具体的には、描画演算処理部34は、外部LOD値と、マップIDである第3テクセル座標値wとをパラメータに指定したテクスチャセット命令tsetを発行し、その後、2次元テクセル座標値(u,v)をパラメータに指定したテクスチャロード命令tldを発行する。テクスチャユニット70は、テクスチャロード命令tldの発行を受けて、テクスチャマッピングの動作を開始する。
More specifically, the drawing
テクスチャユニット70は、描画演算処理部34から指定された3次元テクセル座標(u,v,w)と外部LOD値にもとづいて、テクスチャ構造体52を用いたキューブマッピング処理を行う(S46)。このキューブマッピング処理は、第3テクセル座標wがマップIDを示す以外は、図7のフローチャートで示したテクスチャマッピング処理と同様にして行うことができる。なお、キューブマッピングでは、レイヤ間の補間は意味をなさないため行われない。
The
以上述べたように、本実施の形態の描画処理装置100によれば、3次元テクセル座標(u,v,w)を指定してテクスチャ構造体52からテクセルをサンプリングして補間することができる。第3テクセル座標wは、一般にはテクスチャ構造体52に含まれる複数の2次元テクスチャの少なくとも1つを指定するために用いられるが、テクスチャ構造体52がレイヤテクスチャとして用いられる場合は、レイヤ番号を指定するために、テクスチャ構造体52がボリュームテクスチャとして用いられる場合は、奥行きに関するパラメータを指定するためにも用いることができる。さらに、テクスチャ構造体52のレイヤをキューブ面に対応づければ、テクスチャ構造体52は、6面のキューブマップを格納したテクスチャとして扱うこともでき、第3テクセル座標としてキューブ面を指定することで、キューブマッピングを行うことができる。
As described above, according to the
このように、テクスチャ構造体52は、第3テクセル座標wの意味づけ次第で、複数の独立した2次元テクスチャの集まりとして扱うことも、2次元テクスチャが層状に形成されたレイヤテクスチャとして扱うことも、奥行き方向の次元をもつボリュームテクスチャとして扱うことも、6面のキューブマップテクスチャとして扱うこともできるため、テクスチャ構造体52を処理するテクスチャマッピング用の同一のハードウエア構成、同一のインタフェースをレイヤテクスチャ、ボリュームテクスチャ、キューブマップテクスチャのいずれの用途にも兼用して用いることができる。したがって、テクスチャユニット70の回路規模を小さく抑えることができ、テクスチャユニット70内のレジスタやキャッシュ、メモリなどの資源管理も容易になる。また、インタフェースが統一されているため、テクスチャマッピング処理のプログラミングも容易である。
Thus, depending on the meaning of the third texel coordinate w, the
また、テクスチャ構造体52を参照するためのアドレス情報や、テクスチャ構造体52を利用したテクスチャマッピングのフィルタリングモードなどの各種パラメータは、1回のコンフィグレーションによりレジスタファイルに設定することができる。レイヤを切り替えてテクスチャ構造体52内の2次元テクスチャを参照しても、レジスタの設定情報すなわちコンテキストを変更する必要がなく、コンテキスト切り替えのオーバーヘッドなしで、効率良くテクスチャマッピングを行うことができる。また、テクスチャ構造体52では、複数のテクスチャを用いることができるため、高い描画品質を実現することができる。このように、本実施の形態によれば、処理効率を維持しながら、複数のテクスチャを使い分けて描画品質の向上を図ることができる。
Various parameters such as address information for referring to the
また、本実施の形態の描画処理装置100によるキューブマッピング処理では、反射ベクトルを算出し、反射ベクトルからテクセル座標を求める計算をシェーダユニット30の描画演算処理部34において行い、キューブマップを参照してテクセル値をサンプリングして補間する処理はテクスチャユニット70において行う。テクスチャユニット70は、内挿演算器によるテクスチャマッピング専用のハードウエア構成をもつため、テクスチャ演算能力が高い。一方、シェーダユニット30は、プログラムによって複雑な演算処理を実行する能力があり、反射ベクトルの算出のような複雑な演算も高速に実行できる。本実施の形態の描画処理装置100では、キューブマッピング処理の内、高度な演算能力を必要とする処理は、シェーダユニット30で行い、テクスチャ演算に係る処理は、専用のテクスチャユニット70で行うことにより、処理を分担して、描画処理装置100全体の描画処理の効率化が図られている。
Further, in the cube mapping process by the
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。 The present invention has been described based on the embodiments. The embodiments are exemplifications, and it will be understood by those skilled in the art that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are within the scope of the present invention. . Such a modification will be described.
上記の説明では、レイヤ間の補間およびミップレベル間の補間は、2つのレイヤ間、2つのミップレベル間で行われたが、3つ以上のレイヤもしくはミップレベルを用いて補間を行うようにしてもよい。また、サンプリングするテクセルの個数についても、4近傍テクセルに限られない。8近傍テクセルをサンプリングしてそれらのテクセル間で補間をしてもよい。 In the above description, the interpolation between layers and the interpolation between mip levels were performed between two layers and between two mip levels. However, the interpolation should be performed using three or more layers or mip levels. Also good. Further, the number of texels to be sampled is not limited to 4 neighboring texels. You may sample 8 neighboring texels and interpolate between them.
また、上記の説明では、等方性(isotropic)テクセルサンプリングを説明したが、異方性(anisotropic)フィルタリングを行ってもよい。異方性テクセルサンプリングは、スクリーンのXY面に対してテクセル座標のUV面の傾きが大きい場合に特に有効である。異方性テクセルサンプリングでは、スクリーンのXY面におけるテクセル座標の変化の大きさと方向を求め、その変化の方向に変化の大きさに応じた回数のポイントサンプリング、バイリニアサンプリング、トライリニアサンプリングなどを繰り返すことで描画品質を維持する。 In the above description, isotropic texel sampling has been described. However, anisotropic filtering may be performed. Anisotropic texel sampling is particularly effective when the UV plane of texel coordinates is large with respect to the XY plane of the screen. In anisotropic texel sampling, the magnitude and direction of changes in texel coordinates on the XY plane of the screen are obtained, and point sampling, bilinear sampling, trilinear sampling, etc. are repeated in the direction of the change according to the magnitude of the change. Maintain the drawing quality.
10 ラスタライザ、 30 シェーダユニット、 32 レジスタファイル、 34 描画演算処理部、 50 メモリ、 52 テクスチャ構造体、 54 描画データ、 70 テクスチャユニット、 72 レジスタファイル、 74 フィルタ、 76 テクスチャ読み出し部、 100 描画処理装置。 10 rasterizer, 30 shader unit, 32 register file, 34 drawing operation processing unit, 50 memory, 52 texture structure, 54 drawing data, 70 texture unit, 72 register file, 74 filter, 76 texture reading unit, 100 drawing processing device.
Claims (11)
描画対象物の表面に適用されるテクスチャについて前記第3パラメータの指定と前記表面上の2次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値を読み出すテクスチャ読み出し部と、
読み出された前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するフィルタとを含み、
前記第3パラメータとして、前記テクスチャ構造体に含まれる前記複数の2次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理装置。 A plurality of two-dimensional textures in which values relating to texture are stored as texel values in association with two-dimensional parameter coordinates are provided, and a third parameter for designating at least one of the plurality of two-dimensional textures is the two-dimensional parameter coordinates A texture storage unit for storing a texture structure provided separately from the first and second parameters;
The texture applied to the surface of the drawing object is designated by the third parameter and the two-dimensional parameter coordinate value on the surface, and corresponds to the designated third parameter in the texture structure. A texture reading unit that reads a texel value corresponding to the specified two-dimensional parameter coordinate value from the two-dimensional texture;
A filter that interpolates the read texel value and calculates a value related to the texture applied to the surface of the drawing object,
By specifying a value according to the relationship between the plurality of two-dimensional textures included in the texture structure as the third parameter, the different types of the texture structures are referred to uniformly. Characteristic texture processing apparatus.
前記フィルタは、前記2つの異なる奥行きレベルの2次元テクスチャ間で前記テクセル値を補間することにより、前記描画対象物の表面に適用されるテクスチャに関する値を算出することを特徴とする請求項3に記載のテクスチャ処理装置。 The texture reading unit selects two-dimensional textures having two different depth levels corresponding to the depth-related parameter designated as the third parameter, and designates each of the selected two-dimensional textures having two different depth levels. Read out the texel value corresponding to the two-dimensional parameter coordinates,
The said filter calculates the value regarding the texture applied to the surface of the said drawing target object by interpolating the said texel value between the two-dimensional textures of the said two different depth levels, The value of Claim 3 characterized by the above-mentioned. The texture processing apparatus described.
前記テクスチャ読み出し部は、前記レジスタに格納された前記ベースアドレスに対して、指定された第3パラメータに依存するオフセット値を加算することにより、指定された第3パラメータに対応する前記2次元テクスチャの参照アドレスを生成し、前記参照アドレスを基準にして、指定された2次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項1から5のいずれかに記載のテクスチャ処理装置。 A register for storing a base address for collectively referring to the texture structure;
The texture reading unit adds an offset value depending on the designated third parameter to the base address stored in the register, thereby obtaining the two-dimensional texture corresponding to the designated third parameter. 6. The texture processing apparatus according to claim 1, wherein a reference address is generated, and a texel value corresponding to a designated two-dimensional parameter coordinate value is read out based on the reference address.
前記テクスチャ読み出し部は、前記描画対象物の表面に適用されるテクスチャの描画詳細度の指定も受け、指定された第3パラメータに対応する一組のミップマップテクスチャの内、指定された描画詳細度に対応する解像度のミップマップテクスチャを選択し、選択されたミップマップテクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値を読み出すことを特徴とする請求項1から6のいずれかに記載のテクスチャ処理装置。 Each of the plurality of two-dimensional textures included in the texture structure is a set of mipmap textures having different resolutions in stages.
The texture reading unit also receives designation of the drawing detail level of the texture applied to the surface of the drawing object, and the designated drawing detail level of the set of mipmap textures corresponding to the designated third parameter 7. The mipmap texture having a resolution corresponding to 1 is selected, and the texel value corresponding to the designated two-dimensional parameter coordinate value is read from the selected mipmap texture. The texture processing apparatus described.
前記フィルタは、前記2つの異なる解像度のミップマップテクスチャ間で前記テクセル値を補間することにより、前記描画対象物の表面に適用されるテクスチャに関する値を算出することを特徴とする請求項7に記載のテクスチャ処理装置。 The texture reading unit selects two different resolution mipmap textures corresponding to the specified drawing detail level from the set of mipmap textures corresponding to the specified third parameter, and selects the selected two Read out the texel values corresponding to the specified two-dimensional parameter coordinate values from each of the mipmap textures of different resolutions,
The said filter calculates the value regarding the texture applied to the surface of the said drawing target object by interpolating the said texel value between the said two mipmap textures of different resolution. Texture processing equipment.
描画対象物の表面に適用されるテクスチャについて前記第3パラメータの指定と前記表面上の2次元パラメータ座標値の指定とを受け、前記テクスチャ構造体の内、指定された前記第3パラメータに対応する前記2次元テクスチャから、指定された前記2次元パラメータ座標値に対応するテクセル値を読み出して、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出するテクスチャ処理部と、
前記テクスチャ処理部から出力される前記テクスチャに関する補間値を用いて、前記描画対象物の描画演算処理を行う描画処理部とを含み、
前記テクスチャ構造体は、前記描画対象物の存在する空間内に仮想的に設けられた立方体の面に投影された環境テクスチャを面数だけ設けた構造を有し、
前記描画処理部は、前記描画対象物の表面の反射ベクトルにもとづいて、前記表面に写像される環境テクスチャの面番号とその面内における2次元パラメータ座標値とを求め、求めた面番号を前記第3パラメータとして2次元パラメータ座標値とともに前記テクスチャ処理部に対して指定し、
前記テクスチャ処理部は、前記テクスチャ構造体の内、前記描画処理部により前記第3パラメータとして指定された前記面番号に対応する環境テクスチャから、前記描画処理部により指定された前記2次元パラメータ座標値に対応するテクセル値を読み出し、前記描画対象物の表面に適用されるテクスチャに関する補間値を算出することを特徴とする描画処理装置。 A plurality of two-dimensional textures in which values relating to texture are stored as texel values in association with two-dimensional parameter coordinates are provided, and a third parameter for designating at least one of the plurality of two-dimensional textures is the two-dimensional parameter coordinates A texture storage unit for storing a texture structure for storing a texture structure provided separately from the first and second parameters;
The texture applied to the surface of the drawing object is designated by the third parameter and the two-dimensional parameter coordinate value on the surface, and corresponds to the designated third parameter in the texture structure. A texture processing unit that reads out a texel value corresponding to the specified two-dimensional parameter coordinate value from the two-dimensional texture, and calculates an interpolation value related to the texture applied to the surface of the drawing target;
A drawing processing unit that performs drawing calculation processing of the drawing target using an interpolation value related to the texture output from the texture processing unit;
The texture structure has a structure in which only the number of environmental textures projected on a cube surface virtually provided in the space where the drawing target exists is provided,
The drawing processing unit obtains the surface number of the environmental texture mapped to the surface and the two-dimensional parameter coordinate value in the surface based on the reflection vector of the surface of the drawing object, The third parameter is specified to the texture processing unit together with the two-dimensional parameter coordinate value,
The texture processing unit includes the two-dimensional parameter coordinate value specified by the drawing processing unit from an environmental texture corresponding to the surface number specified as the third parameter by the drawing processing unit in the texture structure. The drawing processing apparatus is characterized in that the texel value corresponding to is read and an interpolation value related to the texture applied to the surface of the drawing object is calculated.
サンプリングされた前記テクセル値を補間して、前記描画対象物の表面に適用されるテクスチャに関する値を算出するステップとを含み、
前記第3パラメータとして、前記テクスチャ構造体に含まれる前記複数の2次元テクスチャ間の関連性に応じた値が指定されることにより、異なる種類の前記テクスチャ構造体が統一的に参照されることを特徴とするテクスチャ処理方法。 A plurality of two-dimensional textures in which values relating to texture are stored as texel values in association with two-dimensional parameter coordinates are provided, and a third parameter for designating at least one of the plurality of two-dimensional textures is the two-dimensional parameter coordinates For a texture memory holding a texture structure provided separately from the first and second parameters, the third parameter and the two-dimensional parameter coordinate values on the surface are applied to the texture applied to the surface of the drawing object. Sampling a texel value corresponding to the specified two-dimensional parameter coordinate value from the two-dimensional texture corresponding to the specified third parameter by executing a specified texture read command;
Interpolating the sampled texel values to calculate a value relating to a texture applied to the surface of the drawing object;
By specifying a value according to the relationship between the plurality of two-dimensional textures included in the texture structure as the third parameter, the different types of the texture structures are referred to uniformly. A characteristic texture processing method.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005063113A JP2006244426A (en) | 2005-03-07 | 2005-03-07 | Texture processing device, picture drawing processing device, and texture processing method |
PCT/JP2005/022536 WO2006095481A1 (en) | 2005-03-07 | 2005-12-08 | Texture processing device, drawing processing device, and texture processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005063113A JP2006244426A (en) | 2005-03-07 | 2005-03-07 | Texture processing device, picture drawing processing device, and texture processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006244426A true JP2006244426A (en) | 2006-09-14 |
Family
ID=36953087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005063113A Pending JP2006244426A (en) | 2005-03-07 | 2005-03-07 | Texture processing device, picture drawing processing device, and texture processing method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2006244426A (en) |
WO (1) | WO2006095481A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305408A (en) * | 2007-06-07 | 2008-12-18 | Nvidia Corp | Extrapolation of nonresident mipmap data using resident mipmap data |
JP2009165106A (en) * | 2007-12-17 | 2009-07-23 | Nvidia Corp | Image distortion correction |
JP2010527077A (en) * | 2007-05-07 | 2010-08-05 | クゥアルコム・インコーポレイテッド | Graphics overlay after rendering |
US7944453B1 (en) | 2007-06-07 | 2011-05-17 | Nvidia Corporation | Extrapolation texture filtering for nonresident mipmaps |
JP2011524562A (en) * | 2008-05-30 | 2011-09-01 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Scalable and integrated computer system |
JP2015095259A (en) * | 2013-11-14 | 2015-05-18 | インテル コーポレイション | Flexible filter logic for multimode filtering of graphical texture data |
JP2018073388A (en) * | 2016-11-02 | 2018-05-10 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Texture processing method and device of the same |
JP2018101415A (en) * | 2016-12-20 | 2018-06-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Method, apparatus, computer program and storage medium for determining lod for texturing cube map |
JP2022536738A (en) * | 2019-06-10 | 2022-08-18 | フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド | Hardware accelerator for texture mapping based on dual buffer architecture |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112015006360T5 (en) * | 2015-03-25 | 2017-12-07 | Mitsubishi Electric Corporation | TEXTURING APPARATUS, TEXTURMAPPING METHOD AND PROGRAM |
CN113643414B (en) * | 2020-05-11 | 2024-02-06 | 北京达佳互联信息技术有限公司 | Three-dimensional image generation method and device, electronic equipment and storage medium |
CN113658064A (en) * | 2021-08-03 | 2021-11-16 | 网易(杭州)网络有限公司 | Texture image generation method and device and electronic equipment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9611941D0 (en) * | 1996-06-07 | 1996-08-07 | Philips Electronics Nv | Three-dimensional image texture mapping |
JP3367509B2 (en) * | 1999-12-16 | 2003-01-14 | 株式会社セガ | Image generating method and image generating apparatus using the same |
JP4856335B2 (en) * | 2001-09-17 | 2012-01-18 | 株式会社バンダイナムコゲームス | Program, information storage medium, and game apparatus |
JP3589654B2 (en) * | 2002-03-12 | 2004-11-17 | 独立行政法人理化学研究所 | Volume rendering method and its program |
JP2004164308A (en) * | 2002-11-13 | 2004-06-10 | Toshiba Denpa Products Kk | Sea surface status expression method by computer graphics |
JP2005025254A (en) * | 2003-06-30 | 2005-01-27 | Toshiba Corp | Computer graphics plotting device |
-
2005
- 2005-03-07 JP JP2005063113A patent/JP2006244426A/en active Pending
- 2005-12-08 WO PCT/JP2005/022536 patent/WO2006095481A1/en not_active Application Discontinuation
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010527077A (en) * | 2007-05-07 | 2010-08-05 | クゥアルコム・インコーポレイテッド | Graphics overlay after rendering |
JP2008305408A (en) * | 2007-06-07 | 2008-12-18 | Nvidia Corp | Extrapolation of nonresident mipmap data using resident mipmap data |
US7944453B1 (en) | 2007-06-07 | 2011-05-17 | Nvidia Corporation | Extrapolation texture filtering for nonresident mipmaps |
US7948500B2 (en) | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
JP2009165106A (en) * | 2007-12-17 | 2009-07-23 | Nvidia Corp | Image distortion correction |
JP2011524562A (en) * | 2008-05-30 | 2011-09-01 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Scalable and integrated computer system |
JP2015095259A (en) * | 2013-11-14 | 2015-05-18 | インテル コーポレイション | Flexible filter logic for multimode filtering of graphical texture data |
US9367948B2 (en) | 2013-11-14 | 2016-06-14 | Intel Corporation | Flexible filter logic for multi-mode filtering of graphical texture data |
JP2018073388A (en) * | 2016-11-02 | 2018-05-10 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Texture processing method and device of the same |
JP2018101415A (en) * | 2016-12-20 | 2018-06-28 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Method, apparatus, computer program and storage medium for determining lod for texturing cube map |
KR20180071767A (en) * | 2016-12-20 | 2018-06-28 | 삼성전자주식회사 | Apparatus and method for determining LOD(level Of detail) for texturing cube map |
US10593096B2 (en) | 2016-12-20 | 2020-03-17 | Samsung Electronics Co., Ltd. | Graphics processing employing cube map texturing |
JP7096661B2 (en) | 2016-12-20 | 2022-07-06 | 三星電子株式会社 | Methods, equipment, computer programs and recording media to determine the LOD for texturing a cubemap |
KR102701851B1 (en) | 2016-12-20 | 2024-09-02 | 삼성전자주식회사 | Apparatus and method for determining LOD(level Of detail) for texturing cube map |
JP2022536738A (en) * | 2019-06-10 | 2022-08-18 | フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド | Hardware accelerator for texture mapping based on dual buffer architecture |
JP7227404B2 (en) | 2019-06-10 | 2023-02-21 | フアシア ジェネラル プロセッサー テクノロジーズ インコーポレイテッド | Hardware accelerator for texture mapping based on dual buffer architecture |
Also Published As
Publication number | Publication date |
---|---|
WO2006095481A1 (en) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10867434B2 (en) | Variable rate shading | |
US10546412B2 (en) | Variable rate shading | |
US7142215B1 (en) | Method and apparatus for processing stencil data using a programmable graphics processor | |
US6518974B2 (en) | Pixel engine | |
US7742060B2 (en) | Sampling methods suited for graphics hardware acceleration | |
US5704024A (en) | Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map | |
JP4977712B2 (en) | Computer graphics processor and method for rendering stereoscopic images on a display screen | |
US7038678B2 (en) | Dependent texture shadow antialiasing | |
JP7096661B2 (en) | Methods, equipment, computer programs and recording media to determine the LOD for texturing a cubemap | |
WO2008013605A1 (en) | Real-time gpu rendering of piecewise algebraic surfaces | |
JP4198087B2 (en) | Image generating apparatus and image generating method | |
US7027047B2 (en) | 3D graphics rendering engine for processing an invisible fragment and a method therefor | |
JP2006244426A (en) | Texture processing device, picture drawing processing device, and texture processing method | |
WO2006048961A1 (en) | Drawing device and drawing method | |
US7525553B2 (en) | Computer graphics processor and method for generating a computer graphics image | |
US20050243101A1 (en) | Image generation apparatus and image generation method | |
US7405735B2 (en) | Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch | |
US20100302259A1 (en) | Drawing data processing method, graphics drawing system and graphics drawing data generation program | |
JP2018032301A (en) | Image data processing method in image processing processor and program therefor | |
US7385604B1 (en) | Fragment scattering | |
JP4060375B2 (en) | Spotlight characteristic forming method and image processing apparatus using the same | |
KR101227155B1 (en) | Graphic image processing apparatus and method for realtime transforming low resolution image into high resolution image | |
JP4692956B2 (en) | Drawing processing apparatus and drawing processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061003 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061128 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061226 |