ich habe nun mein Modelrenderer auf VBO umgestellt und musste merken, das die VBOs je nach Scene ca 5-6fps langsamer sind als die Displaylisten.. Die CPU Auslastung bleibt in etwa gleich. Woran kann das liegen? Irgendwie verstehe ich auch die Aussage nicht "ab OpenGL 4 sind Displaylisten nicht mehr dabei".. wie genau sagt man denn das man die App in OpenGL 4 ausführen will? Schaltet der Treiber vielleicht irgendwie auf 2.0 runter weil ich Displaylisten irgendwo verwende?
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Thmfrnk hat geschrieben:
Moin,
ich habe nun mein Modelrenderer auf VBO umgestellt und musste merken, das die VBOs je nach Scene ca 5-6fps langsamer sind als die Displaylisten.. Die CPU Auslastung bleibt in etwa gleich. Woran kann das liegen? Irgendwie verstehe ich auch die Aussage nicht "ab OpenGL 4 sind Displaylisten nicht mehr dabei".. wie genau sagt man denn das man die App in OpenGL 4 ausführen will? Schaltet der Treiber vielleicht irgendwie auf 2.0 runter weil ich Displaylisten irgendwo verwende?
Grüße, Thomas
Meine erste Vermutung wäre jetzt das du bei deinen VBOs größere Datenmengen/Frame zum GRAM schickst.
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Wenn du nicht weißt, welche OpenGL-Version du gerade nutzt, dann heißt das eigentlich immer, dass du mit OpenGL < 3.0 arbeitest. Sonst ist nämlich extra Arbeit nötig beim Erstellen des Kontextes.
Beim Anlegen von Displaylisten kann es gut sein, dass der Treiber einige Optimierungen an den Daten vornimmt. Z.B., dass er die Vertices in einer für den Vertexcache günstigen Reihenfolge ablegt, oder dass er noch einen Indexbuffer anlegt (wobei das schon relativ aufwendig wäre). Diese Optimierungen muss man bei VBO / IBO manuell machen, kommt aber dafür potenziell sogar zu besseren Ergebnissen.
Was genau muss denn gemacht werden damit ich OpenGL 4 habe? Ich nutze auch geometryshader etc. Funktioniert alles. Welche Vorteile hätte es explizit ogl4 zu implementieren?
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Soweit ich weiß reicht es aus wenn dein OGL Kontext in der entsprechenden Version aufsetzt (die Meisten libs haben dafür schon was). Prinzipiell würde ich aber davon abraten, da die Vorteile definitiv nicht die teils sehr massiven Nachteilen ausgleichen. Das hängt aber natürlich wiederum von dem ab was du machen willst....
Registriert: Di Aug 09, 2011 07:33 Beiträge: 163
Programmiersprache: C/C++
Wenn ich mal meine Frage einschieben darf: Was erhofft man sich davon überhaupt? Das neue OpenGL setz ja vorallem auf Shader und viele alte Funktionen wurden entfernt (ich sag nur Fixed Function Pipeline) aber ich will nicht verstehen warum? Klar gab es Befehle wie glBegin usw. die durchaus raus können, da man damit nicht mehr wirklich vernüftig arbeiten kann aber es gibt doch Befehle wo ich das infrage stellen würde... zumal es die Arbeit erleichtert und auch für Einsteiger einfacher macht (wobei ich natürlich auch verstehe, dass man darauf eher weniger Rücksicht nimmt).
Mitglieder in diesem Forum: Majestic-12 [Bot] 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.