Closed
Description
Nature of issue?
- Found a bug
- Existing feature enhancement
- New feature request
Most appropriate sub-area of p5.js?
- Color
- Core/Environment/Rendering
- Data
- Events
- Image
- IO
- Math
- Typography
- Utilities
- WebGL
- Other (specify if possible)
Which platform were you using when you encountered this?
- Mobile/Tablet (touch devices)
- Desktop/Laptop
- Others (specify if possible)
Details about the bug:
The projection matrix of the rendererGL doesn't update after a pop(). So, any perspective/ortho calls during a push/pop will remain until the following call to perspective()
or ortho()
.
I will fix this as part of reorganizing camera functionality in webGL.
Below code should render the cubes in perspective projection, ortho projection, then perspective projection, but instead renders as perspective, ortho, ortho:
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
camera(0, -200, 500, 0, 0, 0, 0, 1, 0);
normalMaterial();
}
function draw() {
perspective();
// left
push();
translate(-120, 0, 0);
fill(0, 200, 0);
box(100);
pop();
// middle (w/ ortho projection)
push();
ortho();
fill(0, 0, 200);
box(100);
pop();
// right (should have perspective projection)
translate(120, 0, 0);
fill(200, 0, 0);
box(100);
}
Metadata
Metadata
Assignees
Labels
No labels