Я и мой друг пытаются ускорить 2D-игру с OpenGL. Видеокомпьютер - это Radeon X1250, который, похоже, недостаточно силен и может отображать до 80 1366x768 кадров в секунду. Учитывая, что мы рисуем много спрайтов друг над другом, производительность резко падает под 60 FPS, на которые мы нацеливаемся. Не могли бы вы предложить советы по оптимизации для рендеринга быстрого 2D с OpenGL?Использование OpenGL для ускорения 2D-графики
EDIT: некоторые уточнения: Разработка происходит на C++ под Linux. Мы сделали это с SDL, но производительность была неудовлетворительной, поэтому мы решили перейти на OpenGL, который оказался намного быстрее. Конечно, тогда появился толчок для реализации большего количества функций, требующих от нас перерисовать весь экран в каждом кадре.
Наша тестовая программа отображает текстурированные квадратные квадраты размером 256x256 на экране 1366x768. Если перед сменой буфера укладывается один слой плиток, он дает 80 FPS, если два слоя укладываются, частота кадров падает ниже 60 FPS. Учитывая, что плата потребуется для декодирования и отображения некоторых небольших MPEG одновременно, это может быть неудовлетворительным.
Я просто подумал, что я могу искать оптимизацию в результате того, что игра 2D - я думал, например: 1) если это возможно, чтобы отключить масштабирование текстуры. 2) визуализируйте непосредственно буфер кадра (хотя мы слышали, что glDrawPixels предполагается медленным.
Не могли бы вы предоставить какой-то код? –
Это поможет, если вы напишете, сколько спрайтов вы говорите. Много ли 100, 1000, 10000? Тогда было бы легче сказать, если вы делаете что-то неправильно или как можете оптимизировать. – Foxfire