Я хочу нарисовать много полигонов на экране, но я быстро замечаю, что он быстро замедляется. В качестве теста я сделал это:
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();
}
Это всего лишь 50 полигонов, и это уже медленно. Я не могу загрузить их непосредственно на карту, потому что моя программа позволит пользователю изменять форму вершин.
Мой вопрос: как я могу ускорить это? Я не использую глубину. Я также знаю, что это не мои функции GetCamera (), потому что, если я создаю 500 000 полигонов, разбросанных по размерам, то у них просто не получается показать их в представлении. Если видеокарта может поддерживать 500 000 000 экранных полигонов в секунду, это должно быть просто, верно?
Спасибо