Ich bin sicher, es gibt bereits eine Reihe solcher Fragen, aber die ständige Aktualisierung der OpenGL-Bibliothek wirft sie alle weg, und in ein oder zwei Monaten werden die Antworten hier wieder wertlos sein.
Ich bin bereit, mit der Programmierung in OpenGL unter Verwendung von C ++ zu beginnen. Ich habe einen funktionierenden Compiler (DevCpp; bitte mich NICHT, zu VC ++ zu wechseln, und frage mich nicht warum). Jetzt bin ich nur auf der Suche nach einem soliden Tutorial zum Programmieren mit OpenGL. Mein Assistent hat das von NeHe Productions bereitgestellte Tutorial gefunden, aber wie ich herausgefunden habe, ist es VERLAUF! (obwohl ich ein einfaches Fenster zusammengezogen habe, um eine OpenGL-Zeichenfläche zu unterstützen)
Dann bin ich online gegangen und habe die OpenGL SuperBible gefunden, die anscheinend Freeglut verwendet? Ich würde aber gerne wissen, ob SuperBible 5th Edition nicht mehr aktuell ist. Der Vorschlag zu freeglut, den ich fand, sagte, dass die neueste Version 2.6.0 war, aber jetzt ist es 2.8.0!
- Ist die OpenGL SuperBible immer noch ein guter und ziemlich aktueller Startpunkt?
- Gibt es einen besseren Ort, um OpenGL zu lernen?
- Darf ich freeglut einfach im DevCpp-Include-Verzeichnis (möglicherweise im GL) speichern, oder gibt es eine wichtige Prozedur?
- Gibt es Kommentare oder Vorschläge, die ich nicht gefragt habe, da ich gerade erst anfange?
@dreta hat einige Dinge für mich geklärt, daher habe ich jetzt eine bessere Vorstellung davon, was ich fragen soll:
Ich denke, ich möchte mit OpenGL beginnen, indem ich eine Wrapper-Bibliothek verwende, anstatt direkt auf OpenGL zuzugreifen.
Ich denke nur, dass es für einen Anfänger einfacher wäre, gute Ergebnisse zu programmieren und zu erzielen, obwohl ich noch nicht alle schmutzigen Details verstehen muss (wie @stephelton erwähnt).
Das Problem ist, ich kann keine Bibliothek finden, die keine undefinierten Verweise auf nicht mehr unterstützte Funktionen enthält. Freeglut klingt betriebsbereit, verwendet aber immer noch GLU.
Weiß jemand, was ich tun kann?
Außerdem habe ich versucht, die erste SuperBible-Quelle zu kompilieren, aber es sind Fehler aufgetreten, da GLAPI nicht als Typ definiert wird. Der Fehler stammt aus der GLU-Bibliothek.
Ich würde gerne die SuperBible verwenden, aber ich weiß nicht, wie ich das beheben soll.
Antworten:
Unser Resident Nicol Bolas unterhält ein Online-Buch über moderne Grafikprogramme . Es verwendet modernes OpenGL, alles wird in einem einfach zu konsumierenden Tempo eingeführt, es ist ein guter Anfang. Ich habe es benutzt, um modernes OpenGL zu lernen und es hat mir in den letzten 2 Monaten Wunder gebracht.
Daneben gibt es hier und da ein bisschen Wissen. Das OpenGL-Wiki ist recht gut gepflegt. Der Code ist kein "Best Practice" und manchmal gibt es Unklarheiten in Bezug auf die OpenGL-Version, aber außerhalb dieser seltenen Fälle ist er eine großartige Ressource.
Wenn Sie mehr über GLSL erfahren möchten, gibt es das GLSL Core Tutorial von lighthouse3D. Obwohl dies das einzige Kernwissen ist, dem ich auf der Website "vertrauen" würde, ist der Rest in der Regel veraltet.
Sobald Sie verstehen, wie modernes OpenGL funktioniert, können Sie problemlos nach bestimmten Informationen suchen, veralteten Code herausfiltern und vor allem die Spezifikation lesen. Sie müssen nur irgendwo anfangen.
Die meisten, wenn nicht sogar alle verfügbaren OpenGL-Bücher sind veraltet. Die neue SuperBible ist eine Art Freak und ich würde sie niemandem empfehlen. Das OpenGL-Programmierhandbuch für OpenGL 4.1 erscheint am 16. September. Leider verwendet die 7. Ausgabe veralteten Code.
Natürlich können Sie hier jederzeit Fragen stellen.
quelle
Es ist schon eine Weile her, dass diese Frage gestellt wurde, aber ich hoffe, dass dies Menschen hilft, die die gleiche Frage haben wie Sie.
Ich habe mit OpenGL angefangen, indem ich ein Minibook gelesen habe
arcsynthesis.org
. Ich bin mir nicht sicher, wer es geschrieben hat. Es sieht so aus, als ob die Registrierung der Website abgelaufen ist oder so, aber Sie sollten sie hier finden können: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ . Es verwendet OpenGL 3.3, sodass Sie die moderne Pipeline und alle damit verbundenen Methoden verwenden, jedoch nicht mit Tesselations- oder Compute-Shadern konfrontiert werden.Eine andere Seite, die einen Blick wert ist, ist https://open.gl/ . Es scheint SEHR anfängerorientiert zu sein und deckt die Dinge nicht annähernd so gründlich ab wie das obige Material, aber es könnte ein guter Ausgangspunkt für Leute sein, die gerade erst anfangen.
Denken Sie daran, das OpenGL-Wiki zu lesen und Ihre Funktionsnamen zu googeln, wenn Sie Hilfe benötigen. Einige der Seiten im Wiki sind völlig nutzlos, andere sind sehr hilfreich, sowohl als Referenz als auch als Lernmaterial.
quelle
Diese alten Tutorials sind für Anfänger immer noch sehr relevant. In der Tat würde ich vorschlagen, dort anzufangen, anstatt mit neueren Versionen von OpenGL. In neueren Versionen wurden einige der einfacheren Methoden zum Zeichnen von Geometrie (nämlich das Zeichnen im Sofortmodus) verworfen.
In neueren Versionen müssen Sie Arrays von Scheitelpunkten vorbereiten und senden und der Grafikkarte mitteilen, wie Ihre Scheitelpunkte in dem von Ihnen bereitgestellten Array angeordnet sind. Diese Dinge sind umständlich zu debuggen.
Bei einigen Versionen (insbesondere OpenGL ES 2.x) müssen Sie Ihre eigenen Beleuchtungsgleichungen (in Form von Fragment-Shadern) bereitstellen und Ihre eigenen Scheitelpunktdaten so transformieren, dass sie auf dem Bildschirm landen, auf dem Sie sie haben möchten (Scheitelpunkt-Shader). Dies ist noch schwieriger zu debuggen und (meiner Meinung nach) kein Ort für Anfänger.
Daher würde ich vorschlagen, dass Sie zu diesen NeHe-Tutorials (usw.) zurückkehren und dort beginnen. Sie mögen "veraltet" sein, aber sie funktionieren immer noch. Wenn Sie verstehen, was in der Rendering-Pipeline in OpenGL wirklich passiert, und ein Gefühl für einige der mathematischen Konzepte bekommen, mit denen diese Dinge funktionieren, können Sie sich mit einigen der aktuelleren Methoden von befassen Rendern in OpenGL.
quelle
Wie andere gesagt haben, sind die meisten Bücher entweder veraltet oder zu weit fortgeschritten. Trotzdem würde ich die 5. Ausgabe der SuperBible empfehlen, aber nur, um einen schnellen Überblick darüber zu bekommen, was in OpenGL möglich ist, und um sich mit Dingen wie der Ansicht / Projektion usw. vertraut zu machen.
Wenn Sie sofort in das moderne OpenGL eintauchen, werden Sie möglicherweise zuerst überfordert. In den jetzt veralteten Versionen sollten Sie einige grundlegende Dinge lernen.
Ich möchte auch eine Seite mit guten Tutorials hinzufügen, die ich kürzlich gefunden habe: http://ogldev.atspace.co.uk/
quelle
arcsynthesis.org (die in der akzeptierten Antwort erwähnte Seite) scheint leider ausgefallen zu sein. (BEARBEITEN: es ist unter diesem Link verfügbar !).
Anton Gerdelans Tutorials für OpenGL 4 sind ab Mitte 2014 sehr gut lesbar und aktuell. Die ersten sind kostenlos, der Rest ist bei Amazon erhältlich, wo es großartige Reviews gibt, und das zu einem kleinen Preis. Bisher habe ich mich gefreut.
Weitere kostenlose Tutorials für OpenGL 3.3+ finden Sie unter http://www.opengl-tutorial.org/ . Sie stammen aus dem Jahr 2012, können aber auch als Ergänzung für andere Quellen dienen.
quelle