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