Hi Jeremy, Thanks for your detailed description. You are so helpful people :) But firstly I should examine your API and samples then I will try to implement my target operation on it, if I can't achive, I will be glad to help me :)
Thanks for your all efforts. And I am waiting porting osganimation in osgWidget api. But I am so thoughtful about why I can't achive simple HUD operatıion on textured Quad, and I wonder to know the reason. Best Regards. 2008/11/3 Jeremy Moles <[EMAIL PROTECTED]> > On Mon, 2008-11-03 at 21:10 +0200, Ümit Uzun wrote: > > Hi Jeremy, > > > > Thanks for reply. My target with creating HUD display is playing > > osgMovie imagestreamed texture in it. If I can achive this operation > > by osgWidget I glad to use this API. And if it is possible, which > > osgWidget sample should I glimps? Because I have never tried osgWidget > > before except looking built-in samples in osg. > > Here's basically all you need: > > --- > > WindowManager* wm = new WindowManager(...); > Box* box = new Box(...); > Widget* widget = new Widget(...); > ImageStream* stream = new ImageStream(...); > > widget->setImage(stream, true); > > box->addWidget(widget); > > wm->addChild(box); > > viewer.setSceneData(wm->createParentOrthoCamera(...)); > > --- > > Send me your ImageStream data directly (not over the lists) and I'll > whip up a real example if you wish. :) > > > Best Regards. > > > > 2008/11/3 Jeremy Moles <[EMAIL PROTECTED]> > > On Mon, 2008-11-03 at 18:56 +0200, Ümit Uzun wrote: > > > Hi Folks, > > > > > > I have tried to create HUD for textured quad. I have read > > all about > > > archive and looked to osgHUD sample but it isn't working for > > textured > > > quad. And same time given code works for text. I can create > > HUD text > > > on the screen but can not create textured quad on the > > screen. I know > > > giving lots of code isn't good for you but I will paste all > > of them if > > > anyone want to look for find out the problem. > > > > > > I really think you should try using osgWidget; even in it's > > very young > > stage of development, it can handle easy stuff like this > > without a > > hitch. And, of course, I'm very responsive to questions about > > it so > > you're bound to get the help you need (except on the weekends, > > which I > > waste playing video games). > > > > If I have my way, all e-mails about creating custom "HUDs" > > will be > > gone. :) > > > > > > > If created texture quad add as a child to the root node, it > > works > > > without giving any problem. But if add as a child to the > > osg::Camera > > > node it get visible and is seen nothing. I think so, the > > problem is in > > > osg::Camera node which was initilazed by; > > > > > > > /----------------------------------Camera-------------------------------------/ > > > // create a camera to set up the projection and model view > > matrices, > > > and the subgraph to drawn in the HUD > > > osg::ref_ptr<osg::Camera> camera = new osg::Camera; > > > > > > // set the projection matrix > > > > > > camera->setProjectionMatrix(osg::Matrix::ortho2D(0,1280,0,1024)); > > > > > > // set the view matrix > > > camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); > > > camera->setViewMatrix(osg::Matrix::identity()); > > > > > > // only clear the depth buffer > > > camera->setClearMask(GL_DEPTH_BUFFER_BIT); > > > > > > // draw subgraph after main camera view. > > > camera->setRenderOrder(osg::Camera::POST_RENDER); > > > > > > // add geode to the camera node as a child > > > camera->addChild( geode ); > > > > /----------------------------------Camera-------------------------------------/ > > > > > > Best Regards. > > > -- > > > Ümit Uzun, > > > Environmental Tectonics Corporation Turkey > > > ODTU Teknokent > > > Gumus Bloklar A Blok > > > Zemin Kat Bati Cephe Suit 1 > > > 06531 ODTU > > > Ankara, Turkey > > > Tel: 90 (312) 210 17 80 > > > Fax: 90 (312) 210 17 84 > > > E-Mail: umituzun84<at>gmail<dot>com > > > Website: http://www.etc-turkey.com > > > > > > > /---------------------------------------HUD---------------------------------------/ > > > int main() > > > { > > > osg::Vec3 coords[] = > > > { > > > osg::Vec3(-1, 0.f ,-1), //LL > > > osg::Vec3( 1, 0.f, -1), //LR > > > osg::Vec3( 1, 0.f, 1), //UR > > > osg::Vec3( -1, 0.f, 1) //UL > > > }; > > > > > > osg::Vec2 tCoords[] = > > > { > > > osg::Vec2(0,0), > > > osg::Vec2(1,0), > > > osg::Vec2(1,1), > > > osg::Vec2(0,1) > > > }; > > > > > > int numCoords = sizeof(coords) / sizeof(osg::Vec3); > > > int numTexCoords = sizeof(tCoords) / sizeof(osg::Vec2); > > > > > > osg::ref_ptr<osg::Group> root = new osg::Group(); > > > osgViewer::Viewer viewer; > > > osg::Geode *geode = new osg::Geode(); > > > osg::Geometry *quad = new osg::Geometry(); > > > > > > quad->setVertexArray(new osg::Vec3Array(numCoords, > > coords)); > > > quad->setTexCoordArray(0, new osg::Vec2Array(numTexCoords, > > > tCoords)); > > > quad->addPrimitiveSet(new > > osg::DrawArrays(osg::PrimitiveSet::QUADS, > > > 0, numCoords)); > > > > > > geode->addDrawable(quad); > > > > > > osg::Image* image = > > osgDB::readImageFile( "RWR_256_256.bmp" ); > > > if (image == NULL) > > > { > > > osg::notify(osg::WARN) << "Can't find texture file:" > > << > > > std::endl; > > > } > > > > > > osg::Texture2D* texture = new osg::Texture2D(); > > > texture->setImage(image); > > > > > texture->setWrap(osg::Texture2D::WRAP_T,osg::Texture2D::REPEAT); > > > > > texture->setWrap(osg::Texture2D::WRAP_S,osg::Texture2D::REPEAT); > > > > > > osg::StateSet *stateSet = quad->getOrCreateStateSet(); > > > stateSet->setTextureAttributeAndModes(0, texture, > > > osg::StateAttribute::ON); > > > stateSet->setMode(GL_BLEND,osg::StateAttribute::ON); > > > stateSet->setMode(GL_DEPTH_TEST, > > osg::StateAttribute::OFF); > > > > > stateSet->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); > > > > > > // create a camera to set up the projection and model > > view > > > matrices, and the subgraph to drawn in the HUD > > > osg::ref_ptr<osg::Camera> camera = new osg::Camera; > > > > > > // set the projection matrix > > > > > > camera->setProjectionMatrix(osg::Matrix::ortho2D(0,1280,0,1024)); > > > > > > // set the view matrix > > > camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF); > > > camera->setViewMatrix(osg::Matrix::identity()); > > > > > > // only clear the depth buffer > > > camera->setClearMask(GL_DEPTH_BUFFER_BIT); > > > > > > // draw subgraph after main camera view. > > > camera->setRenderOrder(osg::Camera::POST_RENDER); > > > > > > // add geode to the camera node as a child > > > camera->addChild(geode); > > > > > > // add camera to the root node as a child > > > root->addChild(camera.get()); > > > > > > viewer.setSceneData(root.get()); > > > viewer.setCameraManipulator(new > > osgGA::TrackballManipulator()); > > > > > > viewer.run(); > > > > > > return 0; > > > } > > > > /---------------------------------------HUD---------------------------------------/ > > > > > _______________________________________________ > > > osg-users mailing list > > > osg-users@lists.openscenegraph.org > > > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > _______________________________________________ > > osg-users mailing list > > osg-users@lists.openscenegraph.org > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > > > -- > > Ümit Uzun, > > Environmental Tectonics Corporation Turkey > > ODTU Teknokent > > Gumus Bloklar A Blok > > Zemin Kat Bati Cephe Suit 1 > > 06531 ODTU > > Ankara, Turkey > > Tel: 90 (312) 210 17 80 > > Fax: 90 (312) 210 17 84 > > E-Mail: umituzun84<at>gmail<dot>com > > Website: http://www.etc-turkey.com > > _______________________________________________ > > osg-users mailing list > > osg-users@lists.openscenegraph.org > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > -- Ümit Uzun, Environmental Tectonics Corporation Turkey ODTU Teknokent Gumus Bloklar A Blok Zemin Kat Bati Cephe Suit 1 06531 ODTU Ankara, Turkey Tel: 90 (312) 210 17 80 Fax: 90 (312) 210 17 84 E-Mail: umituzun84<at>gmail<dot>com Website: http://www.etc-turkey.com
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org