OpenGL 应用程序中的 Java 线程

标签 java multithreading opengl

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

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

我想知道这样的技术是否有任何帮助?如果在单独的线程上完成,下一个渲染循环是否会在不等待图像文件保存的情况下启动?对于线程来说是否可行?我想要实现的是,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/

相关文章:

java - 同步j进度条

java - 如何在 Java 中为错误情况实现 `finally`

java - 无法通过 Java 运行时进程查看输出

c++ - 法线贴图和平移扰乱了我的照明

java - hadoop安装

java - 如何从 application.properties 设置 springfox.documentation.swagger.v2.path

ios - 如何以编程方式在 SceneKit 中围绕立方体包装 png 纹理

opengl - 级联阴影贴图不太正确

Java自动识别线程死锁并停止执行?

multithreading - 线程唤醒后,用TASK_RUNNING调用set_current_state的必要性是什么?