9
\$\begingroup\$

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.

\$\endgroup\$

1 Answer 1

3
\$\begingroup\$

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.

\$\endgroup\$
2
  • \$\begingroup\$ 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. \$\endgroup\$ Commented May 3, 2011 at 2:25
  • \$\begingroup\$ Not entirely correct; if you are using CUDA or OpenCL, you can access geometry being worked on by the GPU. \$\endgroup\$
    – Engineer
    Commented Aug 28, 2011 at 9:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .