Re: Position of object changing

New Message Reply Date view Thread view Subject view Author view

Angus Dorbie (dorbie++at++sgi.com)
Wed, 01 Jul 1998 10:32:32 -0700


Steve Baker wrote:
>
> On Wed, 1 Jul 1998, VSM 13 wrote:
>
> > I have the same problem on flight simulation,
>
> Doesn't everyone? It's something that can be worked around
> (with some measure of pain).
>
> > The problem is that Preformer use only float not double.
>
> Well, not even just Performer - OpenGL has the same problem - it
> works in float precision.
>
> Since an IEEE float has a 23 bit mantissa, you can only expect to
> get precision down to about one part in 8 million or so - it's
> quite a bit worse than that in practice due to accumulated
> roundoff.
>
> In the end, you have to resort to tricks like keeping the
> eyepoint at the origin and moving the world past it.
> It's not easy.

It's very easy.

The simplest way is to store xyz for top level scene graph objects
and the eye in double precision.
Then each frame you subtract a large offset from these double
precision numbers to to keep the eye near the origin. You then
cast to float and send to performer or OpenGL.

It's trivial to implement at the application level.

Cheers,Angus.

-- 
"Only the mediocre are always at their best." -- Jean Giraudoux 

For advanced 3D graphics Performer + OpenGL based examples and tutors: http://www.dorbie.com/ ======================================================================= List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/ Submissions: info-performer++at++sgi.com Admin. requests: info-performer-request++at++sgi.com


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:57:39 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.