查看: 1751|回复: 2

osgText在使用了shadowmap之后字体颜色一直是黑色的,如何解决呢?

[复制链接]

该用户从未签到

发表于 2009-11-10 11:48:27 | 显示全部楼层 |阅读模式
发现osgText在使用了shadow map之后字体颜色一直都是黑色的。有没有人知道这是为什么?如何才能改变text字体颜色呢?另外除了osgText现在有什么常用的字体显示的方法?
写了一个简单的程序验证了一下:

#include <osgShadow/ShadowedScene>
#include <osgShadow/ShadowMap>
#include <osg/Geode>
#include <osg/PolygonMode>
#include <osg/PositionAttitudeTransform>
#include <osgText/Font>
#include <osgText/Text>
#include <osg/ShapeDrawable>
#include <osg/Material>
#include <osgGA/TrackballManipulator>
#include <osgViewer/Viewer>
#include <osgViewer/View>
int main()
{
osgViewer::Viewer viewer;
osg::ref_ptr<osgShadow::ShadowedScene> shadowedScene =
new osgShadow::ShadowedScene;
shadowedScene->setReceivesShadowTraversalMask(1);
shadowedScene->setCastsShadowTraversalMask(2);
osg::ref_ptr<osgShadow::ShadowMap> sm =
new osgShadow::ShadowMap;
shadowedScene->setShadowTechnique(sm.get());

osgText::Font* font = osgText::readFontFile("C:/WINDOWS/Fonts/arial.ttf");
float charSize = 10.0f;
osg::Vec3 numPos,digitPos;

digitPos = osg::Vec3(-20,0,93);

osg::ref_ptr<osgText::Text> label = new osgText::Text;
osg::ref_ptr<osg::Geode> labelGeode =
new osg::Geode;
labelGeode->addDrawable(label.get());
label->setCharacterSize(charSize);
label->setFont(font);
label->setColor(osg::Vec4(1.0,1.0,1.0,1.0));
char test[2];
test[0] = '0';
test[1] = '\0';
label->setText(test);
label->setDrawMode(osgText::Text::TEXT | osgText::Text::BOUNDINGBOX);
label->setPosition( digitPos );
label->setRotation(osg:uat(osg:egreesToRadians(30.00),osg::Vec3(1,0,0),osg::DegreesToRadians(30.00),osg::Vec3(0,1,0),osg::DegreesToRadians(-90.00),osg::Vec3(0,0,1)));


shadowedScene->addChild(labelGeode.get());

viewer.setSceneData(shadowedScene.get());
viewer.setCameraManipulator(
new osgGA::TrackballManipulator());
viewer.realize();
while (!viewer.done())
{
viewer.frame();
}

}

该用户从未签到

发表于 2009-11-10 11:59:17 | 显示全部楼层
我个人不清楚osgShadow会对文字有什么影响,事实上这个库和其他库的冲突问题一直比较多,但是目前无人能够维护它;我个人也不太看好osgShadow库的前景。

OSG在Windows下使用osgText实现各式样文字的显示;而在Unix下,还可以考虑效率更出色的第三方工程osgPango和osgCairo

该用户从未签到

 楼主| 发表于 2009-11-10 12:36:22 | 显示全部楼层
谢谢array.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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