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.

The game MegaGlest uses a MD3-like mesh format, which is keyframe-based vertex animation.

One of the challenges moving forward is to continue to support lower-end hardware. We know some users have trouble with high-poly models, and the current MegaGlest assets are thoughtfully spartan because of this. Not all players have hardware that supports shaders, even.

However, we aim to provide a much richer experience to people with today's high-end hardware. We also aim to add support for a bone-based format, probably IQM/IQE. We want much higher quality meshes, but we want to continue to support low-end hardware.

The plan that is hatching in my mind is to distribute high-end meshes and have the low-end targets auto-simplify them in order to meet some sliding scale of budget.

How do you simplify meshes? I can find lots of research-like papers, but nothing really mainstream nor concrete. And to my mind, some consideration of triangles per unit cube (in game space) is needed, and not just arbitrarily saying 'make this mesh have only n triangles', where the triangles may be unevenly distributed around the model.

share|improve this question
    
I think the animations being vertex based is going to cause a lot of issues with the standard simplification techniques. –  Byte56 Dec 9 '13 at 20:49
    
@Byte56 yes I anticipated this; all the papers I find are for non-animated meshes, even. –  Will Dec 9 '13 at 20:50
    
As for your question, you might need to be a bit more specific. If you want more than papers describing the process, you need to tell us which method you're using and what about it you're having trouble implementing/understanding. See this related question: gamedev.stackexchange.com/questions/40552/… –  Byte56 Dec 9 '13 at 20:53
1  
There's the probably most mainstream simplification algorithm (you can call it award winning): the Quadric Error Metric simplification heuristic (and its vertex-attribute flavours worth mentioning): google.com/… –  teodron Dec 10 '13 at 8:28
add comment

1 Answer

There are several decimation algorithms you can implement, here is the original paper on decimation. But as you said non of them are mainstream, or even easy to implement.

I would say your best bet is to check OpenMesh's decimation framework, they have a policy based C++ implementation of decimation algorithms, so you can try different policies based on the criteria you need. I have on-hand experience with it and I would say they got impressive results maintaining the general shape and the attributes of the vertices. The only drawback I can think of is that they use half-edge data structure, so unless it's a pre-process it might not be practical to use in your game.

They also have an editor where you can try it without even bothering with code.

share|improve this answer
add comment

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.