|
|
In message <3cc9ce28@news.povray.org>, Vic <let### [at] fwhu> writes
>Hi Pov fans!
>
>I've made a shutter glass interface hardware and created some stereo
>pictures with PovRay. I'm faced with a serious shortage of Pov, namely the
>unability to "shift" the camera viewport. The right and up vectors are
>always at 0.5, so I've to shift the resulting images after rendering to
>match the left and right eye views at the screen plane. (see "The
>perspective camera" in Pov help at "Placing the Camera" topic)
>
>Is there any way to shift the image plane during the rendering process?
>
I was going to suggest changing the direction vector, but unfortunately
this does not work at all logically.
The docs say "Note: that the up, right, and direction vectors should
always remain perpendicular to each other or the image will be
distorted.", but knocking up a short test scene I find the povray (3.5)
*forces* the vectors to be perpendicular. Whilst non-perpendicular
vectors do distort the scene, it does not do it in the way I would
expect (and which allow the camera viewport to be shifted).
Slime suggests using the matrix transformation, which will allow you to
shift the image plane.
matrix <1,0,sf,
0,1,0,
0,0,1,
0,0,0>
where sf is the shear required (use +/- for R/L images respectively
x
____ sf=x/z
\ |
\ | z
\ |
\|
But this doesn't quite work as expected, causing a slight stretch in the
image along the x-axis. The fix is to use
matrix <sqrt(1+sf^2),0,sf,
0,1,0,
0,0,1,
0,0,0>
>
>camera {
> #local pp=clock*2-1;
> #local dd=0.06;
> #local xx=-dd*0.5*pp;
> #local yy=0.4;
> #local zz=0.6;
> location <xx, yy, -zz>
> right x*image_width/image_height
> look_at <xx, 0.0, 0.0>
>}
>
This ought to work:
camera {
#local pp=cl0ck*2-1;
#local dd=0.06;
#local xx=-dd*0.5*pp;
#local yy=0.4;
#local zz=0.6;
#local sf=xx/zz;
location <xx, yy, -zz>
right x*image_width/image_height
look_at <0, 0.0, 0.0>
matrix <sqrt(1+sf^2),0,-sf,
0,1,0,
0,0,1,
0,0,0>
}
The other thing that doesn't work as expected is the look_at. I would
have expected to look_at <xx,0,0> (parallel to the z-axis) and the
matrix to deform the camera to look at the origin.
Can I have a new camera please, this one's broken (shakes it and hears
glass rattling about inside).
--
Alex
Post a reply to this message
|
|