I don't get perspective, fov & projection.
in
Programming Questions
•
2 years ago
Help!
We're setting up a simple video projection, or so I thought.
I'd like to setup two projectors, each projecting on a different wall, meeting in the corner.
As their angle is orthogonal, I figured their fov to be 360/4 = 90 degrees, or half Pi.
They simply look along the two axes, with y axis up, this would be for left wall: 1, 0, 0 and for the right 0, 0, 1.
With my eye in 0, 0, 0, their projection should perhaps be dollied a little along their respective axes. But no matter the value I translate along the axis, the image will not match perfectly.
I've used both the core camera() function and OCD's implementation:
Left projection:
- // setup perspective
- float cameraX = 0;
- float cameraY = 0;
- float cameraZ = 0;
- float targetX = 1;
- float targetY = 0;
- float targetZ = 0;
- float upX = 0;
- float upY = 1;
- float upZ = 0;
- float fov = PI/2.0;
- float nearClip = 0.001;
- float farClip = 2000;
- float aspect = 4/3.0;
- cam = new Camera(this,
- cameraX, cameraY, cameraZ,
- targetX, targetY, targetZ,
- upX, upY, upZ,
- fov, aspect, nearClip, farClip);
- cam.dolly(halfroomsize);
Right:
- // setup perspective
- float cameraX = 0;
- float cameraY = 0;
- float cameraZ = 0;
- float targetX = 0;
- float targetY = 0;
- float targetZ = 1;
- float upX = 0;
- float upY = 1;
- float upZ = 0;
- float fov = PI/2.0;
- float nearClip = 0.001;
- float farClip = 2000;
- float aspect = 4/3.0;
- cam = new Camera(this,
- cameraX, cameraY, cameraZ,
- targetX, targetY, targetZ,
- upX, upY, upZ,
- fov, aspect, nearClip, farClip);
- cam.dolly(halfroomsize);
Previously, we have achieved pretty good results with the standard 60 degrees (PI/3.0) perspective and 30 degree camera rotation(PeasyCam.rotateY()).Which is odd isn't it? Shouldn't that have been rotateY(fov)?
1