fungsi glMap2d
Fungsi glMap2d dan glMap2f menentukan evaluator dua dimensi.
void WINAPI glMap2d(
GLenum target,
GLdouble u1,
GLdouble u2,
GLint ustride,
GLint uorder,
GLdouble v1,
GLdouble v2,
GLint vstride,
GLint vorder,
const GLdouble *points
);
-
target
-
Jenis nilai yang dihasilkan oleh evaluator. Konstanta simbolis berikut diterima.
Nilai Makna - GL_MAP2_VERTEX_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili x, y, dan z. Perintah glVertex3 internal dihasilkan saat peta dievaluasi. - GL_MAP2_VERTEX_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili x, y, z, dan w. Perintah glVertex4 internal dihasilkan saat peta dievaluasi. - GL_MAP2_INDEX
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili indeks warna. Perintah glIndex internal dihasilkan saat peta dievaluasi. Namun, indeks saat ini tidak diperbarui dengan nilai perintah glIndex ini. - GL_MAP2_COLOR_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili merah, hijau, biru, dan alfa. Perintah glColor4 internal dihasilkan saat peta dievaluasi. Namun, warna saat ini tidak diperbarui dengan nilai perintah glColor4 ini. - GL_MAP2_NORMAL
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili komponen x, y, dan z dari vektor normal. Perintah glNormal internal dihasilkan saat peta dievaluasi. Namun, normal saat ini tidak diperbarui dengan nilai perintah glNormal ini. - GL_MAP2_TEXTURE_COORD_1
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili koordinat tekstur s . Perintah glTexCoord1 internal dihasilkan saat peta dievaluasi. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP2_TEXTURE_COORD_2
Setiap titik kontrol adalah dua nilai floating-point yang mewakili koordinat tekstur s dan t . Perintah glTexCoord2 internal dihasilkan saat peta dievaluasi. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP2_TEXTURE_COORD_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili koordinat tekstur s, t, dan r . Perintah glTexCoord3 internal dihasilkan saat peta dievaluasi. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP2_TEXTURE_COORD_4
Setiap titik kontrol adalah empat nilai floating-point yang mewakili koordinat tekstur s, t, r, dan q . Perintah glTexCoord4 internal dihasilkan saat peta dievaluasi. Koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. -
u1
-
Pemetaan linier u, seperti yang disajikan ke glEvalCoord2, untuk u^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
u2
-
Pemetaan linier u, seperti yang disajikan ke glEvalCoord2, untuk u^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
ustride
-
Jumlah float atau ganda antara awal titik kontrol Rij dan awal titik kontrol R(i\ +1\ )\ j, di mana i dan j adalah indeks titik kontrol u dan v , masing-masing. Ini memungkinkan titik kontrol disematkan dalam struktur data arbitrer. Satu-satunya batasan adalah bahwa nilai untuk titik kontrol tertentu harus menempati lokasi memori yang berdampingan.
-
uorder
-
Dimensi array titik kontrol di sumbu u. Harus positif.
-
v1
-
Pemetaan linier v, seperti yang disajikan ke glEvalCoord2, ke v^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
v2
-
Pemetaan linier v, seperti yang disajikan ke glEvalCoord2, ke v^, salah satu dari dua variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
vstrida
-
Jumlah float atau ganda antara awal titik kontrol Rij dan awal titik kontrol Ri(j\ +1\ ), di mana i dan j masing-masing adalah indeks titik kontrol u dan v . Ini memungkinkan titik kontrol disematkan dalam struktur data arbitrer. Satu-satunya batasan adalah bahwa nilai untuk titik kontrol tertentu harus menempati lokasi memori yang berdampingan.
-
vorder
-
Dimensi array titik kontrol di sumbu v. Harus positif.
-
points
-
Penunjuk ke array titik kontrol.
Fungsi ini tidak mengembalikan nilai.
Kode kesalahan berikut dapat diambil oleh fungsi glGetError .
Nama | Makna |
---|---|
|
target bukan nilai yang diterima. |
|
u1 sama dengan u2, atau v1 sama dengan v2. |
|
Baik ustride atau vstride kurang dari jumlah nilai dalam titik kontrol. |
|
Uorder atau vorder kurang dari satu atau GL_MAX_EVAL_ORDER. |
|
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd. |
Evaluator menyediakan cara untuk menggunakan pemetaan polinomial atau polinomial rasional untuk menghasilkan simpul, normal, koordinat tekstur, dan warna. Nilai yang dihasilkan oleh evaluator dikirim ke tahap pemrosesan OpenGL lebih lanjut seolah-olah telah disajikan menggunakan perintah glVertex, glNormal, glTexCoord, dan glColor , kecuali bahwa nilai yang dihasilkan tidak memperbarui koordinat normal, tekstur, atau warna saat ini.
Semua spline polinomial polinomial atau rasional dari tingkat apa pun (hingga tingkat maksimum yang didukung oleh implementasi OpenGL) dapat dijelaskan menggunakan evaluator. Ini termasuk hampir semua permukaan yang digunakan dalam grafik komputer, termasuk permukaan B-spline, permukaan NURBS, permukaan Bezier, dan sebagainya.
Evaluator mendefinisikan permukaan berdasarkan polinomial Bernstein bivariat. Tentukan p (u^,v^) sebagai
di mana Rij adalah titik kontrol, () adalah polinomial ith Bernstein
n (uorder = n + 1)
dan () adalah polinomial jth Bernstein dari derajat m (vorder = m + 1)
Ingat bahwa
Fungsi glMap2 digunakan untuk menentukan dasar dan untuk menentukan jenis nilai apa yang dihasilkan. Setelah ditentukan, peta dapat diaktifkan dan dinonaktifkan dengan memanggil glEnable dan glDisable dengan nama peta, salah satu dari sembilan nilai yang telah ditentukan sebelumnya untuk target, yang dijelaskan di atas. Ketika glEvalCoord2 menyajikan nilai u dan v, polinomial Bernstein bivariat dievaluasi menggunakan u^ dan v^, di mana
dan
Parameter target adalah konstanta simbolis yang menunjukkan jenis titik kontrol apa yang disediakan dalam titik, dan output apa yang dihasilkan saat peta dievaluasi.
Parameter ustride, uorder, vstride, vorder, dan points menentukan alamat array untuk mengakses titik kontrol. Parameter titik adalah lokasi titik kontrol pertama, yang menempati satu, dua, tiga, atau empat lokasi memori yang berdekatan, tergantung pada peta mana yang sedang ditentukan. Ada titik kontrol uorder x vorder dalam array. Parameter ustride memberi tahu berapa banyak lokasi float atau ganda yang dilewati untuk memajukan penunjuk memori internal dari titik kontrol Rij ke titik kontrol R(\ i+1\ )j. Parameter vstride memberi tahu berapa banyak lokasi float atau ganda yang dilewati untuk memajukan penunjuk memori internal dari titik kontrol Rij ke titik kontrol Ri(j\ +1\ ).
Seperti halnya dengan semua perintah OpenGL yang menerima pointer ke data, seolah-olah konten titik disalin oleh glMap2 sebelum dikembalikan. Perubahan pada konten titik tidak berpengaruh setelah glMap2 dipanggil.
Fungsi berikut mengambil informasi yang terkait dengan glMap2:
glGet dengan argumen GL_MAX_EVAL_ORDER
glIsEnabled dengan argumen GL_MAP2_VERTEX_3
glIsEnabled dengan argumen GL_MAP2_VERTEX_4
glIsEnabled dengan argumen GL_MAP2_INDEX
glIsEnabled dengan argumen GL_MAP2_COLOR_4
glIsEnabled dengan argumen GL_MAP2_NORMAL
glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_1
glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_2
glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_3
glIsEnabled dengan argumen GL_MAP2_TEXTURE_COORD_4
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 |
|