我想知道是否可以在 Java 中执行以下操作。我正在使用 LWJGL 开发基于 Java 的 OpenGL 应用程序包装器。在每个帧渲染完成的渲染循环中,我将 GL 帧中的像素保存到图像文件中。问题是帧的大小有时非常大,并且在写入像素时会产生明显的开销进入文件直到渲染循环的下一次开始。我认为要做的是以下:
- 在帧渲染完成时,从帧缓冲区读取像素。
- 在处理图像文件的类上启动一个新线程 写作。
我想知道这样的技术是否有任何帮助?如果在单独的线程上完成,下一个渲染循环是否会在不等待图像文件保存的情况下启动?对于线程来说是否可行?我想要实现的是,GL 渲染循环不应等待文件写入,而是继续渲染,同时在每个渲染循环结束时将新像素数据提取到文件写入对象中。
最佳答案
编写如下线程类来运行单独的运行线程。
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();
关于OpenGL 应用程序中的 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11520805/