Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Welche GraphicLib zum Zeichnen von Polygonen? (https://www.delphipraxis.net/188472-welche-graphiclib-zum-zeichnen-von-polygonen.html)

Jacks 7. Mär 2016 15:36

Welche GraphicLib zum Zeichnen von Polygonen?
 
Hallo,

aktuell versuche ich die Performance meiner graphischen Prozesse zu steigern.

In meiner Anwendung möchte ich mehrere Objekte(Polygone) > 100.000 aus einer Datenbank laden und in einer BitMap darstellen.
Aktuell verwende ich hierfür TCanvas. Leider bin ich mit der Rechendauer noch unzufrieden, deshalb würde ich gerne auf eine alternative Methode umsteigen.

Nach längere Suche im Internet bin ich nicht wirklich schlauer geworden, welche GraphicLib sich hierfür am besten eignet.
- Was würdet Ihr empfehlen?
- Gibt es eine GraphicLib die threadsafe ist?

OpenGL
Graphics32
GDI
GDI+
Direct2D Direct3D
DirectX


Grüße Michael

Neutral General 7. Mär 2016 15:54

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Nunja im Zweifelsfall sind DirectX und OpenGL quasi dafür gemacht Polygone zu zeichnen.
Kannst du vllt. etwas Code zeigen? Vielleicht kann man aus deinem Code ja auch noch was rausholen.
Wenn du allerdings maximale Geschwindigkeit haben willst solltest du DirectX benutzen schätze ich.

PS: DirectX ist unterteilt in u.a. Direct2D und Direct3D, es ist also quasi dasselbe.

Mavarik 7. Mär 2016 15:55

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Zitat:

Zitat von Jacks (Beitrag 1332304)
mehrere Objekte(Polygone) > 100.000 aus einer Datenbank laden und in einer BitMap darstellen.

Polygone 2D->Bitmap? 3D-Projektion->Bitmap?

Zitat:

Zitat von Jacks (Beitrag 1332304)
Gibt es eine GraphicLib die threadsafe ist?

Um was zu erreichen?

Zitat:

Zitat von Jacks (Beitrag 1332304)
DirectX

Doch 3D?

Was hast Du da und was willst Du erreichen?

Neutral General 7. Mär 2016 15:58

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Zitat:

Zitat von Mavarik (Beitrag 1332308)
Zitat:

Zitat von Jacks (Beitrag 1332304)
DirectX

Doch 3D?

DirectX heißt nicht zwangsweise 3D.
(Also technisch natürlich schon, aber ohne Z-Koordinaten und entsprechender Kameraeinstellung ist auch da 2D möglich und ggf. auch sinnvoll).

Mavarik 7. Mär 2016 16:01

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Zitat:

Zitat von Neutral General (Beitrag 1332311)
Zitat:

Zitat von Mavarik (Beitrag 1332308)
Zitat:

Zitat von Jacks (Beitrag 1332304)
DirectX

Doch 3D?

DirectX heißt nicht zwangsweise 3D.
(Also technisch natürlich schon, aber ohne Z-Koordinaten und entsprechender Kameraeinstellung ist auch da 2D möglich und ggf. auch sinnvoll).

:-) wir spekulieren wieder im Kreis... Warten wir doch auf die Antwort vom TE.

Jens01 7. Mär 2016 16:46

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Vulkan fehlt in der Liste noch...:shock:

Jacks 7. Mär 2016 17:24

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Im Grunde möchte ich nur 2D Polygone in der BitMap darstellen. Alle Polygone hole ich sequentiell aus meiner Datenbank und lasse sie mit MyCanvas.Canvas.Polygon zeichnen.

Um die Objekte aus der Datenbank zu holen verwende ich bereits Multithreading mit OTL(Omnithreadlibrary) - An der Stelle lässt sich der Code quasi kaum noch verbessern. Im Gegensatz dazu ist Canvas nicht threadsafe. (deshalb die Frage, ob es vll. eine Variante für das Zeichnen gibt, die threadsafe ist)

Über Vulkan muss ich mich erst noch informieren. Höre ich jetzt zum ersten Mal ;).

Delphi-Quellcode:
//Erstellen einer Verbindung zum SQLSERVER
ConnecttoDatabase(server, database, AdoConnection);
...
...
ThreadQuery.SQL.Add(sqlString);
ThreadQuery.open;

while NOT ThreadQuery.Eof do
begin
        //Objekt holen
        RetrieveObjectFromQuery(ThreadQuery, MyDs);
        ThreadQuery.Next;
        //Polygone zeichnen
        PaintSingleObject(MyDs, BMP,   P2RWMatrix,aImageList);
end;

Jacks 7. Mär 2016 17:41

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
für meine Anwendung ist somit Direct2D sinnvoller als DirectX und Direct3D?

Mavarik 7. Mär 2016 17:43

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Immer abwechselnd Daten holen und Malen?

Würde ich nicht machen...

Jacks 7. Mär 2016 18:01

AW: Welche GraphicLib zum Zeichnen von Polygonen?
 
Zitat:

Zitat von Mavarik (Beitrag 1332332)
Immer abwechselnd Daten holen und Malen?

Würde ich nicht machen...

Ja, aktuell hole ich die Daten mit Multithreading aus der Datenbank. Beim Zeichnen der BMP muss ich dann Canvas sperren - An der Stelle warten meine Threads mit den geladenen Daten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.
Seite 1 von 3  1 23      

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