Lazarus - OpenGL 3.3 Tutorial

Zur Vorstellung von Komponenten und Units für Lazarus

Lazarus - OpenGL 3.3 Tutorial

Beitragvon Mathias » 14. Jan 2018, 18:02 Lazarus - OpenGL 3.3 Tutorial

Ich stelle hier mein neustes Projekt vor, ein Tutorial für

Lazarus - OpenGL 3.3 Tutorial

Ich hoffe, das dies einige User den Einstieg in das moderne OpenGL mit diesem Tutorial schaffen.

Das Tutorial ist noch in Arbeit, aber es wird fortlaufend ergänzt.
Wen jemand eine Anregungen hat, kann er sich gerne melden,
Zuletzt geändert von Mathias am 4. Mär 2018, 23:08, insgesamt 1-mal geändert.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 14. Jan 2018, 18:37 Re: Lazarus - OpenGL 3.3 Tutorial

Melde dich bei github oder sourceforge an.

[Sch... - dass sollte eigentlich an den anderen Post]
wp_xyz
 
Beiträge: 2651
Registriert: 8. Apr 2011, 08:01

Beitragvon Frank Ranis » 15. Jan 2018, 07:35 Re: Lazarus - OpenGL 3.3 Tutorial

Hallo Mathias,

vielen Dank für dein Tutorial , feine Sache.
Ich habe mir erst mal die Quellen gesaugt und bin am rumprobieren.

Was ich aber gleich feststellen mußte , das OpenGl 3.3 läuft auf meinen alten Rechnern nicht.
Ich denke das liegt wohl an den alten Grafikkarten .

Könntest Du im Tutorial noch etwas zur Hardware-Mindestanforderung erzählen ?

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 111
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 21. Jan 2018, 22:51 Re: Lazarus - OpenGL 3.3 Tutorial

Von hier aus, sind nun alle Sourcen auf guthub erreichbar.
https://wiki.delphigl.com/index.php/Laz ... 3_Tutorial

Entweder alle, oder auch jedes Tutorial einzeln.

Auch hat es Ergänzungen im Tutorial gegeben.

Was ich aber gleich feststellen mußte , das OpenGl 3.3 läuft auf meinen alten Rechnern nicht.
Ich denke das liegt wohl an den alten Grafikkarten .

Entweder ist die Karte zu alt, oder die Treiber veraltet.
Was verwendest du für Hardware und OS ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Frank Ranis » 22. Jan 2018, 06:33 Re: Lazarus - OpenGL 3.3 Tutorial

Hallo Mathias,
Was ich aber gleich feststellen mußte , das OpenGl 3.3 läuft auf meinen alten Rechnern nicht.
Ich denke das liegt wohl an den alten Grafikkarten .

Entweder ist die Karte zu alt, oder die Treiber veraltet.
Was verwendest du für Hardware und OS ?


Ich habe noch ein paar alte XP-Rechner , Grafikkarten weis ich jetzt nicht , dort läuft es leider nicht .
Sind aber auch schon wirklich alte Schätzchen Alter>8-10 Jahre.

Auf dem Win7-Rechner sitzt ne Intel(R) HD Graphics 4600 , da laufen fast alle deine Demos , bis auf die , wo BgraBitmap verwendet wird , das habe ich noch nicht installiert.

Das Problem ist halt , das meine Modellbausoftware auf vielen Bastel-Keller-Rechneren läuft , die teils noch Win98 drauf haben.
Diese Rechner werden so lange wie möglich am Leben erhalten , wegen alter CNC-Maschinen (Fräsen , Styoschneider u.u.u) und passender Software , die nur dort läuft und wo es keine Updates mehr gibt.

Gibt es eventuell pfiffige Möglichkeiten altes OpenGL und neues OpenGl 3.3 per Software wahlweise zu nutzen .
Also
1) Erkennung der Hardware
2) Umschaltung zwischen der alten OpenGl-Programmierung und den neuen Möglichkeiten ,sofern es beim alten OpenGl überhaut Alternaiven gibt.

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 111
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon marcov » 22. Jan 2018, 12:09 Re: Lazarus - OpenGL 3.3 Tutorial

Zuerst: sehr schöner Tut!

Ich mache viel einfache 2D overlays mit opengl, und habe mich einige der relevante Tutorials angesehen wie "Shapes (Linien und Punkte)", und der logischen Folgenden "Index-Puffer_dynamisch" (Shapes: 1 segment/drawcall, index-puffer: mehrere/drawcall)

Dazu habe ich vielleicht noch etwas interessantes in mein URL Bibliothek, nämlich wie man Linewidth kann man via geom Shader emulieren kann:

https://forum.libcinder.org/topic/smoot ... try-shader
marcov
 
Beiträge: 1034
Registriert: 5. Aug 2008, 08:37
Wohnort: Eindhoven (Niederlande)
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk) | 
CPU-Target: 32/64,PPC(+64), ARM
Nach oben

Beitragvon Mathias » 22. Jan 2018, 17:59 Re: Lazarus - OpenGL 3.3 Tutorial

Dazu habe ich vielleicht noch etwas interessantes in mein URL Bibliothek, nämlich wie man Linewidth kann man via geom Shader emulieren kann:

https://forum.libcinder.org/topic/smoot ... try-shader

Dies müsste ich mal genauer angucken, sieht recht interessant aus.


Gibt es eventuell pfiffige Möglichkeiten altes OpenGL und neues OpenGl 3.3 per Software wahlweise zu nutzen .
Im Prinzip ja, aber sowas würde ich mir nicht mehr an tun. Es werden immer weniger PCs, die zu alt sind. Ansonsten ein einfaches if else sollte gehen.
Code: Alles auswählen
  if alt then begin
    glBegin();
  end else begin
    glDrawArrays();
  end;

Noch etwas, unter Linux, kann man OpenGL 3.3 Softwaremässig emulieren, aber die Geschwindigkeit lässt zu wünschen übrig. Für das Tutorial wird es reichen, aber eine komplexe Scene kommt recht ins stottern.


Mit etwas Glück sollte es gehen, wen man im Shader eine ältere Version verlangt.
Code: Alles auswählen
#version 130

Nur wird dann nicht mehr der volle Umfang von OpenGL 3.3 unterstützt.
ZB wird
Code: Alles auswählen
layout (location = 10) in vec3 inPos;
nicht unterstützt.
Dann muss man das mit einer ID lösen, so wie bei den Uniform-Variablen.
So nebenbei, ab OpenGL 4.0, geht layout auch mit Attributen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 23. Jan 2018, 18:01 Re: Lazarus - OpenGL 3.3 Tutorial

und habe mich einige der relevante Tutorials angesehen wie "Shapes (Linien und Punkte)",

Da habe ich gerade noch einen kleinen Fehler korrigiert, die Vektoren hissen hier Triangeles, obwohl es Linien sind.

Wen jemand solche Fehler sieht, dann wäre es gut, wen er sie melden würde. Somit kann ich das Tutorial verbessern. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 7. Feb 2018, 17:54 Re: Lazarus - OpenGL 3.3 Tutorial

Dazu habe ich vielleicht noch etwas interessantes in mein URL Bibliothek, nämlich wie man Linewidth kann man via geom Shader emulieren kann:

https://forum.libcinder.org/topic/smoot ... try-shader

Ich habe da mal was probiert, vielleicht hilft dir dies schon weiter.

https://github.com/sechshelme/Lazarus-OpenGL-3.3-Tutorial/tree/master/15_-_Geometrie-Shader/05_-_GL_TRIANGLE_STRIP_ADJACENCY
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 28. Apr 2018, 20:31 Re: Lazarus - OpenGL 3.3 Tutorial

Das Tutorial ist in der Zwischenzeit um einiges gewachsen: https://wiki.delphigl.com/index.php/Laz ... 3_Tutorial
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon noenglish » 23. Sep 2018, 16:41 Re: Lazarus - OpenGL 3.3 Tutorial

Die Beispiele die ich bis jetzt getestet habe laufen. Die Beispiele welche die unit oglVector verwenden, lassen sich nicht kompilieren. Fehler in der Prozedur:
Code: Alles auswählen
FaceToNormale(var Face, Normal: array of TFace3D);
wir in der Zeile:
Code: Alles auswählen
v.Cross(Face[i, 0], Face[i, 1], Face[i, 2]);

Die Nachricht:
Projekt kompilieren, Ziel: project1.exe: Exit code 1, Fehler: 1, Warnungen: 1
oglvector.pas(721,7) Error: Illegal qualifier
oglvector.pas(722,21) Warning: Local variable "v" does not seem to be initialized

ausgegeben.

Was Übersehe Ich?
noenglish
 
Beiträge: 34
Registriert: 4. Mai 2010, 08:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4 | 
Nach oben

Beitragvon Mathias » 23. Sep 2018, 16:49 Re: Lazarus - OpenGL 3.3 Tutorial

Kannst du mir ein Beispiel nennen, das nicht geht.

Welches Lazarus / FPC verwendest du ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon noenglish » 23. Sep 2018, 17:05 Re: Lazarus - OpenGL 3.3 Tutorial

Danke für die schnellle Antwort.
Lazarus v. 1.6.2; FPC v. 3.0.0

Beispiel: 02_-_Shader\40_-_Shader_Mandelbrot.

Aber wie gesagt tritt der Fehler bei allen Beispielen welche die unit oglVector nutzen auf.
noenglish
 
Beiträge: 34
Registriert: 4. Mai 2010, 08:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4 | 
Nach oben

Beitragvon Mathias » 23. Sep 2018, 17:08 Re: Lazarus - OpenGL 3.3 Tutorial

Lazarus v. 1.6.2; FPC v. 3.0.0

Es wird mindestens FPC 3.0.2 verlangt, da bei 3.0.0 ein Bug mit Typenhelper vorhanden ist.

Siehe in der Einleitung:
https://wiki.delphigl.com/index.php/Laz ... einrichten
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon noenglish » 24. Sep 2018, 15:30 Re: Lazarus - OpenGL 3.3 Tutorial

Schlafmütze!
Nach dem ich die neueste Release installiert habe funktioniet es.
Vielen Dank für die Hilfe!.
noenglish
 
Beiträge: 34
Registriert: 4. Mai 2010, 08:14
OS, Lazarus, FPC: Win10 64Bit, L: 1.8.4 FPC 3.0.4 | 
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried