| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Java 2D для игр |
| Автор: Fieral 25.11.2010, 18:46 | ||||
| Добрый день. Я пишу 2D авиа-симулятор на Java. Для отрисовки графики использую стандартные классы: java.awt.image.BufferedImage и java.awt.Graphics. Создаю в памяти буфер java.awt.image.BufferedImage - рендерю в него и затем вывожу на форму. Вот тест отрисовки картинки размера 1024*768:
Как видно при запуске отрисовка занимает около 78 миллисекунд с FPS 10-12 кадров в секунду, что как-то не густо. Собсно вопрос: есть ли в Яве что-то получше java.awt или всё-таки придётся использовать серьёзные либы (типа OpenGL)? |
| Автор: Skipy 25.11.2010, 19:13 |
| Попробуйте повозиться с java.awt.image.VolatileImage: http://download.oracle.com/javase/6/docs/api/java/awt/image/VolatileImage.html |
| Автор: Skynin 25.11.2010, 19:29 | ||
http://forum.vingrad.ru/forum/topic-161042/kw-opengl-java-jogl.html http://www.jmonkeyengine.com/ |
| Автор: Fieral 26.11.2010, 02:08 | ||||
VolatileImage даёт теже 10 fps :(
|
| Автор: kamre 26.11.2010, 17:35 | ||
| Что-то явно не так делаете, не должна Java2D так сильно тормозить. Вот пример:
На десктопе (WinXP Core 2 Duo 3GHz NVIDIA 9800GTX+, d3d pipeline в Java2D) выдает примерно 4000 FPS. |
| Автор: Fieral 26.11.2010, 18:54 | ||
В принципе логично - чегоб он работал быстрее, если отрисовка одного кадра в буфер без окон и фреймов занимает 90ms. |
| Автор: kamre 26.11.2010, 19:58 |
| На моем слабом ноуте (Win7 Intel U2300 1.2GHz со встроенной видеокартой Intel Mobile) выдает: 1000 frames in 6863 ms = 145,709 FPS 1000 frames in 6840 ms = 146,199 FPS 1000 frames in 6830 ms = 146,413 FPS 1000 frames in 6823 ms = 146,563 FPS 1000 frames in 6807 ms = 146,908 FPS Что же у вас тогда за железо такое? Может это OpenJDK на линупсе с кривыми драйверами? Если на линупсе, то можно попробовать запускать с -Dsun.java2d.opengl=True, должно быстрее заработать, если драйвера openGL поддерживают. |
| Автор: Fieral 26.11.2010, 21:34 | ||||||||
| Ок. Я использовал ключи
Из http://gpwiki.org/index.php/Java:Tutorials:VolatileImage#References И с ними не работало, а вот с ключём:
Отрисовка VolatileImage херачит на полную катушку.
|