POV-Ray : Newsgroups : povray.binaries.images : Doctor John - FieldCam conundrum : Re: Doctor John - FieldCam conundrum Server Time
26 Apr 2024 04:31:25 EDT (-0400)
  Re: Doctor John - FieldCam conundrum  
From: Thomas de Groot
Date: 17 Nov 2020 03:03:18
Message: <5fb383c6@news.povray.org>
Op 16/11/2020 om 23:12 schreef Bald Eagle:
> Thomas de Groot <tho### [at] degrootorg> wrote:
> 
>> I am a regular user of Doctor John's FieldCam macro which enables
>> slanting architecture to look straight. It simulates the professional
>> cameras where this adjustment can be done through the lenses.
> 
> I think it's actually accomplished using the adjustable film plane of the view
> camera.
> The 3-book series on negative, print, and camera by Ansel Adams ought to
> describe it fully and clearly.
> <hint> One might think there are PDF's of those available...   ;) </hint>

In a dim, prehistoric past, I actually played a bit with a technical 
camera which could do this: it was a matter of sliding up and/or down 
the lens and/or the film plane indeed. Additionally, one could rotate 
those horizontally. Great toys for photographing (tall) architecture! 
But, back to topic.

> 
>> The macro works perfectly... as long as your scene camera is situated
>> about the origin of the Y-axis. Recently, I have been working on scenes
>> where the camera is situated at about y=170.00, and strange things
>> happen: the camera is moved upwards and forwards, the more so as
>> elevation gets greater.
> 
> Is this a custom version that you edited yourself, or a later version of the
> original?
> All I found was this:
>
http://news.povray.org/povray.text.scene-files/thread/%3Cweb.3e0c736a1f1273cdb29393de0%40news.povray.org%3E/

This is a custom version 2.0 (2005). I only added the #debug lines to 
understand what kind of info was generated.

> 
> I'm puzzled by this:
> #local VCorr = pow(vlength(CD), 2)/pow(HypoXZ, 2);
> and its use in the matrix.  Seems to be some long-winded way to compute y^2 or a
> multiple of it....
> 
> Maybe try
> #local VCorr = CP.y;       ?    Totally guessing.

I also was puzzled by VCorr, not understanding what it really does.
I shall try your guess later today.

> 
>> To illustrate this, I have attached a little test scene and an image
>> showing the problem. H is the value for the elevation of the scene
>> elements along the Y-axis.
> 
> I don't really understand what I'm looking at in the scene, nor how the macro
> corrects the one column and not the others...

 From left to right:
1 - a scene not using FC, camera pointing upwards, base level at y=0.0
2 - same scene using FC. The pillars are now straight as far as the 
observer is concerned. Base level still at y=0.0
3 - same scene, again using FC, but now with a base level of y=10.0
4 - idem, base level is y=20.0

Look again: all three pillars are corrected!

> 
>> I can correct this by adding a translate after the "NoFall" transform in
>> the camera code, but I assume that this could better be done within the
>> "NoFall" matrix. I have not the slightest idea how to do this.
> 
> shear matrix:
> http://www.f-lohmueller.de/pov_tut/trans/trans_450e.htm
> 
> The matrix just ... "corrects" the basis vectors of the world space that the
> camera uses.
> 
> If you look at the thread that jr references:
>
http://news.povray.org/povray.binaries.misc/thread/%3Cweb.5c226659252b677e48892b50%40news.povray.org%3E/
> 
> we explain that the POV-Ray matrix keyword uses a proper 3x3 mathematical matrix
> with an additional 1x3 translation matrix "bolted on"to the bottom.
> 
> So for
> ABC
> DEF
> GHI
> 
> you have row-wise definitions of the basis vectors i, j, k (x, y, z) of the
> world space.
> 
> So
> ABC = <1, 0, 0> = x
> DEF = <0, 1, 0> = y
> GHI = <0, 0, 1> = z
> 
> and then you tack on a translate <x, y, z> to the bottom of that.
> 
> So, quick and dirty answer, to address moving your correctional translation to
> the matrix would be (I think)
> 
> matrix <1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -CP.y, 0>
> 
> Doctor John has some mathematical hocus pocus going in with his squared terms,
> and what assumptions he makes and why is currently beyond my ken, but perhaps at
> some point when I return to having the time and energy to muck around with
> POV-Ray stuff, I will puzzle it out.
> 
> I'm not sure what the Vcorr does, but I guess it is doing it... wrong?
> 
> That's all I've got - for now.
> 

Well, that is already a lot and thanks for that.  You gave me an idea 
for further testing, without understanding at all what I shall do, but 
at least it will give me some visual clues. Frankly, this is beyond my 
already feeble knowledge.

I shall be back later.

-- 
Thomas


Post a reply to this message

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