This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
Version Control
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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
Tutorials

常問問題

本文旨在帮助您解决使用 Sandworm 地形生成工具时出现的问题。

有一些一般提示可能有助于整体理解:

  • 打开编辑器控制台 (Windows -> Console)。如果出现问题,控制台消息可能有助于解释情况。

    Console errors

    控制台错误示例
  • 如果怀疑高度数据有问题,可以开启调试模式检查:Rendering Debug -> Opacity World Normal
  • 不用担心人数三角形ObjectLandscapeTerrain 中。该对象的设计目的是使数百万个多边形不会对帧速率产生太大影响。
  • 清除缓存开始地形生成之前:单击 Sandworm 窗口左下角缓存地址行附近的 按钮。

ObjectTerrainGlobal 和 ObjectLandscapeTerrain 有什么区别?

目前,UNIGINE 有两个用于地形的对象:ObjectTerrainGlobal,长期使用,比较最近引入了 ObjectLandscapeTerrain,有很多改进。

这两个地形对象可以使用 Sandworm 工具生成。

Sandworm 工具和 ObjectLandscapeTerrain 都是为了解决多年来积累的问题,并扩展功能而开发的。

我在哪里可以获取地理数据?

通常,对私人 TMS 服务器的访问不是免费的,但是,有捐赠支持的免费数据源。如果您没有心情搜索,可以查看列表在这里。请记住,每个服务器都有自己的功能并检查描述中的信息。

高地

例如,您可以尝试mapbox 服务。在那里注册以获得您自己的令牌和访问,更多详细信息请参见 本页

免费访问限制了每分钟的请求数,但这不会影响整个工作流程,并且足以进行一般概述。

注册后,您将收到一个由各种符号组成的字符串的令牌。在等号(=)后添加这个token到如下URL:https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN,并在Sandworm中使用这个URL来获取对应级别的数据。

注意
为避免锯齿(阶梯伪影),请将高度数据导出为 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 的值并单击 ReimportZoom 值越高,数据越详细(从服务器下载所需的时间越长)。如果数据太重,您会看到通知。

有时相邻的瓷砖颜色不同。有什么解决方法吗?

当您从 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 的可见距离

当我点击运行时,我看到加载世界后黑屏,虽然场景中有摄像头。

场景默认包含一个启用了 Main Player 参数的相机。此参数定义在世界运行时显示摄像机的图像。为您要在运行时控制的相机启用此参数,例如 Sandworm 相机 - 它在地形正上方生成,并禁用所有其他相机。

是否有内置的昼夜循环系统(有星空),取决于当前的经纬度?

我们有这个任务的 IG 插件。该插件在IG模板中默认启用,您可以阅读更多这里这里.

如何使用地理坐标定位对象?

对于 ObjectTerrainGlobal,您可以在编辑器中使用 Geodetic Pivot — 作为其子对象添加的每个对象都可以使用在 latitude/longitude. 中设置的地理坐标定位在地形上

至于ObjectLandscapeTerrain,定位工具还在开发中,同时可以使用第三方源转换坐标,比如https://products.aspose.app/gis/transformation 。

以下是工作流程的说明:

  • 将对象和原点坐标转换为世界坐标(注意输入和输出投影)。

    对象的源坐标

    对象的源坐标(来自谷歌地图的屏幕截图)


    原点的源坐标

    原点的源坐标(Sandworm 中的导出区域参数)


    使用 aspose.app 变换坐标

    使用 aspose.app 变换坐标


  • 从物体位置取原点位置:Object.X — Origin.X; Object.Y — Origin.Y

    计算场景(世界)中的坐标

    计算场景(世界)中的坐标
  • 将结果用作世界中对象的 X 和 Y 坐标。

    对象定位在世界上

    对象定位在世界上

开发人员还可以通过代码使用 Geodetics Plugin 和定位对象。

IG 插件有worldToGeodetic()方法和 GeodeticsTransformer 类来定位对象。

不生成地形。 / 编辑器突然关闭。

生成地形是一项非常耗费资源的操作。对于广阔而细致的景观,您可能需要大量可用的 RAM。

我们建议使用 64 Gb RAM(至少 32 Gb)。

禁用Microprofile该工具还可以节省多达 6 Gb RAM。这可以通过运行编辑器来完成外部论据"-microprofile_enabled 0",或在编辑器控制台中禁用它。

如果在生成地形时出现崩溃,逐步一层一层添加并生成可以帮助发现数据问题。或者至少删除矢量数据层,因为它可能非常消耗。

最新更新: 2024-12-13
Build: ()