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

Aktuelle Zeit: Do Mär 28, 2024 10:27

Foren-Übersicht » DGL » Feedback
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Mi Apr 03, 2013 14:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 16, 2008 13:18
Beiträge: 252
Nach etwas längerer Zeit :roll: habe ich in der letzten Woche wieder Zeit gefunden an meinem OpenGL 3 Quickstart Tutorial weiter zu schreiben. Das Tutorial soll einen einfachen Einstieg in OpenGl 3 geben und die grundlegenden Änderungen und Neuerungen erklären. Ich habe versucht alle notwendigen Komponenten zu beschreiben, welche für das Rendern eines ersten Modells notwendig sind. Das Tutorial findet ihr unter http://wiki.delphigl.com/index.php/Benutzer:Mori/OGL3_Quickstart.
Mir ist klar, dass das Tutorial noch nicht ganz fertig ist und an manchen Stellen eventuell zu viel Code enthält oder noch Erklärung bedarf. Trotzdem würde ich mich freuen, wenn ihr mir Verbesserungsvorschläge oder Kritik schreibt, damit Ich die Fehler ändern oder Abschnitte besser gestalten kann.

Grüße
Moritz

_________________
You even trying ...

Website: http://rise-of-light.de/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Mi Apr 03, 2013 16:57 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Ich hab drübergesehen. Vielleicht solltest Du am Anfang klären, wer als Audienz in Frage kommen soll - jemand der schon OpenGl Erfahrung hat (mit welchen Versionen), oder sollen auch blutige Anfänger damit zurecht kommen können? Und Einstiege in die Vorraussetzungen gleich verlinken.

Ich hab einfach mal gesammelt, was mir beim Lesen so eingefallen ist. Mein OpenGl ist sehr sehr rostig, ich schätze ich bin damit idealer Leser :-D

Context:
  • Würde hier nicht die Beschreibung als Unterschied beginnen, sondern beschreiben, dass man einen "alten" und einen neuen RC braucht. Weils ein Quickstart ist, auch gleich beschreiben, wie man fix an einen "alten" RC kommt.
  • CreateRenderingContext(..) kommt also aus der OpenGl-Lib
  • Welche Lib wird benutzt; verlinken.
  • Vielleicht kompletten Codeschninpsel für das holen des DCs, statt im Text verstreut?
 

OpenGl Objekte:
  • Etwas knapp. Pseudocode-Beispiel das klärt wie das aussieht - um so Dinge zu klären: Wann ist ein Objekt aktiv, Geht es um eine Statemachine, oder werden die Objekte als Variablen vom Entwickler verwaltet?
 

VBOs:
  • Was ist ein VBO? Evtl. verlinken.
  • Die Daten im VBO sind interleaved (konnte man bei Vertex Arrays nicht mit mehreren Arrays arbeiten? ist das immer so?)
  • Zur VBO Klasse ein kurzes Verwendugsbeispiel des Interfaces? Workflow: create, edit, bind, destroy. Oder auf den Abschnitt beim Zeichnen verweisen, wo das kommt, aber ich glaube hier ist schonmal gut.
  • Lässt sich möglichst einfach ein VBO für einen Würfel basteln? vielleicht mit Bild, Vertex- und Textur/Farb-Koordinaten, die einzeln in Arrays gespeichert sind und dann mit einer Methode zusammengeführt werden, so dass man auch etwas zum Zeichnen hat. => Gibt am Ende ein schönes Beispielbild zum Lohn der Mühe.
 

Shader:

  • Aufgabe
  • Links auf weitere Informationen - wie programmiert man das?

 
Matrizen:

  • Welche Lib stellt Matrixoperationen zur Verfügung?
  • Verlinken von Arikeln zu Matizen?

 
Zeichen:

  • Abschnitt zum Laden dazwischenschieben? "Nachdem wir nun unsere VBOs, EAB und Shaderprogramme geladen haben, müssen wir OpenGL nur noch mitteilen, welche Daten wir rendern wollen.". Ein bischen Pseudocode vielleicht?
  • glClearColor hast du schon im Abschnitt Context gesetzt, Absicht?
  • die shader sind schon "geladen", müsste wohl binden heißen.
  • "Zuerst binden wir unser VBO und unser EAB mit den schon oben gezeigten Methoden.". Zuerst binden wir VBO und EAB -> Code -> weiterschreiben? (Weiter unten kommt dann Code der das binden macht, schätze das ist verwirrend)

 
Generell:
  • Alle "können" können raus, dann liests sich flüssiger.
  • Sourcecode als Paket nicht vergessen.
  • Insgesamt wirks schon recht weit. Alles wichtige ist schon drin.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Mi Apr 03, 2013 19:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 16, 2008 13:18
Beiträge: 252
Danke Delphic für dein ausführliches Feedback :) . Deine Vorschläge werde Ich auf jeden Fall umsetzen.

Delphic hat geschrieben:
Vielleicht solltest Du am Anfang klären, wer als Audienz in Frage kommen soll ...
Das passt wahrscheinlich in den Anfangsteil. Nach meiner Einschätzung sollte man Delphi (oder die entsprechende Programmiersprache gut beherrschen) und zumindest die Grundbegriffe von OpenGL verstanden haben. Wenn ihr das anders seht schreibt es einfach.

Delphic hat geschrieben:
Insgesamt wirks schon recht weit ...
Das denke ich mir auch, evtl. macht es Sinn eine neue Seite anzulegen, welche die generelle Funktionsweise zeigt oder zumindest einen Abschnitt mit generellen Erklärungen einzubauen

Delphic hat geschrieben:
Sourcecode als Paket nicht vergessen.
Das werde ich auf jeden Fall tun. Momentan habe ich den Code aus meinem aktuellen Spiel genommen und sehr stark vereinfacht damit es nicht zu viel wird. Ich werde in nächster Zeit nochmal ein neues Projekt aufsetzen, wo ich nur die Tutorial relevanten Abschnitte einbaue.

Delphic hat geschrieben:
Context: Welche Lib wird benutzt; verlinken.
Hier verwende ich den DelphiGL Header. Diesen werde ich noch verlinken, vor allem weil er die im Tutorial verwendete Hilfs-Funktion bereit stellt.

Delphic hat geschrieben:
Matrizen: Welche Lib stellt Matrixoperationen zur Verfügung?
Hier bin ich mir nicht sicher welche Lib Ich verlinken soll. Für mein Projekt habe ich, um die Zusammenhänge besser zu verstehen, den gesamten Code (außer dem OpenGL Header und den Delphi Standart Libs) selber geschrieben. Wenn ihr gute Libs kennt könnte man evtl. eine auswahl Liste im Tutorial angelegen.

Delphic hat geschrieben:
Zeichnen: glClearColor hast du schon im Abschnitt Context gesetzt, Absicht?
Das ist ein Fehler, der durch das Zusammenkürzen des Codes entstanden ist. Ich werde eine Anmerkung machen, dass man die Farbe nur einmal setzen muss. (Mein Spiel rendert in verschiedene FBOs, welche zum besseren Debuggen verschiedene Hintergrund Farben benutzen)

Ich werde die Vorschläge in den nächsten Tagen einarbeiten. Wenn ich irgendwas vergessen habe oder ihr noch Änderungen/Wünsche zum Tutorial habt könnt ihr es hier noch schreiben.

_________________
You even trying ...

Website: http://rise-of-light.de/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Fr Apr 05, 2013 20:41 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
So, habe es auch durchgearbeitet.
Bei mir sieht es ungefähr wie bei Delphic aus, nur dass ich gerade versuche mit OpenGL ES 2.0 zu arbeiten und somit das gleiche vor mir habe...
Gleich werde ich mal schauen ob ich jetzt mit mehr Verständnis mehr erreichen kann :)

Ich befürchte, dass das folgende sehr negativ herüberkommt. So ist es aber nicht gemeint, sondern mit dem Ziele der Verbesserung.

Wie schon geschrieben ist es nicht klar, an wem es sich wendet. Zum einen erklärst du kurz glClearColor, also für Anfänger, ansonsten fallen aber die OpenGL-Objekte aber sehr vom Himmel, womit man eigentlich glClearColor bzw. grobe Erfahrung mit OpenGL haben müsste.
Am Anfang gehst du auch mit den Parametern zu sehr ins Detail. Die verwirren die Leute an der Stelle nur. Stencil, AccumBits etc. brauch man am Anfang nicht wissen.

Zu guter Letzt noch einen Kommentar zu deinem Code:
Ich will hier keine Werbung für ein Buch machen, aber empfehle dir dennoch mal dich zum Thema "Clean Code" zu informieren. Das Ziel hierbei ist es Code zu schreiben, der ohne Kommentare zu verstehen ist.
Ein Beispiel bei dir wäre die Variable "hid". Ohne deine Erklärung im Text wäre es nicht zu erkennen, dass es ein Handle sein soll. Gut, es könnte sein, dass "handle" schon als Typname verwendet wurde. Dies sollte eigentlich aber nicht sein. In dem Fall bietet es sich aber z.B. "VBOhandle" als Name an. Damit weiß man dann direkt, was die Variable beinhaltet.
Dann verwendest du teilweise den Prefix "p" bei privaten Elementen. Bei Delphi hat sich hier "f" bzw sogar "F" eingebürgert und es wird dann auch konsequent verwendet. Das ist je nach Sprache unterschiedlich, sollte aber durchgehend verwendet werden.
Dann bist du mit der Groß- und Kleinschreibung inkonsequent. Das ist für Delphi ziemlich egal, ist aber spätestens beim Wechsel auf andere Sprachen wichtig.
Viel Text, hier nochmal der kurze Inhalt: Informiere dich zum Thema "Clean Code". Danach kannst du nur noch mit dem Kopf schütteln wenn du alten Code siehst ;)

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Fr Apr 05, 2013 21:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich habs nicht durchgelesen und es ist nur eine kleinigkeit, ich will dir aber ggf. nicht dazwischenfunken. Nutze bitte <source lang="delphi"> anstatt pascal. Das highlighting ist subtil anders, insbesondere unterstützt der Delphi-Highlighter auch Klassen.

grüße

_________________
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: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Sa Apr 06, 2013 00:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 16, 2008 13:18
Beiträge: 252
Erstmal Danke überhaupt das ihr euch Zeit genommen habt den Artikel durchzulesen :)

i0n0s hat geschrieben:
Zum einen erklärst du kurz glClearColor, also für Anfänger, ansonsten fallen aber die OpenGL-Objekte aber sehr vom Himmel.
Am Anfang gehst du auch mit den Parametern zu sehr ins Detail.
Das stimmt natürlich. Ich denke ein "theoretischer" Teil am Anfang und eine kurze Erklärung der Objekte würde für besseres Verständniss sorgen, damit sich das Tutorial nicht zu sehr an den Parametern und einzelnen Befehlen aufhält.

i0n0s hat geschrieben:
Dann bist du mit der Groß- und Kleinschreibung inkonsequent.
Das hat mich persönlich (in Delphi Code) nie wirklich gestört. Für das Tutorial (und im Code) werde ich es aber ändern.

i0n0s hat geschrieben:
Informiere dich zum Thema "Clean Code". Danach kannst du nur noch mit dem Kopf schütteln wenn du alten Code siehst ;)
Das glaube ich. Gibt es noch etwas anderes außer die Attribut Bezeichnung und die Groß-Kleinschreibung, welches unbedingt im aktuellen Code geändert werden sollte?

Lord Horazont hat geschrieben:
Nutze bitte <source lang="delphi"> anstatt pascal.
Ok, das ändere ich noch.

Ich bin immer noch nicht zufrieden mit den großen Codeteilen im Tutorial, obwohl ich denke das es Sinn macht die OpenGL Objekte als Klassen zu repräsentieren. Ich werde mich auf jeden Fall nochmal an das Tutorial setzen, es umschreiben und den Code aufräumen.

_________________
You even trying ...

Website: http://rise-of-light.de/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Sa Apr 06, 2013 18:37 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2067
Programmiersprache: C++
mori hat geschrieben:
Gibt es noch etwas anderes außer die Attribut Bezeichnung und die Groß-Kleinschreibung, welches unbedingt im aktuellen Code geändert werden sollte?

Mir fällt da sonst gerade nichts ein. Die Kapselung in Klassen sollte drin bleiben. Das ist ja gerade der Vorteil mit 3.0, dass man es so machen kann.
Sprachlich gibt es noch ein paar Macken, aber die bekommen wir noch erledigt, sobald du damit fertig bist. Ansonsten pfuschen wir dir ins Handwerk.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: OpenGL 3 - Quickstart Tutorial
BeitragVerfasst: Mo Apr 08, 2013 06:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich hatte mal vor einigen Jahren eine etwas größere OpenGL 3 Tutorial Sammlung begonnen aber durch Zeitnot und fehlendem Bedarf von der Community abgebrochen.
Vieleicht kannst du ja was wieder verwerten.
http://wiki.delphigl.com/index.php/Tutorial_OpenGL3

_________________
"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  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » DGL » Feedback


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.042s | 17 Queries | GZIP : On ]