POV-Ray : Newsgroups : povray.general : Stereoscopy : Re: Stereoscopy Server Time
6 Aug 2024 12:28:05 EDT (-0400)
  Re: Stereoscopy  
From: Hermann Vosseler
Date: 30 Apr 2002 21:32:29
Message: <3CCF4383.3090504@web.de>
Vic wrote:
 > The camera setup in Stereo.inc is wrong. Harolddd wrote, that only
 > parallel left and right cameras gives good result. He is right.
 > Nonparallel direction vectors causes eye divergence at large to
 > infinite distances. Plus it's impossible to use vista buffer
 > because of the non-perpendicular camera vectors.
 >

Vic,

I would be carefull -- I don't consider this conclusion correct.
Maybe we need to be a bit more precise. Not the cameras as a whole
have to be parallel, but the image planes have to be parallel. This
is, because we want to present the final image on a single plane or
screen.
Now it is a property of the perspective projection, that shifting
the center of projection (is this the right word?) and moving the
"viewport", i.e. Image shift or cropping at one side are aequivalent.
You can't tell by the final result, if the image was shifted, or
the optical axis was non-orthogonal.
So we can't conclude that nonparallel direction vectors are causing
divergence in general. Divergence will result only if the alignement
of the final images is wrong. This can happen, if the images are
scaled (enlarged) without compensating the alignement.
If you make a stereo pair with parallel direction vectors and parallel
image planes and then crop and align the resulting image in order to
get a stereoscopic window, the resulting image will be exactly the
same, as you would get by converging direction vectors.
The only real difference is, that the aproach with completely parallel
cameras and adjusting by post-processing (cropping, aligning) the
images is much more simple to carry out. In many cases, you can make
the post-processing under "visual control", i.e. you crop and align
until the stereoscopic window looks right.

With non-orthogonal direction vectors, there are two issues.
(a) can't use look_at
(b) can't use vista buffer.

Both are not so important, in my opinion.
(a) You can use transformations in the camera definition.
Set up your camera at the origin, then orient your camera with
rotations and finally tanslate your camera to the location you
want it. With a bit of trial and error, you get it right this
way without using look_at. Of course, it will be more easy if
you first set up your camera ant then arrange the objects
accordingly. You can then make fine adjustments of the camera
by the transformations mentioned.
(b) Vista buffer has not to be confused with bounding slabs.
Bounding slabs are OK with non-standard camera types. Bounding
slabs give the big performance boost, vista buffer will be
important only if you use very much objects in your scene.
To put it a bit simplified: vista buffer is only a optimization
of the bounding slab calculations by precalculating some common
values for every line of piexels.


 > My conclusion: Cameras built into POV-Ray cannot render a stereo
 > pair properly.

I would not say that. I made a dozens of stereo pairs with converging
direction vectors. Results are perfect, window works out-of-the-box
and you have the big advance of precise control where the window will
be. For standard perspective camera, StereoPOV does the same
internally.

Short -- I consider your include file to be correct.

Hermann


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.