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函式可以擷取下列錯誤碼。
名稱 | 意義 |
---|---|
|
coord 或 pname 不是可接受的定義值,或 pname 是GL_TEXTURE_GEN_MODE且 params 不是可接受的已定義值。 |
|
pname 已GL_TEXTURE_GEN_MODE、 參數 已GL_SPHERE_MAP,且 coord 為 GL_R 或 GL_Q |
|
函式是在 對 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_TEXTURE_GEN_MODE, 則 param 會指定模式、其中一個GL_OBJECT_LINEAR、GL_EYE_LINEAR或GL_SPHERE_MAP。 如果 pname 是GL_OBJECT_PLANE或GL_EYE_PLANE, param 會包含對應紋理產生函式的係數。
如果紋理產生函式GL_OBJECT_LINEAR,則函式
會使用 ,其中 g 是針對 coord 中名為 之座標所計算的值;p1、p2、p3 和 p4 是參數中提供的四個值;和 x?、y?、z?和 w?是頂點的物件座標。 您可以使用此函式,透過使用海平面作為 p1、p2、p3 和 p4) 所定義的參考平面 (,來使用這個函式來繪製紋理地圖地形。 GL_OBJECT_LINEAR座標產生函式會將地形頂點的高度計算為其與海層的距離;該高度可用來編制紋理影像的索引,以將白色雪地對應至尖峰,以及將綠色草地對應到腳尖,例如。
如果紋理產生函式GL_EYE_LINEAR,函式
使用 ,其中
和 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 成為目前的正常。 讓 f = (fx ( ) fy ( ) fz) T 是反映向量
最後,let
然後指派給 i 和 t 紋理座標的值會是
您可以使用 glEnable 或 glDisable 搭配其中一個符號紋理座標名稱來啟用或停用紋理座標產生函式, (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 [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|