OpenGL Buch gesucht, am besten auf Deutsch. Englisch geht auch.
-
Nexus schrieb:
aber dort wird z.B. dauernd
glBegin()
undglEnd()
verwendet...Was ist daran verkehrt?
-
Kóyaánasqatsi schrieb:
Nexus schrieb:
aber dort wird z.B. dauernd
glBegin()
undglEnd()
verwendet...Was ist daran verkehrt?
Ist nach dem aktuellen Standard >3 nicht mehr erlaubt.
rya.
-
Scorcher24 schrieb:
Ist nach dem aktuellen Standard >3 nicht mehr erlaubt.
rya.Warum? Gibt es schon was neues?
-
Scorcher24 schrieb:
Schoeniaw(koq) schrieb:
hey
dachte ich mach mir keinen neuen thread auf.
Ich bin "gezwungen" aufgrund eines Projektes eine 3d API zu lernen und da für Anwendungsprogrammierung anscheinend openGL besser geeignet sein soll als DirectX,
bin ich gerade auf der Suche nach einem Buch bzw. Tutorial.
Allerdings scheinen mir sämtliche Tutorials und Bücher veraltet, allenfalls 2.1.Ist der Unterschied zwischen 2.1 und 3.0/3.1 zu vernachlässigen oder sind dass 2 Welten? Und ist openGL wirklich die bessere Wahl?
BTW: Es handelt sich bei dem Projekt um eine Art 3D-Modelierungsprogramm (eine Art winz-3dsmax in Vue7 Manier :D)Danke
Du kannst 2.1 weiterhin verwenden, die Treiber haben alle die entsprechenden Funktionen drin. Der größte Unterschied ist, dass es keinen intermediade mode mehr gibt, sprich glBegin() und glEnd() veraltet sind. Stattdessen verwendet man Arrays:
GLint matrixMode; glGetIntegerv(GL_MATRIX_MODE, &matrixMode); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glTranslatef(this->getPosX(), this->getPosY(), m_zorder); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(2, GL_FLOAT, 0, &m_texCoords[0]); glVertexPointer(3, GL_FLOAT, 0, &m_vertices[0]); glDrawArrays(GL_QUADS, 0, 4); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_VERTEX_ARRAY); glPopMatrix(); glMatrixMode(matrixMode);
So als Beispiel aus meinem Code.
Die besten Tutorials meiner Meinung nach sind die von nehe und das Delphi-Wiki für OpenGL. Ja Delphi. Die Calls sind die selben und Delphi können muss man nicht um aus dem Wiki nutzen zu ziehen, solange man an FUnktionsweise und nicht an Copy&Paste interessiert ist. Und das bisschen Delphi versteht man irgendwann auch :P.
http://wiki.delphigl.com
http://nehe.gamedev.net/
Bei Nehe gibts auch bereits neue Tutorials die sich mit dieser einscheidenden Änderung befassen und zum anfangen gibts imho nix besseres.
Bedenke auch, dass 2.1 oder 3.0 nicht auf allen Systemen verfügbar ist, man sollte also immer Fallback-Code schreiben oder es als Vorraussetzung angeben.
rya.
-
die neuen Nehe Lessons gehen aber noch nicht sehr weit...
wird das Tut noch erweitert?
oder muss ich doch besser ein Buch kaufen?Und wenn ja welches?
Ein Blick auf Amazon gibt fast nur 2.0 Bücher und selbst der Programming Guide soll veraltete Sachen lehren...
Empfehlungen?
-
Scorcher24 schrieb:
Öhm naja geschmackssache. Gehen wird es am Ende mit beiden, aber OpenGL ist Cross-Platform. Wenn du noch QT nimmst als Widget-Lib hast eine gute BAsis um das Programm auf allen Platformen laufen zu lassen.
rya.Naja da ich sowieso .NET und WinForms verwende, hat sich das ziemlich schnell erledigt
-
ravenheart schrieb:
die neuen Nehe Lessons gehen aber noch nicht sehr weit...
wird das Tut noch erweitert?
oder muss ich doch besser ein Buch kaufen?Und wenn ja welches?
Ein Blick auf Amazon gibt fast nur 2.0 Bücher und selbst der Programming Guide soll veraltete Sachen lehren...
Empfehlungen?
Kombinier einfach die alten mit den neuen Tutorials und nimm DelphiGL als Nachschlagewerk. Und du kannst Gefahrlos OpenGL in der Version 2.0 verwenden. Die 3.0 unterstützt momentan eh nur NVIDIA und das nur Treiberseitig. Ausserdem kannst Du mit Hilfe von glew noch festlegen, welche Version von OpenGL Dir zur Kompilierzeit zur Verfügung stehen soll.
http://glew.sf.net.Naja da ich sowieso .NET und WinForms verwende, hat sich das ziemlich schnell erledigt
Tja, dann nimm gleich DirectX, weil der Cross-Platform Vorteil fällt ja weg. Oder nutz wenigstens Mono.
Ich finde aber die Kombo OpenGL+QT immer noch am besten. Ja ich weiss ich bin Idealist :D.
rya.
-
Noch mal eine dumme Frage, aber:
Gibt es Unterschiede in der Grafischen Darstellung (mal abgesehen von eventuellen neuen Techniken) zwischen neuen und alten Versionen ?Naja also ehrlich gesagt ist mir Plattformunabhängigkeit nicht so wichtig. 90% benutzen laut Statistik sowieso Windows und da ich nicht glaube, dass man sich um meine Software reißen wird, ist dass doch eine ganz akzeptable Zielgruppe
-
Schoeniaw(koq) schrieb:
Noch mal eine dumme Frage, aber:
Gibt es Unterschiede in der Grafischen Darstellung (mal abgesehen von eventuellen neuen Techniken) zwischen neuen und alten Versionen ?Naja also ehrlich gesagt ist mir Plattformunabhängigkeit nicht so wichtig. 90% benutzen laut Statistik sowieso Windows und da ich nicht glaube, dass man sich um meine Software reißen wird, ist dass doch eine ganz akzeptable Zielgruppe
Das jetzt ne doofe Frage. Natürlich schaut das besser aus wenn Du Shader benutzt oder Multitexturing etc. Wenn wir aber mal von einem normal gefärbten Quad oder Poly ausgehen, das entweder im intermediate Mode oder über Array oder VBO gezeichnet wird, so gibt es keinen Unterschied in der Darstellung.
Zu der Statistik: Trau keiner Statistik die du nicht selber gefälscht hast. Und nur weil 90% angeblich Windows nutzen, so hat Linux im Heimbereich stark zugenommen. Und es gibt gerade bei den GrafikFans bzw Modelfans sehr viele die Mac nutzen! Und das sollte man schon in Betracht ziehen. Es ist nicht die Frage wieviel Leute insgesamt ein OS nutzen, sondern wieviel % von deiner ZIELGRUPPE nutzen ein bestimmtes OS? Ich denke da schauts schon anderes aus.
rya.
-
Ja klar, schon... Nur bin ich kein selbstständiger Programmierer noch bin ich drauf angewiesen
Ich bin 16 und mache dass mehr für mich selbst. Klar wäre es schön, Geld zu verdienen, doch ich bin da realistisch. Es wäre schon ein Erfolg etwas Geld zu verdienen, da reichen mir auch ein paar Windowsler
-
Ja klar, schon... Nur bin ich kein selbstständiger Programmierer noch bin ich drauf angewiesen
Ich bin 16 und mache dass mehr für mich selbst. Klar wäre es schön, Geld zu verdienen, doch ich bin da realistisch. Es wäre schon ein Erfolg etwas Geld zu verdienen, da reichen mir auch ein paar Windowsler
Und das mit der Darstellung: Mir ist natürlich klar, dass neueres besser aussieht
Ich meinte jetzt vorallem die Grunddarstellung. Techniken, die im Laufe der Zeit dazu gekommen sind, müssten ja dann rein optional sein.
Danke für deine Hilfe hat mir sehr geholfen.
-
Schoeniaw(koq) schrieb:
Und das mit der Darstellung: Mir ist natürlich klar, dass neueres besser aussieht
Ich meinte jetzt vorallem die Grunddarstellung. Techniken, die im Laufe der Zeit dazu gekommen sind, müssten ja dann rein optional sein.
Neueres sieht nicht unbedingt besser aus. Man muss es auch nutzen können. Es ist nicht so, dass da eine neue Version kommt und auf einmal sieht mein amateurhaftes Spiel/Programm aus wie von John Carmack selbst gemacht.
Man muss wissen, was man mit den neuen Möglichkeiten machen kann.Von daher kann man sagen: Wenn du diese Frage stellst, bist du noch nicht so weit, als das du alles rausholen kannst
Demnach würde ich mir über so Sachen gar keine Gedanken machen.
-
So um jetzt nochmal direkt zu fragen:
Wo soll ich meine Quellen zum Lernen hernehmen?
Da ich ohnehin grad anfang opengl zu lernen, möchte ich natürlich etwas so aktuell wie möglich lernen, sprich ohne glbegin und end.
Ich habe mich jetz mal in unsrer bib umgeschaut, das aktuellste buch zu opengl ist die opengl superbible 4th edition, aber diese verwendet auch ständig begin und end...
welches Buch ist gut und verwendet aktuelles opengl?
das neue nehe-tutorial ist anscheinend grqad am entstehen oder?Weitere Fragen wirds bald geben
-
Zu 3.x gibt es bisher noch kaum Material. Habe selbst noch kein Buch gefunden.
-
-
lade sie dir mit torrent runter gibt es genuck im internet wer sucht der findet;)
-
ritmi schrieb:
lade sie dir mit torrent runter gibt es genuck im internet wer sucht der findet;)
Idiot
-
Ich habe mich in letzter Zeit auch mit OpenGL beschäftigt, bis ich erfahren habe, dass alle Methoden, die ich bis dahin gelernt hatte, entweder den Status "deprecated" haben oder gar nicht mehr in der aktuellen Spezifikation auftauchen.
Macht es Sinn auf das von tempaccount001 erwähnte Buch zu warten, bevor ich mich weiter mit OpenGL beschäftige? Denn gute Tutorials oder Erklärungen zur neusten Version konnte ich im Netz bisher noch nicht finden.
MfG,
ScRaT
-
Ich lerne zurzeit OpenGL 3.2 so ziemlich von Grund auf und es gibt schon genügend Erklärungen im Internet. Man muss sie sich das nur etwas zusammensuchen weil nicht OpenGL 3.x dran steht. Abgesehen von der Initialisierung gab es so ziemlich alle Befehle schon vor OpenGL 3.x. Dementsprechend gibt es auch Tutorials dazu. Man muss sich dann nur den veralteten Teil rausfiltern.
Meine Hauptquellen waren:
http://sites.google.com/site/opengltutorialsbyaks/introduction-to-opengl-3-2---tutorial-01
http://nopper.tv/opengl_3_2.html
http://www.lighthouse3d.com/opengl/glsl/ (Die Shader selber sind nicht mehr unbedingt gültig)
Und natürlich Google, da man zu jedem OpenGL Befehl direkt die OpenGL Doku und die deutsche Übersetzung im Delphi GL Wiki bekommt.Ansonsten ist es bei OpenGL 3.2 ein viel längerer (und komplizierterer) Weg bis man das erste Bild auf dem Schirm bekommt, was für ein Tutorial/Buch denkbar ungeeignet ist. Daher könnte ich mir vorstellen das man noch länger "veraltete" Funktionen verwenden wird um die Grundlagen besser erklären zu können.
-
Die Tutorials hatte ich auch schon gefunden und fand sie etwas seltsam. Besonders bei diesem hat es mich etwas stutzig gemacht, dass der Autor eine eigene Klasse erstellt, in die er dann alle Funktionen packt, wenn er doch genauso gut normale Funktionen hätte verwenden können. Aber vielleicht habe ich den Sinn dahinter noch nicht so ganz begriffen.
Ansonsten ist es bei OpenGL 3.2 ein viel längerer (und komplizierterer) Weg bis man das erste Bild auf dem Schirm bekommt
Ja, das ist schade. glBegin() und glEnd() waren so schön einfach zu verstehen.
was für ein Tutorial/Buch denkbar ungeeignet ist.
Wäre das nicht genau ein Grund für ein Buch darüber?
Wie dem auch sei, dann werde ich mich auch mal an die Tutorials machen und hoffen, dass das o.g. OpenGL Buch sich mindestens mit Version 2.0 und aufwärts befasst.
MfG,
ScRaT