OpenGL 1.x ve 2.x arasındaki fark nedir?


13

OpenGL 1 * ve 2. * arasındaki farkı gösteren iyi bir öğretici var mı?

Ben hangi işlevleri bilmek çok yararlı olacaktır değil çağırıyor (glBegin () gibi sanırım).


1
Sorunuzu yeniden ifade edeyim. Sabit işlev oluşturma ve Shaders arasındaki fark nedir?
EnabrenTane

3
Yine de bu tamamen farklı bir soru.
Jari Komppa

Yanıtlar:


11

OpenGL.org başlarken sayfa çeşitli öğreticiler bağlantıları bol bir bakış vardır.

Kısacası, OpenGL 2.0 sabit fonksiyon (1.x) ve tamamen programlanabilir (2.x +) dünya arasında yaşar; gölgelendiriciler eklerken OpenGL 1.x'in sahip olduğu her şeyi kullanmaya devam edebilirsiniz. İleride (3.x +) ilerlerken, her türlü eski sabit fonksiyon sistemi kullanımdan kaldırılmaya başlar, bu nedenle her iki dünyayı karıştırmak yerine temiz bir başlangıç ​​yapmak daha iyi olabilir.

Ayrıca bu daha önce sorulmuş değildi şaşırdım .. ya da en azından hızlı bir arama bulamadı.


Sürüme özgü bir öğretici bulamıyorum. (3.0 hariç)
t123

Bu sayfadan "Öğreticiler ve Nasıl Yapılır Kılavuzları" altında bol miktarda bağlantı vardır, ancak temel olarak OpenGL 1.x ve "başka bir şey" arasında seçim yapabilirsiniz.
Jari Komppa

@ tm1rbrt: Tüm geçerli 1.x öğreticiler hala geçerli 2.1 öğreticiler olduğundan, 2.1 için özel öğreticiler bulamazsınız . 3.x'de bir kırılmanın tek nedeni, API'lerin kaldırıldığı yer olmasıdır. 2.1 dönem gölgelendirici tabanlı öğreticiler arıyorsanız, lighthouse3d öğreticileri kullanılabilir. Bununla birlikte, 3.x donanımının 2006'dan beri olduğu ve şimdi bile anakartlara ve hatta CPU'lara gömülü olduğu bildirilmelidir. Yani gelecek 2.x dünyasında değil; gelecekteki eğiticiler genellikle 3.x ve üstü derslere odaklanacaktır.
Nicol Bolas

3

OpenGL sürümleri genel olarak Direct3D sürümleri gibi değildir . Eski kodunuz hala yeni sürümlerle (bir istisna dışında) çalışır. Bu nedenle, OpenGL v1.4, OpenGL 2.1 altında iyi çalışacaktır. OpenGL sürümleri toplama değil toplamadır.

OpenGL 2.0 ve 2.1, OpenGL Gölgelendirme Dili'nde gölgelendiriciler ekler. Ayrıca kayan noktalı dokular, iki dokunun gücü olmayan dokular vb. Gibi başka özellikler de eklerler. Tam liste OpenGL 2.1 spesifikasyonunda mevcuttur . "Sürüm" bölümlerine bakın; önceki sürümden nelerin değiştiğini size söyleyeceklerdir.

API değişiklikleri ile ilgili kuralın tek istisnası OpenGL 3.1'dir (evet, 3.1 değil, 3.0). OpenGL 3.0'da, birkaç API "kullanımdan kaldırıldı" olarak belirlenmiştir. Bu, OpenGL'den sorumlu komite olan ARB'nin bu işlevleri daha sonraki sürümlerden kaldırabileceği anlamına gelir. Bu kaldırma OpenGL 3.1'de oldu. 3.0 spesifikasyonunda, kullanımdan kaldırılmış şeylerin büyük bir listesi var ve 3.1 spesifikasyonu buna göre kesiliyor.

İlgilenmeniz gerekmediğini unutmayın (en azından Windows ve Linux'ta. MacOSX farklıdır). Önceden kaldırılan tüm özelliklerin geri döndüğü " uyumluluk " modunda iyi çalışabilirsiniz . OpenGL uygulamalarının uyumluluk bağlamlarını desteklemesi gerekmez (ve Mac OS X Lion desteklemez. İsterseniz 2.1 veya 3.2 çekirdeği destekler), ancak hepsi hala geçerlidir. Eski uygulamalarla geriye dönük uyumluluk için.


OpenGL 4 hakkında bir şey ekleyebilir misiniz?
Kromster

@Krom: Söyleyecek çok şey yok. Tıpkı 1.x'ten 2.x'e gitmek gibi, hiçbir şey kaldırılmadı.
Nicol Bolas

0

Ben opengl 1.x ve 2.x için öğreticiler olduğunu düşünüyorum, ama büyük olasılıkla özellikleri veya kullanım kolaylığı vb. Nasıl farklı olduğunu gösteren öğreticiler olmayacak.

Belirli opengl sürümü için öğreticileri aramak, benzer öğreticileri bulmak ve bunları kendiniz karşılaştırmak en iyisi olabilir.


Ciddi bir şekilde yorumlarımı rastgele indiren kim?
LizardGamer

Neden inişler burada? Harika bir cevap değil, aşağı oy? Emin değil. Soru trully çok olağan olmayan bir şey istiyor ... Farklılıkları göstermek için öğretici, çoğunlukla öğreticiler ne yapar ...
Notabene

@LizardGamer gamedev.SE'ye birkaç gün önce katıldığınızı görüyorum, bu yüzden "Hoş Geldiniz!" Demek istiyorum. Ancak, buradaki SSS'yi gerçekten okumalısınız: gamedev.stackexchange.com/faq Bu cevap vermek istemediğiniz cevap türünün mükemmel bir örneğidir. Hem sorularınız hem de yanıtlarınızla daha spesifik ve kesinlikle daha yapıcı olmaya çalışın. SSS, bu sitenin amacını ve aradığımız içerik türünü fark etmenize yardımcı olmalıdır. İyi şanslar!
Amplify91

@notabene bu cevap aslında soruyu cevaplamıyor. Verdiği tek öneri temel olarak "cevabı ara" dır. Açıkçası, OP zaten burada bir soru sorarak bunu yapıyor.
Amplify91

@ Amplify91 Sahip olduğum tek Karşılama için teşekkür ederim ve SSS bölümünü zaten okudum, sormamaya bir örnek nasıl bulamıyorum? Ayrıca soruya cevap veriyor, çünkü opengl sürümlerini karşılaştırmayla ilgili herhangi bir öğretici görmedim
LizardGamer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.