14.4. 创建3D符号

这个 Style Manager 帮助您为要在中渲染的每种几何类型创建和存储3D符号 3D map view

与其他项一样,启用 三维 3D Symbols 选项卡并展开 符号系统添加 要创建的按钮菜单:

14.4.1. 点图层

../../../_images/3d_point_symbol.png

图 14.33 三维点符号的特性

  • 您可以定义不同类型的3D Shape 用于点符号。它们主要由它们的维度定义,其单位是项目的CRS。可用类型包括:

    • Sphere defined by a Radius

    • Cylinder defined by a Radius and Length

    • Cube defined by a Size

    • Cone defined by a Top radius, a Bottom radius and a Length

    • Plane defined by a Size

    • Torus defined by a Radius and a Minor radius

    • 3D Model ,使用3D模型文件:支持的格式包括Wavefront .obj.glTF.fbx 。模型可以是磁盘上的文件、远程URL或 embedded in the project 。社区创建的模型在https://plugins.qgis.org/wavefronts.上的QGISHub上共享

    • Billboard ,由 Billboard height 以及 Billboard symbol (通常基于 marker symbol )。该符号将具有稳定的大小。便于可视化三维点云形状。

  • 这个 Altitude clamping 可以设置为 AbsoluteRelativeTerrain 。这个 Absolute 当3D向量的高度值被提供为从0开始的绝对测量时,可以使用设置。 RelativeTerrain 将给定的高程值添加到基础地形高程。

  • 这个 shading 可以定义属性。

  • 在.之下 Transformations 框架中,可以对元件应用仿射变换:

    • Translation 在x、y和z轴上移动对象。

    • Scale 调整3D形状大小的步骤

    • Rotation 绕x轴、y轴和z轴。

14.4.2. 线条层

../../../_images/3d_line_symbol.png

图 14.34 三维线符号的特性

  • 在这片土地上 WidthHeight 设置您可以定义 Extrusion 矢量线的。如果线没有z值,则可以使用此设置定义3D体积。

  • Altitude clamping 如果已包含栅格高程数据或其他三维矢量,则可以定义三维线相对于基础地形曲面的位置。

  • 这个 Altitude binding 定义如何将要素钳制到地形。要么每隔一天 Vertex 将被固定到地形,或者这将由 Centroid

  • 这是可能的 复选框 :Guilabel:渲染为简单的3D线条

  • 这个 shading 可以定义属性。

14.4.3. 多边形层

../../../_images/3d_polygon_symbol.png

图 14.35 三维面符号的属性

  • 至于其他人, Height 可以以CRS单位定义。您也可以使用 数据定义 按钮,用自定义表达式、变量或属性表条目覆盖该值

  • 再说一遍, Extrusion 可能会丢失z值。对于拉伸,您还可以使用 数据定义 按钮以使用向量层的值,并对每个多边形具有不同的结果:

    ../../../_images/3d_extrusion.png

    图 14.36 数据定义的拉伸

  • 这个 Altitude clampingAltitude binding 可以被定义为如上所述。

  • 这个 Culling mode 应用于符号;它可以是:

    • No Culling :这有助于避免在多边形Z/多面体数据没有一致的顶点顺序(例如,所有时钟方向或逆时钟方向)时看起来缺少曲面

    • Front

    • Back

  • 这个 Rendered facade 确定要显示的面。可能的值包括 No facadesWallsRoofs ,或 Walls and roofs

  • 复选框 Add back faces :对于每个三角形,使用正确的法线创建正面和背面-以增加顶点数据的数量为代价。此选项可用于修复着色问题(例如,由于数据的顶点顺序不一致)。

  • 复选框 Invert normals (experimental) :可用于固定顺时针/逆时针方向的面顶点顺序

  • 这个 shading 可以定义属性。

  • 显示 复选框 Edges 可以启用这些符号,并为其分配 WidthColor

提示

Combination for best rendering of 3D data

Culling modeAdd back facesInvert normals 都是为了修复3D数据的外观,如果它看起来不正确。通常,在加载某些数据时,最好先尝试 culling mode=backadd back faces=disabled -它是最高效的。如果渲染看起来不正确,请尝试 add back faces=enabled 并保持 culling mode=no culling 。其他组合更高级、更有用,仅在某些情况下才有用,具体取决于输入数据集的混合程度。

14.4.4. 对纹理进行着色

明暗处理可以帮助您显示对象的3D细节,否则可能会因场景的照明而隐藏。归根结底,它是一种更容易使用的材质,因为您不需要担心设置适当的场景照明来可视化功能。

QGIS中使用了各种着色技术,它们的可用性取决于符号的几何类型:

  • Realistic (Phong) :将曲面反射光线的方式描述为 Diffuse 粗糙表面的反射 Specular 有光泽表面的反射 (Shininess )。它还包括一个 Ambient 选项,以说明散布在整个场景中的少量灯光。使用 Opacity 滑块可在3D中渲染半透明对象。请访问https://en.wikipedia.org/wiki/Phong_reflection_model#Description阅读更多信息

  • Realistic Textured (Phong) :与 Realistic (Phong) 除了将图像用作 Diffuse Texture 。图像可以是磁盘上的文件、远程URL或 embedded in the project 。这个 Texture scaleTexture rotation 都是必需的。使用 Opacity 滑块可在3D中渲染半透明对象。

  • CAD (Gooch) :此技术允许仅在中间色调中进行着色,以便边缘线条和高光在视觉上保持突出。以及 DiffuseSpecularShininess 选项,您需要提供一个 Warm 颜色(用于面向灯光的曲面)和 Cool 颜色(面向背部的)。此外,漫反射颜色对冷色和暖色的相对贡献由以下因素控制 AlphaBeta 属性。另请参阅https://en.wikipedia.org/wiki/Gooch_shading

  • Embedded Textures 使用3D模型形状

14.4.5. 应用程序示例

要完成上述设置,您可以查看https://app.merginmaps.com/projects/saber/luxembourg/tree.