如何估计3D模型的粗糙复杂性?

时间:2018-04-30 15:09:16

标签: algorithm 3d meshlab

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

复杂性"我的意思是,例如,现代风格的家具3D模型复杂度低,但皇家风格家具的3D模型具有很高的复杂性。

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

请指导我使用哪种方法或算法(不基于顶点计数)。

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

谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

我建议测量复杂性:

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

到目前为止一切顺利。但我们通过计算全球复杂性来到这里。如果使用相同的边和顶点集,我们对它们进行排序并构建以单调方式变化的内容会怎样?是的,我们还需要考虑本地复杂性:说明有限的空间中的复杂性。

一种算法正在形成:

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

你可以想象通过测量空间分割的大小来考虑几个尺度,并且每次都计数集,最后乘以或添加结果。

我觉得你有一些有趣的东西。问题是这个算法比某些方法更接近估计分形对象的维数。

Papers (google scholar) about "estimate fractal dimension"

答案 1 :(得分:1)

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

当尝试对两把椅子进行分类时,这种方法就会失败。完全可能有一个比皇家椅子更多的顶点和面孔的简单椅子。

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

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