Hi all,

I am trying to put a text on my screen by creating a HUD camera. I create a
camera object and add nodes to it (as in HUD examples). However, when I
select XY_PLANE or SCREEN as AxisAlignment for osgText::Text object, it
dows not show anything, but works (no really works, but I can see rotated
text) with REVERSED_XY_PLANE. When I select REVERSED_XY_PLANE, the result
can be seen on attached screenshot and of course this not what I want. I
tried many combinations, but the result was always same. What can I do in
that case?

Cheers,
Deniz

---------------------------------------------------------------------------------------------

osg::Camera* createHUDText()
{
   m_hudHeadingText = new osgText::Text();
    m_hudHeadingText->setText("Test");
    //m_hudHeadingText->setFont(osgText::Font::getDefaultFont());

m_hudHeadingText->setCharacterSizeMode(osgText::TextBase::OBJECT_COORDS);
    m_hudHeadingText->setAlignment(osgText::TextBase::LEFT_BASE_LINE);
      m_hudHeadingText->setAxisAlignment(osgText::TextBase::XY_PLANE);
    //m_hudHeadingText->setAutoRotateToScreen(true);
    //m_hudHeadingText->setColor( osg::Vec4(1.0, 1.0, 1.0, 1.0) );
    m_hudHeadingText->setCharacterSize(24);
    m_hudHeadingText->setPosition( osg::Vec3(100.0f, 100.0f, -1.0f) );

    osg::Geode* textGeode = new osg::Geode();
    textGeode->getOrCreateStateSet()->setMode(GL_DEPTH_TEST,
osg::StateAttribute::OFF);
    textGeode->getOrCreateStateSet()->setMode(GL_LIGHTING,
osg::StateAttribute::OFF | osg::StateAttribute::PROTECTED);

    osg::MatrixTransform* textTransform = new osg::MatrixTransform;
    osg::Matrix* textMatrix = new GMatrix;
    //textTransform->setMatrix(osg::Matrix::translate(osg::Vec3d(300, 300,
0)));
    textTransform->setMatrix(osg::Matrix::identity());
    textTransform->addChild(textGeode);

//////////////////////////////////////////////////////////////////////////

    m_hudTransformable = new osg::Camera();
    m_hudTransformable->setReferenceFrame(GCamera::ABSOLUTE_RF);
    m_hudTransformable->setAllowEventFocus(false);
    m_hudTransformable->setRenderOrder(GCamera::POST_RENDER, 3);
    m_hudTransformable->setProjectionMatrixAsOrtho2D(0.0, 500.0, 0.0,
500.0);
    m_hudTransformable->setViewport(0.0, 0.0, 500, 500);
    m_hudTransformable->setClearMask(GL_DEPTH_BUFFER_BIT);
    m_hudTransformable->setViewMatrix(GMatrix::identity());
    m_hudTransformable->getOrCreateStateSet()->setMode(GL_LIGHTING,
osg::StateAttribute::OFF | osg::StateAttribute::PROTECTED);
    m_hudTransformable->addChild(textTransform);

    return m_hudTransformable.get();
}

<<attachment: test.jpg>>

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to