Я ищу способ улучшить производительность системы частиц, так как это очень дорого с точки зрения FPS.Это потому, что я вызываю:
glDrawElements(GL_TRIANGLE_STRIP, mNumberOfIndices,
GL_UNSIGNED_SHORT, 0);
Я называю этот метод для каждой частицы в моем приложении (которая может быть между 1000 и 5000 частиц).Обратите внимание, что при увеличении до 1000 частиц мое приложение начинает падать в FPS.Я использую VBO: s, но производительность при вызове этого метода слишком высока.
Есть идеи, как я могу сделать систему частиц более эффективной?
Редактировать: Вот как моя частицаСистема рисования вещей:
glBindTexture(GL_TEXTURE_2D, textureObject);
glBindBuffer(GL_ARRAY_BUFFER, vboVertexBuffer[0]);
glVertexPointer(3, GL_FLOAT, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, vboTextureBuffer[0]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboIndexBuffer[0]);
Vector3f partPos;
for (int i = 0; i < m_numParticles; i++) {
partPos = m_particleList[i].m_pos;
glTranslatef(partPos.x, partPos.y, partPos.z);
glDrawElements(GL_TRIANGLE_STRIP, mNumberOfIndices,
GL_UNSIGNED_SHORT, 0);
gl.glTranslatef(-partPos.x, -partPos.y, -partPos.z);
}