我正在使用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");
}
}
```
答案 0 :(得分:0)
不是将动画基于frameCount
变量,而是创建自己的变量,以自己的速度递增,然后随着时间的推移增加速度。保持帧率相同,但提高动画速度。