Ich möchte viele Polygone auf den Bildschirm zeichnen, aber ich merke schnell, dass es sich schnell verlangsamt. Als Test habe ich folgendes gemacht:Erstellen Sie viele Polygone mit OpenGL ist langsam?
for(int i = 0; i < 50; ++i)
{
glBegin(GL_POLYGON);
glColor3f(0.0f, 1, 0.0f); glVertex2f(500.0 + frameGL.GetCameraX(), 0.0f + frameGL.GetCameraY());
glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(900.0 + frameGL.GetCameraX(), 0.0f + frameGL.GetCameraY());
glColor3f(0.0f, 0.0f, 0.5); glVertex2f(900.0 + frameGL.GetCameraX(), 500.0f + frameGL.GetCameraY() + (150));
glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(500 + frameGL.GetCameraX(), 500.0f + frameGL.GetCameraY());
glColor3f(1.0f, 1.0f, 0.0f); glVertex2f(300 + frameGL.GetCameraX(), 200.0f + frameGL.GetCameraY());
glEnd();
}
Das sind nur 50 Polygone und schon ist es langsam. Ich kann sie nicht direkt auf die Karte hochladen, weil mein Programm dem Benutzer erlaubt, die Vertices neu zu gestalten.
Meine Frage ist, wie kann ich das beschleunigen. Ich benutze keine Tiefe. Ich weiß auch, dass es nicht meine GetCamera() -Funktionen ist, denn wenn ich 500.000 Polygone spreize, ist es in Ordnung, sie nur in der Ansicht zu zeigen. Wenn eine Grafikkarte 500.000.000 Bildschirm-Polygone pro Sekunde unterstützen kann, sollte das einfach sein, oder?
Dank
+1 für die Angabe einer geordneten Liste anstelle einer einzigen Möglichkeit als * die * Lösung. –
VBOs bauen auf Vertex-Arrays auf, aber nicht auf Anzeigelisten. Sie können sicher überspringen, wenn Sie sich mit Anzeigelisten vertraut machen, oder sie kurz anschauen, damit Sie wissen, wann Sie sie verwenden müssen. – Thomas
Nur eine Sache, was ist, wenn ich die GLU Tessellation verwende? – jmasterx