Apa itu Buffer OpenGL® Vertex?

Buffer vertex Open Graphics Library® (OpenGL®) adalah area memori komputer yang sering terletak langsung pada kartu grafis yang memungkinkan akses sangat cepat ke array vertex dan propertinya. Paling sering, buffer vertex OpenGL® digunakan untuk membuat objek buffer vertex (VBO), memungkinkan objek dalam adegan tiga dimensi (3D) dirender sebagai bagian dari daftar tampilan dan bukan dalam mode langsung. Kadang-kadang, bagaimanapun, buffer vertex dapat digunakan di luar VBO untuk menyimpan informasi tentang suatu objek atau untuk membantu membuat transformasi lebih mudah pada model yang kompleks. Perlu dicatat bahwa buffer vertex tidak harus ditempatkan di memori kartu grafis, karena dapat dialokasikan seperti struktur data lainnya. Jika buffer vertex OpenGL® akan digunakan sebagai bagian dari VBO, maka kartu grafis yang digunakan harus mendukung ekstensi OpenGL® VBO khusus untuk memastikan buffer ditempatkan di memori grafis.

Pada tingkat paling dasar, buffer vertex OpenGL® hanyalah buffer sederhana, area memori yang dialokasikan tempat data dapat disimpan. Ini menjadi buffer vertex ketika array vertex disimpan di dalamnya. Array vertex OpenGL® adalah array struktur data yang mendefinisikan semua properti dari setiap vertex. Informasi ini dapat mencakup lokasi X, Y dan Z dari simpul dalam adegan 3D, warna simpul, normal dan properti lainnya.

Dalam rendering mode langsung, perintah OpenGL® dieksekusi secara langsung saat dipanggil dari dalam sebuah program. Dalam kasus ini, tidak perlu memiliki larik simpul, karena perintah untuk menempatkan dan menggambar simpul dapat diberikan langsung ke perangkat keras, meskipun hal ini dapat menyebabkan masalah kinerja yang serius. Untuk rendering mode non-immediate, informasi tentang objek atau model 3D harus ditempatkan terlebih dahulu dalam array vertex sehingga memiliki struktur yang dapat dengan mudah diinterpretasikan oleh OpenGL®; array itu kemudian harus disimpan di area khusus memori yang dikenal sebagai buffer vertex OpenGL®.

Dengan sendirinya, buffer verteks tidak harus memiliki atribut khusus selain sebagai kumpulan informasi lengkap yang digunakan untuk menggambar objek. Namun, ketika buffer vertex OpenGL® diubah menjadi objek buffer vertex OpenGL® melalui ekstensi OpenGL, urutan kejadian khusus terjadi untuk membantu mengoptimalkan gambar objek yang didefinisikan dalam buffer vertex. Yaitu, buffer dialokasikan dan disimpan dalam memori kartu grafis, di sisi server dari konfigurasi client-server yang digunakan OpenGL®. Beberapa perhitungan juga dapat dilakukan terlebih dahulu pada VBO sehingga dapat dirender secepat mungkin. Di luar VBO, buffer vertex biasa biasanya tidak menerima perlakuan ini dan dapat dialokasikan dan digunakan seperti tipe data lainnya.