Kein Bedarf an OpenGL / Vulkan
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Kein Bedarf an OpenGL / Vulkan
Was mir in den letzten Jahren aufgefallen ist, das es mit OpenGL fast keine Beiträge gibt.
Vor etwa 10 Jahren sah es noch viel anders aus, es gibt sogar ein deutsche Forum zu diesem Thema, welches dazumal fast nur für Delphi war. Dort hatte es früher tägliche mehrere Post. https://delphigl.com/forum/
Und jetzt, wen man Glück hat, hat es alle 2 Monate mal einen Post. Die letzten paar kürzlich erstellten sind alles Fragen, die ich stellte.
Auch im internationalen Forum von OpenGL läuft sehr wenig, obwohl dies hauptsächliche für das verbereite C/C++ ist. 2-3 Posts im Tag.
Mich verwundert dies echt, da OpenGL und Vulkan ein sehr spannendes Thema ist. Man hat schier endlos Möglichkeiten was Grafik-Animationen anbelangt. Und so nebenbei läuft es auf fast allen Plattformen, auch auf den Suchtkisten (Handy)
Somit kann es auch nicht veraltet sein, vor allem Vulkan.
Was einer ein Grund, wies das dies so brach liegt ?
Vor etwa 10 Jahren sah es noch viel anders aus, es gibt sogar ein deutsche Forum zu diesem Thema, welches dazumal fast nur für Delphi war. Dort hatte es früher tägliche mehrere Post. https://delphigl.com/forum/
Und jetzt, wen man Glück hat, hat es alle 2 Monate mal einen Post. Die letzten paar kürzlich erstellten sind alles Fragen, die ich stellte.
Auch im internationalen Forum von OpenGL läuft sehr wenig, obwohl dies hauptsächliche für das verbereite C/C++ ist. 2-3 Posts im Tag.
Mich verwundert dies echt, da OpenGL und Vulkan ein sehr spannendes Thema ist. Man hat schier endlos Möglichkeiten was Grafik-Animationen anbelangt. Und so nebenbei läuft es auf fast allen Plattformen, auch auf den Suchtkisten (Handy)
Somit kann es auch nicht veraltet sein, vor allem Vulkan.
Was einer ein Grund, wies das dies so brach liegt ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Kein Bedarf an OpenGL / Vulkan
Es gibt mittlerweile sehr viele Alternativen auf deutlich Höherem level. Z.B. wenn du ganze Spiele oder hoch interaktive Grafikanwendungen machen willst, tut man es sich nicht an in OpenGL selbst die Vertices und Shader zusammenzubauen, sondern nimmt stattdessen einfach eine Engine wie Unity, Godot oder Unreal.
Für Animationen und Visuelle Komponenten haben mittlerweile die meisten Frameworks Hardwarebeschläunigte Möglichkeiten. Delphi hat FireMonkey, .Net hat WPF, für Webanwendungen hast du CSS und das HTML5 Canvas, etc.
Und während Grafisch polierte und Flüssige Anwendungen immer wichtiger werden, gibt es Gleichzeitig auch viel mehr Bibliotheken und co die einem das Vereinfachen. Klar benutzt das alles OpenGL/Vulcan oder DirectX im Hintergrund, aber das ist halt wie mit Assembly und Hochsprachen, warum mit dem Sperrigen Primitiven arbeiten wenn es einfachere Alternativen gibt.
Beispiel, du willst einen Schatten in OpenGL, dann musst du neben OpenGL für die ganzen Vertices auch noch die zusätzliche Shader Sprache GLSL lernen um einen Schattenshader über deine Vertices zu legen.
In CSS geht das so:
Für Animationen und Visuelle Komponenten haben mittlerweile die meisten Frameworks Hardwarebeschläunigte Möglichkeiten. Delphi hat FireMonkey, .Net hat WPF, für Webanwendungen hast du CSS und das HTML5 Canvas, etc.
Und während Grafisch polierte und Flüssige Anwendungen immer wichtiger werden, gibt es Gleichzeitig auch viel mehr Bibliotheken und co die einem das Vereinfachen. Klar benutzt das alles OpenGL/Vulcan oder DirectX im Hintergrund, aber das ist halt wie mit Assembly und Hochsprachen, warum mit dem Sperrigen Primitiven arbeiten wenn es einfachere Alternativen gibt.
Beispiel, du willst einen Schatten in OpenGL, dann musst du neben OpenGL für die ganzen Vertices auch noch die zusätzliche Shader Sprache GLSL lernen um einen Schattenshader über deine Vertices zu legen.
In CSS geht das so:
Code: Alles auswählen
drop-shadow(0 0 0 black);
- corpsman
- Lazarusforum e. V.
- Beiträge: 1617
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Kein Bedarf an OpenGL / Vulkan
Also ich setze immer noch gern und viel OpenGL ein
, verzwinge es aber nicht, so habe ich das Sunburst chart und die CirclePack Charts als LCL Componenten entwickelt.
Meistens ist OpenGL auch bei 2D- Anwendungen aber dennoch Sinnvoll. Wie Mathias ja bereits bemerkt hat ist das gerade bei Animationen sehr praktisch. Im CCM setzte ich es z.B. einfach nur zum Darstellen der Google Map ein (OpenGL Google map Demo). Ich habe mir dazu meine eigenen units gebastelt und stelle diese zur Zeit Stück für Stück online (Link). Leider trifft aber auch zu was Warf geschrieben hat. Die ganzen Shader wurden nach meinem Studium "erfunden" und ich hab es leider bisher immer noch nicht geschafft diese ordentlich zu verstehen / lernen und damit auch zu nutzen ;/. Und dass obwohl es doch hier Tutorials gibt...
Wer also wie ich nur auf die Low Level sachen setzt und irgendwann mal alle seine Units zusammen hat. Der braucht da tatsächlich nicht mehr viel neues..

Meistens ist OpenGL auch bei 2D- Anwendungen aber dennoch Sinnvoll. Wie Mathias ja bereits bemerkt hat ist das gerade bei Animationen sehr praktisch. Im CCM setzte ich es z.B. einfach nur zum Darstellen der Google Map ein (OpenGL Google map Demo). Ich habe mir dazu meine eigenen units gebastelt und stelle diese zur Zeit Stück für Stück online (Link). Leider trifft aber auch zu was Warf geschrieben hat. Die ganzen Shader wurden nach meinem Studium "erfunden" und ich hab es leider bisher immer noch nicht geschafft diese ordentlich zu verstehen / lernen und damit auch zu nutzen ;/. Und dass obwohl es doch hier Tutorials gibt...
Wer also wie ich nur auf die Low Level sachen setzt und irgendwann mal alle seine Units zusammen hat. Der braucht da tatsächlich nicht mehr viel neues..
--
Just try it
Just try it
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Kein Bedarf an OpenGL / Vulkan
Dann schau dieses auch mal an, dies habe ich vor ein paar Jahren gemacht.Und dass obwohl es doch hier Tutorials gibt...
https://wiki.delphigl.com/index.php/Laz ... 3_Tutorial
Da habe ich alles beschreiben, wie dies mit den Shadern funktioniert. Wen man es Schritt für Schritt durchgeht, sollte es keine Hexerei sein.
Das mit den Shadern ist voll Low Level, man hat fast unbegrenzte Möglichkeiten.
Gut möglich, dafür aber nicht so spannend.tut man es sich nicht an in OpenGL selbst die Vertices und Shader zusammenzubauen, sondern nimmt stattdessen einfach eine Engine wie Unity, Godot oder Unreal.
Schatten Effekte ist wohl eines der schwierigsten Thema von OpenGL, ich habe es bis jetzt auch nicht hingekriegt.Beispiel, du willst einen Schatten in OpenGL, dann musst du neben OpenGL für die ganzen Vertices auch noch die zusätzliche Shader Sprache GLSL lernen um einen Schattenshader über deine Vertices zu legen.
Ein einfacher Schatten auf einem glatten Boden ist noch machbar, aber wen es Unebenheiten hat wird es sehr schwierig.
DirektX fasse ich nicht an, dies ist voll M$ lastig.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 945
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Kein Bedarf an OpenGL / Vulkan
Man könnte auch einfach eine Engine wie Castle Engine nehmen. Da sie in Object Pascal für Object Pascal geschrieben ist, kann man sich anschauen wie die Dinge gemacht werden.Mathias hat geschrieben: Mo 23. Okt 2023, 14:17Gut möglich, dafür aber nicht so spannend.tut man es sich nicht an in OpenGL selbst die Vertices und Shader zusammenzubauen, sondern nimmt stattdessen einfach eine Engine wie Unity, Godot oder Unreal.
Schatten Effekte ist wohl eines der schwierigsten Thema von OpenGL, ich habe es bis jetzt auch nicht hingekriegt.Beispiel, du willst einen Schatten in OpenGL, dann musst du neben OpenGL für die ganzen Vertices auch noch die zusätzliche Shader Sprache GLSL lernen um einen Schattenshader über deine Vertices zu legen.
Ein einfacher Schatten auf einem glatten Boden ist noch machbar, aber wen es Unebenheiten hat wird es sehr schwierig.

FPC Compiler Entwickler
-
- Beiträge: 1
- Registriert: Fr 27. Okt 2023, 19:38
Re: Kein Bedarf an OpenGL / Vulkan
Hallo liebe Gemeinde,
allerhöchsten Respekt für dieses Forum und deren Mitlieder und allerhöchsten Respekt dir, PascalDragon.
Ich bin bei Delphi 2009 Prof geblieben und nutze Lazarus gern nebenbei und liebe es, derzeit unter Win 11.
Also Hobbyproger befasse ich mich gern mit OpenGL und DXF (CNC).
Wie jeder andere auch, informiert man sich gern über den neuesten Stand der Dinge.
Mein Fazit über Castle Engine:
Ehrlich gesagt, habe ich leider gar keine Ahnung was man damit ernsthaft machen soll.
Auf mich wirkt es etwas zu unfrisch und "zu kompliziert".
Hinzufügen möchte ich noch, dass ich den Lazarus-Entwicklern meinen Dank aussprechen möchte.
Auf weitere viele Jahre mit Lazarus.
allerhöchsten Respekt für dieses Forum und deren Mitlieder und allerhöchsten Respekt dir, PascalDragon.
Ich bin bei Delphi 2009 Prof geblieben und nutze Lazarus gern nebenbei und liebe es, derzeit unter Win 11.
Also Hobbyproger befasse ich mich gern mit OpenGL und DXF (CNC).
Wie jeder andere auch, informiert man sich gern über den neuesten Stand der Dinge.
Mein Fazit über Castle Engine:
Ehrlich gesagt, habe ich leider gar keine Ahnung was man damit ernsthaft machen soll.
Auf mich wirkt es etwas zu unfrisch und "zu kompliziert".
Hinzufügen möchte ich noch, dass ich den Lazarus-Entwicklern meinen Dank aussprechen möchte.
Auf weitere viele Jahre mit Lazarus.
-
- Beiträge: 6899
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Kein Bedarf an OpenGL / Vulkan
Ist sowas mit fertigen Engines auch möglich ?Es gibt mittlerweile sehr viele Alternativen auf deutlich Höherem level. Z.B. wenn du ganze Spiele oder hoch interaktive Grafikanwendungen machen willst, tut man es sich nicht an in OpenGL selbst die Vertices und Shader zusammenzubauen, sondern nimmt stattdessen einfach eine Engine wie Unity, Godot oder Unreal.
Die Mesh auf dem Bild ist animiert.
Die Animation wird im Tesselations-Shader generiert.
Als Eingabe habe ich nur einen einfachen Würfel.
Code: Alles auswählen
if (isSinus) {
float si = sin((gl_Position.z + sinOfs) * 20) / 8 - 1;
gl_Position.x *= abs( si);
si = sin((gl_Position.z + 1.5 + sinOfs) * 19) / 8 - 1;
gl_Position.y *= abs( si);
si = sin((gl_Position.x + sinOfs) * 13) / 8 - 1;
gl_Position.y *= abs( si);
si = sin((gl_Position.x+1.5 + sinOfs) * 14) / 8 - 1;
gl_Position.z *= abs( si);
si = sin((gl_Position.y + sinOfs) * 17) / 8 - 1;
gl_Position.z *= abs( si);
si = sin((gl_Position.y+1.5 + sinOfs) * 13) / 8 - 1;
gl_Position.x *= abs( si);
}
- Dateianhänge
-
- Bildschirmfoto vom 2023-10-28 13-47-54.png (35.87 KiB) 6361 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Kein Bedarf an OpenGL / Vulkan
Klar, du kannst in einer Engine dir auch deine Polygone und shader selbst zusammen bauen. Ist normalerweise weniger effizient, da die Engine einiges abstrahiert, dafür sind andere sachen einfacher und besser optimiert.
Und versuch mal jetzt noch code hinzuzufügen das 2 von diesen objekten miteinander kollidieren und physikalisch korrekt voneinander abprallen. In Godot würdest du deine Form als ConcavePolygonShape definieren, einen PhysicsBody hinzufügen und mit 2 klicks im GUI Kollision anschalten und es funktioniert ohne eine einzige Zeile Code zusätzlich zu schreiben.
Tatsächlich steht Pascal GDNative integration auf meiner Liste mit Projekten die ich mal machen möchte. Godot hat nämlich ein sehr gutes System um beliebige Sprachen einzubinden, da man einfach die Engine Scripte als DLL schreiben kann und gegen die Engine linken kann. Damit funktioniert auch Debugging und co aus anderen Editoren/IDEs heraus. Könnte man also relativ einfach mit ein paar packages mit Lazarus integrieren.
Leider habe ich zu viele ideen und viel zu wenig Zeit um alles umzusetzen
Und versuch mal jetzt noch code hinzuzufügen das 2 von diesen objekten miteinander kollidieren und physikalisch korrekt voneinander abprallen. In Godot würdest du deine Form als ConcavePolygonShape definieren, einen PhysicsBody hinzufügen und mit 2 klicks im GUI Kollision anschalten und es funktioniert ohne eine einzige Zeile Code zusätzlich zu schreiben.
Tatsächlich steht Pascal GDNative integration auf meiner Liste mit Projekten die ich mal machen möchte. Godot hat nämlich ein sehr gutes System um beliebige Sprachen einzubinden, da man einfach die Engine Scripte als DLL schreiben kann und gegen die Engine linken kann. Damit funktioniert auch Debugging und co aus anderen Editoren/IDEs heraus. Könnte man also relativ einfach mit ein paar packages mit Lazarus integrieren.
Leider habe ich zu viele ideen und viel zu wenig Zeit um alles umzusetzen