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

Aktuelle Zeit: Fr Jul 18, 2025 08:43

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



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Aug 20, 2003 22:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 20, 2003 22:26
Beiträge: 38
Wohnort: Dresden (noch)
Hallo!
Wer's noch nicht gemerkt hat, ich bin neu hier im Forum.

Ich programmiere jetzt schon eine ganze Weile mit Delphi und sitze jetzt auch schon etwas länger an einem 2D-Shooter.
Nebenbei programmiere ich auch Visualisierungen und Simulationen für physikalische Experimente.
Bis jetzt hatte ich mich an DelphiX oder einfach Canvas gehalten, weil das schön einfach war, aber jetzt ist das leider ausgereitzt, weshalb ich jetzt auf OpenGL umsteigen will.
Erstens sind die Grafiken in meiner Anwendungen mittlerweile zu komplex geworden, um ausreichend schnell in Software gerendert zu werden und zweitens bietet DelphiX paraktisch keine visuellen Effekte, die über die Canvas-Befehle hinausgehen.
In GLScene hab ich mich schon mal etwas eingearbeitet, aber das ist echt nur gut für 3D-Anwendungen.

Lange Rede, kurzer Sinn...

Ich suche jetzt nach leistungsstarken GL-Classes, Packages, was immer ihr empfehlen könnt, um gut 2D-mäßig in OpenGL zu arbeiten.
Wichtig wäre nur erstmal eine Art GL-Zeichenfläche, die man in Formulare einfügen kann, ohne dass sie zwingend da ganze Fenster ausfüllt und in die ich dann zeichnen kann (brauche ich auch für einige andere Projekte in denen es auf schnelles Hardware-Zeichnen ankommt).

Ich programmiere mir die nötigen Klassen auch gerne selber, wenn ihr mir gute Tutorials nennen könnt.
Wichtig wären erstmal die grundlegenden Dinge wie Surfaces erstellen, zeichnen, drehen, strecken, effekte, etc.
Die 1.5er Header hab ich mir auch schon mal runtergeladen und installiert.

Bin dankbar für alles :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 07:28 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Hi,

unter dem Download http://www.cfxweb.net/~delphigl/files/GLCanvas.zip findest Du eine etwas ältere Version einer OpenGL Canvas. Diese wird, soviel ich weis, in der Pythian Game Engine von delphi-jedi.org verwendet.

Gruß
KidPaddle

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 08:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja Hallo erstmal.

OpenGL ist an und für sich auch nur 3D. Es gibt zwar eine Möglichkeit in den 2D Modus zu schalten (siehe faq) aber dann wurde lediglich die Perspektive entfernt. Das nächste was dort auch sein wird. Du besitzt keine richtige Zeichenfläche. Also nix da mit Canvas.pixels. Du musst dabei den Umweg über die OpenGL Primitive machen. (POINT, LINE, QUAD, etc.) wobei ich von dem übermäßigen gebrauch von Points abraten möchte, weil bei zu vielen Punkten ist es nur wieder zu langsam. Sofern sich deine Zeichenoperationen also auf Rechtecke und Linien (vereinzelt auch Points) beschränken kannst du damit wunderbar arbeiten. Texturen und Blending mal nicht mit betrachtet. Die kannst du ja immer und überall machen.

Von solchen "ich kann alles in einem Wunder" wie GlScene kann ich dir nur abraten. Speziell wenn du so etwas wie Datenvisualisierung machen möchtest. Diese Komponenten sind nur dann gut, wenn du genau das machst wofür die geschrieben wurden. Und das ist selten der Fall. Auf den ersten Blick gehts das mit so etwas zwar schneller aber früher oder später stößt du (durch die zu Gute Objektkappselung) an die Grenzen deiner Hardware. Kleines Beispiel in GLScene. TCube. An und für sich geil. Allerdings beim Rendern werden IMMER ALLE Eigenschaften des Objekts nach OpenGL übertragen. Dass ist viel zu viel aufwand und dadurch kann ein Programm gerade mal 15-25% der Hardware ausnutzen. Ich hab das selber schon feststellen müssen. Und jetzt fliegt das zeug raus und wird durch was richtiges ersetzt. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 09:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 20, 2003 22:26
Beiträge: 38
Wohnort: Dresden (noch)
Da hab ich so im Großen und Ganzen den gleichen Eindruck.
Ich versuche jetzt erstmal mir eine von TWinControl abgeleitete Klasse zu basteln, die ich in einem Form aufziehen und in sie zeichnen kann.
Wie das mit Primitives geht ist mir prinzipiell auch klar.
Was mir jetzt noch fehlt sind Befehle für Bitmaps und OffScreenSurfaces.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 09:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Für Bitmaps kannst du jeden beliebigen TexturLoader verwenden und dann per TexturKoordinaten die Texturen auf die Flächen zu bringen.
OffScreenSurfaces nennen sich in OpenGL PixelBuffer.
Das ist ein Renderkontext wie ein normales Fenster und den kannst du als Texture verwenden. Du kannst aber auch normal in den BackBuffer rendern und das dann in die Textur lopieren. Aber bei PixelBuffern kannst du mit Hilfe einer Extension die Daten ohne Umwegen über das Programm die Daten in eine Texturkopieren.
Schau mal auf http://delphigl.cfxweb.net/ nach. Dort gibt es eine Delphi PixelBuffer klasse. Ich habe mir die bisher noch nicht angeshen aber die sollte ganz okay sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 14:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 20, 2003 22:26
Beiträge: 38
Wohnort: Dresden (noch)
Hmm... ich hatte irgendwann schonmal ein schönes Tutorial in Händen, das relativ kurz erklärt hat, wie man pBuffer erstellt, Images hineinläd und sie dann in den Framebuffer rendert... leider finde ich es momentan nicht wieder :cry:

Zumindest hab ich jetzt eine funktionierende Klasse aufgestellt, die OpenGL in ein Handle einer von TWinControl abgeleiteten Klasse rendern lässt.
Hab den code zwar größenteils einfach so übernommen aber ich denke ich blicke auch ganz gut durch.

Nur die folgenden zwei Zeilen, die ich vor dem Rendern aufrufen muss verstehe ich noch nicht ganz:
glLoadIdentity;
glTranslatef(0.0, 0.0, -12.0);

Also wenn mir da wer helfen kann, wäre ich ziehmlich dankbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 14:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Code:
  1.  glLoadIdentity;

Lädt die Identitätsmatrix (in deinem aktuellen Matrizenmodus), setzt also einfach gesagt alle Rotationen, Translationen oder Skalierungen auf ihre Grundwerte zurück.

Code:
  1. glTranslatef(0.0, 0.0, -12.0);

Verschiebt den Ursprung um 12 Einheiten auf der Z-Achse nach hinten.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 21, 2003 14:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 20, 2003 22:26
Beiträge: 38
Wohnort: Dresden (noch)
thx :D


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 » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot] 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]