Самый быстрый способ установить пиксель в java

#java #performance #graphics

#java #Производительность #графика

Вопрос:

Я создаю игру на основе «падающего песка», где производительность размещения материалов (пикселей со значениями RGB) очень важна, в настоящее время я размещаю пиксели так: у меня есть буферизованное изображение, и я делаю img.setRGB(x,y,SandColor) , что, вероятно, не самое быстрое, по нескольким причинам, самое главное, я должен очистить это буферизованное изображение.изображение, из-за которого fps падает с 600 до 144, я очищаю, вызывая этот метод:

 private void clear(){
Graphics2D g = img.createGraphics();
g.clearRect(0,0,WIDTH,HEIGHT);
g.dispose();
}
 

Как я могу улучшить очистку экрана и производительность в целом.

Комментарии:

1. Вы пробовали просто создать новое изображение? (предполагая, что в старом нет ничего, что вы хотите сохранить)

2. Да, и производительность выросла со 140-146 кадров в секунду до 72-128 кадров в секунду, так что не очень

3. Графический интерфейс Java на самом деле не предназначен для такой производительности. Он предназначен для окон и кнопок, а не для высокопроизводительных игр. Вы можете проделать некоторую работу над этим: pavelfatin.com/low-latency-painting-in-awt-and-swing Но в основном, если бы я создавал игру на Java, я бы взял jogl или lwjgl и использовал это.

4. Я попробовал lwjgl, но из-за моего неудачного опыта я значительно ухудшил производительность

5. Другая возможность заключается в использовании BufferedImage.setData() . Я не знаю, быстрее ли это, но стоит попробовать.