OpenGL: Performance und Vertexpointer
Übersicht

![]() |
eizdealerBetreff: OpenGL: Performance und Vertexpointer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Nachdem ich jetzt stolzer BMX Besitzer bin und ich auch schon ein Bisschen mit OpenGL rumgespielt haben, tun sich mir einige Fragen auf. Angenommen, ich habe alle Eckpunkte der Szene in einem Array. Wie rendere ich jetzt am schnellsten die Triangles? Ein paar Tutorials hab ich zwar zu dem Theme auch schon gelesen, so ganz richtig schlau daraus bin ich aber noch nicht geworden (teilweise waren die auch widersprüchlich). Da stand was von glDrawArrays und/oder glDrawElements. Wie genau übergebe ich die Daten an glVertexPointer bzw. an die anderen Pointer Funktionen? Was für Extensions gibt es, mit denen die Vertexdaten in den HighPerformance RAM (laut NeHe Tutorial) geschrieben werden können, macht das überhaupt Sinn und wie installiere ich die Extension in BMX? Noch etwas: Ist es sinnvoll, Triangledaten zwischenzuspeichern, wenn doch eh alle Daten durch die Reihenfolge der Vertexe gegeben ist? Oder umgekehrt: Kann man nicht einfach nur Triangles speichern? Oder sollte man lieber etwas mehr Speicherverbrauch in Kauf nehmen und dafür mehr Flexibilität haben? Ich hoffe, ihr könnt mit den Fragen etwas anfangen *g* PS: NeHe Tutorials auf deutsch gibts hier, auch wenn die Übersetzungsqualität nicht die beste ist. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ein teil der extension sind in Blitzmax
für die anderen müsstest du die entsprechenden callbacks selbst in C programmieren. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das schnellste sind Displaylisten. So wie ich es verstanden habe, sind die Arrays ja in im WRAM, und Displaylisten im VRAM. Also ist VRAM schneller, da die Graka schnelleren Zugirff auf die daten hat. Wichtig ist dabei, das die die Displaylisten mit den Compilerflag erstellt werden.
Super Referenz dazu ist: http://www.opengl.org/documentation/red_book_1.0/ |
||
vertex.dreamfall.at | GitHub |
Black |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, Displaylists sind nicht wirklich für Spiele schnell, da sie so gut wie kein Spiel benutzt. Nur CAD-Programme, etc. benutzen Displaylists, deswegen sind die meisten Treiber auch nicht für Displaylists optimiert. Darum würde ich es zuerst mit VBO(Vertex Buffer Objects) und vielleicht locked DrawArrays probieren.
Aber eigentlich sollte man sich erst darüber gedanken machen, wenn man die 'ins & outs' von OGL im Blut hat (, was ich von mir leider nicht behaupten kann, jedoch habe ich zuverlässige Informationsquellen ![]() Black |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die VBOs sind nur kritisch weil da die Verfügbarkeit von System zu System variiert ... aber wer in Nehe so weit ist ( Tut 46 ![]() ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group