glTexGenfv 函式

控制紋理座標的產生。

語法

void WINAPI glTexGenfv(
         GLenum  coord,
         GLenum  pname,
   const GLfloat *params
);

參數

coord

紋理座標。 必須是下列其中一項:GL_S、GL_T、GL_R或GL_Q。

pname

紋理座標產生函式的符號名稱。

params

浮點數陣列,其中包含對應紋理產生函式的係數。

GLfloat zPlane[] = { 0.0f, 0.0f, 1.0f, 0.0f };

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

Name 意義
GL_INVALID_ENUM
coordpname 不是可接受的定義值,或 pname 是GL_TEXTURE_GEN_MODE且 params 不是可接受的已定義值。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

glTexGen函式會選取紋理座標產生函式,或提供其中一個函式的係數。 coord參數會命名其中一個 (s,t,r,q) 紋理座標,而且必須是下列其中一個符號:GL_S、GL_T、GL_R或GL_Q。 pname參數必須是三個符號常數之一:GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE或GL_EYE_PLANE。 如果 pname 是GL_OBJECT_PLANE或GL_EYE_PLANE, param 會包含對應紋理產生函式的係數。

如果紋理產生函式GL_OBJECT_LINEAR,則函式

![當紋理產生函式GL_OBJECT_LINEAR時,顯示 glTexGen 函式的方程式。

會使用 ,其中 g 是針對 coord 中名為 之座標所計算的值;p1、p2、p3 和 p4 是參數中提供的四個值;和 x?、y?、z?和 w?是頂點的物件座標。 您可以使用此函式,透過使用海平面作為 p1、p2、p3 和 p4) 所定義的參考平面 (,來使用這個函式來繪製紋理地圖地形。 GL_OBJECT_LINEAR座標產生函式會將地形頂點的高度計算為其與海層的距離;該高度可用來編制紋理影像的索引,以將白色雪地對應至尖峰,以及將綠色草地對應到腳尖,例如。

如果紋理產生函式GL_EYE_LINEAR,函式

![當紋理產生函式GL_EYE_LINEAR時,顯示 glTexGen 函式的方程式。]

使用 ,其中

Equation showing the eye coordinates of the vertex.

和 x?、y?、z?和 w?是頂點、p1、p2、p3 和 p4 的眼睛座標,是 param中提供的值,而 M 是呼叫 glTexGen時的 modelview 矩陣。 如果 M 的條件不佳或單數,產生的函式所產生的紋理座標可能會不正確或未定義。

請注意, param 中的值會在眼睛座標中定義參考平面。 套用至它們的模型檢視矩陣,在轉換多邊形頂點時,其效果可能不相同。 此函式會建立紋理座標欄位,以在移動物件上產生動態分佈線。

如果 pname 為 GL_SPHERE_MAP,且 coord 為 GL_S 或 GL_T,則會產生 s 和 t 紋理座標,如下所示。 讓 u 成為從原點指向多邊形頂點的單位向量, (眼睛座標) 。 在轉換至眼睛座標之後,讓 n 成為目前的正常。 讓 f = (fx ( ) fy ( ) fz) T 是反映向量

Equation showing the reflection vector as a function of unit vector and current normal.

最後,let

Equation showing m as a function of reflection vector.

然後指派給 i 和 t 紋理座標的值會是

Equation showing values assigned to the i and t texture coordinates.

您可以使用 glEnableglDisable 搭配其中一個符號紋理座標名稱來啟用或停用紋理座標產生函式, (GL_TEXTURE_GEN_S、GL_TEXTURE_GEN_T、GL_TEXTURE_GEN_R或GL_TEXTURE_GEN_Q) 作為引數。 啟用此函式時,會根據與該座標相關聯的產生函式來計算指定的紋理座標。 停用此函式時,後續頂點會從目前的紋理座標集中取得指定的紋理座標。 一開始,所有紋理產生函式都會設定為GL_EYE_LINEAR並停用。 這兩個平面方程式 (1,0,0,0) ;這兩個 t 平面方程式都 (0,1,0,0) ;和所有 r 和 q 平面方程式都 (0,0,0,0,0) 。

下列函式會擷取與 glTexGen 相關的資訊:

glGetTexGen
glIsEnabled with argument GL_TEXTURE_GEN_S
glIsEnabled with argument GL_TEXTURE_GEN_T
glIsEnabled with argument GL_TEXTURE_GEN_R
glIsEnabled with argument 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