Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 21:53

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: OpenGL3 Tutorial Inhalt
BeitragVerfasst: Di Jun 09, 2009 03:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Wie der Titel schon erahnen lässt, geht es um das OpenGL3 Tutorial, welches ich aktuell im wiki schreibe.
Da aktuell sehr viele Bekannte aus ICQ, IRC, DGL Forum anfangen sich mit OpenGL3 auseinander zu setzen und immer wieder die Frage nach OpenGL3 Tuts kommt aber aktuell einfach nur 2 im Netz zu finden sind(google hat meines im dgl wiki und das aus dem nehe wiki indiziert). Das vom nehe wiki kümmert sich nur darum, wie man ein OpenGL3 GC erstellt und das war es dann auch schon. Ich habe neben den GC auch schon einiges zu den änderungen, Backgroundwissen und zur Pipeline eingebaut.
Es kam heute die Frage, ob ich nicht vieleicht noch ein bischen mehr nach den OpenGL Tuts, aus unserem Wiki, gehen könnte.

Nun ist die Frage: "Was wollt ihr in dem OpenGL3 Tut gerne sehen und was ist z.B. nicht so wichtig ?"

So wäre es recht häftig die GLSL1.4 Specs durch zu kauen allerdings braucht man ja nun auch GLSL, sonnst kann man garnicht zeichnen.
Verzweigen auf das 1. GLSL Tut von Sascha zu verweisen geht auch nicht mehr, da die Specs sich wie bei OpenGL3 verhalten und vorige Freiheiten nun als Pflicht enthält und auch dort deprecated zugeschlagen hat.

Ein weiteres Problem sind Vektorrechnung, wie weit soll ich da eingehen, da in OpenGL3 man sich selber um die Berechnung von ModelView, OrthoView und ProjectionView kümmern muss.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL3 Tutorial Inhalt
BeitragVerfasst: Di Jun 09, 2009 06:58 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
TAK2004 hat geschrieben:
Ein weiteres Problem sind Vektorrechnung, wie weit soll ich da eingehen, da in OpenGL3 man sich selber um die Berechnung von ModelView, OrthoView und ProjectionView kümmern muss.

Ich denke wenn du überhaupt eine Chance haben willst, es in vernünftigem Rahmen zu halten, dann solltest Du dich darauf beschränken, anzugeben wies gemacht wird, ohne groß zu kommentieren warum. Im Wiki haben wir ja einiges dazu und das darf dann gerne erweitert werden, aber solange wie wir wollen, daß auch relative Einsteiger hinterherkommen, sollte da nicht zu sehr drauf rumgeritten werden. Wahrscheinlich ist eine wiederverwendbare Unit sinnvoll, die ala glTranslate und glRotate Matrizen bastelt und einem den Spaß erst einmal abnimmt. Und die dies eh schon besser können, wissen wies geht und brauchen deshalb keine allzugroßen Details :-)

Zitat:
So wäre es recht häftig die GLSL1.4 Specs durch zu kauen

Würde hier auch sagen... EIn paar nützliche Programme anbieten und Details in extra Tutorias verwursten, sonst läufts auf ein Buch hinaus.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 07:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Wie wärs denn so:
Im Tutorial Nr.1 beschränkt man sich wirklich nur darauf, wie man den Rendering Context herstellt. Da ergibt sich nämllich schon die Frage, soll man sich nur auf ein OS beschränken? Selbst das könnte dann schon ausufern.

Das Tutorial Nr.2 liegt auf der Hand: Wie zeichne ich das berühmte OpenGL Dreieck, noch ganz ohne irgendwelche Texturen oder Animationen.

Zitat:
aber solange wie wir wollen, daß auch relative Einsteiger hinterherkommen, sollte da nicht zu sehr drauf rumgeritten werden.

Öhm, ich finde schon, dass die Leute wissen sollten, was auf sie zukommt. Alle schreien "Hurra, OpenGL3", aber wenn sie wissen was das WIRKLICH bedeutet, wirds ein paar lange Gesichter geben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Opengl3 macht einfach extrem viel arbeit und ich denke alles in einem Tutorial abzureißen ist utopisch, denn Dinge die in OpenGl2 noch ganz einfach automatisch funktionierten sind jetzt selbst zu erstellen. Deshalb würde ich eine Tutorial-Reihe vorschlagen die erst nach dem letzten Tutorial erst ein Bild darstellt.
Jeder von uns kennt den Aufwand, den sollte man Einsteigern im ersten Tut auch erklären, so nach dem Motto "wer noch nie OpenGl benutzt hat, sollte hier weiterlesen, wer nur umsteigt von OpenGl2 kann den nächsten Absatz überspringen".Den Aufbau der Reihe könnte man im etwa so gestalten:

1. Erklärung zu Opengl3, für Fortgeschrittene auch Änderungen zu OpenGl2
2. Erstellen des Opengl3 Context inklusive Renderloop und frameratecounter (nur als variable, nicht optisch dargestellt)
3. Erklärungen zur Vektor-Mathematik in OpenGl (wer da kein Bock drauf hat, sollte direkt darauf verwiesen werden, dass er sich gerade ein falsches Hobby sucht ). Aufbau von Klassen und Funktionen um diese Mathematik zu betreiben gehört da natürlich mit hinein.
4. ProjektionsMethoden und Implementierung ( Die wichtigsten wären da wohl die Perspektivische und die Orthogonale, als Anhang kann man dann ja auch noch andere Vorstellen, wie Isometrisches Fake3d )
5. Erklärung zum Thema Rasterizer und Shader. Ich denke es reicht an der Stelle wenn man einen Shader entwirft, der anhand der ProjektionsMatrizen simple Geometrie mit diversen Farben darstellen kann. Texturen kann man dann ja seperat in ein Tutorial schmeißen, wenn man zunächst das erste Fenster am Laufen hat. Eine Kompendium für die aktuellen unterstüzten Glsl Spielzeuge kann man dann ja später noch erstellen und dort verlinken.
6. Die Buffer Funktionsweise. Hauptsächlich um gefärbte Geometrie darzustellen. Das verlangt also mindestens ein FBO und ein VBO.

Vielleicht habe ich da etwas vergessen. Es ist aber trotzdem schon eine ganze Menge geworden, allerdings sind viele Dinge, wie die Mathematik, immer noch gleich geblieben. Man kann da also viel übernehmen von dem was es schon bei uns zu finden gibt. Außerdem kann man diese Bereiche ja auch verschiedene Personen verteilen, so das Tak dann evtl. noch einmal drüber liest und das dann zusammen flickt. Immerhin handelt es sich hier nicht mehr um eine kleine OpenGl-neuerung sondern um ein ganz anderes System und ich denke da sollte man dann auch den Ehrgeiz haben das ausführlich zu betreiben. Immerhin gibt es noch nicht viele OpenGl3 tuts, wie Tak schon sagte, und wenn von uns eine vernünftige Serie dazu herrauskommt, ist das nur positiv für das Forum. Man darf jetzt nur nicht den Zug verpassen.

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 12:43 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Erstmal der Link zum Artikel, damit man sieht, wie es aktuell Aufgeglieder ist und was schon an Inhalt drin steckt.
Ich habe heute früh ein bishen weiter gemacht und ich versuche möglichst viel auf bestehende Wiki Artikel zu verweisen aber einige sind einfach so stark auf OpenGL<3 ausgelegt, dass sie nicht für OpenGL3 brauchbar sind. So kann man z.B. nicht auf Shader Artikel wie das von Sascha verweisen, da der Dinge enthält, die es in OpenGL3 nicht gibt.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 14:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich denke, es ist sinnvoll, das ganze erstmal in einem Guss zu schreiben und dann an psychologisch sinnvollen Stellen in mehrere Teile aufzutrennen. Ich denke auch, dass vieles nicht detaillierter erläutert werden sollte, gerade Mathematische Aspekte nicht unbedingt. Ein Einsteiger will nicht unbedingt von sowas erschlagen werden und jemand, der Mathe studiert hat (utopisch) und nun mit GL3 anfangen will, wird davon nur genervt. Ich würde daher in dieser Stufe noch keine detaillierteren Erläuterungen beim "Warum" machen sondern das auf "Stage 2" verschieben. Stage 2 könnte daraus bestehen, die bestehenden Artikel auf GL3 zu upgraden und nach und nach als Zusatzmaterial im Tutorial zu verlinken. Anfangen würde ich mit den Sachen, die am wichtigsten sind und wo der Unterschied am größten ist.
Dinge wie das Mathe-Vektor-Matrix-Tutorial kann man ja sicherlich so verlinken, da dort ja praktisch OpenGL-Frei erklärt wird. Vielleicht kann man für einige Dinge (bspw. Projektionsmatrix) auch auf Funktionsartikel (glOrtho oder so) verlinken, mit dem Hinweis, dass diese Funktion zwar nicht mehr aktuell ist und nicht verwendet werden sollte, man sich in diesem Artikel aber gerne die Matrix anschauen darf.

Gruß Lord 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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 21:11 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich finde den klassischen Ansatz von Traude gut. Bei uns hat sich dieses Vorgehen bei den alten Einsteiger Tutorials bewährt.
Man führt die Anfänger in ein Thema ein und am Ende eines jeden Tutorials haben sie etwas neues Lauffähiges zur Verfügung.

Zu diesem Zweck sollte im ersten Tutorial erklärt werden was OpenGL3.0 eigentlich ist, wie es sich zu 2.x und 1.x verhält und was das für Konsequenzen hat.

Im zweiten Tutorial sollte dann ein basis Template angeboten werden. Dabei ist es wichtig den Anfängern eine Codebasis an die Hand zu geben die ihnen auch später weiterhilft. Ziel ist hier das berühmte Dreieck.

Im dritten Tutorial geht es dann um die Bewegungen.

Im vierten sollten Texturen für Vortgeschrittene erklärt werden. Die Prinzipien (UV Mapping etc.) sind ja gleich mit den alten Tutorials.

Allgemein haben die Prinzipien aus den alten Tuts ihren Wert ja nicht verloren. Die Kernideen bleiben bestehen, nur die Art der Umsetzung ist anders.

Die Sachen aus dem bestehenden OpenGL30 Tutorial würde ich entsprechend auf die hier vorgeschlagenen Tuts verteilen. Die sollten nebenbei vom Umfang her auch nicht zu lange werden. Wenn man inklusive ausprobieren/nachcoden 1-1,5h beschäftigt ist, dann geht das in Ordnung. Wenn man allerdings schon >1h lang ließt, dann finde ich das etwas viel.

Wie seht ihr das?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 12, 2009 12:46 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
Ich denke die entscheidendere Frage wäre was das erste sein sollte. Am sinvollsten wäre es hier wieder ein einzelnes dreieck darzustellen, allerdings sollte der Vertexshader erst einmal nur Die Daten untransformiert durchreichen. Für den Fragmentshader reicht es wenn eine Farbe ungleich der clearcolor gesetzt wird.

Entscheidend ist für das erste programm eigendlich nur das die VBOs und rendervorgänge so im plementiert werden das sie der OpenGL3.x spezifikation ohne irgend welche rückwärtkompatibilität entsprechen. Auf keinen fall sollte hier irgend etwas in viele klassen gekapselt werden...

IN einem zweitem Tutorial könnte man zeigen wie mit uniform variablen gearbeitet werden kann, und vorallem wie der Matrixstack ersetzt werden kann.

_________________
Lumina plattform unabhängige GLSL IDE


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 10:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hab nun fest vor genommen jeden Tag eine Stunde in die Tutorial Reihe zu stecken.
Das Problem an der Thematik ist, dass man es nicht wie ein normales Tutorial angehen kann, sondern eine komplette Reihe benötigt und da in einigen Bereichen auch die bisherigen Tutorials veraltet, nicht mehr korrekt oder schlicht was fehlt auch diese als eine neue Auflage in OpenGL3 umgesetz werden müssen.

Ich hab nun eine neue Liste der einzelnen Artikel gemacht.

Inhalt:
1.OpenGL3 und die Vorgeschichte
2.Lineare Algebra
3.Erstellen eines Grafik Kontext
4.Das Objekt System von OpenGL3
5.Vertex Buffer Object
6.Verfügbare Geometrie=gl_QUADS,TRIANGLES,... ; wie funktioniert das in der Pipeline; das erste 3eck zeichnen; der benötigte vertex und fragmentshader wird einfach nicht erklärt und vorgegeben
7.GLSLang=zwar ein bischen zu spät, da schon zuvor es einmal eingestzt wurde aber das Thema ist recht Anspruchsvoll und man sollte schon wissen was VBO und Geometry ist
8.Geometryshader
9.Transform Feedback=ein neuer Bestandteil von ogl3 und wird nach dem vertex shader aktiv
10.Texturen
11.Frame Buffer Object
12.Scissor/Clipping
13.Instancing
14.Oclussion Query
15.Conditional Rendering

Aktuell arbeite ich an 2. Lineare Algebra.
Vektor:
a)was ist ein vektor
-mathematische darstellung
-c++ code
b)Addition
c)Subtraktion
d)Multiplikation
e)Division
f)Magnitude
g)Skalarprodukt
h)Kreuzprodukt
i)Normalisieren
(b-i haben immer die mathematische darstellung, grafik, beschreibung und c++ Code)
Matrix:
a)was ist eine matrix
-mathematische darstellung
-c++ code
b)Transponieren
c)Multiplikation
c)1)Vektor
c)2)Matrix
----fehlt noch
d)Translate Matrix konstruieren
e)Rorations Matrix konstruieren
f)Scale Matrix konstruieren
----
g)Exkurs in die Operimierung<-Absolut wichtig, seit OpenGL3 da man die Lineare Algebra nun selber implementieren muss
-CPU extension(sse,mmx,...)
-vorteile von templates/generics
-Performance tracking

Ich versuche soviel wie möglich aus den bereits existierenden Tutorials zu verwenden, allerdings mehr den Inhalt, da mein Schreibstiel eigentlich immer abweicht und vieles(ausser Lineare Algebra) schon ziemlich veraltet ist.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Zuletzt geändert von TAK2004 am Di Aug 04, 2009 22:26, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 16:26 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest nicht das Rat neu erfinden. Wir haben vieles aus dem mathematischen Bereich bereits in eigenen Artikeln stehen. Reiss die einzelnen Punkte nur an und verweise auf die vorhanden Tutorials bzw. Artikel im Wiki.

Mach dir nicht zuviel Arbeit. Du musst die Grenzen des Tutorials etwas enger ziehen und einfach Beschreiben, was du vorraussetzt.
Du kannst nicht alles beschreiben. Siehe auch hier.

Die Themen des Tutorials sehen aber sehr vielversprechend aus. Ich hoffe damit kann man dann vernünftig in die neue OpenGL Version starten, ohne "Friss oder Stirb" Ansätze.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 19:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Das hatte ich im ersten Versuch auch so gemacht aber die qualität, vollständigkeit ist stark unterschiedlich und ist wenig hilfreich, von tut zu tut zu springen, etwas nochmal lesen zu müssen und dann noch zu lesen, dass es ein glTranslate gibt und später heisst es nein gibt es nicht, das ist verwirrend.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 19:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
TAK2004 hat geschrieben:
von tut zu tut zu springen

Willst du das alles in ein Tutorial packen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 19:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Nein ich will das in mehrere Artikel verpacken jede Nummer wäre ein Artikel, so dass man es schön in ruhe über längere zeit lernen kann und nicht immer in einen hin und her springt.

http://wiki.delphigl.com/index.php/Tutorial_OpenGL3_Lineare_Algebra

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 22:48 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Ich schau mir gerade an, was du da schreibst und bin verwirrt:
Bild
Ist das "Produkt" zweier Vektoren nicht eine Zahl und sozusagen in deinem Fall die Summe der Komponenten des Ausgangsvektors c? Also, wie du später schreibst, das Skalarprodukt?
Und auch die Division zweier Vektoren habe ich noch NIE gehört. :shock:

Edit: Davon abgesehen gefällt mir das Tutorial sehr! Fand es richtig Schade, dass das interessante leider noch ausgespart ist. :lol:

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 03, 2009 23:08 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Also was da im Quellcode steht, verwirrt mich auch. Skalar- und Kreuzprodukt sind ja noch einzeln aufgeführt, aber die seperaten Multiplikationen und Divisionen sind keine Skalierungen, wie ich zuerst annahm, sondern tatsächliche Multiplikation und Division von Zwei Vektoren Wert für Wert

Was jetzt dabei rauskommt, wenn man v1.x/v2.x, v1.y/v2.y und v2.z/v2.z dividiert .. keine ahnung
Würde mich jetzt auch mal spontan fragen, wo man das braucht und was da bei herauskommt


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 18 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 18 Queries | GZIP : On ]