【发布时间】:2010-05-23 15:20:45
【问题描述】:
我想在屏幕上绘制许多多边形,但我很快注意到它很快变慢了。作为测试,我这样做了:
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 个屏幕多边形,这应该很容易吧?
谢谢
【问题讨论】: