【问题标题】:How to estimate rough complexity of 3D models?如何估计 3D 模型的粗略复杂度?
【发布时间】:2018-05-10 00:14:46
【问题描述】:

我有一个项目需要根据复杂性对 3D 模型进行分类。

我所说的“复杂性”,例如,现代风格的家具3D模型复杂度较低,而皇家风格家具的3D模型复杂度很高。

所有 3D 模型都是网格类型。我只需要非常粗略的估计,可靠性要求不高,但大多数时候应该是正确的。

请指导我采用哪种方式或用于此目的的算法(不基于顶点数)。

如果我们可以在 Meshlab 内部处理是最好的,但任何其他来源也可以。

谢谢!

【问题讨论】:

  • 您的 3D 模型是网格、BRep、点云还是什么?
  • @abenci 它是 3D 网格。

标签: algorithm 3d meshlab


【解决方案1】:

让我们考虑一个球体:它看起来很简单,但它可以由许多顶点组成。我不认为计算顶点数可以很好地估计复杂性。球体的顶点几乎没有变化。

让我们考虑一下旧家具与简单现代家具:旧家具可能有许多不同的顶点,但它们的组织并不“简单”。

我建议衡量复杂性以考虑:

  • 边之间不同角度(和立体角)的数量
  • 不同边长度的数量(例如,连接的顶点距离)

到目前为止一切顺利。但我们是通过计算全局复杂性得出的。如果使用相同的边和顶点集,我们对它们进行排序并构建以单调方式变化的东西会怎样?是的,我们还需要考虑局部复杂性:比如有限空间块中的复杂性。

一种算法正在形成:

  • 将空间划分为更小的空间
  • 按角度和长度计算不同边的集合

你可以想象通过调整空间分割的大小来考虑多个尺度,每次计算集合,最后相乘或相加。

我认为你得到了一些有趣的东西。问题是这个算法非常接近一些方法来估计分形对象的维度。

Papers (google scholar) about "estimate fractal dimension"

【讨论】:

    【解决方案2】:

    3D模型由顶点组成,顶点通过边连接在一起形成面。从计算的角度粗略衡量复杂性是计算顶点或面。

    这种方法在尝试对两把椅子进行分类时失败了。完全有可能拥有比豪华椅子更多顶点和面的简单椅子。

    为了解决这个限制,我会将相邻的面与全等的法向量合并。如果面共享 1 条边并且具有全等的法向量,则可以说它们彼此是平面的。这将具有简化 3D 模型的效果。在此操作之后,简单对象的顶点/面数应该比更复杂的模型少。至少在理论上。

    我确定这个算法有一个名字,但我不知道。

    【讨论】:

    • 感谢您的回答!我在创建算法方面没有太多经验,所以最好能提供一些类似算法的名称。
    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 2021-03-09
    • 2010-11-06
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    相关资源
    最近更新 更多