fungsi glMap1d
Fungsi glMap1d dan glMap1f menentukan evaluator satu dimensi.
void WINAPI glMap1d(
GLenum target,
GLdouble u1,
GLdouble u2,
GLint stride,
GLint order,
const GLdouble *points
);
-
target
-
Jenis nilai yang dihasilkan oleh evaluator. Konstanta simbolis. Parameter target adalah konstanta simbolis yang menunjukkan jenis titik kontrol apa yang disediakan dalam titik, dan output apa yang dihasilkan saat peta dievaluasi. Ini dapat mengasumsikan salah satu dari sembilan nilai yang telah ditentukan sebelumnya.
Nilai Makna - GL_MAP1_VERTEX_3
Setiap titik kontrol adalah tiga nilai floating-point yang mewakili x, y, dan z. Perintah glVertex3 internal dihasilkan saat peta dievaluasi. - GL_MAP1_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_MAP1_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_MAP1_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_MAP1_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_MAP1_TEXTURE_COORD_1
Setiap titik kontrol adalah nilai floating-point tunggal yang mewakili koordinat tekstur s . Perintah glTexCoord1 internal dihasilkan saat peta dievaluasi. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP1_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. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP1_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. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. - GL_MAP1_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. Namun, koordinat tekstur saat ini tidak diperbarui dengan nilai perintah glTexCoord ini. -
u1
-
Pemetaan linier u, seperti yang disajikan ke glEvalCoord1, ke u^, variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
u2
-
Pemetaan linier u, seperti yang disajikan ke glEvalCoord1, ke u^, variabel yang dievaluasi oleh persamaan yang ditentukan oleh perintah ini.
-
Langkahnya
-
Jumlah float atau ganda antara awal satu titik kontrol dan awal titik kontrol berikutnya dalam struktur data yang dirujuk dalam titik. 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.
-
urutan
-
Jumlah titik kontrol. 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. |
|
stride kurang dari jumlah nilai dalam titik kontrol. |
|
pesanan 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 atau polinomial rasional dari tingkat apa pun (hingga derajat maksimum yang didukung oleh implementasi OpenGL) dapat dijelaskan menggunakan evaluator. Ini termasuk hampir semua spline yang digunakan dalam grafik komputer, termasuk B-splines, kurva Bezier, spline Hermite, dan sebagainya.
Evaluator mendefinisikan kurva berdasarkan polinomial Bernstein. Tentukan p () sebagai
di mana Ri adalah titik kontrol dan () adalah polinomial Bernstein derajat n (urutan =n + 1):
Ingat bahwa
Fungsi glMap1 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. Fungsi glEvalCoord1 mengevaluasi peta satu dimensi yang diaktifkan. Ketika glEvalCoord1 menyajikan nilai u, fungsi Bernstein dievaluasi menggunakan u^, di mana
Parameter langkah, urutan, dan titik menentukan alamat array untuk mengakses titik kontrol. Parameter poin adalah lokasi titik kontrol pertama, yang menempati satu, dua, tiga, atau empat lokasi memori yang berdekatan, tergantung pada peta mana yang sedang ditentukan. Parameter pesanan adalah jumlah titik kontrol dalam array. Parameter langkah memberi tahu berapa banyak lokasi float atau ganda untuk memajukan penunjuk memori internal untuk mencapai titik kontrol berikutnya.
Seperti halnya dengan semua perintah OpenGL yang menerima pointer ke data, seolah-olah konten titik disalin oleh glMap1 sebelum dikembalikan. Perubahan pada konten titik tidak berpengaruh setelah glMap1 dipanggil.
Fungsi berikut mengambil informasi yang terkait dengan glMap1:
glGet dengan argumen GL_MAX_EVAL_ORDER
glIsEnabled dengan argumen GL_MAP1_VERTEX_3
glIsEnabled dengan argumen GL_MAP1_VERTEX_4
glIsEnabled dengan argumen GL_MAP1_INDEX
glIsEnabled dengan argumen GL_MAP1_COLOR_4
glIsEnabled dengan argumen GL_MAP1_NORMAL
glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_1
glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_2
glIsEnabled dengan argumen GL_MAP1_TEXTURE_COORD_3
glIsEnabled dengan argumen GL_MAP1_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 |
|