OpenGL разработан, чтобы быть быстрым, но его можно написать так, чтобы он мог иметь низкую производительность.
Слишком много неизвестных, чтобы помочь. Например, какой язык (я бы сказал, C ++), какой фреймворк вы используете, или вы написали свой собственный?
Какую часть экрана вы воссоздаете? Например, вы регенерируете каждый объект, а не просто переводите его?
Вам может пригодиться вопрос: Каковы некоторые рекомендации по кодированию OpenGL (особенно ориентация объекта w.r.t.)?
Если бы вы могли привести несколько примеров того, где вы профилировали, чтобы определить, где происходит замедление, это было бы полезно.
Если вы только что использовали каркас, без заливки или текстуры, как ваши показатели?
Как выглядит ваш игровой цикл? Например, есть ли взаимодействие с мышью или клавиатурой, и влияет ли эта логика на частоту кадров?
У меня была такая проблема в один момент, когда я перерисовывал 70fps, но моя музыка не начиналась и не заканчивалась в правильную миллисекунду, поэтому я изменяю цикл на 30fps и увеличиваю частоту обработки музыки, и моя производительность увеличилась.