Линии не отображаются в osgEarth & Qt

Я пытаюсь использовать osgEarth в приложении Qt (5.12) в Windows, и у меня возникают некоторые проблемы с отображением строк - например, они просто не отображаются.

Следуя некоторым инструкциям по сборке osg, osgQt и osgEarth здесь, в Stack Overflow, мне удалось собрать все для сборки и запуска.

Если я запускаю osgearth_windows с файлом annotation.earth, он работает нормально, и я вижу несколько фигур с границами и несколько линий на земном шаре.

Если я запускаю с моим приложением osgQt, я вижу формы и метки, но нет границ на формах или отдельных линиях.

Мне любопытно, сталкивался ли кто-нибудь с этим ранее, и если есть какие-то настройки, которые я должен сделать с Qt, это решит эту проблему.

Точно так же, если я попробую некоторые из встроенных примеров программ osgEarth, таких как osgearth_features.exe, я увижу глобус и желтые границы вокруг каждой страны. Если я следую приведенному там коду (то, как он создает карту, затем загружает базовую карту, затем FeatureSoureLayer и т. Д.), Я вижу глобус и метки в своем приложении Qt, но все еще без строк.

Опять же, у меня также был еще один вопрос о переполнении стека (Как добавить функции osgEarth во время выполнения?) И я попытался решить проблему добавления PolygonSymbol на карту. Я могу видеть зеленый треугольник, но не вижу границы на нем.

Любая помощь будет принята с благодарностью!

1 ответ

Решение

Убедитесь, что вы звоните это:

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

куда camera это камера на главном экране или другой узел в верхней части графа сцены.

Для шейдера, который отображает линии, необходимо инициализировать некоторые стандартные значения по умолчанию. Этот код делает это.

Другие вопросы по тегам