Hi, osgProducer::Viewer is subclass from OsgCameraGroup, which in turn is subclassed from Producer::CameraGroup, which itself has all the camera settings including the lens. The children of the CameraGroup also have their own lens settings, but on each frame these are overriden by the CameraGroup's lens settings, plus the local shear. This set up is due to Producer approach to support mulit-channel displays.
Try just setting the CameraGroup (i.e. osgProducer::Viewer)'s lens settings. Or just port to osgViewer in the SVN version of the OSG, here the projection matrix setup is all done consistent with OpenGL's conventions i.e. viewer.getCamera()->setProjectionMatrixAsFrustum(left, right,bottom,top,zNear,zFar); Parameters as per glFrustum. gluPerspective and other OpenGL projection matrix functions are also supported. Robert. On 4/20/07, belthil <[EMAIL PROTECTED]> wrote:
Thank you for your reply Markus! So i tried what you told me but with setLensFrustrum that makes me something weird... My scene is tiny in the middle of my screen and when i rotate the scene it is even more weird. I tried with this: viewer.getCamera(0)->setLensFrustrum(-0.1,0.1,-0.1,0.1,0.001,1e7) (i do not know what is xhear and y shear). I put "0.1" because with "1000" my scene is just a little point in the middle of my screen. Then i tried with the other function: setLensPerspective(45,45,0.001,1e7) (i do not really know what is the difference between hfov and vfov). This time my scene is not a tiny point but it is normal, but the parameters do not seem to work... As a matter of fact, my first problem with the frustrum is that the near plane processes the culling too far away from the point of view: i would like the objects to come close toward the screen. And finally, i would like the far plane quite far away because i need to display some objects (stars that are far away) on the far plane. I hope you will be able to help me more or someone else who would know the answer. Thanks a lot! Bye > Hi... > > you could do something like this: > > osgProducer::Viewer viewer(BuildConfig()); > viewer.setUpViewer(osgProducer::Viewer::STANDARD_SETTINGS); > viewer.getCamera(0)->setLensFrustum > (left,right,bottom,top,nearClip,farClip,xshear,yshear); > > or...if you just need to set a symetrical frustum you could use this one > > viewer.getCamera(0)->setLensPerspective(hfov, vfov, near, far, > xshear,yshear); > > Hope this helps... > bye, Markus. > > > Am 20.04.2007 um 14:24 schrieb belthil: Créez votre adresse électronique [EMAIL PROTECTED] 1 Go d'espace de stockage, anti-spam et anti-virus intégrés. _______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
