Моя игра рисует серию кубов из VBO, а просто переводит в положение куба каждый раз:Оптимизация этого OpenGL рендеринга алгоритм
...
SetCameraMatrix();
SetFrustum();
//start vbo rendering
glEnableClientState(GL_VERTEX_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 1);
glVertexPointer(3, GL_FLOAT, 0, 0);
glColor3f(1,0.5,0);
for(int i = 0; i < collids.size(); ++i)
{
glColor3f(collids[i]->Color.x,collids[i]->Color.y,collids[i]->Color.z);
collids[i]->render();
}
//end vbo rendering
glDisableClientState(GL_VERTEX_ARRAY); // disable vertex arrays
glBindBufferARB(GL_ARRAY_BUFFER_ARB,0);
...
рендер() заключается в следующем:
void CBox::render()
{
glPushMatrix();
glTranslatef(center.x,center.y,center.z);
glDrawArrays(GL_QUADS, 0, 24);
glPopMatrix();
}
Есть ли способ, которым я мог бы это оптимизировать? Поскольку я всегда рисую одно и то же, что я могу сделать, чтобы сделать это менее интенсивным? Спасибо
Строго фиксированная функция, или вы можете поддерживать шейдеры? – genpfault
Я не очень хорошо разбираюсь во всей работе с шейдером – jmasterx