骨架网格体简化工具算法详情

了解骨架网格体简化工具的边缘重叠算法的工作原理。

Choose your operating system:

Windows

macOS

Linux

边缘重叠

简化代码使用边缘重叠算法来简化骨架网格体。它可以帮助我们了解边缘重叠的实际作用。下图显示了重叠边缘的三个步骤。实际的简化工具可以看作是一个循环,它重叠网格体中的边缘,直到网格体中只保留所需数量的三角形(或顶点)。

NotesOnEdgeCollapse_01.png

  1. 选择要重叠的边缘

    1. 要重叠的边缘

  2. 计算替换位置。(它可能不在边缘上)

    1. 替换顶点

  3. 边缘已重叠,消除了两个三角形。

边缘是如何选择的?

对于网格体,每个边缘都有一个 " 成本开销 " ,表示如果该边缘重合折叠,网格体将发生多大的改变。简化算法选择成本开销最低的边缘(即对网格体的改变最小的边缘)。现在我们可以更详细地解释简化。如果我们按从开销最低到开销最高的顺序对边缘进行排序:算法将遍历该边缘列表,直到保留指定数量的三角形(或指定数量的顶点)。也就是说,开销最低(最不重要)的边缘已重叠,保留开销最高(重要)的边缘。有一个微妙之处,即当一个边缘重合时,该行为会改变其附近的边缘,它们的"成本开销"需要进行更新,同时它们在按成本开销排序的列表中的位置也需要进行更新。

HowIsTheEdgeChosen_01-1.png

  1. 选择要重叠的边缘

    1. 要重叠的边缘

那么,成本开销从何而来?

实际的 重叠成本开销 是根据网格体的局部形状会发生多大的变化(当使用可能的最佳替换顶点位置时)来计算的,另外还根据新顶点的属性(例如法线、颜色和其他属性)表现的好坏来计算额外的损失。在实际的骨骼简化器中,我们能够使某些边缘的成本开销变得更高。特别是,对于与用户认为重要的骨架骨骼相关的边缘,我们展示了向它们增加额外损失的能力。现在,这并不意味着边缘永不会重叠,这只是意味着,边缘将更晚成为提供简化器的边缘堆栈。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消