查看: 1651|回复: 8

请问文字osgText设置颜色为什么不起作用,一直都是黑色,麻烦大神解答!谢谢

[复制链接]

该用户从未签到

发表于 2015-6-25 15:42:21 | 显示全部楼层 |阅读模式
请问文字osgText设置颜色为什么不起作用,一直都是黑色
代码如下:
osgText::Text* text = new osgText::Text;
    text->setFont(font,false);
    text->setColor(osg::Vec4(1, 0, 0, 1));
    text->setCharacterSize(30.f,false);
    text->setCharacterSize(40);
    text->setFontResolution(120, 120,false);
    text->setCharacterSizeMode(osgText::Text::SCREEN_COORDS);
    text->setPosition(pos);
    text->setAxisAlignment(osgText::Text::SCREEN);
    text->setAlignment(osgText::Text::CENTER_CENTER,false);
    text->setText(strText,osgText::String::ENCODING_UTF8, false);
    text->setMaximumWidth(fWidth, false);
    text->update();
    pTextGeode->setName(strText.c_str());
    pTextGeode->addDrawable(text);
,麻烦大神解答!谢谢

该用户从未签到

发表于 2015-6-25 16:42:53 | 显示全部楼层
因为没有整体代码,所以看不出你这个几行代码的具体位置?猜测:可能是text赋值之后提前释放掉了,所以进行的设置不起作用。

该用户从未签到

 楼主| 发表于 2015-6-26 11:54:22 | 显示全部楼层
谢谢了!
osg::Group* pTextGroup = new osg::Group;
                pTextGroup->setName(Floor.m_strFloorName + std::string("TEXT"));
                pTextGroup->getOrCreateStateSet()->setAttribute(textShaderProgram);
                osg::Uniform* baseTextureSampler1 = new osg::Uniform("baseTexture",0);
                pTextGroup->getOrCreateStateSet()->addUniform(baseTextureSampler1);
                pTextGroup->getOrCreateStateSet()->setMode(GL_LIGHTING,osg::StateAttribute::OFF);//关闭灯光
osg::Geode* pTextGeode = new osg::Geode;
osgText::Text* text = new osgText::Text;
    text->setFont(font,false);
    text->setColor(osg::Vec4(1, 0, 0, 1));
    text->setCharacterSize(30.f,false);
    text->setCharacterSize(40);
    text->setFontResolution(120, 120,false);
    text->setCharacterSizeMode(osgText::Text::SCREEN_COORDS);
    text->setPosition(pos);
    text->setAxisAlignment(osgText::Text::SCREEN);
    text->setAlignment(osgText::Text::CENTER_CENTER,false);
    text->setText(strText,osgText::String::ENCODING_UTF8, false);
    text->setMaximumWidth(fWidth, false);
    text->update();
    pTextGeode->setName(strText.c_str());
    pTextGeode->addDrawable(text);
pTextGroup->addChild(pTextGeode);

我在群里问过了,说是要关闭灯光才可以,红色部分是关闭灯光的操作,是我写的不对还是其他问题,还请大家指点,谢谢

该用户从未签到

 楼主| 发表于 2015-6-26 12:53:36 | 显示全部楼层
gfy5216 发表于 2015-6-25 16:42
因为没有整体代码,所以看不出你这个几行代码的具体位置?猜测:可能是text赋值之后提前释放掉了,所以进行 ...

完整的代码我贴上来了,能否帮忙看下,谢谢!

该用户从未签到

发表于 2015-6-26 16:09:29 | 显示全部楼层

还有,一般光照在关闭的试试是在geode关闭

mucuntm 发表于 2015-6-26 12:53
完整的代码我贴上来了,能否帮忙看下,谢谢!


程序生成运行之后,你按下空格试试!

该用户从未签到

 楼主| 发表于 2015-6-27 10:17:06 | 显示全部楼层
gfy5216 发表于 2015-6-26 16:09
程序生成运行之后,你按下空格试试!

我自己写了个DEMO,关闭灯光文字确实可以变色,但是在项目里面就是不行,不知道是为什么。。我用的是osg3.0

该用户从未签到

 楼主| 发表于 2015-6-27 10:18:16 | 显示全部楼层
影响文字颜色的除了灯光之外还有其他的吗?

该用户从未签到

 楼主| 发表于 2015-6-27 10:18:29 | 显示全部楼层
影响文字颜色的除了灯光之外还有其他的吗?

该用户从未签到

发表于 2015-10-14 16:30:41 | 显示全部楼层
放在阴影节点下了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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