Я работал над 2D-игрой, и все было хорошо, пока я просто не добавил ~ 100 Rectangle2D.Double
для рендеринга (с изображениями 64x64). Я был шокирован, осознав, насколько медленно это было примерно для 100 объектов. Я сразу добавил меры предосторожности, включая рисование только на экране, следя за тем, чтобы изображения не загружались при каждом обновлении, не использовал двойную буферизацию и т. Д. Я также обнаружил, что такие преобразования, как масштабирование, преобразование и поворот, невероятно замедляют производительность, поэтому я сделал все из прямоугольников не использовать их. Я нашел источники, которые говорят, что Graphics2D не использует графический процессор, поэтому я посмотрел, как использовать графическую карту, и в итоге использовал System.setProperty("sun.java2d.opengl", "True");
Это звучало многообещающе, потому что я думал о C ++ OpenGL и о невероятной скорости, которую он имел, но, тем не менее, это не ускорился. Я все еще думаю, что он использует процессор.
TL; DR:
Как использовать видеокарту для оптимальной производительности в Java?