查看: 724|回复: 1

求助:HUD文字,双屏显示时,两个屏会显示同样的内容

[复制链接]

该用户从未签到

发表于 2017-5-22 20:34:32 | 显示全部楼层 |阅读模式
想要实现 把两个屏连在一起当做一个屏使用,只显示一个HUD文字,在显示HUD文字时,却两个屏上都显示文字了。请大神帮忙解答一下 HUD文字.png

创建HUD的代码如下:
osg::Camera *createHUD()
{  
        osg::ref_ptr<osg::Camera>camera=new osg::Camera;
        camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);  
        camera->setViewMatrix(osg::Matrix::identity());  
        camera->setAllowEventFocus(false);  
        //设置视口,就是相机投影到你显示器的哪个位置  
        //camera->setViewport(0, 0, 2000, 600);  
        //投影变换就是定义一个可视空间,可视空间以外的物体不会被绘制到屏幕上  
        //setProjectionMatrixAsOrtho2主要用于二维图像到二维屏幕上的投影,它负责把三维空间的XY平面投射到屏幕上  
        camera->setProjectionMatrixAsOrtho2D(0, 1280, 0, 1024); // 1280  1024
        camera->setClearMask(GL_DEPTH_BUFFER_BIT);  
        camera->setRenderOrder(osg::Camera:OST_RENDER);  
  
        osg::Geode *geode = new osg::Geode();
        string timesFont("fonts/SIMHEI.TTF");

        osg::StateSet *stateset = geode->getOrCreateStateSet();
        stateset->setMode(GL_LIGHTING, osg::StateAttribute::OFF);

        osgText::Text *text = new osgText::Text;
        geode->addDrawable(text);

        text->setFont(timesFont);
        text->setPosition(osg::Vec3(50.0f, 500.0f, 0.0f));                //显示的位置
        text->setText(L"天道酬勤\n付出一定会有回报的\n");

        camera->addChild(geode);
        return camera.release();  
}  

该用户从未签到

 楼主| 发表于 2017-5-23 08:57:02 | 显示全部楼层
已经解决了,谢谢大家!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表