Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo Aya,
wie genau hast du eigentlich getestet?
Den theoretischen Wert für den Dreiecksdurchsatz, der immer von den Grafikkartenherstellern angegeben wird, erreicht man glaub ich nur unter idealen Bedingungen, also wenn man z.B. depth testing ausschaltet und eine minimale Auflösung verwendet.
Ansonsten hängt die Performance auch immer davon ab, in welcher Reihenfolge du zeichnest.
Sind deine Objekte z.B. von vorne nach hinten sortiert, fallen viele Fragment bereits beim Tiefentest weg und müssen nicht in den Framebuffer gezeichnet werden (auch die Shader würden keine überflüssigen Berechnungen machen).
Ist auch die Frage, ob du solche Sachen wie frustum culling oder Octrees einsetzt...
Bei Szenen mit mehreren Millionen Dreiecken würde ich dir auch unbedingt den Einsatz von LOD(Level of Detail)-Modellen empfehlen (Häufig kommst du mit einigen 10000 Dreiecken pro Szene aus).
das war wie gesagt nur ein spontaner test wieviele polys gehen... Frustumculling und Octrees sind zwar drin in der engine, aber meine 5fps bezogen sich auf den moment, wo das komplette modell zu sehen war = kein vorteil durch frustumculling/occtree
Auflösung war 1280x1024.. also auch durchaus etwas höher :p
Dementsprechend ist das ergebnis welches ich erzielt habe wohl ganz ok. .
Hab das mit dem 4-mio tries dann auch mal probiert in einen einzigen VBO zu packen und mit glDrawRangeElements zu arbeiten, hat keinen spürbaren unterschied gebracht.. lief immernoch mit nur 5-6fps unverändert..
ausgehend von deiner frage hab ich das einfach mal getestet:
basis war ein 3ghz intel cpu, htt, prozessor nummer möge sich jeder selbst suchen, 2 gb ddrram 667 , 9800gto
im fenster 640x480 spukt mein test 1,.4 mio triangles aus,
bei 1280x1024 nur 800 mio.
der witz ist, dass sich das bei änderung der dreieicksparameter nicht wesentlich ändert - egal ob gefüllt, mit textur oder ohne.
shder hab ich nicht getestet, aber ich möchte wetten, dass die schader da auch nicht viel verändern.
geringe unterschide waren bei mir, ob ich alle dreiecke innerhalb eines glbegin /glend blocks gezeichnet hab oder nicht - allerdins lag da im promille-bereich. im anbertracht der verfügbaren grafikkarten würd ich aber jedem der nicht im wissenschaftlichen bereich unterwegs ist von dem aufwand abraten das auf einzelne grafikkarten zu optimieren
ein VBO sollte maximal 64kvertices enthalten,damit zum indizieren ein unsigned short verwendet werden kann. Dazu sollen die VBOs nach möglichkeit indiziert sein effektiv kann man so etwa 128k triangles speichern.
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.