Какие есть более быстрые альтернативы Java2d? - PullRequest
17 голосов
/ 02 марта 2009

Я хочу сделать некоторые физические симуляции, и мне нужен быстрый рендеринг в Java.

В прошлом я сталкивался с проблемами производительности Java2d, так каковы быстрые альтернативы? Является ли JOGL значительно быстрее, чем Java2d?

Ответы [ 4 ]

11 голосов
/ 02 марта 2009

Мой опыт работы с Java2D заключается в том, что он может быть очень быстрым, если вы будете следовать правилам. У меня было приложение, которое перешло с 90% CPU до менее чем 5% CPU, просто изменив несколько простых вещей. Например, использование больших прозрачных PNG - нет, нет.

Очень хорошим ресурсом являются форумы Java-Gaming.org: многие люди, в том числе специалисты Sun 2D, тусуются там и предоставляют множество примеров и решений проблем производительности для 2D-рисования.

См .: http://www.javagaming.org/, а затем тема «Настройка производительности».

5 голосов
/ 14 апреля 2009

JOGL может быть намного быстрее, чем Java2D, даже если вы используете его только для создания 2D-графики: как упоминал Клэйворт, обычно это зависит от того, что вам нужно сделать.

Я предполагаю, что для двумерного физического моделирования, когда у вас есть (текстурированные или нетекстурированные) объекты, вращающиеся и перемещающиеся с 2 степенями свободы, JOGL должен обеспечивать наилучшую производительность, а также легко предоставлять масштабируемый интерфейс. Вот учебник для OpenGL для 2D-графики (C, но легко адаптируемый к JOGL).

Изучение JOGL займет немного больше времени, чем Java2D, но достижение хорошей производительности, скорее всего, не потребует специальной оптимизации, как в Java2D.

4 голосов
/ 02 марта 2009

Я не знаю - в прошлом я бы сказал да - особенно если вы используете списки отображения, а не совершаете много вызовов через API каждый раз, когда отображается экран. Но в обновлении 10 1.6 JVM добавлена ​​ускоренная графика Java2D, поэтому теперь у нее может быть преимущество. Действительно, единственный способ узнать наверняка - попытаться воспроизвести типичные сцены в обеих и измерить их.

2 голосов
/ 31 мая 2009

Также посмотрите Slick , который основан на LWJGL и в чем-то похож на Java2D. Он использует OpenGL и, следовательно, значительно быстрее.

...