|
|
"callendorph" <cal### [at] esolarcom> wrote:
> Hello,
>
> So I have read through documentation on the camera object in POV-ray and I have
> a few questions about how it creates the image plane geometry. From the diagram
> in the documentation, it seems the <direction> vector controls the "focal
> length" of the camera, where the <location> vector is the focal point. The
> <direction> vector can be used to set the angle of view of the camera with its
> length. It seems from the documentation's figure that the direction vector does
> this by assuming an image plane that is 1 unit by 1 unit. Such that the
> following camera:
>
> camera {
> location <0,0,0>
> direction <0,0,0.5>
> }
>
> Should make a camera with a field of view of 90 degrees. Now, if I am correct so
> far, then Povray will create the <right> and <up> vectors to satisfy the default
> aspect ratio. For an output image of 640x480, This would imply that each pixel
> (square pixel) will have a side that is (1unit/640) or 0.0016 units/pixel.
> However, from other computation that I am doing, it seems I am making an error
> with my calculation of the pixel width of the image. Does this seems correct or
> am I doing something wrong?
>
> Thanks,
> ~Carl
look foward with FOV of 90
camera {
> location <0,0,0>
> direction <0,0,0.5>
angle 90
> }
CAMERA
the right vector is used to set angle.
if you input 40 degrees, right needs to be length of 1 or fov is not 40
I determined this with the docs and my planetarium work
The default aspect is 1.333333
this can get real confusing on a monitor with a physical aspect of 1.33333
but viewing a resolution of 1.25 i.e. 1280x1024, circles are not round.
Examples
camera {
up y
right x*image_width/image_height
angle 40
location -z*100
look_at <0,0,0>
}
not actually 40 degrees determined by stellar angles unless right has a length
of 1.
OR full scripted control of camera matrix, such as targeting a known point
and vcross-ing a camera matrix. This would allow scripted control of a camera
z-roll. Leaves right with a length of 1. Can still be done 10 other ways, but
if you intend to invert matrix, you'd end up with something close to this:
camera { perspective
location campos
right <cameramatrix[0],cameramatrix[1],cameramatrix[2]>
up <cameramatrix[4],cameramatrix[5],cameramatrix[6]>*
(image_height/image_width)
direction <cameramatrix[8],cameramatrix[9],cameramatrix[10]>*
(image_height/image_width)
angle camang
}
Post a reply to this message
|
|