Accélération matérielle du dessin bitmap en java


Je veux pouvoir dessiner des bitmaps consécutifs (de type BufferedImage.TYPE_INT_RGB) d'une vidéo aussi rapidement que possible en java. Je veux connaître la meilleure méthode pour le faire. Quelqu'un a-t-il un conseil par où je devrais commencer? D'après ce que j'ai lu, 2 options sont: 1) Utilisez les routines GDI/ GDI + dans une dll JNI fonctionnant avec JAWT (Im sous Windows) 2) Utilisez Java3D et appliquez des Textures sur le visage d'une boîte et faites-la pivoter vers la caméra

Im intéressant dans tous les conseils sur ces sujets ainsi que d'autres. Je j'ai fait une quantité décente de programmation GDI/GDI + en VB lorsque j'ai créé un contrôle ActiveX, donc l'utilisation de GDI devrait être indolore, mais je devine que Java3D utilisera davantage le GPU (je pourrais me tromper) et donnera de meilleures performances. Qu'en penses-tu? GDI et JAWT avec mon expérience précédente, ou démarrer et nouveau voyage API avec Java3D. Merci à l'avance. :)

Author: Alexis Dufrenoy, 2010-11-14

1 answers

Pour obtenir une animation fluide (si c'est ce que vous voulez obtenir), vous devez utiliser la double mise en mémoire tampon. Pour ce faire, vous devrez créer un nouveau java.awt.Image (ou une sous-classe comme BufferedImage, ou si vous voulez un traitement accéléré OpenGL, VolatileImage) pour chaque image que vous souhaitez afficher. Si vous ne l'avez pas déjà fait, appelez Image.getGraphics() pour obtenir un java.awt.Objet graphique (peut également être utile d'ajouter votre contenu à l'Image). À la fin, lorsque l'image cachée est terminée, appelez Graphique.draw() pour remplacer l'affichage actuel en douceur.

VolatileImage est accéléré par OpenGL et beaucoup plus rapide. Lorsque VolatileImage.getGraphics () est appelé, il renvoie en fait un Graphics2D, qui fait également partie du pipeline graphique accéléré.

Il fonctionne sur Windows, Linux et Solaris, mais vous devez avoir des pilotes OpenGL installés pour votre carte graphique.

Quelques références supplémentaires:

Graphique accéléré pipeline:

Http://download.oracle.com/javase/1.5.0/docs/guide/2d/new_features.html

Http://www.javalobby.org/forums/thread.jspa?threadID=16840&tstart=0

Double mise en mémoire tampon:

Http://www.java2s.com/Code/Java/2D-Graphics-GUI/Smoothmoveusingdoublebuffer.htm

Http://www.heatonresearch.com/articles/23/page2.html

Http://www.javacooperation.gmxhome.de/BildschirmflackernEng.html

 4
Author: Alexis Dufrenoy, 2010-11-14 20:48:12