使用Jogl直接从volatileImage创建纹理

时间:2014-05-08 13:15:29

标签: java textures volatile jogl

我正在创建一个http://alteredqualia.com/visualization/evolve/的java植入,作为一个爱好项目。我正在使用HW加速的Graphics2D在易失性图像上绘制多边形,然后我想从volatileImage创建一个纹理,因此我可以使用glReadPixels将生成的图像与原始图像(也是纹理)进行比较。

我花了最后2个小时来吐出各种Textures文档,但似乎没有一种简单的方法可以用volatileImage创建纹理。我在这里错过了什么,或者这是不可能的?我知道你可以将volatileImage转换为BufferedImage,然后创建Texture,但这种方法非常慢。考虑到性能对于该计划至关重要,这是一件坏事。

1 个答案:

答案 0 :(得分:1)

没有直接的方法,因为VolatileImage没有没有用于获取图像数据的API ,除非使用snapshot()进行复制。

在实践中,只需从一开始就使用BufferedImage - 在BufferedImage的引擎下有一些神奇的东西可以尽可能地利用硬件加速。您必须避免的一件事是获取BufferedImage的DataBuffer的引用,这可能会破坏加速。