我有一个项目需要根据复杂性对3D模型进行分类。
复杂性"我的意思是,例如,现代风格的家具3D模型复杂度低,但皇家风格家具的3D模型具有很高的复杂性。
所有3D模型都是网格类型。我只需要非常粗略的估计,可靠性不需要太高,但大多数时候应该是正确的。
请指导我使用哪种方法或算法(不基于顶点计数)。
如果我们可以在Meshlab中处理它是最好的,但任何其他来源也都可以。
谢谢!
答案 0 :(得分:3)
让我们考虑一个球体:它看起来很简单,但它可以由许多顶点组成。我不认为计算顶点可以很好地估计复杂性。球体的顶点非常不同。
让我们考虑旧的与简单的现代家具:旧的家具有许多不同的顶点,但它们的组织并不“简单”。
我建议测量复杂性:
到目前为止一切顺利。但我们通过计算全球复杂性来到这里。如果使用相同的边和顶点集,我们对它们进行排序并构建以单调方式变化的内容会怎样?是的,我们还需要考虑本地复杂性:说明有限的空间中的复杂性。
一种算法正在形成:
你可以想象通过测量空间分割的大小来考虑几个尺度,并且每次都计数集,最后乘以或添加结果。
我觉得你有一些有趣的东西。问题是这个算法比某些方法更接近估计分形对象的维数。
答案 1 :(得分:1)
3D模型由顶点组成,顶点通过边连接在一起形成面。从计算的角度来看,复杂性的粗略衡量标准是计算顶点或面。
当尝试对两把椅子进行分类时,这种方法就会失败。完全可能有一个比皇家椅子更多的顶点和面孔的简单椅子。
为了解决这个限制,我会将相邻的面与全等法线向量合并。如果面共享1个边并具有全等法线向量,则可以说它们彼此是平面的。这将具有简化3D模型的效果。与更复杂的模型相比,此操作后的简单对象应具有较少数量的顶点/面。至少在理论上。
我确定这个算法有一个名字,但我不知道。