Pergunta

Eu estou olhando para fazer algumas simulações de física e eu preciso rápido renderização em Java.

Já corri em problemas de desempenho com Java2D no passado, então o que são as alternativas rápidas? É JOGL significativamente mais rápido do que Java2D?

Foi útil?

Solução

A minha experiência com Java2D é que ele pode ser muito rápido, se você seguir as regras. Eu tinha um aplicativo que passou de 90% CPU para menos de 5% da CPU apenas mudando algumas coisas simples. Usando grande transparente PNG de um, por exemplo, não, não.

Um recurso muito bom é fóruns Java-Gaming.org:. Um monte de pessoas, incluindo os especialistas Sun 2D, sair lá e fornecem muitos exemplos e soluções para problemas de desempenho para o desenho 2D

Veja: http://www.javagaming.org/ e, em seguida, o tópico "Performance Tuning" .

Outras dicas

JOGL pode ser muito mais rápido do que Java2D mesmo se você usá-lo para fazer somente gráficos 2D:. Como Clayworth mencionado, geralmente depende do que você precisa fazer

Meu palpite é que, para simulações físicas 2D, onde você (texturizados ou não texturizados) objetos rotativos e traduzindo com 2 graus de liberdade, JOGL deve fornecer o melhor desempenho e também permitirá facilmente para fornecer uma interface com zoom. Aqui está um tutorial para OpenGL para gráficos 2D (C, mas facilmente adaptado para JOGL ).

JOGL vai demorar um pouco mais tempo para aprender do que Java2D, mas alcançar um bom desempenho não irá provavelmente exigir otimizações especializada como em Java2D.

Eu não sei - no passado, eu teria dito sim - especialmente se você usar listas de exibição em vez de fazer lotes de chamadas através da API cada vez que é exibida na tela. Mas update 10 do 1,6 JVM adicionado gráficos acelerados Java2D, então pode ter a vantagem agora. Realmente a única maneira de saber com certeza é tentar renderizar cenas típicas em ambos e medi-lo.

Também confira Slick, que é baseado em LWJGL e é em alguns aspectos semelhantes a Java2D. Ele usa OpenGL e é, portanto, muito mais rápido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top