OpenGL vs OGRE: Yeni başlayanlar için en iyisi hangisidir? [kapalı]


10

Oyun geliştirme ile ilgileniyorum ve iyi C / C ++ programlama becerilerine sahip. Daha önce OGRE denedim ve başlangıç ​​noktası olarak OGRE mi yoksa OpenGL mi öğrenmem gerektiğini merak ediyorum.

Anladığım kadarıyla OGRE, OpenGL ve DirectX için bir paket. Öyleyse, OGRE'yi öğrendiğimi varsayalım, yine de bir oyun geliştirmek için OpenGL'yi de öğrenmem gerekiyor mu?

Ayrıca, birisi bana OpenGL için iyi bir öğretici işaret edebilir? OGRE'nin iyi belgelendiğini (hatta dağıtımla birlikte geldiğini) buldum, ancak OpenGL için, geldiğim öğreticilerin çoğu modası geçmiş.


3D grafik programlamaya tamamen yeniyseniz, düşük seviye API'lerin ilk önce nasıl çalıştığına (OpenGL veya D3D, gerçekten önemli değil) ve sonra hazır bir grafik motoruna geçmeye çalışacağım. OGRE olarak, motor tasarımını / geliştirmesini oluşturmak yerine uygulamanıza / oyununuza odaklanabilirsiniz.
drxzcl

1
Önce 3D yerine 2D'yi seçerdim.
Komünist Ördek

1
Çoğu 2D sadece "Y ile 3D" değil ve kendi deyimleri ve go-to teknikleri vardır, ben 2D bir yan parça almak zaten "iyi c / c ++" olan biri için iyi olurdu emin değilim.
Patrick Hughes

Bu soru neden yapıcı değil?
Songbreaker

Yanıtlar:


13

Ogre gerçekten de OpenGL için bir sargıdır, ancak böyle bir sargı fikri, OpenGL'nin karmaşıklıklarıyla kendinizi endişelendirmenize gerek olmamasıdır. Tabii ki OpenGL hakkında biraz bilgi sahibi olmanıza yardımcı olacak, ancak Ogre sizin için çirkin ayrıntıların çoğunu gizleyecektir.

Ogre'nin OpenGL'nin aksine öğrenmesinin daha kolay olduğunu söyleyebilirim, ya da en azından ilginç sonuçları daha hızlı alacaktır. Tabii ki bu tamamen OpenGL öğrenmeye değer olup olmadığını değerlendirmek için ne yapmak istediğinize bağlıdır.

OpenGL öğreticileri hakkında, evet çoğu oldukça eski, ancak spec gerçekten hızlı ilerlemiyor, bu nedenle bu eski öğreticilerin çoğu hala OpenGL'nin çoğu için geçerli.

Favorilerimden birkaçı:


28
LÜTFEN LÜTFEN LÜTFEN insanları NeHe'ye göndermeyi durdurun. Öğreticiler iyi, ama inanılmaz derecede modası geçmiş. OpenGL 1.x günleri çoktan gitti, yeni nesil grafik programcılarını kapıdan sakatlamaya çalışalım!
drxzcl

5
Bkz. "Modern OpenGL'ye
drxzcl

1
@Ranieri Kesinlikle, kesinlikle katılıyorum. Site yıllar ve yıllar boyunca aynı kaldı ve şimdi OpenGL son birkaç yılda oldukça değişti, gerçekten cesaretini kırması gerekiyor. @Songbreaker lütfen bunu not edin ve NeHe'nin öğreticilerinden kaçınmayı veya en azından bir tane tuzla almayı düşünün. Sabit boru hattı çoktan gitti.
Ricket

1
@ Ranieri, @ Ricket Kesinlikle, kesinlikle katılmıyorum. Grafik programlamaya tamamen aşina olmayan ve boş zamanlarında SDK'yı talimatsız bir şekilde alan yeni başlayanlar için OpenGL 4.x'in öğrenme eğrisini düşünün. OpenGL 4.x belgeleri nasıl? Daha fazla ayrıntı için yayına bakın.
Andrew Rasmussen

4
@Songbreaker: Deniyorum . İyi olup olmadıklarına karar vermek için size bırakacağım.
Nicol Bolas

17

OpenGL! Evet, şimdiye kadar bu kuruldaki herkese açıkça katılmıyorum.

OGRE bir karmaşa. Öğrenme eğrisi diktir. Evet, bazı güzel öğreticiler var, ama öğreticiler sınırları dışında adım ve kendi şeyleri yapmak ÇOK zor. OGRE'yi kurup çalışmaya başlamadan önce üç hafta geçirdim, öğreticilerle çalışın ve daha sonra ne yapacağınızı anlayın. OGRE hakkında OpenGL'den çok daha iyi ya da daha basit hiçbir şey yoktur. İddia ettiğiniz gibi iyi bir C programcısıysanız ve işaretçilerinizi / dizilerinizi / işlevlerinizi anlıyorsanız, OpenGL daha kolay olmasa da kolay olacaktır.

Bu yüzden OpenGL ile başlamanızı şiddetle tavsiye ediyorum. OpenGL sizi grafiklerin tüm temellerini öğrenmeye zorlayacaktır. Aslında arka planda neler olup bittiğini anlamaya başlayacağınız için çok daha ilginç. Ve YES, NeHe'nin dersleriyle başlar. Evet onlar çok eski olan 1.x (bu sizin için Ranieri), ancak OpenGL 4.x'e atlamak bir öğrenme eğrisine çok dik.

Hemen 1.x (glBegin, glEnd) moduyla başlayın, sonra Vertex Arrays hakkında bilgi edinin. İsterseniz, sadece öğrenmek için ekran listeleriyle oynayın. Ardından köşe tamponu nesnelerine doğru hareket edin. Sonra gölgelendiriciler hakkında bilgi edinin. Bu geçişlerin her biri çok kolaydır ve çevrimiçi birçok harika öğretici vardır. VBO'lar 4.1'in çekirdeğindedir, bu yüzden orada yaptığınız zaman, artık modası geçmiş malzemeleri öğrenmiyorsunuz ve 1.x şeylerden başlayarak oraya ulaşmak çok daha kolay.

Ayrıca, eğer bir oyun geliştirme kariyeri istiyorsanız, hiç kimse sizi işe almayacaktır çünkü raf kütüphanesinden bazılarında küp dönüşü yapabilirsiniz. Sizi işe alacaklar çünkü neler olup bittiğini en düşük seviyede anlıyorsunuz ve bu değerli bilgiye dayanarak tasarım kararları verebiliyorsunuz.

Referanslar: Bulunduğunuz yerdeydim. Bir ayını OGRE'de, bir hafta Irrlicht'i denedim, bir hafta Horde3d'i denedim, iki gün DirectX ile oynadım ve bir ay OpenGL ile oynadım. OGRE ile bir ay sonra, öğreticilerin kapsamının ötesine geçemedim. OpenGL ile bir ay sonra minecraftian dünyasında koşan bir karakterim vardı ve 700+ kare ile kare başına 260.000 dokulu küp oluşturdu.


İfadelerinize katılmıyorum ve ayrıca ortaya koyduğunuz deneyimin bir anlamı olmadığını düşünmüyorum. Hem Ogre hem de OGL, grafik kartıyla nasıl konuşulacağına dair temel bilgiye sahip olmanızı gerektirir, bu da OGL veya DX'i bilmeniz gerektiği anlamına gelmez, ancak temel olarak ne yapabileceklerini bilmeniz gerekir. Bu noktada Ogre, yeni başlayanların doğru kurulum yapması aylar alacak ve bir ay içinde oluşturduğunuz bir örnekle göremeyeceğiniz bir katman ekler. OGL'yi bilmek her zaman iyidir, ancak deneyiminiz nedeniyle Ogre'yi reddetmek hiçbir şey ifade etmez.
Klaim

1
Hayır, OGRE, grafik kartıyla nasıl konuşacağınızı bilmenizi gerektirmiyor - işte asıl mesele bu. Ayrıca, OGRE sadece bir grafik API'sı etrafında bir sarıcı değil, aynı zamanda bir sahne yöneticisi, model yükleyici, vb.
Jarrett

5

Kısa cevap? OGRE.

Uzun cevap? OGRE, OpenGL üzerinde bir sargıdır, bu nedenle çok daha az iş yapmanız gerekir. GPU'ya veya bağlayıcı gölgelendiricilere veri gönderme veya köşeleri düşük bir seviyede sıralama konusunda çok endişelenmenize gerek yok. OGRE kullanmak üretim için OpenGL kullanmaktan çok daha hızlıdır ve kodunuz da (çok az) daha hızlı olacaktır.

Motor geliştirme ile ilgileniyorsanız, GL kullanın. Aksi takdirde OGRE kullanın. Ve muhtemelen OGRE ile başlıyorum.


3

Oyun geliştirme için bilgisayar grafik donanımını bilmek gerekli değildir. Bir oyun şirketinde grafik programcısı veya render dev ekibinin bir parçası olmak gerekir (Kişisel not: tüm oyun geliştirmede en iyi eğlence :)).

Render mühendisi olmak istemiyorsanız, oyun geliştirmek için tüm openGL veya DX'i öğrenmeniz gerekmez.


2

Ben de yeni başlayanlar için en iyi olmadığını iddia ediyorum, ama sonra "en iyi" tam olarak ne kazanmak istediğinizi bağlı göreceli bir terimdir. Örneğin, bir oyun şirketi için bir 3D grafik programcısı olarak bir iş elde etmek için kullanabileceğiniz becerileri kazanmak için 3D grafik programlamayı öğrenmek istiyorsanız, o zaman bu seçenekler mantıklıdır. Bu amaçla DirectX'e de bakabilirsiniz.

Ancak aklınızda başka bir hedefiniz varsa, diğer seçeneklere bakmanızı tavsiye ederim. Yeni başlayanlar için, sorunuzdan bir programcı olarak oyun geliştirmeye dahil olmak istediğinizi varsayarken, bunu gerçekten belirtmediniz. Hem OpenGL'de bir grafik motoru yazıyor hem de Ogre'nin üzerine inşa ediyoruz kesinlikle sert çekirdekli programcılar için.

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.