Ich hab n Prob: ich rendere mit Delphi (VCL) & OGL ne kleine Landschaft, welche sich aus etwa 4096 Quadraten zusammensetz, welche jeweils 2x gerendert werden (wegen einer Detail-Textur)... Die ganzen Infos kommen in eine Displaylist, die ich zu Anfang meines programms anlege. Das Problem: ich habe zwar "nur" eine TNT 2 - Graka, aber ich denke doch mal, das irgendwie mehr als 8 Frames! pro Sekunde drin sein sollten...besonders bei nur 8192 zu berechnenden Vierecken ....... woran könnte das liegen, dass das Prog soooo lahm ist?!? :angry: :blink:
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zum einen sind 8192 Polygone nicht gerade wenig für ne TNT2, da das insgesamt bei 8fps nen Polycount von 64k Quads = 128k Triangles ergibt, was im Anbetracht der Tatsache das Titel wie UT (die zu TNT2-Zeiten ja aktuell waren) weit weniger Dreiecke darstellen, zum anderen aber dürfte das Blending deinem Programm (bzw. deiner Karte) den Gar ausmachen, denn wie bekannt ist Blending sehr grafikkartenintensiv, und macht deiner TNT2 zusammen mit dem hohen Polycount stark zu schaffen.
Lösung: Mach aus dem Multipassrendering ein Singlepassrendering via Multitexturing, und stell deine Landschaft optimiert mittels Trianglestrips und evtl. LOD dar, dann sollte das Ganze ein gutes Stück schneller laufen.
Danke für die Antwort.... hmm .... das mit dem Triangle-Strip (oder allgemein Triangles) kann ich machen..... Aber eine Frage: Auf wieviele Triangles kann die TNT2 eigendlich so etwa leisten? Ich wollte das ganze nämlich so machen, das es auf meiner "Gurke" so etwa mit 20 FPS löpt... ich müßte blos wissen, auf wieviele triangles ich runter muss... dann könnte ich sowas LOD - ähnliches durchaus machen......
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Auf dem Papier schafft ne TNT2 circa 9 Millionen Polygone pro Sekunde.Leider sind die Angaben theoretisch, und behinhalten weder Angaben über Größe oder Form der Polygone.
Allerdings ist diese Zahl eigentlich nur dann brauchbar, wenns recht kleine Polygone sind (also die Füllrate der Graka nicht überfordert wird), und diese dann auch noch ohne Texturen bzw. Blending oder sonstigen Schnick-Schnack gerendert werden.
Für deinen Fall (also Doppelpass, einmal Base und einmal Detail via Blending) dürften es wohl kaum mehr als 64k sein, während du beim Multitexturing locker das doppelte zur Graka senden kannst, und je nach LOD kannste das Ganze mit viel Glück bis auf 256K Triangles hochschrauben.
Auch wichtig : Da deine TNT2 kein HW TnL beherrscht, spielt die CPU ne relativ große Rolle beim Dreiecksdurchsatz.Mit ner schwachen CPU solltest du obige Zahlen nochmal etwas nach unten korrigieren.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also ich habe bei mir (TNT2, Duron 1.2GHz) und mein Polygondurchsatz liegt bei ca. 900k die Sekunde. Und zwar benutze ich ein 128x128 Surface mit einer 1024er Textur. Und das Ganze wird im Singlepass, ohne Blending, als Quads in einer Schleife (Ohne VA, DL) gerendert. Ich habe auch mal ein Testprogramm laufen lassen lassen und der hat mit Vertexarray ca. 1.2M Polygone bekommen.
@DCW_Mr_T: Wie renderst du deine Landschaft denn? Und zwar würde mich interressieren wie du glBegin und glEnd eingesetzt hast? Unter gewissen Bedingungen konnte ich festellen, dass folgender Code 4-10 mal schneller war.
Code:
glBegin(GL_QUADS)
for Row := 0 to row-1 do begin
for Row := 0 to row-1 do begin
// Render Quad
end;
end;
glEnd;
Als dieser hier!
Code:
for Row := 0 to row-1 do begin
for Row := 0 to row-1 do begin
glBegin(GL_QUADS)
// Render Quad
glEnd;
end;
end;
Und es spielt dort auch keine Rolle ob das in einer Displaylist gespeichert war! Das glBegin und glEnd ist ja auch in der Liste mit drinne.
hmm ... vielleicht liegts daran... Danke, das werde ich gleich mal testen!
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Hmm ... also funzen Tut es ... aber nur mit einer Textur Zumindest bekomme ich aus irgendeinem Grunde massive Probs mit dem Blending.... Naja, egal: Ich werde mal sehen, ob sich damit doch noch was machen läßt (notfalls die Textur solange bearbeiten, bis sie auch alleine gut aussieht) und ansonsten werde ich mal sehen, ob ich eine LOD-Implementierung hinbekomme..... Oder hat sonst noch wer Vorschläge zur Verbesserung?
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Registriert: Mo Mai 06, 2002 20:27 Beiträge: 479 Wohnort: Bremen
Wenn du Multitexturing anstelle der zwei geblendeten Texturen benutzt sollte es eigentlich funktionieren. Allerdings weiß ich net in wieweit Multitexturig von deiner TNT2 unterstützt wird...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
lithander hat geschrieben:
Wenn du Multitexturing anstelle der zwei geblendeten Texturen benutzt sollte es eigentlich funktionieren. Allerdings weiß ich net in wieweit Multitexturig von deiner TNT2 unterstützt wird...
Wenn du dir klar machst, wofür TnT(2) steht, sollte dir schalgartig klar werden, das sie es kann : TwinTexel Engine. Die TNT-Karten waren die ersten 3D-Beschleuniger die Multitexturing auf einem Chip vereinbarten.
Die Sache mit dem Multitexturing hab ich ja auch bereits schon in meinem ersten Post erwähnt.MT ist gegenüber einer Multipasslösung immer vorzuziehen (wenns die Hardware kann), denn mal davon abgesehen das durch MP doppelt so viele Dreiecke gerendert werden müssen, killt das Blending die Performance der TNT2 aufgrund ihrer geringen Füllrate.Dieses Problem dürfte beim Multitexturing nicht bestehen.
An sich habt ihr recht.... blos irgendwie habe ich bislang immer Probleme mit dem Multitexturing gehabt und daher das Blending vorgezogen.... siehe: <a href='http://www.phobeus.de/hosting/dgl/forum/index.php?act=ST&f=2&t=810' target='_blank'>http://www.phobeus.de/hosting/dgl/forum/in...ct=ST&f=2&t=810</a> (Das Problem mit dem CPU-Fenster, welches ich mir nicht erklären konnte - und bis heute nicht kann - ....)
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.