Вопросы и ответы
Чтобы использовать этот функционал вам необходимо получить лицензию на
This article aims to help with questions that arise when you use the Sandworm terrain generation tool.Эта статья призвана помочь с вопросами, возникающими при использовании инструмента генерации ландшафта Sandworm.
There is a number of general tips that may be useful for overall understanding:Есть ряд общих советов , которые могут быть полезны для общего понимания:
-
Open the Editor console (Windows -> Console). If something goes wrong, a console message might be useful in explaining the situation.Откройте консоль редактора (Windows -> Console). Если что-то идет не так, консольное сообщение может быть полезно для объяснения ситуации.
Example of console errorsПример ошибок в консоли - If you suspect that the height data have some issues, you can enable the debug mode to check: Rendering Debug -> Opacity World Normal.Если вы предполагаете, что в данных высот есть некоторые проблемы, вы можете включить режим отладки для проверки: Rendering Debug -> Opacity World Normal.
- Don’t worry about the number of triangles in ObjectLandscapeTerrain. This object was designed in a way that millions of polygons wouldn’t affect the framerate that much.Не беспокойтесь по поводу количества треугольников в ObjectLandscapeTerrain. Этот объект был спроектирован так, чтобы миллионы полигонов не сильно влияли на частоту кадров.
- Clear cache before you start terrain generation: click the button near the cache address line in the bottom left corner of the Sandworm window.Очистите кэш прежде чем вы начнете генерацию ландшафта: нажмите кнопку рядом с адресной строкой кеша в нижнем левом углу окна Sandworm.
What is the difference between ObjectTerrainGlobal and ObjectLandscapeTerrain? В чем разница между ObjectTerrainGlobal и ObjectLandscapeTerrain?
Currently, UNIGINE has two objects that are used for terrain: ObjectTerrainGlobal, which has long been in use, and comparatively recently introduced ObjectLandscapeTerrain, which has many improvements.В настоящее время в UNIGINE есть два объекта, которые используются для ландшафта: ObjectTerrainGlobal, который давно используется, и сравнительно недавно представленный ObjectLandscapeTerrain, который имеет множество улучшений.
These two terrain objects can be generated using the Sandworm Tool.Эти два объекта ландшафта можно создать с помощью инструмента Sandworm.
The Sandworm Tool as well as ObjectLandscapeTerrain were developed to solve the problems, which have accumulated over the years, and extend the functionality.Инструмент Sandworm, как и ObjectLandscapeTerrain, был разработан для решения накопившихся за годы проблем и расширения функционала.
Where can I take the geodata?Где взять геоданные?
As a rule, access to private TMS servers is not free, however, there are free data sources supported by donations. If you are not in the mood of searching, you can check the list here. Keep in mind that every server has its own features and check the information in description.Как правило, доступ к частным серверам TMS платный, однако существуют бесплатные источники данных, поддерживаемые за счет пожертвований. Если вы не хотите искать сами, можете проверить список здесь . Имейте в виду, что каждый сервер имеет свои особенности, и проверяйте информацию в описании.
HeightsВысоты
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.Например, пожно попробовать сервис mapbox. Зарегистрируйтесь, чтобы получить токен и доступ, более подробная информация на этой странице.
Free access limits the number of requests per minute, but that doesn’t affect the overall workflow and is enough for general overview.Бесплатный доступ ограничивает количество запросов в минуту, но это не влияет на рабочий процесс в целом и достаточно, чтобы получить общее представление.
As soon as you register, you’ll receive a token which is a string of various symbols. Add this token to the following URL after the equality sign (=): https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN, and use this URL in Sandworm to obtain the data for the corresponding level.Как только вы зарегистрируетесь, вы получите токен, представляющий собой строку различных символов. Добавьте этот токен к следующему URL-адресу после знака равенства (=): https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN и используйте этот URL-адрес в Sandworm для получения данных для соответствующего уровня.
ImageryСнимки
Here's an example of an imagery TMS server you can use for general overview:Вот пример сервера снимков TMS, который вы можете использовать для общего обзора:
- http://a.tile.openstreetmap.org/{z}/{x}/{y}.png — OSM topographic data with a legendhttp://a.tile.openstreetmap.org/{z}/{x}/{y}.png — топографические данные OSM с легендой
VectorВекторы
As a free source of vector data for a basic overview, you can check https://www.openstreetmap.org and use https://extract.bbbike.org/ as an aggregator for it.В качестве бесплатного источника векторных данных для общего понимания можно рассмотреть https://www.openstreetmap.org и использовать https://extract.bbbike.org/ как аггрегатор для них.
The mentioned links and sources are provided as a quick start for an overview. You can use them and the Sandworm documentation if you don’t have any georeferenced data at hand. Exporting data from third-party tools is a huge topic for research in itself, and would take much more time than getting along with our tool.Упомянутые ссылки и источники предоставляются для получения общего представления. Вы можете использовать их и документацию Sandworm, если у вас нет под рукой данных с географической привязкой. Экспорт данных из сторонних инструментов сам по себе является огромной темой для исследований и займет гораздо больше времени, чем работа с нашим инструментом.
Which projection should I select to have the minimum surface distortion? Какую проекцию выбрать, чтобы искажение поверхности было минимальным?
Unfortunately an all-fitting universal projection doesn’t exist, because every projection is a flat representation of a curved area, and the farther a point is from the center (origin) of the projection, the higher the data corruption is. You can find more on Wikipedia or search for other explanations on projections. The output projection should be chosen based on source data at hand or the project requirements.К сожалению, подходящей универсальной проекции не существует, потому что каждая проекция представляет собой плоское представление криволинейной области, и чем дальше точка находится от центра (начала) проекции, тем больше искажение данных. Вы можете найти больше на Википедии или поискать другие объяснения по проекциям. Конечную проекцию следует выбирать на основе имеющихся исходных данных или требований проекта.
You can use https://epsg.org/ to find the best-fitting projection with minimum inaccuracy for the selected area.Вы можете использовать https://epsg.org/, чтобы найти наиболее подходящую проекцию с минимальными искажениями для выбранной области.
How to use https://epsg.org/:Как использовать https://epsg.org/:
-
Go to EPSG Dataset -> Map Search:Перейдите к EPSG Dataset -> Map Search:
If the website doesn't display any map, consider disabling adblock or using a VPN.Если на сайте не отображается карта, возможно следует отключить блокировку рекламы или использовать VPN. -
Set the area boundaries and click Search. You’ll receive a table — sort it by type (click on the TYPE heading) and select one of the data sources that is marked as Projected.Установите границы области и нажмите Search. Полученную таблицу отсортируйте по типу (нажмите на заголовок TYPE) и выберите один из источников данных, помеченный как Projected.
Again, for a start, you can use EPSG:3857 — this is a projection widely used by such services as Google, OpenStreetMap, Navitel, etc.Опять же, для начала можно использовать EPSG:3857 — это проекция, широко используемая такими сервисами, как Google, OpenStreetMap, Navitel и т.п.
A heightmap/imagery tile is not placed as required. How to locate it properly on the map?Тайл карты высот/изображения размещен не так, как требуется. Как правильно расположить его на карте?
If your data is not georeferenced, it won’t be located on the map (check the editor console, there also shall be a message).Если ваши данные не имеют географической привязки, они не будут расположены на карте (проверьте консоль редактора, там также должно быть сообщение).
Are tiles loading or not? Тайлы загружаются или нет?
The more detailed the tiles are, the more time is required to load them. The Generating Preview pop-up will give you a hint — it is displayed in the bottom right corner of Sandworm while the data is downloaded. In addition, in the Editor console there’ll be a message looking like "ImportCacheTile 465.162000 ms" when a tile is loaded.Чем детальнее тайлы, тем больше времени требуется для их загрузки. Всплывающее окно Generating Preview даст вам подсказку — оно отображается в правом нижнем углу Sandworm во время загрузки данных. Кроме того, в консоли редактора появится сообщение типа "ImportCacheTile 465.162000 ms" при загрузке тайла.
We recommend attempting with low Zoom values first. This will give you an overall understanding about the data you add, then you can increase the Zoom value and click Reimport. The higher the Zoom value is, the more detailed is the data (and the more time it takes to download from a server). If the data is too heavy, you’ll see a notification.Мы рекомендуем сначала попробовать с низкими значениями Zoom. Это даст вам общее представление о данных, которые вы добавляете, затем вы можете увеличить значение Zoom и нажать Reimport. Чем выше значение Zoom, тем детальнее данные (и тем больше времени требуется для загрузки с сервера). Если данных слишком много, вы увидите уведомление.
Sometimes neighboring tiles are of different colors. Is there any workaround for that? Иногда соседние тайлы бывают разного цвета. Есть ли обходной путь для этого?
This can happen when you take data from TMS servers. Better data usually costs money.Это может произойти, когда вы берете данные с серверов TMS. Более качественные данные обычно стоят денег.
You can try to change Zoom for a certain area. One more solution is to make insets using other TMS sources: for example, you generate the whole area with Zoom = 10, and for the problem area — create another layer, use another source for it, and set Zoom = 14 (the given zoom values are just an example, try your own values).Вы можете попробовать изменить Zoom для определенной области. Еще одно решение — делать вставки из других источников TMS: например, вы генерируете всю область с Zoom = 10, а для проблемной области — создаете еще один слой, используете для него другой источник и устанавливаете Zoom = 14 (данные значения масштабирования — это просто например, попробуйте свои собственные значения).
The result of generation is wrong. / Only a part of the area has been generated. Неверный результат генерации. / Сгенерирована только часть области.
Check that the output projection is set correctly.Убедитесь, что конечная проекция установлена правильно.
If the data is outside the selected output projection, it won’t be used for the terrain generation — only the part that is inside will be generated. The corresponding message will be also shown in the Editor console.Если данные находятся за пределами выбранной конечной проекции, они не будут использоваться для генерации ландшафта — будет сгенерирована только та часть, которая находится внутри. Соответствующее сообщение также будет показано в консоли редактора.
A quick check: re-generate the project without defining the Export Area (select the Export Area option and click the Press to Clear button in the Parameters tab). Sandworm will generate only the areas for which the data is available.Быстрая проверка: повторно сгенерируйте проект, не определяя Export Area (выберите опцию Export Area и нажмите кнопку Press to Clear на вкладке «Параметры»). Sandworm будет генерировать только те области, для которых доступны данные.
Preview generation is also helpful in defining if you have data for the area that is missing. If you canceled the preview generation, restart it by right-clicking on a layer and selecting Generate Preview.Генерация предварительного просмотра также помогает определить, есть ли у вас данные для отсутствующей области. Если вы отменили создание предварительного просмотра, перезапустите его, щелкнув слой правой кнопкой мыши и выбрав Generate Preview.
Only a part of the generated terrain is visible in the viewport. В окне просмотра видна только часть сгенерированного ландшафта.
Change the camera visibility distance: in the Editor window, click the gear icon for the selected camera and increase the Far value. You can set the maximum, which is 900000.Измените расстояние видимости камеры: в окне редактора щелкните значок шестеренки для выбранной камеры и увеличьте значение Far. Вы можете установить максимальное значение, равное 900000.
Adjust the visibility distance for ObjectLandscapeTerrain. It is set in the Editor settings: Windows -> Settings -> Landscape -> Visibility Distance. You can set it to inf.Отрегулируйте расстояние видимости для ObjectLandscapeTerrain. Задается в настройках редактора: Windows -> Settings -> Landscape -> Visibility Distance. Вы можете установить его на inf.
When I click Run, I see the black screen after the world is loaded, although there are cameras in the scene. Когда я нажимаю Run, я вижу черный экран после загрузки мира, хотя в сцене есть камеры.
The scene contains a camera by default, which has the Main Player parameter enabled. This parameter defines the image from which camera is displayed when the world is run. Enable this parameter for the camera that you want to control at runtime, for example Sandworm camera — it is spawned right above the terrain, and disable all other cameras.Сцена по умолчанию содержит камеру, для которой включен параметр Main Player. Этот параметр определяет изображение, с которого отображается камера при запуске мира. Включите этот параметр для камеры, которой хотите управлять во время выполнения, например камера Sandworm — она спавнится прямо над террейном, и отключите все остальные камеры.
Is there a built-in day and night cycle system (with the starry sky) that depends on the current latitude and longitude? Есть ли встроенная система смены дня и ночи (со звездным небом), зависящая от текущей широты и долготы?
We have the IG plugin for this task. This plugin is enabled by default in the IG Template, you can read more here and here.У нас есть плагин IG для этой задачи. Этот плагин включен по умолчанию в шаблоне IG, вы можете прочитать больше здесь и здесь .
How to position an object using its geo coordinates? Как позиционировать объект по его геокоординатам?
For ObjectTerrainGlobal, you can use Geodetic Pivot in the Editor — every object added as its child can be positioned on the terrain using geographical coordinates set in latitude/longitude.Для ObjectTerrainGlobal вы можете использовать Geodetic Pivot в редакторе — каждый объект, добавленный в качестве его дочернего элемента, может быть расположен на местности с использованием географических координат, установленных в широте/долготе.
As for ObjectLandscapeTerrain, the positioning tool is still in development, meanwhile you can transform coordinates using third-party sources, such as https://products.aspose.app/gis/transformation.Что касается ObjectLandscapeTerrain, инструмент позиционирования все еще находится в разработке, пока вы можете преобразовывать координаты, используя сторонние источники, такие как https://products.aspose.app/gis/transformation.
Here is a description of the workflow:Вот описание рабочего процесса:
-
Transform the object and the origin coordinates to the world coordinates (mind the input and output projections).Преобразуйте объект и исходные координаты в мировые координаты (помните об исходных и конечных проекциях).
Source coordinates of the object (screen capture from Google Maps)Исходные координаты объекта (скриншот с Google Maps)Source coordinates of the origin (Export Area parameter in Sandworm)Исходные координаты начала координат (параметр Export Area в Sandworm)Transforming coordinates using aspose.appПреобразование координат с помощью aspose.app -
Take the origin position from the object position: Object.X — Origin.X; Object.Y — Origin.Y.Возьмите исходную позицию из позиции объекта: Object.X — Origin.X; Object.Y — Origin.Y.
Calculating the world coordinatesВычисление координат в мире (сцене) -
Use the outcome as the X and Y coordinates of the object in the world.Используйте результат как координаты X и Y объекта в мире.
Object positioned in the worldОбъект расположен в мире
Developers can also use Geodetics Plugin and position objects via code.Разработчики также могут использовать Geodetics Plugin и позиционировать объекты с помощью кода.
IG Plugin has the worldToGeodetic() method and GeodeticsTransformer class to position objects.Плагин IG имеет метод worldToGeodetic() и класс GeodeticsTransformer для позиционирования объектов.
Terrain is not generated. / Editor suddenly closes. Ландшафт не генерируется. / Редактор внезапно закрывается.
Generating a terrain is a very resource-consuming operation. For vast and detailed landscapes, you might need a lot of RAM available.Генерация ландшафта — очень ресурсоемкая операция. Для обширных и детализированных ландшафтов вам может понадобиться много оперативной памяти.
We recommend having 64 Gb RAM (at least 32 Gb).Мы рекомендуем иметь 64 Гб оперативной памяти (не менее 32 Гб).
Disabling the Microprofile tool can also save up to 6 Gb RAM. This may be done either by running the Editor with the external argument "-microprofile_enabled 0", or disabling it in the Editor console.Отключение инструмента Microprofile также может сэкономить до 6 Гб оперативной памяти. Это можно сделать либо запустив редактор с внешним аргументом "-microprofile_enabled 0" или отключив его в консоли редактора.
If you have crashes while generating a terrain, gradual adding layers one by one and generating can help finding a problem with the data. Or at least remove the vector data layer, because it may be very consuming.Если у вас возникают сбои при создании ландшафта, постепенное добавление слоев один за другим и генерация могут помочь найти проблему с данными. Или, по крайней мере, удалите слой векторных данных, потому что он может быть очень трудоемким.