【问题标题】:Create texture directly from volatileImage using Jogl使用 Jogl 直接从 volatileImage 创建纹理
【发布时间】:2014-05-08 13:15:28
【问题描述】:

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

在过去的 2 个小时里,我浏览了各种 Textures 文档,但似乎没有一种简单的方法可以从 volatileImage 中创建纹理。我在这里错过了什么,还是这不可能?我知道您可以将 volatileImage 转换为 BufferedImage 然后创建纹理,但是这种方法非常慢。考虑到性能对这个程序至关重要,这是一件坏事。

【问题讨论】:

    标签: java textures volatile jogl


    【解决方案1】:

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

    在实践中,只需从一开始就使用 BufferedImage - BufferedImage 的内部有一些魔力,可以在可能的情况下使用硬件加速。您必须避免的一件事是获取 BufferedImage 的 DataBuffer 的引用,这可能会破坏加速。

    【讨论】:

    • 看来你是对的,我将所有内容都更改为 BufferedImage 并添加了 setAccelerationPriority(1),应用程序的速度显着加快。谢谢
    • 也许他应该摆脱使用任何 BufferedImage ,正如我在这里解释的那样:forum.jogamp.org/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多