Hallo!
Im Moment arbeite ich an einer kleinen "Outdoor-Engine", die unter anderem Heightmaps darstellen soll. Ich habe mich dazu entschlossen, mich erst einmal nur auf die statische Heightmap-Umgebung zu konzentrieren. Gerade bin ich bei der Optimierung. Die Engine funktioniert wie folgt:
Beim Ladeprozess werden die entsprechenden Heightmaps geladen. Die Vertexdaten - zusammen mit den Normalendaten und den Texturkoordinaten - packe ich in ein VBO im VRAM. Ich benutze hierfür die "Optimierung" GL_STATIC_DRAW. Es werden neun VBOs geladen. Für jedes VBO wird einmal eine Textur gebunden.
Beim Rendervorgang binde ich dann jeweils jeden Puffer mittels glBindBuffer(GL_ARRAY_BUFFER, Nummer); und rendere nach dem Binden die Vertexdaten aus dem VBO mittels glDrawArrays. die Arrays "fülle" ich mit glInterleavedArrays, mit den einzelnen Pointern wie glVertexPointer geht's auch - ist genauso schnell.
Viel mehr passiert beim Rendern auch nicht. Ich wundere mich nur ein wenig über die Geschwindigkeit. Ich hab eine Geforce 7600 GT, also nicht die langsamste Karte und habe bei 2,13 Millionen Triangles eine Framerate von 20-24. Also maximal etwa 51 Millionen Dreiecke pro Sekunde, bei einer texturierten Landschaften, wobei nur 9 Texturen pro Rendervorgang gebunden werden.
Mach ich irgendwas falsch? Muss ich irgendwie anders rendern?
Registriert: Mo Sep 02, 2002 15:41 Beiträge: 867 Wohnort: nahe Stuttgart
Zu dem Thema selbst muss ich zugeben, kann ich eigentlich relativ wenig sagen. Aber da du wahrscheinlich aufgrund der nachtlichen Zeit relativ lang auf Antworten wirst warten müssen, will ich es zumindest grade versuchen. Wenn du dir diesen Thread anschaust: viewtopic.php?t=6671 scheint deine Framerate eigentlich noch im Rahmen zu liegen, da mehr Triangles wahrschienlich nicht gehen.
Ansonsten bringt es auch einiges, die Suchfunktion (oder Google) mit Stichwörtern wie VBO und/oder Optimization zu füttern, die dürften noch einige Informationen ausspucken.
Was mir spontan noch zum Thema Outdoor und Optimierung einfällt: Octree, Backface_Culling, Frustum_Culling und Level_of_Detail (LOD). Oder auch Techniken_und_Algorithmen#Raumunterteilungstechniken. Hier natürlich auch wieder Quellen wie Sufu, WP, Google etc.
Ansonsten wirst du auf kompetetenere Antworten warten müssen
Ich bin froh, dass die Rate dann doch im Bereich des Normalen ist. Was mich nur wundert ist die Demo Sascha Willems auf http://www.saschawillems.de/?page_id=100 zu den VBO's. Da schafft mein Rechner etwa 430 MTris/s. Und das ist ja schon ein gewaltiger Unterschied. Liegt das dann tatsächlich nur an der geringeren Auflösung in der Demo?
Naja, ich denke, ich werde mir heute mal die Techniken angucken, um die Polygonanzahl zu verringern.
Edit: Backface-Culling bringt mir übrigens komischerweise nicht einen Frame pro Sekunde mehr :)
Mitglieder in diesem Forum: 0 Mitglieder und 24 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.