我正在使用 p5.js,并且在屏幕外图形缓冲区中使用 WebGL 渲染器时遇到奇怪的行为。
这是一个简单的示例,它在画布上绘制模型并将其缩放至 101% 大小。这按预期工作。每次重新绘制框架时模型都保持静止。
//working WEBGL createCanvas example
let icosa;
function preload() {
icosa = loadModel('model.obj', true);
}
function setup() {
createCanvas(800, 800, WEBGL);
}
function draw() {
background(0);
//the model remains at 1.01 scale every time the frame is re-drawn, as expected.
scale(1.01);
model(icosa);
}
当我使用“createGraphics()”将 webGL 场景渲染到 p5.Graphics 离屏图形缓冲区时,会发生奇怪的行为。我这样做是为了进一步处理 2D 画布上的渲染帧,如下所示:
//broken WEBGL createGraphics example
let icosa;
let rend3d;
function preload() {
icosa = loadModel('model.obj', true);
}
function setup() {
rend3d = createGraphics(800, 800, WEBGL);
createCanvas(800, 800);
}
function draw() {
rend3d.background(0);
//the model continuously scales up every time the frame is re-drawn!
rend3d.scale(1.01);
rend3d.model(icosa);
background(0);
image(rend3d, 0,0, 800, 800);
}
每次重新绘制框架时,模型都会不断按比例放大。我不确定为什么会发生这种情况,或者是什么导致它的行为与我的第一个示例中的行为不同。
qq_笑_17
相关分类