OpenGL C++ (mit Qt) "Best Practice" für 3D-Modelle
-
Hallo Programmierer,
kurz gesagt habe ich mehrere Modelle, die ich nacheinander anzeigen möchte. Ich hatte den Versuch gestartet, da die Modelle während der Runtime erstellt werden, die Punktkoordinaten einfach bei der Erstellung in einer TXT abzulegen, und nach der Erstellung wieder in den Zwischenspeicher zu laden und von dort aus dann zu zeichnen. Die Performance ist bei der gegebenen Anzahl der Punkte (deutlich über 100.000 wahrscheinlich, es handelt sich um Geländemodelle) beim auslesen ziemlich schlecht. Darstellung über GL_QUADS funktioniert problemlos. Mit anderen Worten, bevor eine Datei geladen ist, besteht schon Bedarf an der nächsten (ca. 5 Sekunden Zeit zum Laden der einzelnen Daten).
Meine Frage ist also: welche Möglichkeit habe ich mit OpenGL / C++ (und ggf. Qt), mehrere Modelle mit hoher Polygonzahl zu Laden / zu "Precachen" / vorzubereiten, um diese rel. schnell einzuladen. Wie gesagt: erstellt werden diese während der Runtime. Denkbar wäre auch, da die Polygonzahl und Position der einzelnen Punkte immer gleich ist, ein Modell zu animieren.Schonmal danke fürs Lesen
Grüße
-
Kannst du die Daten nicht einfach im Speicher halten?
Wenn nein dann ist eine Binärdatei von Performance wegen wohl sicher schonmal besser geeignet als eine Textdatei. Vielleicht wär überhaupt ein memory-mapped-file auch ne Idee?
Wenn du maximale Renderperformance willst verwend Vertex Buffer Objects und indizierte Dreieckslisten.