On Thu, 2007-05-17 at 11:27 -0400, Jean-Sébastien Guay wrote: > Hello, > > I'm having trouble setting up a simple scene with an ortho2D > projection. I have looked at many examples (osghud, osgpick, osgmovie, > ...) and I can't see what I'm doing wrong. It should be simple, but I > feel I'm running in circles. Here's basically what I'm doing. > > First, I create a quad like this: > > osg::Geometry* polyGeom = osg::createTexturedQuadGeometry( > osg::Vec3( 0.0f, 0.0f, 0.0f), > osg::Vec3(1280.0f, 0.0f, 0.0f), > osg::Vec3( 0.0f, 1024.0f, 0.0f), > 0.0f, 0.0f, > (useTextureRectangle ? 1280.0f : 1.0f), > (useTextureRectangle ? 1024.0f : 1.0f)); > > osg::Geode* geode = new osg::Geode(); > geode->addDrawable(polyGeom); > geode->getOrCreateStateSet()->setMode( > GL_LIGHTING, osg::StateAttribute::OFF); > > It's my understanding that this creates a quad with corners (0,0,0), > (1280,0,0), (1280,1024,0) and (0, 1024,0) and where the texcoords > match (depending on the use of textureRectangle or texture2D). > > This geode is given to the viewer. > > Then, the viewer's projection and view matrices are set like so: > > viewer.getCamera()->setProjectionMatrixAsOrtho2D(0.0, 1280, 0.0, 1024); > viewer.getCamera()->setViewMatrix(osg::Matrix::identity()); > viewer.getCamera()->setViewport(0, 0, 1280, 1024);
Try adding: camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); camera->setRenderOrder(osg::Camera::POST_RENDER); I don't think your quad is being created incorrectly, I think it has everything to do with how the camera is being setup... > The rest of the code is based on the osgviewer application, so right > after setting the matrices the viewer is run. > > return viewer.run(); > > The problem is that I don't see the quad. If I comment out my > "setProjectionMatrixAs..." line (therefore the viewer sets its > projection according to the geode's bbox automatically) then I see the > quad, but when it's set to ortho2D it isn't displayed. Also, moving > around the scene with the mouse doesn't change anything. > > My ultimate goal is to display the quad fullscreen with perfect 1-to-1 > mapping between screen pixels and texels on the quad. Looking at > straight OpenGL tutorials on this, it should work, and after trying > lots of things to achieve this in OSG it seems that I am not getting > closer at all. Any help would be appreciated. > > Thanks in advance, _______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
