POV-Ray : Newsgroups : povray.newusers : Question about Camera Geometry : Re: Question about Camera Geometry Server Time
28 Jul 2024 16:15:37 EDT (-0400)
  Re: Question about Camera Geometry  
From: alphaQuad
Date: 17 Jul 2008 01:50:01
Message: <web.487edc15d14244a6850dfab90@news.povray.org>
"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

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