Apa perbedaan antara OpenGL 1.x dan 2.x?


13

Apakah ada tutorial yang bagus yang menunjukkan perbedaan antara OpenGL 1. * dan 2. *?

Akan sangat membantu untuk mengetahui fungsi mana yang seharusnya tidak saya panggil (seperti glBegin (), saya berasumsi).


1
Biarkan saya ulangi pertanyaan Anda. Apa perbedaan antara rendering fungsi tetap dan Shader?
EnabrenTane

3
Itu pertanyaan yang sama sekali berbeda.
Jari Komppa

Jawaban:


11

Halaman persiapan OpenGL.org memiliki ikhtisar, dengan banyak tautan ke berbagai tutorial.

Singkatnya, OpenGL 2.0 hidup antara dunia fungsi tetap (1.x) dan dunia yang sepenuhnya dapat diprogram (2.x +); Anda masih dapat menggunakan semua yang dimiliki OpenGL 1.x, sambil menambahkan shader. Bergerak maju (3.x +), semua jenis sistem fungsi tetap yang lama mulai ditinggalkan, jadi mungkin lebih baik memiliki awal yang bersih daripada mencampurkan kedua dunia.

Saya juga terkejut ini belum pernah ditanyakan sebelumnya .. atau setidaknya saya tidak dapat menemukannya pada pencarian cepat.


Saya tidak dapat menemukan tutorial khusus versi. (kecuali untuk 3.0)
t123

Ada banyak tautan dari halaman itu, di bawah "Tutorial dan Cara Memandu", tetapi pada dasarnya Anda memiliki pilihan antara OpenGL 1.x dan "apa pun".
Jari Komppa

@ tm1rbrt: Anda tidak akan menemukan tutorial khusus untuk 2.1, karena semua tutorial 1.x yang valid masih merupakan tutorial 2.1 yang valid. Satu-satunya alasan ada jeda pada 3.x adalah karena di situlah API dihapus. Jika Anda mencari tutorial berbasis shader era 2.1, tutorial lighthouse3d dapat diservis. Namun, Anda harus diberitahu bahwa perangkat keras 3.x telah ada sejak 2006, dan bahkan sekarang sudah tertanam di motherboard dan bahkan CPU. Jadi masa depan bukan di dunia 2.x; tutorial di masa depan umumnya akan berfokus pada 3.x ke atas.
Nicol Bolas

3

Versi OpenGL, pada umumnya, tidak seperti versi Direct3D. Kode lama Anda masih berfungsi dengan versi baru (dengan satu pengecualian). Oleh karena itu, OpenGL v1.4 akan berfungsi dengan baik di bawah OpenGL 2.1. Versi OpenGL adalah tambahan, bukan pengurangan.

OpenGL 2.0 dan 2.1 menambahkan shader, di OpenGL Shading Language. Mereka juga menambahkan beberapa fitur lain, seperti tekstur floating-point, tekstur non-power-of-two, dan sebagainya. Daftar lengkapnya tersedia dalam spesifikasi OpenGL 2.1 itu sendiri. Lihat saja bagian "Versi"; mereka akan memberi tahu Anda apa yang berubah dari versi sebelumnya.

Satu-satunya pengecualian pada aturan tentang perubahan API adalah OpenGL 3.1 (ya, 3.1, bukan 3.0). Di OpenGL 3.0, sejumlah API ditetapkan sebagai "usang". Ini berarti bahwa ARB, komite yang bertanggung jawab atas OpenGL, dapat menghapus fungsi-fungsi ini dari versi yang lebih baru. Penghapusan ini terjadi di OpenGL 3.1. Spesifikasi 3.0 memiliki daftar besar barang-barang usang di dalamnya, dan spesifikasi 3.1 dipangkas.

Perhatikan bahwa Anda tidak perlu peduli (setidaknya pada Windows dan Linux. MacOSX berbeda). Anda dapat menjalankan dengan baik dalam mode " kompatibilitas ", di mana semua fitur yang sebelumnya dihapus kembali. Implementasi OpenGL tidak harus mendukung konteks kompatibilitas (dan Mac OS X Lion tidak. Mendukung inti 2.1 atau 3.2, sesuai permintaan Anda), tetapi semuanya masih dilakukan. Hanya untuk kompatibilitas mundur dengan aplikasi yang lebih lama.


Bisakah Anda menambahkan sesuatu tentang OpenGL 4. *?
Kromster mengatakan mendukung Monica

@Rom: Tidak banyak yang bisa dikatakan. Sama seperti pergi dari 1.x ke 2.x, tidak ada yang dihapus.
Nicol Bolas

0

Saya percaya bahwa ada tutorial untuk opengl 1.x dan 2.x, tetapi ada kemungkinan besar tidak akan ada tutorial yang menunjukkan bagaimana mereka berbeda dengan fitur atau kemudahan penggunaan dll.

Mungkin yang terbaik untuk mencari tutorial untuk versi pembuka spesifik, menemukan tutorial serupa dan membandingkannya sendiri.


Serius siapa yang terus secara acak menurunkan komentar saya?
LizardGamer

Mengapa downvotes di sini? Bukan jawaban yang bagus, tapi downvotes? Tidak yakin. Pertanyaannya benar-benar menginginkan sesuatu yang tidak biasa ... Tutorial untuk menunjukkan perbedaan, yang kebanyakan bukan apa yang dilakukan oleh tutorial ...
Notabene

@LizardGamer Saya melihat Anda bergabung dengan gamedev.SE beberapa hari yang lalu, jadi saya ingin mengatakan, "Selamat datang!". Namun, Anda harus benar-benar membaca FAQ di sini: gamedev.stackexchange.com/faq Jawaban ini adalah contoh sempurna dari jenis jawaban yang TIDAK ingin Anda berikan. Cobalah untuk lebih spesifik dan pasti lebih konstruktif dengan pertanyaan dan jawaban Anda. FAQ akan membantu Anda mewujudkan tujuan situs ini dan jenis konten yang kami cari. Semoga berhasil!
Amplify91

@ notabene jawaban ini sebenarnya tidak menjawab pertanyaan. Satu-satunya saran yang diberikan pada dasarnya adalah "mencari jawabannya". Jelas, OP sudah melakukan itu dengan mengajukan pertanyaan di sini.
Amplify91

@ Amplify91 Terima kasih untuk satu-satunya Selamat Datang yang saya dapatkan, dan saya sudah membaca FAQ, saya tidak menemukan bagaimana ini adalah contoh dari apa yang tidak boleh ditanyakan? Plus itu menjawab pertanyaan, karena saya belum melihat tutorial yang terkait dengan membandingkan versi OpenGL
LizardGamer
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.