Hi Adrian,

The OSG by default computes the near and far planes on each frame to
optimize the precision of the depth buffer.  You can disable this via
the osg::Camera as it inherits from osg::CullSettings.

camera->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);

Whether this is appropriate for your app or not I can't say.

Robert.

On Fri, Oct 8, 2010 at 11:09 AM, BARRAL Adrien <[email protected]> wrote:
> Hello,
>
> I am using a osg::CameraView to make a "first person view". The CameraView is 
> attached to a osg::PositionAttitudeTransform node (we will call this node 
> "Head").
> I can't understand why, but when I tilt the "head", the camera's Znear, and 
> Zfar value's change...
>
> I create my CameraView in this way :
>
> Code:
>
> m_viewSimulation = new CameraView;
> m_viewSimulation->setPosition(Vec3f(0,-.01,0));
> m_viewSimulation->setFieldOfView(45.);
> m_viewSimulation->setFieldOfViewMode(CameraView::VERTICAL);
> m_viewSimulation->setFocalLength(0.);
> m_tiltableHead->addChild(m_viewSimulation);
>
>
>
>
> Then a CameraViewSwitchManipulator is created to choose wich of all my 
> cameraview will be the camera's node.
>
> Tilting the head is done in this way :
>
> Code:
>
> Quat cameraAttitude;
> cameraAttitude.makeRotate(PI, Vec3f(0.,0.,1.), _tilt, Vec3f(1.,0.,0.), 0, 
> Vec3f(0,1,0));
> m_tiltableHead->setAttitude(cameraAttitude);
> m_camera->setProjectionMatrixAsPerspective(60., 1., 0.01, 1000.);
>
>
>
>
> Note that I set the projection matrix with a Znear and Zfar each time the 
> head is tilted.
>
> Then I get the projection matrix thanks to these lines before, and after the 
> call to Viewer::frame :
>
> Code:
>
> double fovy, ratio, near, far;
> m_viewer.getCamera()->getProjectionMatrixAsPerspective(fovy, ratio, near, 
> far);
> cout << "Before :Camera Frustum : FOV Y" <<fovy<<", ratio : "<<ratio<<", near 
> :"<<near <<", far :" << far<< endl;
>
> m_viewer.frame();
>
> m_viewer.getCamera()->getProjectionMatrixAsPerspective(fovy, ratio, near, 
> far);
> cout << "After :Camera Frustum : FOV Y" <<fovy<<", ratio : "<<ratio<<", near 
> :"<<near <<", far :" << far<< endl;
>
>
>
>
> When I run my application, I can see that the cameraview is moving like the 
> node "TiltableHead", but Znear and Zfar envolve too, look at the console 
> result of the "cout" :
>
>
> Code:
>
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.26244, far :4615.38
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.26716, far :4625
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.27232, far :4635.54
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.2779, far :4646.92
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.284, far :4659.36
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.29092, far :4673.47
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.2976, far :4687.11
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.30406, far :4700.29
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.31029, far :4712.99
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
> After :Camera Frustum : FOV Y60, ratio : 1, near :2.31629, far :4725.22
> Before :Camera Frustum : FOV Y60, ratio : 1, near :0.01, far :1000
>
>
>
>
>
> So Why does viewer::Frame change Znear and Zfar ???
>
> Cheers, Adrien
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=32549#32549
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to