Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am looking for an algorithm to simplify the meshes of buildings or similar structures.

EDIT: I had made a comment that Hoppe's algorithm tends to make meshes more and more spherical with simplification. But, I am not sure about it, so am deleting the comment. Buildings in contrast should tend to become more and more rectangular with increasing simplification. The D3DX extensions for D3D in version 9.0 (d3dx9.lib) used to have classes to do progressive mesh simplification. See:
http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/reference/d3dx/functions/mesh/d3dxgeneratepmesh.htm
http://msdn.microsoft.com/en-us/library/windows/desktop/bb281243(v=vs.85).aspx

share|improve this question

1 Answer 1

up vote 17 down vote accepted

The best results I've seen for this when a mesh is decimated. Decimating the mesh attempts to reduce the polygon count with minimal shape changes. The decimated meshes retain their shapes fairly well and this would be ideal for non-organic structures like buildings. Though it even works on organic structures as you can see here:

enter image description here

There are a few different techniques at work here. Such as estimating an average plane, performing "half-edge collapses" and more. There are numerous publications available that discuss implementing a decimation process. For further reading:

http://webdocs.cs.ualberta.ca/~anup/Courses/604_3DTV/Presentation_files/Polygon_Simplification/7.pdf

http://www.cs.uu.nl/docs/vakken/ddm/slides/papers/schroeder.pdf

http://www.cg.tuwien.ac.at/courses/Seminar/SS2002/Knapp_paper.pdf

http://www.jerrytalton.net/research/Talton04SSMSA.report/Talton04SSMSA.pdf

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.