Operasi OpenGL Dasar

Diagram berikut menggambarkan cara OpenGL memproses data. Seperti yang ditunjukkan, perintah masuk dari kiri dan melanjutkan melalui alur pemrosesan. Beberapa perintah menentukan objek geometris yang akan digambar, dan yang lain mengontrol bagaimana objek ditangani selama berbagai tahap pemrosesan.

Diagram memperlihatkan tahap alur pemrosesan data OpenGL.

Tahap pemrosesan dalam operasi OpenGL dasar adalah sebagai berikut:

  • Tampilkan daftar Daripada meminta semua perintah segera dilanjutkan melalui alur, Anda dapat memilih untuk mengakumulasi beberapa di antaranya dalam daftar tampilan untuk diproses nanti.

  • Evaluator Tahap evaluator pemrosesan menyediakan cara yang efisien untuk memperkirakan kurva dan geometri permukaan dengan mengevaluasi perintah polinomial nilai input.

  • Operasi per vertex dan perakitan primitif OpenGL memproses titik primitif geometris, segmen garis, dan poligonsall yang dijelaskan oleh simpul. Puncak diubah dan dinyalakan, dan primitif dipotong ke viewport sebagai persiapan untuk rasterisasi.

  • Rasterisasi Tahap rasterisasi menghasilkan serangkaian alamat penyangga bingkai dan nilai terkait menggunakan deskripsi dua dimensi dari titik, segmen garis, atau poligon. Setiap fragmen yang dihasilkan diumpankan ke tahap terakhir, operasi per fragmen.

  • Operasi per fragmen Ini adalah operasi akhir yang dilakukan pada data sebelum disimpan sebagai piksel dalam framebuffer.

    Operasi per fragmen mencakup pembaruan kondisional untuk framebuffer berdasarkan nilai z yang masuk dan disimpan sebelumnya (untuk buffering z) dan perpaduan warna piksel masuk dengan warna yang disimpan, serta masking dan operasi logis lainnya pada nilai piksel.

Data dapat dimasukkan dalam bentuk piksel daripada simpul. Data dalam bentuk piksel, seperti mungkin menjelaskan gambar untuk digunakan dalam pemetaan tekstur, melewati tahap pertama pemrosesan yang dijelaskan di atas dan sebaliknya diproses sebagai piksel, dalam tahap operasi piksel. Setelah operasi piksel, data piksel adalah:

  • Disimpan sebagai memori tekstur, untuk digunakan dalam tahap rasterisasi.
  • Dirasterisasi, dengan fragmen yang dihasilkan digabungkan ke dalam framebuffer seolah-olah dibuat dari data geometris.