This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Вопросы и ответы

Эта статья призвана помочь с вопросами, возникающими при использовании инструмента генерации ландшафта Sandworm.

Есть ряд общих советов , которые могут быть полезны для общего понимания:

  • Откройте консоль редактора (Windows -> Console). Если что-то идет не так, консольное сообщение может быть полезно для объяснения ситуации.

    Console errors

    Пример ошибок в консоли
  • Если вы предполагаете, что в данных высот есть некоторые проблемы, вы можете включить режим отладки для проверки: Rendering Debug -> Opacity World Normal.
  • Не беспокойтесь по поводу количества треугольников в ObjectLandscapeTerrain. Этот объект был спроектирован так, чтобы миллионы полигонов не сильно влияли на частоту кадров.
  • Очистите кэш прежде чем вы начнете генерацию ландшафта: нажмите кнопку рядом с адресной строкой кеша в нижнем левом углу окна Sandworm.

В чем разница между ObjectTerrainGlobal и ObjectLandscapeTerrain?

В настоящее время в UNIGINE есть два объекта, которые используются для ландшафта: ObjectTerrainGlobal, который давно используется, и сравнительно недавно представленный ObjectLandscapeTerrain, который имеет множество улучшений.

Эти два объекта ландшафта можно создать с помощью инструмента Sandworm.

Инструмент Sandworm, как и ObjectLandscapeTerrain, был разработан для решения накопившихся за годы проблем и расширения функционала.

Где взять геоданные?

Как правило, доступ к частным серверам TMS платный, однако существуют бесплатные источники данных, поддерживаемые за счет пожертвований. Если вы не хотите искать сами, можете проверить список здесь . Имейте в виду, что каждый сервер имеет свои особенности, и проверяйте информацию в описании.

Высоты

Например, пожно попробовать сервис mapbox. Зарегистрируйтесь, чтобы получить токен и доступ, более подробная информация на этой странице.

Бесплатный доступ ограничивает количество запросов в минуту, но это не влияет на рабочий процесс в целом и достаточно, чтобы получить общее представление.

Как только вы зарегистрируетесь, вы получите токен, представляющий собой строку различных символов. Добавьте этот токен к следующему URL-адресу после знака равенства (=): https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN и используйте этот URL-адрес в Sandworm для получения данных для соответствующего уровня.

Примечание
Чтобы избежать неровностей (артефакт ступенек), экспортируйте данные высот в 32-битную текстуру.

Снимки

Вот пример сервера снимков TMS, который вы можете использовать для общего обзора:

  • http://a.tile.openstreetmap.org/{z}/{x}/{y}.png — топографические данные OSM с легендой

Векторы

В качестве бесплатного источника векторных данных для общего понимания можно рассмотреть https://www.openstreetmap.org и использовать https://extract.bbbike.org/ как аггрегатор для них.

Упомянутые ссылки и источники предоставляются для получения общего представления. Вы можете использовать их и документацию Sandworm, если у вас нет под рукой данных с географической привязкой. Экспорт данных из сторонних инструментов сам по себе является огромной темой для исследований и займет гораздо больше времени, чем работа с нашим инструментом.

Какую проекцию выбрать, чтобы искажение поверхности было минимальным?

К сожалению, подходящей универсальной проекции не существует, потому что каждая проекция представляет собой плоское представление криволинейной области, и чем дальше точка находится от центра (начала) проекции, тем больше искажение данных. Вы можете найти больше на Википедии или поискать другие объяснения по проекциям. Конечную проекцию следует выбирать на основе имеющихся исходных данных или требований проекта.

Вы можете использовать https://epsg.org/, чтобы найти наиболее подходящую проекцию с минимальными искажениями для выбранной области.

Как использовать https://epsg.org/:

  1. Перейдите к EPSG Dataset -> Map Search:

    Примечание
    Если на сайте не отображается карта, возможно следует отключить блокировку рекламы или использовать VPN.
  2. Установите границы области и нажмите Search. Полученную таблицу отсортируйте по типу (нажмите на заголовок TYPE) и выберите один из источников данных, помеченный как Projected.

Опять же, для начала можно использовать EPSG:3857 — это проекция, широко используемая такими сервисами, как Google, OpenStreetMap, Navitel и т.п.

Тайл карты высот/изображения размещен не так, как требуется. Как правильно расположить его на карте?

Если ваши данные не имеют географической привязки, они не будут расположены на карте (проверьте консоль редактора, там также должно быть сообщение).

Тайлы загружаются или нет?

Чем детальнее тайлы, тем больше времени требуется для их загрузки. Всплывающее окно Generating Preview даст вам подсказку — оно отображается в правом нижнем углу Sandworm во время загрузки данных. Кроме того, в консоли редактора появится сообщение типа "ImportCacheTile 465.162000 ms" при загрузке тайла.

Мы рекомендуем сначала попробовать с низкими значениями Zoom. Это даст вам общее представление о данных, которые вы добавляете, затем вы можете увеличить значение Zoom и нажать Reimport. Чем выше значение Zoom, тем детальнее данные (и тем больше времени требуется для загрузки с сервера). Если данных слишком много, вы увидите уведомление.

Иногда соседние тайлы бывают разного цвета. Есть ли обходной путь для этого?

Это может произойти, когда вы берете данные с серверов TMS. Более качественные данные обычно стоят денег.

Вы можете попробовать изменить Zoom для определенной области. Еще одно решение — делать вставки из других источников TMS: например, вы генерируете всю область с Zoom = 10, а для проблемной области — создаете еще один слой, используете для него другой источник и устанавливаете Zoom = 14 (данные значения масштабирования — это просто например, попробуйте свои собственные значения).

Неверный результат генерации. / Сгенерирована только часть области.

Убедитесь, что конечная проекция установлена правильно.

Если данные находятся за пределами выбранной конечной проекции, они не будут использоваться для генерации ландшафта — будет сгенерирована только та часть, которая находится внутри. Соответствующее сообщение также будет показано в консоли редактора.

Быстрая проверка: повторно сгенерируйте проект, не определяя Export Area (выберите опцию Export Area и нажмите кнопку Press to Clear на вкладке «Параметры»). Sandworm будет генерировать только те области, для которых доступны данные.

Генерация предварительного просмотра также помогает определить, есть ли у вас данные для отсутствующей области. Если вы отменили создание предварительного просмотра, перезапустите его, щелкнув слой правой кнопкой мыши и выбрав Generate Preview.

В окне просмотра видна только часть сгенерированного ландшафта.

Измените расстояние видимости камеры: в окне редактора щелкните значок шестеренки для выбранной камеры и увеличьте значение Far. Вы можете установить максимальное значение, равное 900000.

Отрегулируйте расстояние видимости для ObjectLandscapeTerrain. Задается в настройках редактора: Windows -> Settings -> Landscape -> Visibility Distance. Вы можете установить его на inf.

Настройка пределов видимости для Landscape Terrain

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

Сцена по умолчанию содержит камеру, для которой включен параметр Main Player. Этот параметр определяет изображение, с которого отображается камера при запуске мира. Включите этот параметр для камеры, которой хотите управлять во время выполнения, например камера Sandworm — она спавнится прямо над террейном, и отключите все остальные камеры.

Есть ли встроенная система смены дня и ночи (со звездным небом), зависящая от текущей широты и долготы?

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

Как позиционировать объект по его геокоординатам?

Для ObjectTerrainGlobal вы можете использовать Geodetic Pivot в редакторе — каждый объект, добавленный в качестве его дочернего элемента, может быть расположен на местности с использованием географических координат, установленных в широте/долготе.

Что касается ObjectLandscapeTerrain, инструмент позиционирования все еще находится в разработке, пока вы можете преобразовывать координаты, используя сторонние источники, такие как https://products.aspose.app/gis/transformation.

Вот описание рабочего процесса:

  • Преобразуйте объект и исходные координаты в мировые координаты (помните об исходных и конечных проекциях).

    Исходные координаты объекта

    Исходные координаты объекта (скриншот с Google Maps)


    Исходные координаты начала координат

    Исходные координаты начала координат (параметр Export Area в Sandworm)


    Преобразование координат с помощью aspose.app

    Преобразование координат с помощью aspose.app


  • Возьмите исходную позицию из позиции объекта: Object.X — Origin.X; Object.Y — Origin.Y.

    Вычисление координат в мире (сцене)

    Вычисление координат в мире (сцене)
  • Используйте результат как координаты X и Y объекта в мире.

    Объект расположен в мире

    Объект расположен в мире

Разработчики также могут использовать Geodetics Plugin и позиционировать объекты с помощью кода.

Плагин IG имеет метод worldToGeodetic() и класс GeodeticsTransformer для позиционирования объектов.

Ландшафт не генерируется. / Редактор внезапно закрывается.

Генерация ландшафта — очень ресурсоемкая операция. Для обширных и детализированных ландшафтов вам может понадобиться много оперативной памяти.

Мы рекомендуем иметь 64 Гб оперативной памяти (не менее 32 Гб).

Отключение инструмента Microprofile также может сэкономить до 6 Гб оперативной памяти. Это можно сделать либо запустив редактор с внешним аргументом "-microprofile_enabled 0" или отключив его в консоли редактора.

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

Последнее обновление: 16.08.2024
Build: ()