本文翻译自:http://critterai.org/projects/nmgen_study/config.html
配置参数
在进入网格生成每个阶段的细节之前,了解影响最终结果的各种配置参数很重要。本页提供NMGen类使用的部分比较主要的配置参数的功能描述(详细参数可去原文查看),它们如何影响最终结果以及它们如何相互影响。
cellSize
约束条件 > 0
使用者
NavmeshGenerator,SolidHeightFieldBuilder,SolidHeightField,OpenHeightField,ContourSet,PolyMeshField
描述
分割源几何体时使用的宽度和深度固定值。组成体素字段的单元格列的宽度和深度。
将cellSize放置在高度域的宽度/深度平面上。宽度与源几何体的x轴关联。深度与z轴关联。
较低的值可使生成的网格更紧密地匹配源几何体,但处理和存储成本较高。
示例: cellSize与体素的关系。
有时,您可能会注意到障碍物上的网格边界出乎意料地宽大,或者与对象的另一侧相比,沿对象一侧的边界宽度有所不同。这是网格生成过程的固有行为。看一下上面的高度域可视化。最终网格中的顶点只能存在于体素的角上。顶点被捕捉到体素网格。体素大小越大,最终网格顶点的潜在xz平面偏移越大,边界“错误”可能越明显。
示例1: 此网格是使用较低的分辨率(较大的cellSize)生成的。
示例2: 此网格是使用较高的分辨率(较小的cellSize)生成的。因此,偏移量表现得并不明显。(尽管从技术上讲它仍然存在。)
与其他参数交互: 这是与几乎所有其他参数交互的核心配置值。
cellHeight
约束条件 > 0
使用者
NavmeshGenerator,SolidHeightFieldBuilder,SolidHeightField,OpenHeightField,ContourSet,PolyMeshField
描述
采样源几何体时使用的高度增量,体素格子中的高度。
高度与源几何体的y轴关联。
较小的值允许最终网格以潜在较高的处理成本更紧密地匹配源几何体。(与cellSize不同,对cellHeight使用较低的值不会显着增加内存使用。)
示例: cellHeight与体素的关系。
与cellSize一样,cellHeight决定可以存在顶点的位置。最终网格的表面将“捕捉”到包含源几何体的体素顶部,而不是几何体本身。这是网格生成过程的固有行为。看一下上面的高度域可视化。网格中的边界顶点只能存在于体素的角上。体素高度越大,与实际源几何体的顶点的潜在y偏移就越大。
示例1: 此细节网格是使用较低的分辨率(较大的cellHeight)生成的。
示例2: 此细节网格是使用较高的分辨率(较小的cellHeight)生成的。因此,偏移量的表现并不明显。
与其他参数交互: 这是影响几乎所有其他参数的核心配置值。minTraversableHeight,maxTraversableStep和ContourMaxDeviation必须大于此值。maxTraversableStep特别容易受到cellHeight值的影响。
minTraversableHeight
约束条件 > 0
使用者
NavmeshGenerator,SolidHeightFieldBuilder,OpenHeightFieldBuilder
描述
表示floor到ceiling的最小高度,该高度仍将允许将floor上表面视为可行走的。低于这个高度时,floor上表面被视为不可行走。可以模拟桌子下方不允许行走的情况。
示例1: 正确设置该值可防止网格在表格下运行。
示例2: 将值设置得太低会使网格在不应该运行的情况下在表格下运行。
示例3: 将值设置得太高会阻止网格扩展到阳台下的区域。(避免阳台下方角色无法行走)
与其他参数交互: 为了获得良好的结果,该值至少应为cellHeight值的两倍
maxTraversableStep
约束条件 > 0
使用者
NavmeshGenerator,SolidHeightFieldBuilder,OpenHeightFieldBuilder
描述
表示仍可移动的最大凸起高度。
防止微小的高度偏差不适当地显示为障碍物。允许检测楼梯状结构,路缘石等
示例1: 正确设置该值将允许网格向上延伸楼梯。
示例2: 将值设置得太低会使楼梯看起来像不能被穿过。(Agent不能走到楼梯上的高度。)
示例3: 将值设置得太高会导致网格设置在一些距离地面过于高的地方
与其他参数交互: 为了获得良好的结果,该值至少应为cellHeight值的两倍
maxTraversableSlope
约束条件 > = 0
使用者
NavmeshGenerator,SolidHeightFieldBuilder
描述
被认为可行走的最大坡度。(以度为单位)
示例1: 正确设置该值可使网格向上延伸可行走的斜坡。
示例2: 将值设置得太低会阻止网格向上延伸应可行走的坡度。
与其他参数交互: 无