Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 18:31

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 17, 2003 19:20 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hi Leute!

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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 17, 2003 19:26 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 17, 2003 19:38 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 17, 2003 19:42 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 18, 2003 07:35 
Offline
DGL Member
Benutzeravatar

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:
  1. glBegin(GL_QUADS)
  2.   for Row := 0 to row-1 do begin
  3.     for Row := 0 to row-1 do begin
  4.         // Render Quad
  5.     end;
  6.   end;
  7. glEnd;
  8.  


Als dieser hier!

Code:
  1. for Row := 0 to row-1 do begin
  2.   for Row := 0 to row-1 do begin
  3.     glBegin(GL_QUADS)
  4.       // Render Quad
  5.     glEnd;
  6.   end;
  7. end;
  8.  


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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 18, 2003 19:37 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
hmm ... vielleicht liegts daran...
Danke, das werde ich gleich mal testen! :D

_________________
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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 18, 2003 20:41 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hmm ... also funzen Tut es :D ... 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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 18, 2003 21:15 
Offline
DGL Member
Benutzeravatar

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...

_________________
Selber Denken macht klug!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 18, 2003 21:57 
Offline
DGL Member
Benutzeravatar

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.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 19, 2003 20:39 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
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!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.022s | 17 Queries | GZIP : On ]