首页 > 解决方案 > osgEarth 和 Qt 中未显示的行

问题描述

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

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

如果我使用 annotation.earth 文件运行 osgearth_windows,它运行良好,我会看到一些带边框的形状,以及地球上的几条线。

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

我很好奇是否有人以前经历过这种情况,如果有一些设置我应该使用 Qt 来解决这个问题。

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

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

任何帮助将不胜感激!

标签: qtopenscenegraphosgearth

解决方案


确保你正在调用这个:

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

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

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


推荐阅读