Hallo,
ich bin neu hier.
Zu erst muss ich mal sagen, das ich es toll finde, das sich so viele Leute hier nen Menge Arbeit machen!
Die ganzen Tut's, die Beispiele, und die Beiträge in den Foren.
Klasse! Weiter so!
Bin gerade am testen, ob OpenGL für meine Graphik mehr Performance bring.
Graphik ist ein Chart mit beliebig vielen Achsen und Kurven (Anzahl der Werte können pro Kurve > 10.000 sein) .
Performance-Schlucker ist die Umrechnung der Werte (Double) in Integer-Werte für Ployline.
Umfeld: Delphi 7; Windows 2000.
Nun zu meinen Fragen:
1. Kann ich in OpenGL mein Koordinatensystem abbilden?
D. h: kann ich mit Double-Werten zeichnen?
2. Ist OpenGL für diesen Einsatz nicht zu überdimensioniert?
2. Wird OpenGL von Windows unterstützt? Auch weiterhin?
4. Wird OpenGL auch für das .Net-Framework angeboten?
Eure Antworten sind ausschlaggebend dafür, ob ich mit OpenGL weiter experimentiere oder nicht.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hi und Willkommen im Forum!
Wenn du eine einigermaßen gescheite GraKa voraussetzt, hast du mit OpenGL wesentlich mehr Performance,
als wenn du alles über die CPU laufen lässt.
1: Ja, OpenGL kann mit Double Precision Werten rechnen. Das Koordinaten-System abbilden sollte auch kein Problem sein.
2: Nicht unbedingt. Mit OpenGL kann man zwar wesentlich mehr realisieren, aber es schlägt sich auch bei solch "einfachen" Sachen nicht schlecht 3: Ja.
4: Ja, wir haben dafür einen eigenen Header (siehe unten).
Ich hoffe, ich konnte mit meinen (hoffentlich richtigen ) Antworten etwas Klarheit bringen.
Hallo MatReno,
vielen Dank für deine präzisen Informationen.
Und wenn die GraKa nichts taugt?
Übernimmt dann die CPU des Rechners die Arbeit?
Das Chart wird bei Kunden zur Ergebnisanzeige von Prüfanlagen eingesetzt.
Wer weiß was die für ne GraKa haben, aber sicher keine High-End-Karte
Ich schätze mal Standard-Bestückung so PCI 64MB/128MB oder so
Ach ja, ich bin gerade mit der Win-API am testen.
Performance konnte ich bereits durch die Verwendung von Viewport gewinnen.
Einziger Punkt wäre jetzt noch die Umrechnung von Double auf Integer.
Bis jetzt bin ich ganz zufrieden.
Das Chart hat viele Graphik-Objekte
Marker, Cursor, Kurven, Achsen, Beschriftungen.
Würde da OpenGl mehr Sinn machen?
Ich meine so mit verschiedenen Layern (oder so ähnlich ) arbeiten?
Also z. b. Cursor zeichnen und dann auf das bereits vorhanden Bild swappen, ohne das Gesamte Bild neu zeichnen zu müssen.
(Cursor kann auch mir der Maus verschoben werden)
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
ErichGue hat geschrieben:
Und wenn die GraKa nichts taugt? Übernimmt dann die CPU des Rechners die Arbeit?
Da bin ich mir nicht sicher... man kann aber OpenGL sagen, dass es Software-Modus läuft. Bzw. wenn keine OpenGL-Treiber vorhanden sind läuft es automatisch (zumindest unter Windows) im Software-Modus. D.h. die Cpu würde dann die Arbeit übernehmen.
ErichGue hat geschrieben:
Wer weiß was die für ne GraKa haben, aber sicher keine High-End-Karte Ich schätze mal Standard-Bestückung so PCI 64MB/128MB oder so
Eine High-End Karte ist auch bei weitem nicht erforderlich. Weiß jetzt aber nicht wo die Grenze liegt. Eine GeForce 4 würde es schon tun, denke ich.
ErichGue hat geschrieben:
Das Chart hat viele Graphik-Objekte Marker, Cursor, Kurven, Achsen, Beschriftungen. Würde da OpenGl mehr Sinn machen? Ich meine so mit verschiedenen Layern (oder so ähnlich ) arbeiten? Also z. b. Cursor zeichnen und dann auf das bereits vorhanden Bild swappen, ohne das Gesamte Bild neu zeichnen zu müssen.
Es gibt da schon verschiedene Techniken, um nicht immer das gesamte Bild neuzeichnen zu müssen.
Allerdings kenne ich mich da nicht so wirklich gut aus. Zumindest kann man das bereits gerenderte Bild in Textur(en) speichern, sodass man es nicht immer neuzeichnen muss. Es gibt aber noch andere Möglichkeiten.
Aber ich denke dass der Vorteil von OpenGL gerade in der Echtzeit-Darstellung liegt. Du willst ja sicherlich auch, dass man in die Grafik hineinzoomen kann, den Ausschnitt verschieben kann etc.
Ich weiß jetzt nicht genau wie das mit deinem Programm momentan läuft, aber ich kann mir vorstellen, dass es doch schon etwas länger dauert, bis das Chart erstellt wurde.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Zum Header:
.Net-Support wurde wieder entfernt weil es keine Nachfrage gab und es die Wartung verkompliziert hatte. Es gibt aber andere Header für .Net.
Zur Grafikkarte:
Windows liefert eine OpenGL 1.2 Implementation mit. Diese läuft dann rein Software, ist aber nicht toll. Als Alternative gibt es Mesa3D welches einen Softwarerenderer mit OpenGL 2.1 bietet.
Zu den Grafikobjekten:
Marker sind leicht als Textur zu speichern. Cursor wäre auch eine Textur (wobei ich mich gerade frage weshalb er nicht über Windows laufen kann). Achsen sind überhaupt kein Problem, für Kurven kann man Bezierkurven nehmen, bei Beschriftungen schau dir Lossy's TextSuite (->Projektforum) an.
Layer gehen indirekt. Du kannst (weitgehend) statische Elemente in Texturen rendern.
Zum Header: .Net-Support wurde wieder entfernt weil es keine Nachfrage gab und es die Wartung verkompliziert hatte. Es gibt aber andere Header für .Net.
Dann würde das in .Net wahrscheinlich gehen.
i0n0s hat geschrieben:
Zur Grafikkarte: Windows liefert eine OpenGL 1.2 Implementation mit. Diese läuft dann rein Software, ist aber nicht toll. Als Alternative gibt es Mesa3D welches einen Softwarerenderer mit OpenGL 2.1 bietet.
Danke für den Tip!
i0n0s hat geschrieben:
Zu den Grafikobjekten: ... Cursor wäre auch eine Textur (wobei ich mich gerade frage weshalb er nicht über Windows laufen kann).
Ich meine nicht den Mauscursor, sondern Graphik-Cursor, die Dinger, die wie ein Fadenkreuz an einer Kurve hängen und die Kurve abfahren.
i0n0s hat geschrieben:
Achsen sind überhaupt kein Problem, für Kurven kann man Bezierkurven nehmen, bei Beschriftungen schau dir Lossy's TextSuite (->Projektforum) an.
Ich sehe schon, es würde Sinn machen bei der Umsetzung nach .Net mal OpenGL oder Pedanten auszuprobieren.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.