Michael T. Jones (mtj++at++intrinsic.com)
Tue, 15 Jun 1999 08:16:50 -0700
Almost.
If you have a flat rectangular display with a physical size of H=110
and V=50 units (Horizontal and Vertical, resp.) and wish to display a
picture with a horizontal angle of h=130 degrees, then to avoid
distortion in the image computation the vertical angle v must be
computed as follows (this equation is in the Performer documents):
V/H = tan(v/2)/tan(h/2)
In this case, that means that v=88.53638334319122156629969 degrees.
So, IF you render an image in a channel using these h and v FOV settings
and cause it to be displayed on a monitor in an image with W:H equal to
110:50 or project it onto a screen such that the resulting image has the
110:50 shape and have the projector be perpendicular to the screen (or
else make a corresponding "linear distortion correction" in the projector
if it's not perpendicular to the screen) AND you view the screen from the
one and only point (well, two actually if you can look on the other side of
the screen, but then it's backwards ;-) where the horizontal FOV equals
130 degrees, THEN it will not be distorted at all, neither minorly nor
majorly.
Unfortunately, it will be distorted when viewed from every other
position in the universe, so be sure to put your pilot, researcher, teacher,
etc., at that spot (which is known as the "design eyepoint") before you
say "see, it's not distorted!" If you want to have the image appear as
undistorted as possible when viewed from several locations (like pilot
and co-pilot or researcher and audience) then a larger curved screen
(or pseudo-curved, with several flat screens) and a display channel for
each is the route to victory. This is what I meant by the question "Error
as viewer moves away from the design eyepoint?"
I have always found the "tangents of half-angles" relationship interesting.
It's easy to derive and widely known, but when I first ran into this issue I
did not know anything about it and just presumed that the ratio of the
image was also the ratio of the angles. I was drawing some circles and they
did not look right, so I thought about the relationship before drawing a
diagram and solving. The insight came from considering what happens as
the horizontal FOV gets large. How large can it get in a linear projection
matrix? The limit is 180% at which point you can see to "infinity" at the
left and right edges of the screen. What about the vertical? if the screen
is 5:4 then can you see 4/5 of infinity (which is still infinity) in the
up/down
direction? So there is not a linear relationship then between angle and
aspect ratio. Which circular functions have infinities? tangets and arc-
tangents. What sides of triangles are involved here? Aha! eye-to-center-
of-screen and center-of-screen-to-edge. Half angles, tangents, etc. and
the relationship is obvious.
----------
Michael T. Jones - <mailto:mtj++at++intrinsic.com>mtj++at++intrinsic.com -
<http://www.intrinsic.com/>Intrinsic Graphics Inc. - (650) 210-9933x13
A frog in a well says "The sky is as big as the mouth of my well"
At 03:26 PM 6/15/99 +0300, Devrim Erdem wrote:
Angus Dorbie wrote:
> Devrim Erdem wrote:
> >
> > Hi,
> >
> > I have to determine the number of channels to draw a 130
degrees hor. FOV
> > view. Is there a math model to compute the distortion caused by
rendering
> > large FOV to a channel ?
>
> There is no distortion for the correct display system. See my
> presentation in the whitepapers section of the performer web
pages.
>
> The image when displayed on a rectangular screen and viewed from
the
> correct vantage point will reproduce the virtual environment as
oriented
> with the modelview matrix.
OK. These messages have been pretty explanative for me. So if I have a
rectangular
display which is 110x50 or sth like that and I render a channel that
110x50 degrees
onto this display I shall not meet a major distortion. Is this right
?
Almost.
If you have a flat rectangular display with a physical size of H=110
and V=50 units (Horizontal and Vertical, resp.) and wish to display a
picture with a horizontal angle of h=130 degrees, then to avoid
distortion in the image computation the vertical angle v must be
computed as follows (this equation is in the Performer documents):
V/H = tan(v/2)/tan(h/2)
In this case, that means that v=88.53638334319122156629969 degrees.
So, IF you render an image in a channel using these h and v FOV
settings
and cause it to be displayed on a monitor in an image with W:H equal to
110:50 or project it onto a screen such that the resulting image has
the
110:50 shape and have the projector be perpendicular to the screen
(or
else make a corresponding "linear distortion correction" in the
projector
if it's not perpendicular to the screen) AND you view the screen from
the
one and only point (well, two actually if you can look on the other side
of
the screen, but then it's backwards ;-) where the horizontal FOV equals
130 degrees, THEN it will not be distorted at all, neither minorly
nor
majorly.
Unfortunately, it will be distorted when viewed from every other
position in the universe, so be sure to put your pilot, researcher,
teacher,
etc., at that spot (which is known as the "design eyepoint")
before you
say "see, it's not distorted!" If you want to have the image
appear as
undistorted as possible when viewed from several locations (like
pilot
and co-pilot or researcher and audience) then a larger curved
screen
(or pseudo-curved, with several flat screens) and a display channel
for
each is the route to victory. This is what I meant by the question
"Error
as viewer moves away from the design eyepoint?"
I have always found the "tangents of half-angles" relationship
interesting.
It's easy to derive and widely known, but when I first ran into this
issue I
did not know anything about it and just presumed that the ratio of the
image was also the ratio of the angles. I was drawing some circles and
they
did not look right, so I thought about the relationship before drawing a
diagram and solving. The insight came from considering what happens as
the horizontal FOV gets large. How large can it get in a linear
projection
matrix? The limit is 180% at which point you can see to
"infinity" at the
left and right edges of the screen. What about the vertical? if the
screen
is 5:4 then can you see 4/5 of infinity (which is still infinity) in the
up/down
direction? So there is not a linear relationship then between angle and
aspect ratio. Which circular functions have infinities? tangets and
arc-
tangents. What sides of triangles are involved here? Aha!
eye-to-center-
of-screen and center-of-screen-to-edge. Half angles, tangents, etc. and
the relationship is obvious.
This archive was generated by hypermail 2.0b2 on Tue Jun 15 1999 - 08:14:33 PDT