POV-Ray : Newsgroups : povray.binaries.images : Doctor John - FieldCam conundrum : Re: Doctor John - FieldCam conundrum Server Time
26 Apr 2024 06:47:25 EDT (-0400)
  Re: Doctor John - FieldCam conundrum  
From: Thomas de Groot
Date: 21 Nov 2020 02:32:53
Message: <5fb8c2a5$1@news.povray.org>
Op 20/11/2020 om 12:28 schreef Bald Eagle:
> Thomas de Groot <tho### [at] degrootorg> wrote:
>> I agree with you. One of the things which still puzzles me is that there
>> seems also to be a slight zoom effect, mostly noticiably in cloud
>> patterns for instance in the background. Maybe that is what you observe.
>> However, for the time being, the macro is more useful than it was.
> 
> OK, I wanted to make sure that it wasn't just me.
> 
> The zoom, I think, is part uncorrected stuff, and part unexpected "optical
> illusion".  It's real, but it's the effect of tilting the camera's "film plane",
> so that some parts are closer to the scene objects than they were.

Yes, I guessed something like that.

> 
> Try 2 things.
> 
> use:
> 
>    #local _j = vlength (<ShearX, VCorr, ShearZ>);
> 
>    #debug "\nIgnore the following Parse Warning: \n"
>    #debug "----------------------------------- \n"
>    #declare NoFall =
>    transform {
>     matrix <     1,     0,      0,
>             ShearX,  VCorr, ShearZ,
>                  0,     0,      1,
>       -CamLoc.y*ShearX,     -CamLoc.y/_j*VCorr,      -CamLoc.y*ShearZ*_j>
> 
> _j is the length of the new modified y-axis, and I think that there needs to be
> a shift back to compensate for that, and average out the "zoom" effect, as shown
> in the new matrix term.
> 
> and _then_ follow up with:
> 
> 
> #if (FC)
>   camera {
>    //FieldCam (CamLoc, CamLookAt)
>    FieldCam2 (CamLoc, CamLookAt)
>    perspective
>    location  CamLoc
>    sky       CamSky
>    up        CamSky
>    direction z*CamZoom
>    right     x*AspectRatio
>    angle     CamAng
>    translate -CamLoc
>    transform {NoFall}
>    translate CamLoc
>    look_at   CamLookAt
>   }
> 
> To apply the camera matrix with the camera at the origin.

This does not work correctly: the camera is pushed below the surface 
(above the surface when y becomes negative, obviously). the VCorr 
remains a puzzle to me and the _j does not help in the matter. I also 
have a hunch that putting the camera at the origin is not helpful. It 
doe not make any difference as far as I can tell.

> 
> I think any further work will really need to quantify the effect.
> 

Yes, I think that is the correct conclusion. So far, you have done a 
great job already and made the macro much more useful than it was 
originally.


-- 
Thomas


Post a reply to this message

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