Подтвердить что ты не робот

Каковы некоторые более быстрые альтернативы Java2d?

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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