Я хочу иметь возможность рисовать последовательные растровые изображения (типа BufferedImage.TYPE_INT_RGB) видео как можно быстрее в java. Я хочу знать лучший метод при этом. Есть ли у кого-нибудь совет, с чего я должен начать? Из того, что я прочитал, 2 варианта: 1) Используйте подпрограммы GDI/GDI + в dll JNI, работающие с JAWT (Im on Windows) 2) Используйте Java3D и примените Textures к грани Box и поверните его к камере
Мне интересны любые советы по этим темам, а также любые другие. Я сделал приличное количество программ GDI/GDI + в VB, когда создал элемент управления ActiveX, поэтому использование GDI должно быть безболезненным, но я предполагаю, что Java3D будет использовать GPU больше (я мог бы ошибаться) и давать лучшую производительность. Как вы думаете? GDI и JAWT с моим предыдущим опытом, или начать и начать новый API с Java3D. Заранее спасибо.:)
Чтобы получить жидкую анимацию (если это то, что вы хотите получить), вам нужно использовать двойную буферизацию. Для этого вам нужно будет создать новый java.awt.Image(или подкласс, например BufferedImage, или если вы хотите ускоренную обработку OpenGL, VolatileImage) для каждого кадра, который вы хотите отобразить. Если вы еще этого не сделали, вызовите Image.getGraphics(), чтобы получить объект java.awt.Graphics(также может быть полезно добавить ваш контент в изображение). В конце, когда вы закончите скрытое изображение, вызовите Graphics.draw(), чтобы заменить текущий дисплей плавно.
VolatileImage - это ускоренная работа OpenGL и намного быстрее. Когда вызывается VolatileImage.getGraphics(), он фактически возвращает Graphics2D, который также является частью ускоренного графического конвейера.
Он работает на Windows, Linux и Solaris, но для вашей графической карты вам необходимо установить драйверы OpenGL.
Некоторые дополнительные ссылки:
Ускоренный графический конвейер:
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
Двойная буферизация:
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