閱讀英文

共用方式為


glTexGenf 函式

控制紋理座標的產生。

語法

void WINAPI glTexGenf(
   GLenum  coord,
   GLenum  pname,
   GLfloat 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
coordpname 不是接受的已定義值,或 pname 是GL_TEXTURE_GEN_MODE且 params 不是可接受的已定義值。
GL_INVALID_ENUM
pname 已GL_TEXTURE_GEN_MODE、 參數 已GL_SPHERE_MAP,且 coord 為 GL_R 或 GL_Q
GL_INVALID_OPERATION
對 glBegin 的呼叫與 glEnd的對應呼叫之間呼叫函式。

備註

glTexGen函式會選取紋理座標產生函數,或提供其中一個函式的係數。 coord參數會命名其中一個 (s、r、q) 紋理座標,而且必須是下列其中一個符號:GL_S、GL_T、GL_R或GL_Q。 pname參數必須是三個符號常數之一:GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE或GL_EYE_PLANE。 如果 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 是參數中提供的四個值;和 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時的 modelview 矩陣。 如果 M 的條件不佳或單一,產生的函式所產生的紋理座標可能會不正確或未定義。

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

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

方程式將反映向量顯示為單位向量和目前常態的函式。

最後,let

方程式將 m 顯示為反映向量的函式。

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

方程式顯示指派給 i 和 t 紋理座標的值。

您可以使用 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) 。

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

glGetTexGen
glIsEnabled 與引數GL_TEXTURE_GEN_S
glIsEnabled with argument GL_TEXTURE_GEN_T
glIsEnabled with argument GL_TEXTURE_GEN_R
glIsEnabled 搭配引數GL_TEXTURE_GEN_Q

規格需求

需求
最低支援的用戶端
Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限傳統型應用程式]
標頭
Gl.h
程式庫
Opengl32.lib
DLL
Opengl32.dll

另請參閱

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D