建筑的定制材质和参数
本文回顾了建筑组成的主要概念,以便更深入地理解资源应该如何准备。
另请参阅#
- 示例:创建Building对象
- 过滤器参数的说明。
- Procedural Generation Assets 包包含用于自定义建筑的即用型材质和纹理
主要概念#
为了生成建筑,我们区分以下两种类型的建筑:
- 单层建筑,只有一个楼
- 多层建筑,具有两个或两个以上的地板
- Underground Basement 是地下室的一部分,位于地形水平之下。 当建筑物在不平坦的地形上生成时需要此部分,否则会部分悬停在地面上。 它的高度由 Underground Basement Height 值控制,默认情况下距离地形高度 3 米。
- Basement身高由Basement Height值定义和默认是0.7米高以上的地形。
- Ground Floor 高度由 Row Size 值定义,默认为 3 米高。
- 单层为上层建筑不需要任何纹理,而地下室的纹理是强制性的,因为它是所有其他的锚在一组纹理。
建筑物变形#
UNIGINE 为生成的建筑物提供了一组内置材质:它们继承自 mesh_base 并根据 命名 规则。 您还可以创建自定义纹理并设置材质。 但是,您的纹理应该满足下面描述的一组要求。
应该为建筑物准备四种类型的纹理:地下室的纹理、带有窗户(有时还有门)的墙壁的纹理、实心墙的纹理和屋顶的纹理。 每个 建筑物部分 的 UV 贴图取决于纹理上显示的墙段的大小。
-
Underground Basement和Basement单一结构墙。结构高度对应的高度(总之),所有这些部分和纹理是垂直延伸到建筑的这部分。
质地为Underground Basement和Basement -
对于Ground Floor,应用了单独的纹理。 使用 Row Size 值作为楼层高度将纹理高度应用于建筑物。
Ground Floor的窗户纹理Ground Floor的实心纹理 -
对于Upper Floors,一个带有窗户的墙的单一纹理被应用。
Upper Floors的窗户纹理Upper Floors的实心纹理有两个参数Rows per Texture 和 Columns per Texture,它们形成了这个纹理的网格。
带窗户的上层的纹理尽可能地沿着墙壁从一层向上,从中心水平到建筑角落,并根据这些想象的网格线切割,创建一个表面。边缘使用固体纹理平铺,形成另一个表面。
-
对于Roof,应该应用两种纹理——屋顶和山脊。脊线用于覆盖两个屋顶平面的连接处。
屋顶纹理山脊纹理屋顶材质可以按原样使用,也可以根据图像数据更改颜色。 启用 相应的选项 允许将材质反照率乘以从照片数据中获取的颜色。
材质的命名#
为了将材质正确应用到Sandworm生成的建筑中,请遵循以下规则:
-
定义一个前缀,一群材质应用于墙(地下室,一楼,楼上)将使用。
您可以使用源数据材质作为前缀的材质的价值。在这种情况下,材质将自动适用于所有建筑,这个值分配。
屋顶材质也可以使用一个键值的源数据作为前缀。在这种情况下,材质将自动适用于所有屋顶,这个值分配。
如果您的源数据没有材质的细节,您可以选择一个任意的名称。
-
材质应使用以下名称后缀:
- *_basement_sw 地下室和地下地下室的材质,一个强制性的材质锚为其他建筑材质,除了屋顶。
- *_ground_sw Ground Floor墙没有门窗的材质
- *_ground_windows_sw Ground Floor墙和门窗的材质
- *_upper_sw Upper Floors墙和门窗的材质
- *_upper_windows_sw Upper Floors墙没有门窗的材质
- *_ridge_face_sw 上壁的顶部的材质将在屋顶下方使用。 这种类型的材质仅与平坦的屋顶 一起使用。
- *_roof_sw 屋顶材质
- *_ridges_sw 连接屋顶部分的脊线材质
基本的建筑材质可在/core/materials/buildings/文件夹。
命名的例子#
假设我们有一个有建筑物的区域,它可以由砖块或木头制成。如果我们使用具有 特定命名 的 OSM 数据,我们应该为建筑材质使用以下前缀:
建筑 | OSM 价值 | 材质名称 |
---|---|---|
砖做的 | brick |
brick_basement_sw.mat brick_ground_sw.mat brick_ground_windows_sw.mat brick_upper_sw.mat brick_upper_windows_sw.mat brick_ridge_face_sw.mat |
用木头做的 | wood |
wood_basement_sw.mat wood_ground_sw.mat wood_ground_windows_sw.mat wood_upper_sw.mat wood_upper_windows_sw.mat wood_ridge_face_sw.mat |
然后,这些建筑物的屋顶可以用瓷砖、金属或混凝土覆盖。 根据 OSM 屋顶材质命名,我们应该将屋顶材质命名为:
屋顶 | OSM 价值 | 材质名称 |
---|---|---|
覆盖着瓷砖 | roof_tiles |
roof_tiles_roof_sw.mat roof_tiles_ridges_sw.mat |
覆盖着金属 | metal |
metal_roof_sw.mat metal_ridges_sw.mat |
混凝土覆盖 | concrete |
concrete_roof_sw.mat concrete_ridges_sw.mat |
参数#
以下参数为Buildings对象生成可用:
Generation Mode | 建筑生成模式。有两个选择:
|
---|---|
Base Material Attributes |
在源数据属性表中指定建筑材质的列的名称。默认情况下,使用相应的 OpenStreetMap 键。 如有必要,您可以替换它或使用逗号添加另一个键。 |
Roof Type Attributes |
在源数据属性表中指定屋顶形状的列的名称。 默认情况下,使用相应的 OpenStreetMap 键。 如有必要,您可以替换它或使用逗号添加另一个键。 |
Roof Height Attributes |
源数据属性表中指定屋顶高度的列的名称。 默认情况下,使用相应的 OpenStreetMap 键。 如有必要,您可以替换它或使用逗号添加另一个键。 |
Roof Unit Size (m) | 大小的正方形区域的一侧的纹理应用(即一个瓦)。 |
Use Imagery Color | 如果禁用,颜色从屋顶材质使用。如果启用,颜色从Imagery源作为屋顶的颜色。 要使用图像颜色,屋顶材质应启用 Vertex Color 状态,并将顶点颜色反照率设置为 RGB。 |
Roof Material Attributes |
在源数据属性表中指定屋顶材质的列的名称。默认情况下,使用相应的 OpenStreetMap 键。 如有必要,您可以替换它或使用逗号添加另一个键。 |
Split Length (km) |
的大小的网格单元生成的几何将分裂。每个单元的几何形状是代表一个单独的ObjectMeshStatic对象。如果指定的值超过或等于Export Area的大小,一个Static Mesh将生成。 例如,如果您指定100 1000 x1000公里区域,生成的建筑将10 Static Mesh分离对象,100 x100公里。 |
Min Visibility | 最低能见度距离的相机生成的对象(ObjectMeshStatic)开始出现在屏幕上。默认情况下,这个值是-inf。 |
Max Visibility | 最大的能见距离生成对象(ObjectMeshStatic)不再是完全可见的:他们可以完全消失或开始淡出。默认情况下,这个值是inf。 |
Min Fade | 最小淡入淡出距离,生成的对象 (ObjectMeshStatic) 在该距离上淡入,直到它们完全可见。 沿着这个距离,引擎会自动将细节级别从 0.0(完全不可见)的 Alpha 插入到 1.0(完全可见)。 当相机达到 最小可见距离 并且处于完整可见范围内时,淡入开始。 |
Max Fade | 最大淡出距离,生成的对象 (ObjectMeshStatic) 在该距离上淡出,直到它们完全不可见。 当相机达到 最大可见距离 并且超出完整可见范围时,淡出开始。 |
除了基本的参数,可用于Auto代,以下参数可用Manual代模式:
基本参数:
基础参数调整建筑墙壁的外观。 |
|||||||||
Base Material Distribution |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Random Material List | 生成的材质列表将被应用到建筑。只有基材(*_basement)显示每组。其他材质从这个组被称为使用前缀,这应该是相同的所有材质的一群。每种材质右侧的数字表示其频率。每个材质左侧的切换允许启用/禁用它。 | ||||||||
Column Size (m) | 一个纹理列的宽度,以米为单位。 纹理 单元 被映射到建筑物墙壁上的这个宽度。 | ||||||||
Columns per Texture | 一个纹理中的列数。 该值允许形成 网格 以获得更精确的纹理映射。 映射到一层以上墙壁上的纹理被分割成网格,以便适当切割,避免像窗户的一部分这样的视觉工件。 | ||||||||
Row Size (m) | 一排的高度,以米为单位。 事实上,这是一个楼层高度。 纹理 单元 映射到建筑物墙壁上的这个高度。 | ||||||||
Rows per Texture | 一个纹理中的行数。 该值允许形成 网格 以获得更精确的纹理映射。 映射到底层以上墙壁的纹理被分割成一个网格,以便正确切割,避免像窗户一样的视觉伪影。 | ||||||||
Floor Number |
|
||||||||
Floor Number Range | 最小和最大楼层编号值。 如果没有可用数据或 FloorNumber 设置为 Random,则此范围内的随机值将用作楼层号。 | ||||||||
屋顶参数:
屋顶参数调整的屋顶。 |
|||||||||
Roof Type Distribution |
|
||||||||
Roof Type | 带有概率乘数的屋顶类型。 有以下类型的屋顶可供选择:
您可以删除根本不需要排除它们的屋顶类型。 您可以通过单击 按钮并在下拉窗口中选择它来添加先前删除的类型。 如果同一屋檐类型设置一次,行接近底部的值集将计数。 如果一个建立自上而下的形式不同于矩形,这将是平屋顶。其他类型的建筑物屋顶是不可用。 |
||||||||
Roof Height Distribution | |||||||||
Roof Type Height | 高度范围(最小和最大可能的高度)相应的屋顶类型。一个随机值取自这个范围内,如果必要的。平屋顶的高度值定义了屋顶栏杆的高度。 如果同一屋檐类型设置一次,行接近底部的值集将计数。 |
||||||||
Roof Material Distribution | |||||||||
Roof Type Material | 屋顶材质设置相应的类型。您可以启用或禁用材质,避免不正确的使用不合适的材质类型的屋顶,例如,禁用平屋顶的瓦片,因为这是虚构的。
如果同一屋檐类型设置一次,行接近底部的值集将计数。 |
||||||||
通用参数:
通用参数调整的地下室,可见性的建筑,建筑对象的分割成行业。 |
|||||||||
Underground Basement Height (m) | 地下室地下部分的高度。用于地面凹凸不平的表面,建筑物部分悬浮在地面上。默认值是3米。您可以将此值设置为0.7要显示如果您不需要它。 | ||||||||
Basement Height (m) | 地下室的高度高于地形水平。默认值是3米。您可以将此值设置为0要显示如果您不需要它。 |