Bagikan melalui


fungsi glStencilFunc

Fungsi glStencilFunc mengatur fungsi dan nilai referensi untuk pengujian stensil.

Sintaks

void WINAPI glStencilFunc(
   GLenum func,
   GLint  ref,
   GLuint mask
);

Parameter

func

Fungsi pengujian. Delapan token berikut valid.

Value Makna
GL_NEVER
Selalu gagal.
GL_LESS
Lolos jika (ref & mask) < (stensil & masker).
GL_LEQUAL
Lolos jika (ref & mask) = (stensil & masker).
GL_GREATER
Lolos jika (ref & mask) > (stensil & masker).
GL_GEQUAL
Lolos jika (ref & mask) = (stensil & masker).
GL_EQUAL
Lolos jika (ref & mask) = (stensil & masker).
GL_NOTEQUAL
Lolos jika (ref & mask) ? (stensil & masker).
GL_ALWAYS
Selalu lewat.

ref

Nilai referensi untuk pengujian stensil. Parameter ref dijepit ke rentang [0, 2n 1], di mana n adalah jumlah bitplanes dalam buffer stensil.

masker

Masker yang AND died dengan nilai referensi dan nilai stensil yang disimpan saat pengujian selesai.

Nilai hasil

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError.

Nama Makna
GL_INVALID_ENUM
func bukan salah satu dari delapan nilai yang diterima.
GL_INVALID_OPERATION
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd.

Keterangan

Stensil, seperti z-buffering, mengaktifkan dan menonaktifkan menggambar per piksel. Anda menggambar bidang stensil menggunakan primitif gambar OpenGL, lalu merender geometri dan gambar, menggunakan bidang stensil untuk menutupi bagian layar. Stensil biasanya digunakan dalam algoritma penyajian multipass untuk mencapai efek khusus, seperti desal, kerangka, dan penyajian geometri padat yang konstruktif.

Pengujian stensil secara kondisional menghilangkan piksel berdasarkan hasil perbandingan antara nilai referensi dan nilai dalam buffer stensil. Pengujian diaktifkan oleh glEnable dan glDisable dengan argumen GL_STENCIL_TEST. Tindakan yang diambil berdasarkan hasil pengujian stensil ditentukan dengan glStencilOp.

Parameter func adalah konstanta simbolis yang menentukan fungsi perbandingan stensil. Ini menerima salah satu dari delapan nilai yang ditunjukkan di atas. Parameter ref adalah nilai referensi bilangan bulat yang digunakan dalam perbandingan stensil. Ini dijepit ke rentang [0, 2n 1], di mana n adalah jumlah bitplanes dalam buffer stensil. Parameter masker bitwise ANDdied dengan nilai referensi dan nilai stensil yang disimpan, dengan nilai and ed yang berpartisipasi dalam perbandingan.

Jika stensil mewakili nilai yang disimpan di lokasi buffer stensil yang sesuai, daftar sebelumnya menunjukkan efek dari setiap fungsi perbandingan yang dapat ditentukan oleh func. Hanya jika perbandingan berhasil adalah piksel yang diteruskan ke tahap berikutnya dalam proses rasterisasi (lihat glStencilOp). Semua pengujian memperlakukan nilai stensil sebagai bilangan bulat yang tidak ditandatangani dalam rentang [0, 2n 1], di mana n adalah jumlah bitplanes dalam buffer stensil.

Awalnya, pengujian stensil dinonaktifkan. Jika tidak ada buffer stensil, tidak ada modifikasi stensil yang dapat terjadi dan seolah-olah tes stensil selalu lulus.

Fungsi berikut mengambil informasi yang terkait dengan glStencilFunc:

glGet dengan argumen GL_STENCIL_FUNC

glGet dengan argumen GL_STENCIL_VALUE_MASK

glGet dengan argumen GL_STENCIL_REF

glGet dengan argumen GL_STENCIL_BITS

glIsEnabled dengan argumen GL_STENCIL_TEST

Persyaratan

Persyaratan Value
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

Baca juga

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp