fungsi glAccum

Fungsi glAccum beroperasi pada buffer akumulasi.

Sintaks

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

Parameter

Op

Operasi buffer akumulasi. Konstanta simbolis yang diterima adalah sebagai berikut.

Nilai Makna
GL_ACCUM
Mendapatkan nilai R, G, B, dan A dari buffer yang saat ini dipilih untuk dibaca (lihat glReadBuffer). Setiap nilai komponen dibagi dengan 2n 1, di mana n adalah jumlah bit yang dialokasikan untuk setiap komponen warna dalam buffer yang saat ini dipilih. Hasilnya adalah nilai floating-point dalam rentang [0,1], yang dikalikan dengan nilai dan ditambahkan ke komponen piksel yang sesuai dalam buffer akumulasi, sehingga memperbarui buffer akumulasi.
GL_LOAD
Mirip dengan GL_ACCUM, kecuali bahwa nilai saat ini dalam buffer akumulasi tidak digunakan dalam perhitungan nilai baru. Artinya, nilai R, G, B, dan A dari buffer yang saat ini dipilih dibagi dengan 2n 1, dikalikan dengan nilai, lalu disimpan dalam sel buffer akumulasi yang sesuai, menimpa nilai saat ini.
GL_ADD
Menambahkan nilai ke setiap R, G, B, dan A dalam buffer akumulasi.
GL_MULT
Mengalikan setiap R, G, B, dan A dalam buffer akumulasi berdasarkan nilai dan mengembalikan komponen yang diskalakan ke lokasi buffer akumulasi yang sesuai.
GL_RETURN
Mentransfer nilai buffer akumulasi ke buffer warna atau buffer yang saat ini dipilih untuk penulisan. Setiap komponen R, G, B, dan A dikalikan dengan nilai, lalu dikalikan dengan 2n 1, dijepit ke rentang [0, 2n 1 ], dan disimpan dalam sel buffer tampilan yang sesuai. Satu-satunya operasi fragmen yang diterapkan pada transfer ini adalah kepemilikan piksel, gunting, dithering, dan writemasks warna.

nilai

Nilai floating-point yang digunakan dalam operasi buffer akumulasi. Parameter op menentukan bagaimana nilai digunakan.

Menampilkan nilai

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError .

Nama Makna
GL_INVALID_ENUM
op bukan nilai yang diterima.
GL_INVALID_OPERATION
Tidak ada buffer akumulasi atau fungsi glAccum dipanggil antara panggilan ke glBegin dan panggilan yang sesuai untuk glEnd.

Keterangan

Buffer akumulasi adalah buffer warna rentang yang diperluas. Gambar tidak dirender ke dalamnya. Sebaliknya, gambar yang dirender ke dalam salah satu buffer warna ditambahkan ke konten buffer akumulasi setelah penyajian. Anda dapat membuat efek seperti antialiasing (titik, garis, dan poligon), buram gerakan, dan kedalaman bidang dengan mengakumulasi gambar yang dihasilkan dengan matriks transformasi yang berbeda.

Setiap piksel dalam buffer akumulasi terdiri dari nilai merah, hijau, biru, dan alfa. Jumlah bit per komponen dalam buffer akumulasi tergantung pada implementasinya. Anda dapat memeriksa nomor ini dengan memanggil glGetIntegerv empat kali, dengan argumen masing-masing GL_ACCUM_RED_BITS, GL_ACCUM_GREEN_BITS, GL_ACCUM_BLUE_BITS, dan GL_ACCUM_ALPHA_BITS. Namun, terlepas dari jumlah bit per komponen, rentang nilai yang disimpan oleh setiap komponen adalah [ 1,?1]. Piksel buffer akumulasi dipetakan satu-ke-satu dengan piksel framebuffer.

Fungsi glAccum beroperasi pada buffer akumulasi. Argumen pertama, op, adalah konstanta simbolis yang memilih operasi buffer akumulasi. Argumen kedua, nilai, adalah nilai floating-point yang akan digunakan dalam operasi tersebut. Lima operasi ditentukan: GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT, dan GL_RETURN.

Semua operasi buffer akumulasi terbatas pada area kotak gunting saat ini dan diterapkan identik dengan komponen merah, hijau, biru, dan alfa dari setiap piksel. Isi komponen piksel buffer akumulasi tidak terdefinisi jika operasi glAccum menghasilkan nilai di luar rentang [ 1,1].

Untuk menghapus buffer akumulasi, gunakan fungsi glClearAccum untuk menentukan nilai R, G, B, dan A untuk mengaturnya, dan mengeluarkan fungsi glClear dengan buffer akumulasi diaktifkan.

Hanya piksel dalam kotak gunting saat ini yang diperbarui oleh operasi glAccum apa pun.

Fungsi berikut mengambil informasi yang terkait dengan fungsi glAccum :

glGet dengan argumen GL_ACCUM_RED_BITS

glGet dengan argumen GL_ACCUM_GREEN_BITS

glGet dengan argumen GL_ACCUM_BLUE_BITS

glGet dengan argumen GL_ACCUM_ALPHA_BITS

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

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp