POV-Ray : Newsgroups : povray.advanced-users : Skewness (long) : Re: Skewness (long) Server Time23 Jun 2024 06:57:29 EDT (-0400)
 Re: Skewness (long)
 From: Bald Eagle Date: 5 Oct 2018 11:05:00 Message:
```
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"@id": "#web.5bb77cec1f36de80c437ac910%40news.povray.org",
"dateCreated": "2018-10-05T15:05:00+00:00",
"datePublished": "2018-10-05T15:05:00+00:00",
"author": {
"@type": "Person",
"name": "Bald Eagle"
}
}
Francois LE COAT <lec### [at] atariorg> wrote:

> This "Shear" transformation is very interesting ! It's a 3D
> transformation in space. We are very close to an answer to the problem.
>
> I'm speaking of a 2D projective transformation in the image plane, that
> is rendered when two images of the same scene, are viewed from different
> viewpoints. Here is two real successive aerial images taken with the
> same camera :

Very interesting - looks like some aerial photogrammetry you're working on.

> The two supplementary
> parameters, "Shear" or "Skew" (Sx, Sy) are two perspective angles.
> The global "Correlation = 83.7%" coefficient tells about good matching.

> Is the "Shear" transform applicable to the POV-Ray camera properties ?
Yes, you can apply a matrix transform to the camera.

> I mean, "translate <Tx, Ty, Tz>" and "rotate <Rx, Ry, Rz>" are
> applicable to the camera properties, to render movement of the camera.
> Can I apply these two "matrix" transforms to modify the perspective ?

I'd have to say yes, even though I have yet to work out all of the particulars
in detail.

It looks to me like what you want to do is apply a shear in one direction, and a
shear perpendicular to that.

So, looking at Friedrich Lohmueller's page, when you add that 0.5 in to the
matrix, that equates to a shear of a certain angle.  FM says it's 30 degrees,
but I thought it would be calculated as atan (0.5/1) = 26.565.
Do the same to a different axis, and that ought to get you the "skew" you're
looking for.

Looking down along the y axis, I think that might be:

matrix< 1 , 0, 0,
0.5, 1, 0.5,
0 , 0, 1,
0 , 0, 0 >

Maybe this is closer to what you need?
```