perbedaan antara opengl 3 dan opengl 4


10

Saya baru memulai dengan pemrograman game dan saya ingin mulai belajar OpenGL. Saya menemukan tutorial yang sangat bagus dari awal untuk memulai dengan opengl 3 dan saya bertanya-tanya apakah ada perbedaan besar antara openGL 3 dan openGl 4. Atau saya harus bertanya, apakah OpenGL 4 membuat OpenGL 3 menjadi usang, atau saya bisa mulai dengan openGL 3 dan kemudian saya bisa pindah ke openGL 4?

Jawaban:


12

Saya akan memulai ini dengan menautkan ke penjelasan tentang cara kerja versi OpenGL . Singkatnya, OpenGL (umumnya) kompatibel ke belakang, sehingga semua kode GL 3 berfungsi dengan baik pada implementasi GL 4.

Seri 4.x dari versi OpenGL mewakili apa yang Anda sebut perangkat keras kelas "Direct3D 11". Itu memperlihatkan fungsionalitas perangkat keras itu. Perangkat keras D3D10 diwakili oleh OpenGL versi 3.x. Jadi "pindah ke openGL 4" berarti meninggalkan perangkat keras yang lebih rendah, atau memiliki beberapa jalur render.

Rincian terperinci dari perubahan fitur aktual antara 3.3 dan 4.2 dapat ditemukan dalam spesifikasi 4.2 . Harap perhatikan bahwa banyak fitur (separate_shader_objects, shading_language_420pack, tekstur_storage) tidak terbatas pada 4.x perangkat keras; itu adalah perubahan API dan Anda dapat mengaksesnya di perangkat keras 3.x melalui ekstensi.

Pertanyaan yang paling menonjol adalah ini: apa yang GL 4.x izinkan saya lakukan yang tidak dapat saya lakukan dengan perangkat keras 3.x?

Tessellation mungkin adalah fitur yang paling terkenal. Ini juga mungkin yang paling bermanfaat secara umum. Itu bukan untuk mengatakan bahwa itu tidak berguna; penggunaan tessellation yang tepat dapat meningkatkan detail dalam model. Tetapi bagi saya setidaknya, itu bukan benar-benar hal terbaik yang GL 4 lakukan untuk itu.

Subrutin Shader adalah ide yang menarik. Ini pada dasarnya memungkinkan Anda untuk menyatukan berbagai pecahan shader secara dinamis. Anda dapat lebih atau kurang melampirkan fungsi ke titik mengikat tertentu dalam suatu program. Spesifikasinya agak sulit untuk diikuti, tetapi fungsinya bagus.

Saya akan mengatakan bahwa pemuatan / penyimpanan gambar mungkin adalah fungsi GL 4 yang paling diabaikan namun paling kuat. Dengan itu, Anda memiliki kemampuan untuk menerapkan transparansi yang tidak tergantung pesanan dengan kinerja yang sebagus yang akan didapat OIT. Mungkin ada banyak kegunaan lain untuk memuat / menyimpan gambar, tetapi akan membutuhkan orang yang lebih pintar untuk mengetahuinya.

Ada beberapa peluang dan berakhir pada GL 4. Hal-hal seperti dukungan presisi ganda dan rendering tidak langsung. Ini lebih banyak gaya GPGPU, jadi mungkin tidak akan banyak berguna dalam game.

Tetapi secara umum, GL 4 tidak secara radikal mengubah cara Anda mengimplementasikan fitur X dari GL 3.


Saya hanya perlu mengatakan, Anda benar-benar salah untuk mengatakan bahwa rendering tidak langsung adalah 'hal gaya GPGPU'. Ini adalah peningkatan kinerja yang hebat untuk setiap penyaji yang jika tidak akan membuat banyak panggilan dari CPU dan merupakan fitur yang bagus untuk permainan.
CoffeeandCode
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.