11.2. 3D地图视图

通过3D地图视图提供3D可视化支持。您可以通过创建、管理和打开3D地图视图 View ► 3D Map Views ► 菜单:

  1. 通过点击 新的3DMap New 3D Map View 您可以创建新的3D地图视图。将出现一个浮动且可停靠的QGIS面板(请参见 3D地图视图对话框 )。它具有与2D主地图画布相同的范围和视图,并提供了一组将视图转换为3D的导航工具。

  2. 通过点击 Manage 3D Map Views 您将进入3D地图视图管理器。在这里,您可以打开、复制、删除和重命名3D地图视图。

  3. 如果您创建了一个或多个3D地图视图,则会看到它们在中列出 3D Map Views 。您可以通过单击打开来打开和关闭它们。即使它们已关闭,也可以通过保存项目来保存它们。

../../../_images/3dmapview.png

图 11.23 3D地图视图对话框

3D地图视图面板的顶部提供了以下工具:

  • 平底锅 Camera Control :移动视图,保持相机的角度和方向不变

  • ZoomFullExtent Zoom Full :将视图大小调整为整个层的范围

  • 3d导航 Toggle On-Screen Notification :显示/隐藏导航小工具(这是为了简化地图视图的控制)

  • 识别 Identify :返回有关地形的单击点或单击的3D要素的信息(S)--更多详细信息请访问 识别功能

  • 量测 Measurement Line :测量点之间的水平距离

  • 玩 Animations :显示/隐藏 animation player 小组件

  • 保存映射为图像 Save as Image... :将当前视图导出为图像文件格式

  • 三维 Export 3D Scene :将当前视图导出为3D场景 (.obj 文件),允许在像Blender这样的应用程序中进行后处理...地形和矢量要素将导出为3D对象。导出设置,覆盖各层 properties 或地图视图 configuration ,包括:

    • Scene name and destination Folder

    • Terrain resolution

    • Terrain texture resolution

    • Model scale

    • 复选框 Smooth edges

    • 复选框 Export normals

    • 复选框 Export textures

  • 放映预设 Set View Theme :允许您从预定义中选择要在地图视图中显示的一组图层 map themes

  • 这个 选项 Options 菜单提供了执行以下操作的快捷方式:

    • 将视觉效果添加到3D渲染中,例如显示 shadowseye dome lightingambient occlusion

    • 同步视图 (2D map view follows 3D camera 和/或 3D camera follows 2D Map view )

    • Show visible camera area in 2D map view

    • 选项 Configure 3D地图视图 settings

  • 码头 Dock 3D Map View :从停靠的微件切换到顶层窗口

11.2.1. 场景配置

打开3D地图视图时,您可以自定义一些默认设置。为此,请展开 选项 Options 3D画布面板顶部的菜单,然后按 选项 Configure 按钮以打开 3D configuration 窗户。

../../../_images/3dmapconfiguration.png

图 11.24 3D地图配置对话框

在3D配置窗口中,有各种选项可用于微调3D场景:

11.2.1.1. 地形

  • Terrain :在深入了解细节之前,值得注意的是,3D视图中的地形由地形瓷砖的层次结构表示,随着相机向地形移动,没有足够细节的现有瓷砖将被具有更多细节的较小瓷砖取代。每个平铺都具有从高程栅格图层派生的网格几何图形和从二维地图图层派生的纹理。

    • 高程地形 Type 可以是:

      • 一个 Flat terrain

      • A已装满 DEM (Raster Layer)

      • 一个 Online 服务,装载 elevation tiles 由MAPZEN Tools制作--更多细节请访问https://registry.opendata.aws/terrain-tiles/

      • A已装满 Mesh 数据集

    • Elevation :要用于生成地形的栅格或网格层。栅格图层必须包含表示高程的标注栏。对于网格层,使用顶点的Z值。

    • Vertical scale :垂直轴的比例因子。增加比例将夸大地貌的高度。

    • Tile resolution :每个平铺要使用的地形栅格图层的采样数。值为16px表示每个平铺的几何体将由16x16高程样本组成。较高的数值会创建更详细的地形平铺,但会增加渲染的复杂性。

    • Skirt height :有时可以看到地面瓷砖之间的小裂缝。增加此值将在地形瓷砖周围添加垂直墙(裙子)以隐藏裂缝。

    • Offset :向上或向下移动地形,例如调整其相对于场景中其他对象的地面高度的高程。

      当地形高度和场景中的层高度之间存在差异时(例如,仅使用相对垂直高度的点云),该选项非常有用。在这种情况下,手动调整地形高程以与场景中对象的高程重合可以改善导航体验。

  • 将网格层用作terrain时,可以配置 Triangles settings (线框显示、平滑三角形、细节级别)和 Rendering colors settings (作为统一颜色或 color ramp based )。更多详细信息请参阅 Mesh layer 3D properties 一节。

  • 未选中 Terrain shading :允许您选择地形的渲染方式:

    • 禁用明暗处理-地形颜色仅根据地图纹理确定

    • 启用着色-使用Phong的着色模型确定地形颜色,并考虑贴图纹理、地形法线向量、场景灯光(S)和地形材质的 AmbientSpecular 颜色和 Shininess

11.2.1.2. 电灯

Lights 选项卡中,按下 符号系统添加 要添加的菜单

  • 最多八个 Point lights :向所有方向发射灯光,就像填充区域的光球一样。离光越近的物体越亮,越远的物体越暗。点光源具有设置的位置 (XYZ )、a Color ,一个 Intensity 和一个 Attenuation

  • 最多四个 Directional lights :模拟从远离对象的巨大闪光灯获得的照明,始终居中且永不熄灭(例如太阳)。它向一个方向发射平行的光线,但光线延伸到无限远。平行光可以在给定的 Azimuth ,祝您有一个 Altitude 一种 Color 和一个 Intensity

../../../_images/3dmapconfiguration_lights.png

图 11.25 3D地图灯光配置对话框

11.2.1.3. 阴影

检查 未选中 Show shadows 要在场景中显示阴影,请执行以下操作:

  • 一个 Directional light

  • 一个 Shadow rendering maximum distance :避免渲染距离太远的对象的阴影,尤其是当相机沿地平线抬头时

  • 一个 Shadow bias :避免由于贴图大小不同而使某些区域变得比其他区域更暗的自阴影效果。越低越好

  • 一个 Shadow map resolution :使阴影看起来更锐利。如果分辨率参数太高,可能会导致性能降低。

11.2.1.4. 相机和Skybox

在此选项卡中,您可以控制不同的参数,如摄像头、3D轴、导航同步和Skybox。

../../../_images/3dmapconfiguration_camera.png

图 11.26 3D地图相机配置对话框

  • 这个 Camera 参数组覆盖了一些 default camera settings 制造于 Settings ► Options ► 3D 对话框中。

  • 检查 未选中 Show 3D Axis 以启用3D轴工具。此参数组允许设置轴类型及其位置。

    • Coordinate Reference System 键入将表示的正交轴。

    • Cube 类型,则将表示3D立方体。立方体面可用于更改相机视图:例如,单击 north Face将相机设置为从北面观看。

小技巧

在3D轴上单击鼠标右键以快速设置其位置和类型以及相机视图。

../../../_images/3dmapconfiguration_3daxis_menu.png

图 11.27 3D轴快捷菜单

  • 这个 Navigation Synchronization 参数组添加了将2D视图与3D相机位置同步、3D相机位置与2D视图同步或双向同步的选项。最后一个选项显示从3D相机在2D地图视图上可见的范围。

  • 检查 未选中 Show skybox 若要在场景中启用天框渲染,请执行以下操作。Skybox类型可以是:

    • Panoramic texture ,一个单独的文件夹提供360度视野

    • Distinct faces ,包含场景的长方体的六个面的每一面都有一个纹理文件

    Skybox的纹理图像文件可以是磁盘上的文件、远程URL或嵌入到项目中 (more details )。

11.2.1.5. 进阶

  • Map tile resolution :用作地形平铺纹理的2D地图图像的宽度和高度。256px表示每个平铺将渲染为256x256像素的图像。较高的数值会创建更详细的地形平铺,但会增加渲染的复杂性。

  • Max. screen error :确定用更详细的地形瓷砖交换地形瓷砖的阈值(反之亦然)-即3D视图多快将使用更高质量的瓷砖。数字越小,场景中的细节越多,但会增加渲染的复杂性。

  • Max. ground error :地形瓦片的分辨率,将瓦片分割为更详细的瓦片时将停止(拆分它们无论如何不会引入任何额外的细节)。该值限制了平铺层次的深度:较低的值会使层次更深,从而增加渲染复杂性。

  • Zoom levels :显示缩放级别的数量(取决于地图平铺分辨率和最大。接地误差)。

  • 未选中 Show labels :打开/关闭地图标签

  • 未选中 Show map tile info :包括地形瓷砖的边界和瓷砖编号(用于解决地形问题)

  • 未选中 Show bounding boxes :显示地形平铺的3D边界框(用于解决地形问题)

  • 未选中 Show camera's view center

  • 未选中 Show camera's rotation center

  • 未选中 Show light sources :显示光源原点处的球体,允许相对于场景内容更轻松地重新定位和放置光源

  • 未选中 Show frames per second (FPS)

  • 未选中 Show debug overlay :可视化覆盖,显示一些有用的调试和分析信息。这特别允许快速查看帧图形和场景图形。

  • 未选中 Show Eye Dome Lighting (EDL):增强深度感知的后处理效果。每个像素的深度(离相机的距离)与其相邻像素的深度进行比较,并根据深度差异突出显示,使边缘突出。会影响整个场景,并且可以与 Screen Space Ambient Occlusion 。可以控制以下参数:

    • Lighting strength :增加对比度,从而获得更好的深度感知

    • Lighting distance :表示使用的像素远离中心像素的距离,并具有使边缘更粗的效果。

  • 添加屏幕空间 未选中 Ambient Occlusion (SSAO):一种后处理效果,通过将较暗的阴影应用于较少暴露于环境照明的区域来增强深度感觉。会影响整个场景,并且可以与 Eye dome Lighting 。可以控制以下参数:

    • Radius :计算环境光遮挡的距离

    • Intensity :效果应该有多强(值越高,效果越暗)

    • Occlusion threshold :需要遮挡多少个邻接点才能显示效果(低于50%的值将使输出更暗,但可能会提供更大的遮挡范围)

../../../_images/3dmap_edl_ssao.png

图 11.28 使用眼罩照明(EDL)和/或屏幕空间环境光遮挡(SSAO)在3D地图中渲染点云

从上、左到右:无效--仅限SSAO--仅限EDL--SSAO和EDL

  • 未选中 Debug Shadow Map :从用于阴影的灯光的角度将场景渲染为红黑图像(用于疑难解答)。微件设置为成比例 Size 到3D地图视图的,并停靠在 Corner

  • 未选中 Debug Depth Map :将场景的深度贴图渲染为较近的像素较暗的图像(用于故障排除)。微件设置为成比例 Size 到3D地图视图的,并停靠在 Corner

11.2.3. 创建动画

动画基于一组关键帧-特定时间的相机位置。要创建动画,请执行以下操作:

  1. 切换到 玩 Animations 工具,显示动画播放器小部件

  2. 单击 符号系统添加 Add keyframe 按钮,然后输入一个 Keyframe time 在几秒钟内。这个 Keyframe 组合框现在显示时间设置。

  3. 使用导航工具,将相机移动到与当前关键帧时间相关联的位置。

  4. 重复前面的步骤,根据需要添加任意数量的关键帧(包括时间和位置)。

  5. 单击 玩 按钮预览动画。QGIS将在设定的时间使用相机位置/旋转生成场景,并将它们插入到这些关键帧之间。五花八门 Interpolation 动画模式可用(例如,线性、InQuad、OutQuad、InCirc…--更多详情,请访问https://doc.qt.io/qt-5/qeasingcurve.html#EasingFunction-typedef).

    也可以通过移动时间滑块来预览动画。保持 Loop 选中复选框将在单击时重复运行动画 玩 停止正在运行的动画。

单击 文件保存 Export animation frames 以生成表示场景的一系列图像。不同于文件名 Template 以及 Output directory ,您可以设置 Frames per second vt.的. Output widthOutput height

11.2.4. 3D矢量层

通过选中可在3D地图视图中显示具有高程值的矢量图层 Enable 3D Renderer3D View 部分的矢量层属性。有许多选项可用于控制3D矢量层的渲染。