This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
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
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

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

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

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

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

    Console errors

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

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

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

Эти два объекта ландшафта можно создать с помощью инструмента Sandworm. Существует также инструмент Landscape, но он может генерировать только ObjectTerrainGlobal, потому что когда он разрабатывался, ObjectLandscapeTerrain даже не планировался.

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

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

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

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

Высоты

For example, you can try the mapbox service. Register there in order to obtain your own token and access, for more details see this page.

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

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

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

Образы

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

  • https://khms2.google.com/kh/v=871?x={x}&y={y}&z={z} - данные Google Maps
  • http://a.tile.openstreetmap.org/{z}/{x}/{y}.png — топографические данные OSM с легендой

Вектор

As a free source of vector data that can be used for a basic overview, you can check https://www.openstreetmap.org and use https://extract.bbbike.org/ as an aggregator for it.

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

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

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

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

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

Перейдите к EPSG Dataset -> Map Search, установите границы области и нажмите Search. Вы получите таблицу, отсортируете ее по типу (нажмите на заголовок TYPE) и выберите один из источников данных, помеченный как Projected.

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

Можно ли задать область экспорта вручную?

В Редакторе невозможно задать точные координаты точек. Однако вы можете отредактировать точки области экспорта вручную: откройте ваш проект *.sworm в текстовом редакторе и пропишите нужные вам координаты.

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

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

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

Чем детальнее тайлы, тем больше времени требуется для их загрузки. Всплывающее окно 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.

Setting visibility distance for Landscape Terrain

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

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

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

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

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

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

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

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

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

    Source coordinates of the object

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


    Source coordinates of the origin

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


    Transforming coordinates using aspose.app

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


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

    Calculating the world coordinates

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

    Object positioned in the world

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

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

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

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

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

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

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

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

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