Accelerazione hardware del disegno bitmap in java


Voglio essere in grado di disegnare bitmap consecutive (di tipo BufferedImage.TYPE_INT_RGB) di un video il più rapidamente possibile in java. Voglio conoscere il metodo migliore nel farlo. Qualcuno ha qualche consiglio su dove dovrei iniziare? Da quello che ho letto, 2 opzioni sono: 1) Usa le routine GDI/GDI + in una dll JNI che funziona con JAWT (Im su Windows) 2) Usa Java3D e applica trame alla faccia di una scatola e ruotala sulla fotocamera

Sono interessante in qualsiasi consiglio su questi argomenti e su tutti gli altri. Mi ho fatto una discreta quantità di programmazione GDI/GDI + in VB quando ho creato un controllo ActiveX, quindi usare GDI dovrebbe essere indolore, ma immagino che Java3D utilizzerà di più la GPU (potrei sbagliarmi) e dare prestazioni migliori. Cosa ne pensa? GDI e JAWT con la mia precedente esperienza, o iniziare e nuovo viaggio API con Java3D. Grazie in anticipo. :)

Author: Alexis Dufrenoy, 2010-11-14

1 answers

Per ottenere un'animazione fluida (se è ciò che si desidera ottenere), è necessario utilizzare il doppio buffering. Per fare ciò, dovrai creare un nuovo java.oh.Image (o una sottoclasse come BufferedImage, o se si desidera un'elaborazione accelerata OpenGL, VolatileImage) per ogni fotogramma che si desidera visualizzare. Se non l'hai già fatto, chiama Image.getGraphics () per ottenere un java.oh.Oggetto Grafico (può anche essere utile per aggiungere il contenuto all'Immagine). Alla fine, quando l'immagine nascosta è completa, chiama Grafica.draw() per sostituire il display corrente senza problemi.

VolatileImage è OpenGL accelerato e molto più veloce. Quando VolatileImage.getGraphics () è chiamato, in realtà restituisce un Graphics2D, che è anche parte della pipeline grafica accelerata.

Funziona su Windows, Linux e Solaris, ma è necessario avere i driver OpenGL installati per la scheda grafica.

Alcuni riferimenti aggiuntivi:

Grafica accelerata 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

Doppio buffering:

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