From: Marcin Romaszewicz (marcin++at++asmodean.engr.sgi.com)
Date: 12/14/2001 14:19:52
On Fri, 14 Dec 2001, William Sherman -Visualization wrote:
> Marcin,
>
> Thanks for the advice. I will give that a try.
>
> > The perspective matrix should only contain a perspective transformation,
> > and should definitely _not_ encode the eye position, since that can lead
> > to all sorts of problems, so performer does not allow specifying a general
> > matrix for this transformation. What you should do to move the eye is call
>
> I am curious to know more about the situation though. At the moment,
> I'm using OpenGL with the persepctive matrix specified by Deering in
> his 1992 SIGGRAPH paper describing his work on head-tracked stationary
> screen displays. This seems to work fine, though if you mean by
> problems that lighting and fog will be problematic, I admit I haven't
> messed with those features yet. Otherwise his matrix seems to produce
> a reasonable off-axis perspective images that match when lined up
> with adjoining, orthogonal screens.
Precisely. Fog and lighting will not be correct. Stever Baker has writted
a good explanation here:
http://sjbaker.org/steve/omniv/projection_abuse.html
> > pfChannel::setView and pass a pfFrustum to the channel that specifies only
> > your field of view (or call pfChannel::makePersp)
>
> And setView uses Euler angles, which also cause all sorts of problems,
> and hence I do not use in my code.
>
You do not have to use pfChannel::setView. You can specify your own
viewing matrix via pfChannel::setViewMat; this way you avoid the Euler
angle gimbal lock problem.
-- Marcin
This archive was generated by hypermail 2b29 : Fri Dec 14 2001 - 14:19:54 PST