fungsi glTexGenfv
Mengontrol pembuatan koordinat tekstur.
void WINAPI glTexGenfv(
GLenum coord,
GLenum pname,
const GLfloat *params
);
-
koord
-
Koordinat tekstur. Harus salah satu hal berikut: GL_S, GL_T, GL_R, atau GL_Q.
-
pname
-
Nama simbolis fungsi pembuatan koordinat tekstur.
-
params
-
Array float yang berisi koefisien untuk fungsi pembuatan tekstur yang sesuai.
GLfloat zPlane[] = { 0.0f, 0.0f, 1.0f, 0.0f };
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. |
|
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 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_OBJECT_PLANE atau GL_EYE_PLANE, param berisi koefisien untuk fungsi pembuatan tekstur yang sesuai.
Jika fungsi pembuatan tekstur GL_OBJECT_LINEAR, fungsi
! [Persamaan memperlihatkan fungsi glTexGen ketika fungsi pembuatan tekstur GL_OBJECT_LINEAR.]
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 vertex. 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 itu digunakan untuk mengindeks gambar tekstur untuk memetakan salju putih ke puncak dan rumput hijau ke kaki bukit, misalnya.
Jika fungsi pembuatan tekstur GL_EYE_LINEAR, fungsi
! [Persamaan memperlihatkan fungsi glTexGen ketika fungsi pembuatan tekstur GL_EYE_LINEAR.]
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.
Perhatikan bahwa nilai dalam param mendefinisikan bidang referensi dalam koordinat mata. Matriks modelview yang diterapkan pada matriks tersebut mungkin tidak 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 koord GL_S atau GL_T, koordinat tekstur s dan t dihasilkan sebagai berikut. Biarkan u 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 ini 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 t 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 |
|