Steve Baker (steve++at++mred.bgm.link.com)
Thu, 5 Dec 96 16:55:34 -0500
This is the correct calculation.
A simple application of similar triangles should convince you that it is correct.
However, this equation is easily misused:
1) Make sure that the ratio of the vertical and horizontal
field of view angles is appropriate to the vertical and
horizontal display resolution.
[ Is the % error in object size the same in both vertical
and horizontal screen axes? ]
2) This is assuming a simple frustum - not some kind of weird skewed
one.
3) Also, the term "range" is a little confusing here. This term is
actually the distance between the object and the plane parallel
to the screen that goes through the eyepoint. It is not the pythagorean
distance between the eye and the object (the 'slant range').
For simplicity, make sure the object is in the center of the screen
when you measure it!
4) How are you measuring the object's size on the screen? Antialiasing
blurs the edges of the object by a pixel or so - you can easily
mis-measure by 3% of the object's size unless it covers a significant
area of the screen.
5) Do you (or your loader or Vega) have any units conversions (eg feet to
meters, nautical miles to meters, etc)? If so, double-check the conversion
factors. Some of the early versions of Performer were shipped with incorrect
conversion factors in the MultiGen Flight loader.
-----------------------------------------------------------------------------
Jude Anthony <jude++at++p3.enzian.com> said:
> I'm still working on the object size problem.
...<snip>...
> Our new method takes advantage of different ratios. Like this:
> L2
> \===============/ =
> \ / |
> \ / |
> \ / |
> \ L1 / | Range
> \-----/ - |
> \ / | Eye |
> \ / | Range |
> O - =
>
>
>So that L1 is the size of our screen, L2 is the length of the object,
>the EyeRange is the distance from our actual eyepoint to the screen,
>and Range is the distance from our (performer) eyepoint to the
>object. When we try to decide how large an object should be on the
>screen, we calculate:
>
> L1 / EyeRange == L2 / Range
>
>and keep L1 as an unknown.
Steve Baker 817-619-1361 (Vox-Lab)
Hughes Training Inc. 817-619-8776 (Vox-Office/Vox-Mail)
2200 Arlington Downs Road 817-619-4028 (Fax)
Arlington, Texas. TX 76005-6171 Steve++at++MrEd.bgm.link.com (eMail)
http://www.hti.com (external) http://MrEd.bgm.link.com/staff/steve (intranet)
http://web2.airmail.net/sjbaker1 (external)
"You can't destroy the Earth - that's where I keep all my stuff!" - The Tick.
=======================================================================
List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
Submissions: info-performer++at++sgi.com
Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:54:05 PDT