Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Games like Ryzom and the Sims allow players to have human bodies with different shapes: wide or thin, tall or short, big noses or small, etc. It seems to me that it'd be impractical to pre-generate all possible combinations of the meshes.

What are some ways to do that? Are the meshes defined programmatically? Is it a weighted average of multiple "morph target" models?

If there is calculation to be done to determine the mesh: is it done in a "geometry shader"? Or is it done by the CPU?

Reference: The question "How to create art assets for 3d avatar editor" mentioned avatar editors and variable body elements, and that some games use morph targets and glyph bombing.

share|improve this question

It would have to be done by the CPU- a geometry shader doesn't give the opportunity to save it's results, which would be essential, and not all devices supported by those games support geometry shaders. Achieving it could be as simple as applying a scale matrix to the whole or separate parts.

Edit: I read your related question. You should really clarify this question to be explicitly about morph target or explicitly about just scaling customization.

share|improve this answer
Gave more context to the "related question". I didn't mention morph targets; it's definitely about the customization. If morph targets are in the solution space, then I'd like to know more about them; but my concern is implementing the bodies with animations and matching models (for example, clothing models) consistently. I'm not predisposed to any part of the solution space. – AngryPuffin May 3 '11 at 2:25
Not entirely correct; if you are using CUDA or OpenCL, you can access geometry being worked on by the GPU. – Arcane Engineer Aug 28 '11 at 9:54

Your Answer


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.