创建一个视频使用处理opengl



我正在创建一个基于用户输入和提供的动画类型动态生成视频的REST API。所以,我使用处理2.2.1为此。我想用OPENGL生成3D动画。但OPENGL需要窗口对象。由于我在后台使用处理来生成帧,我如何使用OPENGL处理来生成动画帧,而不显示窗口。

示例代码

import com.hamoid.VideoExport;
import processing.core.*;
public class CircleSketch extends PApplet {
    private VideoExport videoExport;
  public void setup() {
    size(400, 400,OPENGL);
    videoExport = new VideoExport(this, "F:/work/tmp.mp4");
    background(0);
  }
  public void draw() {
    background(0);
    fill(200);
    rotateX(radians(50));
    rectMode(CENTER);
    rect(width/2,height/2, 100, 100);
    videoExport.saveFrame();
  }
}

DisplayFrame Class

public class DisplayFrame extends javax.swing.JFrame {
    public DisplayFrame(){
        this.setSize(600, 600); //The window Dimensions
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        javax.swing.JPanel panel = new javax.swing.JPanel();
        panel.setBounds(20, 20, 600, 600);
        processing.core.PApplet sketch = new CircleSketch();
        panel.add(sketch);
        this.add(panel);
        this.setVisible(false);
        //this is the function used to start the execution of the sketch
        sketch.init();     
    }
    
    
    
    public static void main(String[] args) {
       new DisplayFrame().setVisible(false);
    }    
}
有什么建议吗?

如何使用OPENGL处理来生成动画帧,而不需要显示窗口。

简而言之:考虑到当前的OpenGL驱动模型,你不能(只要你想使用GPU渲染)。句号,就是这样。

如果你能忍受软件渲染(慢),那么有OSMesa。此外,在可预见的未来,驱动程序模型应该会发生变化,从而允许在无头环境中使用OpenGL。在此之前,您需要图形环境上的某种窗口,它实际上主动提供显示输出(因此启动X11服务器并为其设置后台是不够的)。

相关内容

  • 没有找到相关文章

最新更新