2

我想知道是否可以在 Java 中执行以下操作。我正在使用LWJGL 包装器开发基于 Java 的 OpenGL 应用程序。在每个帧渲染完成的渲染循环中,我将 GL 帧中的像素保存到图像文件中。问题是帧的大小有时非常大,并且在将像素写入文件直到渲染循环的下一次开始期间它会产生明显的开销。我认为要做的是以下几点:

  1. 在帧渲染完成时,从帧缓冲区读取像素。
  2. 在一个负责图像文件写入的类上启动一个新线程。

我想知道这种技术是否有帮助?如果在单独的线程上完成,下一个渲染循环是否会在不等待图像文件保存的情况下开始?使用线程是否可行?我想要实现的是 GL 渲染循环不应该等待文件写入,而是继续渲染,同时在每个渲染循环结束时将新的像素数据提取到文件写入对象中。

4

1 回答 1

3

如下编写一个线程类来运行单个正在运行的线程。

public class WritePixelsToImageThread extends Thread { 

    public void run(){
        // place your code here for
        // read pixels from Frame and write that image.
        // this is an individual process
    }
}

在启动该线程后

new WritePixelsToImageThread().start();
于 2012-07-17T10:58:50.373 回答