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.