OpenGL vs OGRE: Welches ist das Beste für Anfänger? [geschlossen]

10

Ich interessiere mich für die Spieleentwicklung und besitze gute C / C ++ - Programmierkenntnisse. Ich habe OGRE schon einmal ausprobiert und bin gespannt, ob ich als Ausgangspunkt entweder OGRE oder OpenGL lernen soll.

Nach meinem Verständnis ist OGRE ein Wrapper für OpenGL und DirectX. Muss ich, vorausgesetzt ich lerne OGRE, noch OpenGL lernen, um ein Spiel zu entwickeln?

Kann mir jemand ein gutes Tutorial für OpenGL zeigen? Ich fand, dass OGRE gut dokumentiert ist (es kommt sogar mit der Distribution!), Aber für OpenGL sind die meisten Tutorials, über die ich gekommen bin, veraltet.

Songbreaker
quelle
Wenn Sie ein Neuling in der 3D-Grafikprogrammierung sind, würde ich versuchen, ein Gefühl dafür zu bekommen, wie die Low-Level-APIs zuerst funktionieren (OpenGL oder D3D, das spielt keine Rolle), und dann zu einer vorgefertigten Grafik-Engine wie z als OGRE, damit Sie sich auf Ihre Anwendung / Ihr Spiel konzentrieren können, anstatt das Design / die Entwicklung der Engine zu rendern.
drxzcl
1
Ich würde mich zuerst für 2D und nicht für 3D entscheiden.
Die kommunistische Ente
1
Das meiste 2D ist nicht nur "3D ohne Y" und hat seine eigenen Redewendungen und Go-to-Techniken. Ich bin mir nicht sicher, ob es für jemanden mit "gutem C / C ++" schon gut wäre, eine Nebenstrecke in 2D zu nehmen.
Patrick Hughes
Warum ist diese Frage nicht konstruktiv?
Songbreaker

Antworten:

13

Ogre ist in der Tat ein Wrapper für OpenGL, aber die Idee eines solchen Wrappers ist, dass Sie sich nicht mit den Feinheiten von OpenGL befassen müssen. Es wird natürlich helfen, ein bisschen über OpenGL zu wissen, aber Ogre wird viele der hässlichen Details für Sie verbergen.

Ich würde sagen, dass Ogre im Gegensatz zu OpenGL wohl leichter zu erlernen ist, oder zumindest schneller interessante Ergebnisse liefert. Natürlich hängt es ganz davon ab, was Sie mit Asses machen möchten, wenn es sich lohnt, OpenGL zu lernen.

Über OpenGL-Tutorials, ja, die meisten von ihnen sind ziemlich veraltet, aber die Spezifikation hat sich nicht wirklich schnell weiterentwickelt, so dass viele dieser alten Tutorials immer noch für die meisten OpenGL-Tutorials gelten.

Einige meiner Favoriten:

Roy T.
quelle
28
BITTE BITTE BITTE hör auf, Leute zu NeHe zu schicken. Die Tutorials sind gut, aber unglaublich veraltet. Die Zeiten von OpenGL 1.x sind lange vorbei. Versuchen wir, die nächste Generation von Grafikprogrammierern nicht von Anfang an zu lähmen!
drxzcl
5
Siehe "Eine Einführung
drxzcl
1
@ Ranieri Ich stimme absolut sehr zu. Die Website ist seit Jahren dieselbe geblieben, und jetzt, da sich OpenGL in den letzten Jahren drastisch verändert hat, muss wirklich davon abgeraten werden. @Songbreaker notieren Sie sich dies bitte und vermeiden Sie NeHes Tutorials oder nehmen Sie sie zumindest mit einem Körnchen Salz. Die feste Pipeline ist schon lange weg.
Ricket
1
@ Ranieri, @ Ricket Ich bin absolut nicht einverstanden. Betrachten Sie die Lernkurve für OpenGL 4.x für Anfänger, die mit der Grafikprogrammierung völlig nicht vertraut sind und das SDK in ihrer Freizeit ohne Anleitung nebenbei lernen. Wie ist die Dokumentation für OpenGL 4.x? Siehe meinen Beitrag für weitere Details.
Andrew Rasmussen
4
@ Songbreaker: Ich versuche es. Ich überlasse es Ihnen zu entscheiden, ob sie gut sind oder nicht.
Nicol Bolas
17

OpenGL! Ja, ich bin bisher offen mit allen in diesem Forum nicht einverstanden.

OGRE ist ein Chaos. Die Lernkurve ist steil. Ja, sie haben einige nette Tutorials, aber es ist SEHR schwierig, über die Grenzen der Tutorials hinauszugehen und sein eigenes Ding zu machen. Ich würde voraussichtlich drei Wochen damit verbringen, OGRE einzurichten und zu arbeiten, die Tutorials durchzuarbeiten und herauszufinden, was als nächstes zu tun ist. Es gibt nichts an OGRE, das viel besser oder einfacher ist als OpenGL. Wenn Sie ein guter C-Programmierer sind, wie Sie behauptet haben, und Ihre Zeiger / Arrays / Funktionen verstehen, ist OpenGL genauso einfach, wenn nicht sogar einfacher.

Aus diesem Grund empfehle ich dringend, mit OpenGL zu beginnen. OpenGL zwingt Sie dazu, alle Grundlagen der Grafik zu erlernen. Es ist viel interessanter, da Sie tatsächlich erkennen werden, was zum Teufel im Hintergrund vor sich geht. Und JA, beginnen Sie mit den Tutorials von NeHe. Ja, sie sind 1.x, was sehr veraltet ist (das ist für dich, Ranieri), aber in OpenGL 4.x zu springen ist eine zu steile Lernkurve.

Beginnen Sie mit dem Sofortmodus in 1.x (glBegin, glEnd) und lernen Sie dann Vertex Arrays kennen. Wenn Sie möchten, spielen Sie mit Anzeigelisten, um zu lernen. Bewegen Sie sich dann in Richtung Scheitelpunktpufferobjekte. Dann lernen Sie etwas über Shader. Jeder dieser Übergänge ist sehr einfach und es gibt viele großartige Online-Tutorials. VBOs sind im Kern von 4.1 enthalten. Wenn Sie es also dort schaffen, lernen Sie kein veraltetes Material mehr und es ist viel einfacher, dorthin zu gelangen, wenn Sie mit dem 1.x-Material beginnen.

Wenn Sie jemals eine Karriere als Spieleentwickler anstreben, wird Sie niemand einstellen, da Sie in einigen Standardbibliotheken einen Würfel drehen können. Sie werden Sie einstellen, weil Sie verstehen, was auf der niedrigstmöglichen Ebene vor sich geht, und Sie auf der Grundlage dieses wertvollen Wissens Entwurfsentscheidungen treffen können.

Referenzen: Ich war wo du warst. Ich habe einen Monat mit OGRE verbracht, eine Woche mit Irrlicht, eine Woche mit Horde3d, zwei Tage mit DirectX und einen Monat mit OpenGL. Nach einem Monat bei OGRE konnte ich den Rahmen der Tutorials kaum überschreiten. Nach einem Monat mit OpenGL hatte ich einen Charakter, der durch eine Minecraft-Welt lief und 260.000 strukturierte Würfel pro Frame mit mehr als 700 Framerate renderte.

Andrew Rasmussen
quelle
Ich stimme Ihren Aussagen nicht zu und denke auch nicht, dass die Erfahrung, die Sie machen, irgendeine Bedeutung hat. Sowohl Ogre als auch OGL setzen voraus, dass Sie über Grundkenntnisse im Umgang mit der Grafikkarte verfügen. Dies bedeutet nicht, dass Sie OGL oder DX kennen müssen, sondern dass Sie im Grunde wissen müssen, was sie können. Zu diesem Zeitpunkt fügt Ogre eine Ebene hinzu, deren korrekte Einrichtung ein Anfänger Monate benötigt und die Sie anhand eines Beispiels, das Sie in einem Monat eingerichtet haben, nicht sehen können. Es ist immer gut, OGL zu kennen, aber Ogre aufgrund Ihrer Erfahrung zu entlassen, bedeutet nichts.
Klaim
1
Nein, OGRE erfordert nicht wirklich, dass Sie wissen, wie man mit der Grafikkarte spricht - darum geht es. Außerdem ist OGRE nicht nur ein Wrapper um eine Grafik-API, sondern auch ein Szenenmanager, Model Loader usw.
Jarrett
5

Kurze Antwort? OGER.

Längere Antwort? OGRE ist ein Wrapper über OpenGL, daher müssen Sie viel weniger arbeiten. Sie müssen sich nicht so sehr darum kümmern, Daten an die GPU zu senden, Shader zu binden oder Scheitelpunkte auf niedriger Ebene zu sortieren. Es ist viel schneller, OGRE zu verwenden, als OpenGL für die Produktion zu verwenden, und es besteht die Möglichkeit, dass Ihr Code auch (sehr geringfügig) schneller ist.

Wenn Sie an der Motorenentwicklung interessiert sind, verwenden Sie GL. Andernfalls verwenden Sie OGRE. Und ich würde wahrscheinlich sowieso mit OGRE anfangen.

Die kommunistische Ente
quelle
3

Die Kenntnis der Computergrafikhardware ist für die Spieleentwicklung nicht erforderlich. Es wird benötigt, um Grafikprogrammierer oder Teil des Render-Entwicklerteams in einer Spielefirma zu werden (persönlicher Hinweis: Das ist der beste Spaß bei der Entwicklung des gesamten Spiels :)).

Wenn Sie kein Render-Ingenieur werden möchten, müssen Sie wahrscheinlich nicht ganz openGL oder DX lernen, um Spiele zu entwickeln.

Notabene
quelle
2

Ich würde behaupten, dass beides für einen Anfänger nicht das Beste ist, aber "am besten" ist ein relativer Begriff, der davon abhängt, was genau Sie gewinnen möchten. Wenn Sie beispielsweise 3D-Grafikprogrammierung lernen möchten, um Fähigkeiten zu erwerben, mit denen Sie einen Job als 3D-Grafikprogrammierer für ein Spieleunternehmen bekommen können, sind diese Entscheidungen sinnvoll. Mit diesem Ziel können Sie sich auch DirectX ansehen.

Wenn Sie jedoch ein anderes Ziel vor Augen haben, würde ich empfehlen, andere Optionen in Betracht zu ziehen. Für den Anfang, während man von Ihrer Frage annehmen würde, dass Sie als Programmierer an der Spieleentwicklung beteiligt sein möchten, haben Sie dies nicht wirklich angegeben. Sowohl das Schreiben einer Grafik-Engine in OpenGL als auch das Aufbauen auf Ogre sind definitiv für Hardcore-Programmierer.

jhocking
quelle