In Tutorial SDL2 Einstieg würde ich dann alles stecken, was bisher in den Abschnitten "Initialisieren von SDL2", "Erstellen eines Fensters mit SDL2", "Erstellen eines OpenGL-Kontext mit SDL2" und "Die Ereignisverarbeitung mit SDL2" stand. Und am Ende natürlich noch das SDL_Quit. Somit wäre dann wohl auch die Frage geklärt, wo das schon existierende Tutorial SDL Einstieg einsortiert werden soll - nämlich unter deprecated, weil das "Mini-Tutorial" SDL2 Einstieg ja inhaltlich praktisch gleich wäre, nur aktueller. Oder?
Eigentlich finde ich es gar nicht schlecht, OpenGL von SDL zu trennen. Das ist einerseits gut für die, die etwas anderes als SDL verwenden wollen und außerdem löst es das Problem mit den Themen-Hopping im ersten Tutorial.
Edit: glm sieht sehr schick aus... Danke für den Tipp!
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Die Gliederung macht aus meiner Sicht Sinn. So kann das was werden. Wichtig ist, dass man irgendwo in einem der Tutorial ein Kapitel hat mit einem komplettes lauffähiges Template. (So der letzte Abschnitt eines der SDL Tutorials, als Zusammenfassung) und man dann darauf einfach verlinken kann.
Dann können Interessenten das Template einfach nehmen und damit die Tutorials weiter machen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
@i0n0s: Ich habe mich halt etwas "übergangen" gefühlt als ich eure C++-Port-Posts gelesen habe und dachte hinterher nur, das wenn die C++-Leute (bis auf glAwesome, von dem auch Feedback kam) sich den Pascal-Code nicht anschauen, bräuchte ich eigentlich auch nicht die Diskussion zu irgendwelchen Portierungen lesen. Das wäre dann aber eine nette Überraschung für mich geworden. Änderungen sehe ich auch nicht als grundsätzlich negativ an, für mich war nur der Pascal-Code schon final. Nach mehreren Wochen noch solch grundsätzliche Änderungen hätte ich nicht erwartet. Nun hat sich das ja aber geklärt.
Zur Erstellung der Klassen: Mir wäre es dann lieber das die C++-Abteilung das Template mit Klassencode nach ihren Vorstellungen erstellt und ich den dann nach Pascal portiere.
Bilder/Screenshot: Screenshot ist nicht das Problem, Bilder schon eher. Mir würde da nur einfallen: -Eins für das Koordinatensystem, wie in dem Absatz "Und die Welt ist doch keine Scheibe..." hier. -Ein Bild mit den Vertexdaten, wie die im VBO liegen. Hier hatte ich erstmal vor das in Tabellenform im Wiki zu bringen und anzuschauen. Außerdem kann ich mit Gimp & Paint nicht viel mehr als Strichmännchen zu zeichnen, von daher sind Bilder eher mit einem nicht vertretbaren Zeitaufwand für mich verbunden.
Folgetutorials: Ich hätte schon prinzipiell Lust auch das nächste Tut zu schreiben, allerdings bin ich als Anfänger nicht in der Lage zu beurteilen welche MatrizenLib man unter Pascal benutzen sollte. Und erstmal möchte ich diese Baustelle hier zu Ende bringen.
_________________ Die Benutzung von Web 2.0+ mithilfe eines Brain 1.0 wird wegen unzureichender Security-Updates NICHT empfohlen. Bitte upgraden Sie auf Brain 2.0, jetzt für Sie exklusiv noch lieferbar!
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Die Baustelle hier wird noch weiter bestehen bleiben Wegen der Matrizenbibliothek sollte es eigentlich so sein, dass sie vom Syntax recht ähnlich sind und somit leicht ersetzbar. Von daher such dir die aus, welche dir am besten gefällt und nimm sie erstmal.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hallo Leute,
gestern haben wir uns (i0n0s, TAK2004, Phobeus, Flash) mal zusammen gesetzt und über die neuen Tutorials gesprochen und das neue gereviewed.
Zuerst haben wir uns dem Anfang des Tuts gewittmet und dabei die SDL Teile mal angeschaut. Wir sollten tatsächlich den SDL Teil aus dem Tutorial raus ziehen. glAwesome's Vorschlag mit den 2 SDL Tutorials schließen wir uns an. Das SDL-Einstiegs Tutorial sollte mit dem altem mergen. D.h. kurze Erklärung was SDL macht und wieso man es verwendet noch rein, ansonsten ist das schon gut so. Ziel des SDL-Tutorial 1: Historie, Runterladen, SDL in der IDE
danach dann ein SDL-Tutorial2 -- Ziel: SDL Fenster aufmachen, Ereignishandling, SDL_GetError Handling
Danach soll dann die neue Tutorial Reihe starten und zwar mit dem hier vorgestellten Tutorial.
Hier nun die Anmerkungen zum Eigentliches Tutorial
Kontexterstellung - Wir sollten direkt das Tutorial mit OpenGL4.0 Kontext ausstatten (statt 3.3) auch wenn das am Anfang keinen Unterschied macht. (Man erkennt dann aber Minor und Major Version besser)
Initialisierung von OpenGL - Im Code bitte bei Funktionsnamen immer die Klammern dahinter machen, damit man sieht, dass es eine Funktion ist (hier z.B. InitOpenGL(), ReadXxxxx ) - SetViewport_OpenGL(): Das Codebeispiel sollte die Signatur der Funktion mit beinhalten damit man sieht was parameter sind. - Variablennamen bitte überall ausschreiben, auch wenn man es beim Coden nicht macht. Aber für das Tutorial hilft es wenn "w" "width" heißt.
darzustellende Szene aufbauen - Padawan/Yoda passage inkl. Link auf Tutorial2 rauswerfen. Das machen wir später. -- Neu formuliert und umgestellt: Nun werden wir uns darum kümmern diese Daten an die GPU, bzw. den Grafikkartenspeicher zu übergeben. Dazu benutzen wir ein VAO (Vertex Array Objekt) und zwei VBO's (Vertex Buffer Objekt). Im ersten VBO sind die Positionsdaten (Vertexpunkte) enthalten, das zweite enthält die Farbwerte. Alternativ könnte man genauso gut Positions- und Farbwerte in einem VBO speichern, aber so könnt ihr gleich sehen, wie man ein VAO dazu benutzt um mehrere VBO's zusammen zu fassen. Das hat den Vorteil, das wir später praktisch bloß sagen, dass das VAO "gezeichnet" werden soll, anstatt alle VBO's einzeln zu rendern. Der große Vorteil gegenüber "altem" OpenGL ist nun, das wir die Daten nur EINMAL per VBO an die GPU schicken brauchen, im Gegensatz zur alten Methode, wo die Daten per glVertex3f bei jedem Rendervorgang neu von der CPU an die GPU geschickt werden. Nicht grade sehr performant
- cVAO und cVBO sollten inkl. Datentypangabe definiert werden.
Die Bilder zu dem Offset sind ne gute Idee, jedoch fänden wir es besser den Abschnitt mit den Offsets im Detail und auch mit komplizierteren Beispielen in einem extra Minitutorial abzuhandeln. (Eventuell existiert das schon. Jedoch wären die Bilder dort wirklich hilfreich)
Ereignisbehandlung von SDL2 - Nicht in hier behandeln sondern im SDL-Tutorial2
Alles in Allem ein gut gelungenes Einstiegstutorial. Auch die Shader sind gut behandelt worden (für den Einstieg).
Wir haben hier im Team nochmal sinniert wie wir die Tutorials aufbauen wollen und sind zu dieser Idee gekommen:
SDL-Tutorial (Download und IDE Einbindung und Hintergrund zu SDL)
SDL-Tutorial2 (SDL Fenster aufmachen, Ereignishandling, SDL_GetError Handling) danach dieses Tutorial von dir mit den Anmerkungen. Das Tutorial soll als Übersicht dienen. Die nachfolgenden Tutorials sollen dann die einzelnen Bereiche weiter vertiefen.:
Lektion 2: rotierender Würfel (d.h. wie baue ich eine sich bewegende Szene)
Lektion 3: Texturen (ganz simpel halten. Keine Filter, Clamp und Texturwechsel)
Lektion 4: Statemachine an Beispielen aus dem Bereich Texturen, Transparenz/Blending
Lektion 5: Shader (wie bei Saschas Tutorials)
alle Tutorials die danach kommen sind Fortschgeschrittenen (2Sterne und mehr; Licht (und Schatten) sind z.B. zu komplex um die am Anfang rein zu bringen.)
Für die weiteren Tutorials machen wir neue Threads auf.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Also ich finde die meisten Einteilung und Organisation sehr gut.
Allerdings an zwei Stellen stimme ich nicht ganz über ein:
Variablen, besonders kurze wie "w", da sehe ich keinen Sinn das Abzukürzen das verwirrt nur und entspricht nicht unbedingt Clean Code.
Wollt ihr wirklich bei OpenGL 4.0 anfangen? Es gibt eine beträchtliche Anzahl Grafikkarten die gerade 4.0 nicht mehr unterstützen. Und die Vorteile für Neueinsteiger von 4.0 gegenüber 3.3 sehe ich wirklich bei 0.0 . Die beiden Versionen sind absolut aufwärts kompatibel. Und bei den erfahrenen weit Fortgeschrittenen, die wirklich Techniken wie Tesselation nutzen wollen, kann man doch erwarten, das sie 3.3 auf 4.0 umstellen können, bzw. noch besser die ARB Erweiterungen testen können als auch Major- und Minor-Version unterscheiden können. Diese Voraussetzen müssen die Anfänger büßen, die einfach bloß auf den Beispielcode aufbauen wollen. Ich schätze, das das zur Zeit bei knapp ein Drittel der potentiellen Interessierten zu Problemen führen wird, die wirklich vollkommen unnötig sind.
Ich denke, das ist so gemeint, dass die Initialisierung von SDL wenig mit OpenGL zu tun hat und deshalb in ein anderes Tutorial kommt und möglichst aus den Kern-OpenGL-Tutorials herausgehalten wird. SDL ist ja nicht die einzige wahre Möglichkeit. Es gibt auch noch GLFW, GFLW3, SFML, ... OpenGL kann man mit all den Möglichkeiten verwenden und hat mit der Initialisierung von irgendwelchen Libs davor nicht so viel zu tun, bzw. macht es keinen Unterschied. Der vollständige Beispielcode wird schon immer SDL nutzen.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
OpenglerF hat geschrieben:
Also ich finde die meisten Einteilung und Organisation sehr gut.
Allerdings an zwei Stellen stimme ich nicht ganz über ein:
Variablen, besonders kurze wie "w", da sehe ich keinen Sinn das Abzukürzen das verwirrt nur und entspricht nicht unbedingt Clean Code.
Wollt ihr wirklich bei OpenGL 4.0 anfangen? Es gibt eine beträchtliche Anzahl Grafikkarten die gerade 4.0 nicht mehr unterstützen. Und die Vorteile für Neueinsteiger von 4.0 gegenüber 3.3 sehe ich wirklich bei 0.0 . Die beiden Versionen sind absolut aufwärts kompatibel. Und bei den erfahrenen weit Fortgeschrittenen, die wirklich Techniken wie Tesselation nutzen wollen, kann man doch erwarten, das sie 3.3 auf 4.0 umstellen können, bzw. noch besser die ARB Erweiterungen testen können als auch Major- und Minor-Version unterscheiden können. Diese Voraussetzen müssen die Anfänger büßen, die einfach bloß auf den Beispielcode aufbauen wollen. Ich schätze, das das zur Zeit bei knapp ein Drittel der potentiellen Interessierten zu Problemen führen wird, die wirklich vollkommen unnötig sind.
Mit den Variablen hast du vekehrt herrum gelesen, wir wollen das alle dinge ausgeschrieben werden, damit keine verwirrung entsteht, also clean code.
Wir wollen gleich auf 4 gehen , weil wir zum ersten schon auf 5 zu gehen und eh das fertig wäre wir 1-2 Major Versionen hinter her hängen würden. 2. Unterscheiden sich opengl 3 und 4 nur durch erweiterungen aber keine änderungen oder weg fallen von Funktionalität und so können wir uns die Basis Tutorials für 3,4 und sehr wahrscheinoich auch 5 in einen abwasch erarbeiten und durch die kommenden einzelnen Tutorials kompatibilität schaffen.
mathias hat geschrieben:
Zitat:
Wir sollten tatsächlich den SDL Teil aus dem Tutorial raus ziehen.
Wird jetzt das Tutorial ohne SDL gemacht ?
Das wurde falsch verstanden, wir wollen die SDL Geschichte in 2 seperate Tutorials haben und in den weiteren Tutorials auch nicht mehr weiter darauf ein gehen. Wie schon gesagt gibt es andere Frameworks und Sprachen und so können wir es recht unabhängig halten.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nochmal wieso wir direkt auf GL4.0 gehen wollen: Für den Einstieg macht es keinen Unterschied. Erst wenn es um die spezielleren Geschichten geht, spielen die Versionen eine Rolle. Deshalb können wir auch gleich auf 4.0 gehen. Im Tutorial darf gern erwähnt werden, dass die Methode zur Kontexterstellung seit Version X.x so funktioniert. Wie man die höchstmögliche GL Version herausfindet sollten wir noch mit verlinken.
Das mit dem SDL ist wie TAK schrieb und ich halt versuchte rüberzubringen: Wir machen die SDL Sachen vorher und sorgen so dafür, dass man dann in den Einsteigertutorials von SDL nicht mehr als nötig mitbekommt. Wir wollen uns auf OpenGL konzentrieren, dass macht die Tutorials dann auch etwas sprachunabhängiger.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Es macht in so fern einen Unterschied, das OpenGL 4 signifikant weniger unterstützt wird. Das ist allerdings ein Nachteil und deshalb sehe ich das auch so kritisch. Ich selbst erst seit ein paar Monaten einen Computer zur Verfügung der schon OpenGL 4 beherrscht. (bzw. sogar 4.4) Man könnte auch sagen, wir sollten auf OpenGL 4.4 setzen, weil es keinen Unterschied macht. Praktisch leider schon, weil das dann keiner mehr ausführen kann. Mir fallen dazu halt eigentlich nur Nachteile ein und keine Vorteile, insbesondere für Anfänger.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich finds durchaus sinnvoll, nicht GL4 zu enforcen – meine GPU z.B. kann das nicht, und ich würde einsteiger nicht mit solchen Schwierigkeiten abschrecken wollen.
grüße, Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Alle anderen Vorschläge sind tragbar, aber ich bin absolut dagegen, OpenGL 4.0 als default zu verwenden. Es schließt wie schon erwähnt eine relativ große Menge von Nutzern aus - Leute mit nicht ganz neuen Grafikkarten aber auch Nutzer von freien Grafiktreibern. Auch wenn es vielleicht Eindruck macht, sogar schon OpenGL4-Tutorials anbieten zu können, sollten wir dem widerstehen. Es spricht natürlich nichts dagegen, zu erwähnen, dass alles in den Tutorials erklärte genau so mit allen neueren OpenGL-Versionen funktioniert.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
Ok, ist vieleicht unglücklich erklärt. Wir erstellen keinen OpenGL 4.0 oder höher Kontext, wenn es nicht notwendig ist, was allerdings nur in einem expert Tesselation Tut nötig ist, alles andere sollte mit nem OpenGL 3.3 enforce context erstellt werden und damit läuft das automatich mit 4. Von 3 zu 4 wurde meines Wissens nix entfernt, sondern nur erweitert und sollte nun jemand doch noch was finden, was entfernt wurde, dann gibt es tatsächlich ein Grund OpenGL 3 an zu peilen.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ok, dann Vorschlag zur Güte: In der Erklärung zur Kontexterstellung kann man noch erwähnen, wie man z.B. einen 4.0 erstellt, der Quellcode bleibt aber wie er ist.
Eines der Probleme die wir mit 3.3 hatten war z.B., dass die Minor und die Major Version gleich war (beide Male 3) und das didaktisch halt suboptimal ist. Aber wir wollen nicht 4.0 "erzwingen". Es ging uns mehr um die Erklärung der Parameter.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.