Есть ли другие способы изменить непрозрачность изображения в Java, кроме AlphaComposite? - PullRequest
0 голосов
/ 22 апреля 2019

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

Использование AlphaComposite действительно медленное, и средняя частота кадров снижается с170–90, это может не показаться проблемой (так как большинство игр работают на 60), но иногда частота кадров падает ниже 45 (возможно, потому что я использую немного больше моего компьютера? Не уверен), и кажетсякак много для одного эффекта, который я пытаюсь применить.

В моем конструкторе у меня есть

AlphaComposite blurAlpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f);

AlphaComposite opaque = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1);

, затем в главном цикле: (чтобы быть понятным, g это Graphics2Dобъект, а игра - это предварительно обработанное изображение игры)

g.setComposite(blurAlpha);
g.drawImage(game, -1, 0, null);
g.drawImage(game, 1, 0, null);
g.setComposite(opaque);

Сначала я подумал, что падение частоты кадров происходит из-за двойного рисования изображения, но когда я удаляю линии setComposite, частота кадровидет до 150.

...