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

Aktuelle Zeit: Mi Jul 09, 2025 20:23

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Liste oder VertexBufferObject
BeitragVerfasst: Do Jul 23, 2009 00:33 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich hab in meinem Programm mehrere Objekte, die an sich immer gleich bleiben und bloß an verschiedenen Orten gezeichnet werden. Zurzeit hab ich die ganzen Vertex in einem Array abgespeichert und zeichne das dann indem ich mit einer Schleife die Daten aus dem Array an die Graka/OpenGL übergeb.
Da dass ja nich grad schnell is, wollte ich dass jetzt etwas umschreiben und bin auf Listen und VBOs gestoßen. Die Frage ist nun, was für mich sinnvoller/einfacher ist?!

Mfg & Thx Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 08:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Listen sind einfacher, aber VBOs in deinem Fall auch nicht wirklich komplizierter.
Von der Performance her dürfte es keinen Unterschied machen, ob du Listen oder VBOs einsetzt. Wenn du VBOs machst, machst du gleich das, was später sehr wichtig werden wird und wenn du Displaylisten nutzt, erweiterst du halt deinen Horizont um eine OpenGL-Funktion - auch wenn du sie früher oder später "über Bord" werfen musst. :)

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 09:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
k, dann werd ich die wo später wieder weg werfen, aber bis jetzt funzt das 1a un ging sehr schnell^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 09:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
VBOs sollten hier das Mittel der Wahl sein. Diese sind einfach flexibler als Displaylisten und auch nicht komplizierter als z.B. das manuelle Laden einer Textur.

Darüberhinaus kannst du das ganze später irgendwann mal um Instancing erweitern. Aber da dies das Einsteiger-Forum ist, ignoriere einfach den letzten Satz ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 11:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Im übrigen habe ich heute Eindrucksvoll gemerkt, dass der Treiber intern EH mit VBOs arbeitet. Der hat mir nämlich nen VBO-Fehler um die Ohren geschmissen, als ich eine Displayliste zeichnen wollte, zu deren Erstellung ich Speicher nutzte, der nicht der meinige ist. :roll:

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 13:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ziz: Richtig. Dieses Verhalten vom Treiber kann sich auch negativ auf die Performance auswirken. Kleinst DisplayListen sollten seit dem vermieden werden, da beim Zeichnen halt intern immer erst einmal ein VBO gebunden und eingestellt werden muss. Das dauert natürlich etwas Zeit. Was mitunter zu einem stattlichen Sümmchen werden kann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 17:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Aber ein Programm "aus der Zeit" des Displaylisten bzw. deren Hauptanwendungszeit dürfte ja trotzdem in der Summe immernoch schneller bzw. mindestens gleich schnell laufen auf neuer Hardware, die Displaylisten nurnoch "emuliert", oder?

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 24, 2009 07:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ziz hat geschrieben:
Aber ein Programm "aus der Zeit" des Displaylisten bzw. deren Hauptanwendungszeit dürfte ja trotzdem in der Summe immernoch schneller bzw. mindestens gleich schnell laufen auf neuer Hardware, die Displaylisten nurnoch "emuliert", oder?

Du kannst wieder fragen Stellen. ;) Auf der einen Seite ist die Hardware natürlich schneller aber auf der anderen Seite wird bei Kleinstlisten der Overhead auch entsprechend größer. Um mal ein Beispiel zu nennen was ich eigentlich meine. Bei meinen Fonts hatte ich das testweise mal so gemacht, dass ich die Quads auf denen die Zeichen dargestellt werden jeweils in eine eigene DisplayListe gelandet sind. Das Zeichnen der Texte war dann im Vergleich zum Imediate Mode deutlich langsamer. Und das obwohl eigentlich eine Technik benutzt wird die es schneller machen sollte.

Ich denke mit der Benutzung von VBOs hätte man da schon etwas mehr rausholen können. Denn der Entwickler selber weiß ja wie er es verwenden will. Der Treiber kann in dem Fall nicht mal raten. So hätte ich zum Beispiel alles in ein VBO packen können und hätte nur Auszüge daraus gezeichnet. Ohne, dass das VBO neu gebunden und eingestellt werden muss. Damit hat man mit VBOs deutlich mehr Einflussmöglichkeiten um die Verwendung gezielter steuern zu können.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.018s | 16 Queries | GZIP : On ]