My RTT is done with a CameraNode inside the scenegraph.  And the
eyepoint is being correctly reset for that CameraNode.  However, I
want the LOD center to be the viewer's eyepoint all the time; not the
CameraNode's eyepoint.

I just dug through some of the code you mentioned.  It looks like
CullStack::_eyePointStack would need to be overridden.  I could
probably hack it, but I certainly don't know the cleanest way to do
it.  Any suggestions?
- Terry

Message: 6
Date: Thu, 10 Aug 2006 20:42:09 +0100
From: "Robert Osfield" <[EMAIL PROTECTED]>
Subject: Re: [osg-users] override LOD eyepoint
To: "osg users" <[email protected]>
Message-ID:
        <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Hi Terry,

Again I ask, how are you setting up the RTT?  Is it a seperate
CameraNode traversal you are managing yourself, or is it inside the
scene graph ala osgprerender?

If the eye point isn't perfect the its likely the the CullVisitor code
isn't properly taking into account the new projection and view matrix,
perhaps its missing updating all parameters.  Note  the LOD is chosen
via NodeVisitor::getDistanceToEyePoint(,) that CullVisitor implements,
have a look at its implementation and see if its going astray in the
internal CameraNode case.

Robert.

On 8/10/06, Terry Welsh <[EMAIL PROTECTED]> wrote:
> Yes, Corbin, that's the exact problem I have.  I'm afraid setLODScale
> doesn't work for me.  That would make so much geometry visible to the
> shadowmap's CameraNode that it would take too long to render a
> shadowmap.  The correct solution is for the CameraNode to see exactly
> the same geometry as the user's eyepoint, and to do that I believe I
> need to override the actual position that cues all the LOD nodes.
> Maybe I need a function like setLODCenter.  Does anything like that
> exist?  I have a feeling the answer is no.
> - Terry
>
> > Message: 13
> > Date: Wed, 09 Aug 2006 16:36:51 -0500
> > From: "Holtz, Corbin L" <[EMAIL PROTECTED]>
> > Subject: RE: [osg-users] override LOD eyepoint
> > To: osg users <[email protected]>
> > Message-ID:
> >         <[EMAIL PROTECTED]>
> > Content-Type: text/plain; charset=US-ASCII
> >
> > I think what Terry is saying is that from the camera's (light source)
> > point of view he is seeing a lower-level LOD than he is from his true
> > viewpoint.  You can fix this by using the LOD scale factor to force the
> > higher LOD's to show from the light source's viewpoint.  I think the
> > call is at either the camera or sceneview level.  Something like
> > sceneview->setLODScale(factor).  If you load a LOD database into
> > osgviewer you can play with the LOD scale by pressing some keys (look at
> > the help in osgviewer by hitting 'h').  This will demonstrate how LOD
> > scale works.  It is just a multiplier used to calculate LOD transition
> > distance from actual distance.
> >
> > Corbin
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Robert
> > Osfield
> > Sent: Wednesday, August 09, 2006 3:13 PM
> > To: osg users
> > Subject: Re: [osg-users] override LOD eyepoint
> >
> > Hi Terry,
> >
> > On 8/9/06, Terry Welsh <[EMAIL PROTECTED]> wrote:
> > > Is there a way to override the eye position that LOD nodes use to
> > > determine which of their levels to display?  The specific problem I am
> > > facing is that my shadow maps have an eyepoint that is far away from
> > > the viewer's eyepoint, so the shadow maps do not contain all of the
> > > geometry that is right in front of the viewer.  This causes my shadows
> > > to appear less detailed than the objects casting the shadows.
> >
> > How are you setting up the textures?  If you are using CameraNode then
> > I'd expect it to reset the eye for that camera view, and if it isn't
> > then its a bug.
> >
> > Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to