Do you use text->setAutoRotateToScreen(true)?
On Tue, Jan 13, 2009 at 1:36 PM, Vincent Bourdier <vincent.bourd...@gmail.com> wrote: > Hi, > > I've tried what you propose : put the rotated text on a separate geode (and > not the billboard) ... The result is the same : text do not update > correctly. > > I don't know what to change... I've tried to set the rotation before the > translation, whatever be the order of the instructions : is the > setRotation() is called, the text do not update with good proportions... > > Any suggestion ? > > Thanks, > > Regards, > Vincent. > > 2009/1/13 Vincent Bourdier <vincent.bourd...@gmail.com> >> >> Hi Robert, >> >> I did it from the past for a simple OSG text on a billboard node, >> without constant screen pixel size management and it works well. >> >> I'll try to get the text out from the billboard, hoping this won't >> be so difficult to obtain the same result... >> >> Thanks for this explanation. >> >> Regards, >> Vincent. >> >> 2009/1/13 Robert Osfield <robert.osfi...@gmail.com> >>> >>> Hi Vincent, >>> >>> I've never used osgText in conjunction with osg::Billboard before. I >>> can image the mix of on the fly compute matrices might cause problems. >>> osgText has support for billboard behaviour so I'd recommend not >>> adding the text to the billboard, instead just add it as sibling to >>> the Billboard and enable the rotate to screen option on the text >>> object. >>> >>> Robert. >>> >>> On Tue, Jan 13, 2009 at 11:59 AM, Vincent Bourdier >>> <vincent.bourd...@gmail.com> wrote: >>> > Hi, >>> > >>> > Currently making my billboard node, I add an osgText on it. I need this >>> > text >>> > to be in node's coordinate, but in constant pixel size on screen. >>> > When the billboard move or rotate, the text will follow it. The only >>> > thing >>> > the text can change is caracter size. >>> > >>> > I use this code : >>> > >>> > osg::ref_ptr<osgText::Text> d = new osgText::Text; >>> > >>> > d->setRotation(osg::Quat(-osg::PI_2, osg::Vec3f(1,0,0)) * >>> > osg::Quat(-osg::PI_2, osg::Vec3f(0,1,0))); >>> > >>> > d->setPosition(decal*0.7);//to avoid collision between object and >>> > osgText >>> > >>> > d->setText("Test"); >>> > d->setAxisAlignment(osgText::Text::USER_DEFINED_ROTATION); >>> > d->setAutoRotateToScreen(false); >>> > d->setCharacterSizeMode(osgText::Text::SCREEN_COORDS); >>> > d->setCharacterSize(30); >>> > d->setAlignment(osgText::Text::CENTER_TOP); >>> > // d->setDrawMode(1); >>> > >>> > billboard->addDrawable(d.get()); >>> > >>> > But the setRotation is making something bad. >>> > >>> > Without the setRotation line node, everything is good for text size. >>> > Rotation is bad but it is something expected. >>> > So I apply a rotation on it, to obtain the text with the good >>> > orientation >>> > relative to the billboard. After that, the text rotation is good, but >>> > when >>> > the camera is aproaching, the text size do not update correctly : only >>> > the >>> > width stay constant in pixel size... the hight stay constant in >>> > billboard >>> > coordinates size. So the text is deformed, depending on camera distance >>> > from >>> > it.. >>> > >>> > The question is : how to rotate the text without having this bad effect >>> > ? >>> > >>> > Thanks. >>> > >>> > Regards, >>> > Vincent. >>> > >>> > _______________________________________________ >>> > 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 >> > > > _______________________________________________ > 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