繁体   English   中英

使用处理opengl创建视频

[英]Create a video using processing opengl

我正在创建一个REST API以根据用户输入和提供的动画类型动态生成视频。 因此,我正在为此处理2.2.1。 我想使用OPENGL生成3D动画。 但是OPENGL需要Window对象。 由于我在后台使用处理来生成帧,因此如何使用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

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);
        sketch.init(); //this is the function used to start the execution of the sketch



    }



        public static void main(String[] args) {
            new DisplayFrame().setVisible(false);
        }


}

有什么建议吗?

如何在不显示窗口的情况下使用OPENGL进行处理以生成动画框架而无需交互方式。

简而言之:鉴于当前的OpenGL驱动程序模型, 您就无法做到(只要您想使用GPU进行渲染)。 期间就是这样。

如果可以使用软件渲染(慢),那么可以使用OSMesa 同样,在可预见的将来,驱动程序模型也应进行更改,从而可以在无头环境中使用OpenGL。 在此之前,您需要在图形环境上有某种类型的窗口,该窗口实际上会主动提供显示输出(因此,不足以启动X11服务器并将其作为背景)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM