将osg升到3.6.3、osgearth升到2.10时发现在画FeatureNode和LabelNode时,在我的工程代码怎么都不显示。但是同样的代码放到osgearth例子里就可以,百思不得其解,无赖一句一句对比,最后跟源码,最终发现LabelNode要加这句话:
m_ptrViewer->getCamera()->setSmallFeatureCullingPixelSize(-1.0f);
FeatureNode要加这句话:
GLUtils::setGlobalDefaults(m_ptrViewer->getCamera()->getOrCreateStateSet());
并且FeatureNode必须加到MapNode才会显示。
自己实现的PlaceNode大量显示时会崩溃,最后发现是设置了深度测试导致的,把这句话去掉就好了:
//stateSet->setAttributeAndModes(new osg::Depth(osg::Depth::ALWAYS, 0, 1, false), 1);