在 osgEarth 和 Qt 中不显示线条

Lines not showing up in osgEarth & Qt

我正尝试在 Windows 上的 Qt (5.12) 应用程序中使用 osgEarth,但我在显示线条时遇到了一些问题 - 因为它们根本没有显示出来。

按照 Stack Overflow 上构建 osg、osgQt 和 osgEarth 的一些说明,我成功地构建了所有内容,运行。

如果我 运行 osgearth_windows 和 annotation.earth 文件,它 运行 没问题,我看到一些带边框的形状,以及一些线条地球仪。

如果我 运行 使用我的 osgQt 应用程序,我会看到形状和标签,但形状上没有边框或单独的线条。

我很好奇以前是否有人遇到过这种情况,如果有一些我应该用 Qt 做的设置可以解决这个问题。

同样,如果我尝试一些内置的 osgEarth 示例程序,例如 osgearth_features.exe,我会看到地球和每个国家周围的黄色边框。如果我按照那里的代码(它创建地图的方式,然后加载底图,然后加载 FeatureSoureLayer 等),我可以在我的 Qt 应用程序中看到地球和标签,但仍然没有线条。

同样,我也有另一个 Stack Overflow 问题(如何在 运行 时间添加 osgEarth 功能?)并尝试将 PolygonSymbol 添加到地图的解决方案。我可以看到绿色三角形,但看不到它的边框。

如有任何帮助,我们将不胜感激!

确保你调用的是:

#include <osgEarth/GLUtils>
...
GLUtils::setGlobalDefaults(camera->getOrCreateStateSet());

其中camera是主视图中的相机,或者场景图顶部的另一个节点。

渲染线条的着色器需要初始化一些默认的统一值。这段代码就是这样做的。