次の方法で共有


glTexGend 関数

テクスチャ座標の生成を制御します。

構文

void WINAPI glTexGend(
   GLenum   coord,
   GLenum   pname,
   GLdouble param
);

パラメーター

coord

テクスチャ座標。 GL_S、GL_T、GL_R、またはGL_Qのいずれかである必要があります。

pname

テクスチャ座標生成関数のシンボリック名。

param

単一値テクスチャ生成パラメーター(GL_OBJECT_LINEAR、GL_EYE_LINEAR、またはGL_SPHERE_MAPのいずれか)。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_ENUM
coord または pname が承認済みの定義値でなかったか、 pname がGL_TEXTURE_GEN_MODEされ 、パラメーター が承認済みの定義値ではなかった。
GL_INVALID_ENUM
pname がGL_TEXTURE_GEN_MODEされ、 パラメーター がGL_SPHERE_MAPされ、 coord がGL_RかGL_Q
GL_INVALID_OPERATION
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。

解説

glTexGen 関数は、テクスチャ座標生成関数を選択するか、関数の 1 つに係数を提供します。 coord パラメーターは (s,t,r,q) テクスチャ座標の 1 つに名前を付け、GL_S、GL_T、GL_R、またはGL_Qのいずれかの記号である必要があります。 pname パラメーターは、GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE、またはGL_EYE_PLANEの 3 つのシンボリック定数のいずれかである必要があります。 pname がGL_TEXTURE_GEN_MODEの場合、param はモード、GL_OBJECT_LINEAR、GL_EYE_LINEAR、またはGL_SPHERE_MAPのいずれかを指定します。 pname がGL_OBJECT_PLANEまたはGL_EYE_PLANEの場合、param には対応するテクスチャ生成関数の係数が含まれます。

テクスチャ生成関数がGL_OBJECT_LINEARされている場合、

テクスチャ生成関数がGL_OBJECT_LINEARされたときの glTexGen 関数を示す数式。

が使用されます。ここで、g は coord でという名前の座標に対して計算された値です。p1、p2、p3、および p4 は、params で指定される 4 つの値です。x?、y?、z?、w?は頂点のオブジェクト座標です。 この関数を使用すると、海面を参照平面 (p1、p2、p3、p4 で定義) として使用して地形をテクスチャ マップできます。 GL_OBJECT_LINEAR座標生成関数は、地形頂点の高度を海面からの距離として計算します。その高度は、たとえば、白い雪をピークにマップし、緑の草をふもとにマップするためにテクスチャ イメージのインデックスを作成するために使用されます。

テクスチャ生成関数がGL_EYE_LINEARされている場合、

テクスチャ生成関数がGL_EYE_LINEARされたときの glTexGen 関数を示す数式。

が使用されます。

頂点の目の座標を示す数式。

x?、y?、z?、w?は頂点の目の座標、p1、p2、p3、p4 は param で指定される値であり、M は glTexGen を呼び出すときのモデルビュー 行列です。 M に不十分な条件付きまたは単数形の場合、結果として得られる関数によって生成されるテクスチャ座標が不正確または未定義になる可能性があります。

param の値は、視線座標の参照平面を定義します。 多角形の頂点を変換するときに、それらに適用されるモデルビュー マトリックスを同じマトリックスにすることはできません。 この関数は、動くオブジェクトに動的な輪郭線を生成できるテクスチャ座標のフィールドを確立します。

pname がGL_SPHERE_MAPで、coord がGL_SまたはGL_Tである場合、s および t テクスチャ座標は次のように生成されます。 u は、原点から多角形の頂点 (目の座標) を指す単位ベクトルになります。 目の座標に変換した後、n を現在の法線にします。 f = (fx ( ) fy ( ) fz)T を反射ベクトルにして、

反射ベクトルを単位ベクトルと現在の法線の関数として示す式。

最後に、

反射ベクトルの関数として m を示す数式。

次に、i および t テクスチャ座標に割り当てられた値は次のとおりです。

i および t テクスチャ座標に割り当てられた値を示す数式。

引数としてシンボリック テクスチャ座標名 (GL_TEXTURE_GEN_S、GL_TEXTURE_GEN_T、GL_TEXTURE_GEN_R、またはGL_TEXTURE_GEN_Q) のいずれかを指定して glEnable または glDisable を使用すると、テクスチャ座標生成関数を有効または無効にすることができます。 この関数を有効にすると、指定したテクスチャ座標は、その座標に関連付けられている生成関数に従って計算されます。 関数を無効にすると、後続の頂点は、現在のテクスチャ座標セットから指定されたテクスチャ座標を取得します。 最初は、すべてのテクスチャ生成関数がGL_EYE_LINEARに設定され、無効になります。 どちらの平面方程式も (1,0,0,0);両方のt平面方程式は(0,1,0,0)である。すべての r および q 平面方程式は (0,0,0,0,0) です。

次の関数は、glTexGen に関連する情報を取得します。

glGetTexGen
引数GL_TEXTURE_GEN_Sを使用した glIsEnabled
引数GL_TEXTURE_GEN_Tを使用した glIsEnabled
glIsEnabled と引数 GL_TEXTURE_GEN_R
glIsEnabled と引数GL_TEXTURE_GEN_Q

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D