Ben Mack
Ben Mack

Reputation: 499

How to estimate rough complexity of 3D models?

I'm having a project need categorize 3D models based on the complexity.

By "complexity", I mean for example, 3D model of furniture in modern style has low complexity, but 3D model of royal style furniture has very high complexity.

All 3D models are mesh type. I only need the very rough estimate, the reliability is not required too high, but should be correct most of times.

Please guide me which way, or the algorithm for this purpose (not based on vertices count).

It the best if we can process inside Meshlab, but any other source is fine too.

Thanks!

Upvotes: 1

Views: 1182

Answers (2)

Soleil
Soleil

Reputation: 7459

Let's consider a sphere: it looks simple, but it can be made of many vertices. I don't think that counting vertices gives a good estimation of complexity. The spheres' vertices are very little diverse.

Let's consider the old vs simple and modern furniture: the old one has potentially many different vertices but their organization is not "simple".

I propose to measure complexity to consider:

  • the number of different angles (and solid angles) between edges
  • the number of different edges' length (eg., connected vertices distances)

So far so good. But we got here by counting global complexity. What if with the same set of edges and vertices, we order them and build something that changes in a monotonic manner ? Yes, we need also to take into account local complexity: say the complexity in a limited chunk of space.

An algorithm is taking form:

  • divide the space into smaller spaces
  • count sets of different edges by angles and length

You can imagine take into account several scales by ranging the size of space divisions, and count sets every time, and in the end multiply or add the results.

I think you got something interesting. The thing is that this algorithm is rather close to some methods do estimate dimension of a fractal object.

Papers (google scholar) about "estimate fractal dimension"

Upvotes: 3

TehCorwiz
TehCorwiz

Reputation: 365

3D models are composed of vertices, and vertices are connected together by edges to form faces. A rough measure of complexity from a computation standpoint would be to count the vertices or faces.

This approach falls down when trying to categorize the two chairs. It's entirely possible to have a simple chair with more vertices and faces than the regal chair.

To address that limitation I would merge adjacent faces with congruent normal vectors. If the faces share 1 edge and have congruent normal vectors then they can be said to be planar to each other. This would have the effect of simplifying the 3D model. A simple object should have a lower number of vertices / faces after this operation than a more complex model. At least in theory.

I'm sure there's a name for this algorithm, but I don't know it.

Upvotes: 1

Related Questions