fungsi glTexGeniv

Mengontrol pembuatan koordinat tekstur.

Sintaks

void WINAPI glTexGeniv(
         GLenum coord,
         GLenum pname,
   const GLint  *params
);

Parameter

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 yang berisi koefisien untuk fungsi pembuatan tekstur yang sesuai.

Nilai kembali

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError .

Nama Makna
GL_INVALID_ENUM
coord atau pname bukan nilai yang ditentukan yang diterima, atau pname GL_TEXTURE_GEN_MODE dan param bukanlah nilai yang ditentukan yang diterima.
GL_INVALID_OPERATION
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd.

Keterangan

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

Persamaan menunjukkan koordinat mata puncak.

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

Persamaan menunjukkan vektor refleksi sebagai fungsi vektor unit dan normal saat ini.

Akhirnya, biarkan

Persamaan menunjukkan m sebagai fungsi vektor refleksi.

Kemudian nilai yang ditetapkan ke koordinat tekstur i dan t adalah

Persamaan memperlihatkan nilai yang ditetapkan ke koordinat tekstur i dan t.

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

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Gl.h
Pustaka
Opengl32.lib
DLL
Opengl32.dll

Lihat juga

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D