Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   OpenGLWidget (https://www.delphipraxis.net/33790-openglwidget.html)

Blechwolf 12. Nov 2004 15:10


OpenGLWidget
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

im Anhang findet sich eine von mir entwickelte Komponente, die es erlaubt einfache OpenGL Fenster auf das Form zu setzen. Desweiteren ist noch ein kurzes Beispiel angehangen.
Diese Komponente macht nichts anderes als die Initialisierung die in div. Tutorials vorgestellt wird auf eine Komponente zu übertragen, so daß nicht das komplette Form für OpenGL initialisiert wird, sondern auch noch Platz für "normale" VCL komponenten bleibt. Das ist für Spiele vielleicht nicht so spannend, aber für wissenschaftliche Anwendungen relativ interessant.

Testen, Feedback geben und dran freuen.

Grüße

Wolf

[EDIT]
Na wenn das mal kein würdiger 100. Beitrag ist :angel:
[/EDIT]

Ultimator 12. Nov 2004 15:23

Re: OpenGLWidget
 
Hi Blechwolf :hi:

Am besten du postest sowas das nächste mal in die entsrechende Kategorie, also entweder Open-Source oder Freeware ;-)

Blechwolf 12. Nov 2004 15:40

Re: OpenGLWidget
 
Ok, fürs nächste mal dann. Hab lange überlegt wo ich es denn am besten reinpacken soll. Vielleicht kann ja einer der Moderatoren so nett sein und das in das seiner Meinung am besten geeignete Forum verschieben...

Ultimator 12. Nov 2004 15:49

Re: OpenGLWidget
 
Also ich hab mir die Komponenten jetzt mal runtergeladen, und ich muss sagen: das Teil ist Super :thuimb:

Ich glaube, das ist eine der nützlichsten Kompos, die ich jemals gesehen habe.
Das, was mich nämlich ständig davon abgehalten hat, ein OpenGL-Grafik-Projekt zu starten, war diese nervige Initialisierung :-)

Aber nun steht dem nichts mehr im Wege.

Blechwolf 23. Nov 2004 19:43

Re: OpenGLWidget
 
Liste der Anhänge anzeigen (Anzahl: 1)
Update...

Anbei eine neue Version des OpenGLWidgets. Hab ein paar Wanzen genagelt... ;o)
Auf Neudeutsch: Bugs gefixt...

Kernel32.DLL 24. Nov 2004 09:10

Re: OpenGLWidget
 
Sehr coole Komponente, allerdings:

Delphi 5 Professional meckerte:
"Datei *.dcr kann nicht gefunden werden"


Nachdem ich {$R *.dcr} im Implementation-Abschnitt gelöscht hatte gings aber...

Ich glaube, diese Kompo nehme ich für ein "Info"-Fenster...

Feines Ding :thumb:

************************************************** **********************************

Zitat:

Zitat von Blechwolf
Hab ein paar Wanzen genagelt...

Wen du so alles nagelst.... :stupid:

************************************************** **********************************

DP-Maintenance 24. Nov 2004 09:38

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "VCL-Komponenten und Controls" nach "Open-Source" verschoben.
Ich war mal so nett den Thread zu verschieben ;-)

Blechwolf 26. Nov 2004 13:59

Re: OpenGLWidget
 
Liste der Anhänge anzeigen (Anzahl: 2)
Und noch ein Update.
Hab die Kamera in das Widget ausgelagert. Und die DCR Datei mit dazugepackt...

Kernel32.DLL 26. Nov 2004 15:05

Re: OpenGLWidget
 
Wenn die Kompo weiter so wächst, wäre vielleicht eine Doku angebracht... *hoff*

Blechwolf 30. Nov 2004 14:29

Re: OpenGLWidget
 
Zitat:

Zitat von Kernel32.DLL
Wenn die Kompo weiter so wächst, wäre vielleicht eine Doku angebracht... *hoff*

Gibts 100%. Spätestens in meiner Diplomarbeit Ende Juni. Dafür mach ich den Quatsch nämlich. Will 2-3 OpenGL-Fenster auf einem Form haben, GLScene ist zu langsam (ok, auch vom rendering her einfacher weil man weniger mit OpenGL direkt zu tun hat) und sonst hab ich nix gefunden...
Mal sehen was ich noch alles darein auslagere...

Gruß

Wolf

Blechwolf 1. Dez 2004 13:43

Re: OpenGLWidget
 
Liste der Anhänge anzeigen (Anzahl: 1)
Noch ein Bugfix...
Jetzt funktioniert auch das vergrößern, wenn das Widget nicht auf "Client aligned" ist und mehrere Widgets im Fenster drin sind.

Benötigt das vorherige Package, da hier nur die OGLWidget.pas Datei dranhängt.

Btw: Warum darf ich eigentlich

asc c cc cpp h hh hpp ini js txt xml

aber keine pas Files anhängen :-(

[edit]
Und wie kann ich versehentliche doppelte Beiträge löschen?
[/edit]

Gruß

Wolf

Blechwolf 1. Dez 2004 13:43

Re: OpenGLWidget
 
Liste der Anhänge anzeigen (Anzahl: 1)
Noch ein Bugfix...
Jetzt funktioniert auch das vergrößern, wenn das Widget nicht auf "Client aligned" ist und mehrere Widgets im Fenster drin sind.

Benötigt das vorherige Package, da hier nur die OGLWidget.pas Datei dranhängt.

Btw: Warum darf ich eigentlich

asc c cc cpp h hh hpp ini js txt xml

aber keine pas Files anhängen :o(

Gruß

Wolf

Schuster 10. Dez 2004 09:49

Re: OpenGLWidget
 
Muß sagen nicht schlecht die Komponente
:dp:

torud 24. Jan 2005 08:51

Re: OpenGLWidget
 
Hallo Leute,

könnte mir jemand bitte einen Tipp geben, wie ich diese Kompo zum Einsatz bringen kann?

Habs installiert, kann aber nichts damit anfangen?

Wie nutzt man das?
Wie erzeugt man neue Objekte?
Wozu kann man den Renderer nutzen?

Was soll das Beispiel uns zeigen?

Danke Tom

Blechwolf 24. Jan 2005 10:18

Re: OpenGLWidget
 
Hi Torud,

Letztlich ist es ganz einfach, setzt allerdings gewisse OpenGL Grundkenntnisse voraus.
Die Komponente macht nämlich nix anderes als einen OpenGL-Context zu erzeugen. Das OnRender Ereignis wird jedesmal beim neuzeichnen aufgerufen.
Da OpenGL aber keine Scenegraph-API ist (wie z.B. OpenInventor oder Java3D oder GLScene) sondern eben eine Render-API kannst Du keine "Objekte" erzeugen, sondern mußt explizit angeben wie Deine Objekte gezeichnet werden müssen. Um Beispielsweise ein Dreieck zu zeichnen sagst Du:

Delphi-Quellcode:
glBegin(GL_TRIANGLES);
  glVertex3f(x1,y1,z1);
  glVertex3f(x2,y2,z2);
  glVertex3f(x3,y3,z3);
glEnd();
In anderen Worten: Wenn Du ein Objekt zeichnen willst, mußt Du jede Fläche und für jede Fläche jeden Vertex angeben (sieht man mal von Strip-Objekten ab).


Zitat:

Zitat von torud
Wie nutzt man das?

Einfach aufs Form ziehen und in das OnRender Ereignis den OpenGL-Code zum Rendern tippen

Zitat:

Zitat von torud
Wie erzeugt man neue Objekte?

Gar nicht. Ist ein reiner Wrapper für OpenGL und keine Scenegraph API

Zitat:

Zitat von torud
Wozu kann man den Renderer nutzen?

Um OpenGL-Code reinzuschreiben

Zitat:

Zitat von torud
Was soll das Beispiel uns zeigen?

Wie die Komponente initialisiert wird und wo man den OpenGL Code reinschreibt.

In diesem Sinne von viel Erfolg

Wolf


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz