fungsi glTexGend
Mengontrol pembuatan koordinat tekstur.
void WINAPI glTexGend(
GLenum coord,
GLenum pname,
GLdouble param
);
-
koord
-
Koordinat tekstur. Harus salah satu hal berikut: GL_S, GL_T, GL_R, atau GL_Q.
-
nama p
-
Nama simbolis fungsi pembuatan koordinat tekstur.
-
Param
-
Parameter pembuatan tekstur bernilai tunggal, salah satu GL_OBJECT_LINEAR, GL_EYE_LINEAR, atau GL_SPHERE_MAP.
Fungsi ini tidak mengembalikan nilai.
Kode kesalahan berikut dapat diambil oleh fungsi glGetError .
Nama | Makna |
---|---|
|
coord atau pname bukan nilai yang ditentukan yang diterima, atau pname GL_TEXTURE_GEN_MODE dan param bukanlah nilai yang ditentukan yang diterima. |
|
pname GL_TEXTURE_GEN_MODE, param GL_SPHERE_MAP, dan coord GL_R atau GL_Q |
|
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd. |
Fungsi glTexGen memilih fungsi pembuatan koordinat tekstur atau memasok koefisien untuk salah satu fungsi. Parameter koord menamai salah satu koordinat tekstur (s,t,r,q), dan harus menjadi salah satu simbol ini: GL_S, GL_T, GL_R, atau GL_Q. Parameter pname harus salah satu dari tiga konstanta simbolis: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE, atau GL_EYE_PLANE. Jika pname GL_TEXTURE_GEN_MODE, maka param menentukan mode, salah satu GL_OBJECT_LINEAR, GL_EYE_LINEAR, atau GL_SPHERE_MAP. Jika pname GL_OBJECT_PLANE atau GL_EYE_PLANE, param berisi koefisien untuk fungsi pembuatan tekstur yang sesuai.
Jika fungsi pembuatan tekstur GL_OBJECT_LINEAR, fungsi
digunakan, di mana g adalah nilai yang dihitung untuk koordinat bernama dalam coord; p1, p2, p3, dan p4 adalah empat nilai yang disediakan dalam param; dan x?, y?, z?, dan w? adalah koordinat objek puncak. Anda dapat menggunakan fungsi ini untuk medan peta tekstur dengan menggunakan permukaan laut sebagai bidang referensi (didefinisikan oleh p1, p2, p3, dan p4). Fungsi pembuatan koordinat GL_OBJECT_LINEAR menghitung ketinggian puncak medan sebagai jaraknya dari permukaan laut; ketinggian tersebut digunakan untuk mengindeks gambar tekstur untuk memetakan salju putih ke puncak dan rumput hijau ke kaki kaki, misalnya.
Jika fungsi pembuatan tekstur GL_EYE_LINEAR, fungsi
digunakan, di mana
dan x?, y?, z?, dan w? adalah koordinat mata vertex, p1, p2, p3, dan p4 adalah nilai yang disediakan dalam param, dan M adalah matriks modelview ketika Anda memanggil glTexGen. Jika M berkondisi buruk atau tunggal, koordinat tekstur yang dihasilkan oleh fungsi yang dihasilkan dapat tidak akurat atau tidak terdefinisi.
Nilai dalam param menentukan bidang referensi dalam koordinat mata. Matriks modelview yang diterapkan padanya tidak boleh sama dengan yang berlaku ketika simpul poligon diubah. Fungsi ini menetapkan bidang koordinat tekstur yang dapat menghasilkan garis kontur dinamis pada objek yang bergerak.
Jika pname GL_SPHERE_MAP dan coord GL_S atau GL_T, koordinat tekstur s dan t dihasilkan sebagai berikut. Biarkan anda menjadi vektor unit yang menunjuk dari asal ke verteks poligon (dalam koordinat mata). Biarkan n menjadi normal saat ini, setelah transformasi ke koordinat mata. Biarkan f = (fx ( ) fy ( ) fz)T menjadi vektor pantulan sehingga
Akhirnya, biarkan
Kemudian nilai yang ditetapkan ke koordinat tekstur i dan t adalah
Anda dapat mengaktifkan atau menonaktifkan fungsi pembuatan koordinat tekstur dengan menggunakan glEnable atau glDisable dengan salah satu nama koordinat tekstur simbolis (GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R, atau GL_TEXTURE_GEN_Q) sebagai argumen. Ketika fungsi ini diaktifkan, koordinat tekstur yang ditentukan dihitung sesuai dengan fungsi pembuatan yang terkait dengan koordinat tersebut. Ketika fungsi dinonaktifkan, simpul berikutnya mengambil koordinat tekstur yang ditentukan dari kumpulan koordinat tekstur saat ini. Awalnya, semua fungsi pembuatan tekstur diatur ke GL_EYE_LINEAR dan dinonaktifkan. Kedua persamaan bidang adalah (1,0,0,0); kedua persamaan bidang adalah (0,1,0,0); dan semua persamaan bidang r dan q adalah (0,0,0,0).
Fungsi berikut mengambil informasi yang terkait dengan glTexGen:
glGetTexGen
glIsEnabled dengan argumen GL_TEXTURE_GEN_S
glIsEnabled dengan argumen GL_TEXTURE_GEN_T
glIsEnabled dengan argumen GL_TEXTURE_GEN_R
glIsEnabled dengan argumen GL_TEXTURE_GEN_Q
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
Pustaka |
|
DLL |
|