saveFrame在处理过程中无法跟上frameRate

时间:2015-02-13 00:04:16

标签: processing frame-rate processing.js

我正在使用saveFrame创建一个图像序列以引入后效果。在每个循环中,我都在使用frameRate - 我确信这不是最好的方法。在每个循环结束时,我保存了框架,但是saveFrame无法跟上逐渐更高的frameRate我尝试保存。任何人都知道如何在不增加frameRate的情况下实现我想要的效果,以便saveFrame可以跟上吗?这是我的代码:

```
int w = 640; // canvas size
int h = 480;
int n = 10;  // number of grid cells
int d = w/n; // diameter of a grid cell
float depth = 0.5; // relative cell depth
int fr = 100;

int iterator = 0;

boolean doSaveFrames = false;

void setup() {
  size(w, h, P3D);
  rectMode(CENTER);
  background(0);
  fill(51, 255, 0);
  noStroke();
  frameRate(fr);
}

void draw() {

  // get coordinates
  int xy = frameCount % (n*n);

  // shift image in z-direction
  if (xy == 0) {
    PImage img = get();
    background(0); 
    pushMatrix(); 
    translate(0, 0, -d * depth);
    tint(255, 127);
    image(img, 0, 0);
    popMatrix();

//    fr+=iterator*10;
//    frameRate(fr); //MH - really cool but I can't export fast enough
    iterator++;

  }

  // scale and rotate the square
  scale(d);
  translate(xy%n + .5, xy/n + .5, -depth * .5 );
  rotate(QUARTER_PI - HALF_PI *int(random(2)));
  rotateX(HALF_PI);

  // draw the square
  rect(0, 0, sqrt(2), depth);

  if (doSaveFrames) {
    saveFrame("frames/line-######.tga");
  }

}
```

1 个答案:

答案 0 :(得分:0)

不是将动画基于frameCount变量,而是创建自己的变量,以自己的速度递增,然后随着时间的推移增加速度。保持帧率相同,但提高动画速度。