🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Layered clothing systems

Started by
2 comments, last by JoeJ 1 year, 11 months ago

There are getting to be more systems with layered mesh clothing. It used to be that only Second Life had that. Everybody else mostly had one-piece “skins”. But now Roblox has layered clothing. Metahuman has layered clothing, although it's not changeable in-game. There's something called MetaTailor.app under development.

Who else is working on this? Are standards evolving? The general idea seems to be to use Clo or Marvelous Designer to make clothes, and then run that through tools to get them into a game.

There are lots of unsolved problems in grinding down complex layered clothing and avatars down to game skins of acceptable triangle count. What's going on in that area?

A comment I made in another forum:

Fixing this requires solving some problems that result in SIGGRAPH papers and PhD theses. However, there's now enough work going on in this area, at places such as Roblox, that the theory is advancing. Some of the areas that need work are:

  • Better mesh reduction. Which is really hard for thin objects such as cloth. Most of the algorithms are terrible on thin objects. The new mesh reducer in the Second Life uploader is an improvement, but it's still basically the same as limited dissolve in Blender. There are better mesh reducers, such as Simplygon and the new one in Unreal Engine 5. UE5 has silhouette protection, which keeps the edges of cloth from being drawn inward. (I tried out a few mesh reducers two years ago. They come in three flavors: bad, expensive, and brittle. By brittle, I mean academic code which breaks on imperfect mesh.)
  • Mesh to texture conversion. Close up, the ruffles on the dress, the eyelets on the boots, and the wrinkles in the T-shirt are 3D mesh modeled. For lower LODs, those need to become automatically generated textures that have the normals from the original but are mostly flat surfaces. What does that kind of thing?
  • Layering. When you get dressed in layered cloting, there are many triangles hidden by outer layers that are no longer visible. They still get drawn, and waste CPU and GPU resources. What's needed is something where, when you get dressed, all the mesh layers get baked down to a simplified game-type model. This needs to be in the game, not the dev tools, so players can mix and match clothes.
  • Interpenetration at joints. This is where the elbow sticks through the sleeve. Sometimes it's going to be necessary to subdivide a mesh at joints to prevent that. Are there automated tools for this yet? Again, this needs to happen when the player dresses their avatar, not when the assets are created.

So what's going on?

Advertisement

Nagle said:
Are standards evolving?

I doubt it, as they would build upon the broken standards of skinning. Currently game characters can not even bend an arm while looking anatomically correct, and complex rigs with many extra bones can not really solve this.
There are no standards about such complex character rigs plus extra bones either. Different characters and different artists lead to different rigs, extra bones and animation constraints. (Notice: Even ‘cutting edge’ Metahumans use only the minimal skeleton, so results are not impressive at all. Guilty Gear characters would be an example of high quality rigs, and afaik one such character costs 200k to make.)
There also is no clear winner of matrix vs. dual quaternion skinning, because neither of them work naturally, lacking volume preservation and sliding skin.

Regarding cloth, you did not mention the topic of ‘just skin it’ vs. ‘simulate it’. We see more simulation now, but problems like self collisions and layers are open. Different games and different devs just bring us to different hacks, partial features, and work arounds, but no standards and general solutions in sight.

Thus, any attempt of establishing related industry standards can only fail on the long run, so nobody will try that seriously.
It's hard enough to do all this just for one engine. And only after multiple companies actually work on custom solutions, standards may evolve.

Nagle said:
When you get dressed in layered cloting, there are many triangles hidden by outer layers that are no longer visible.

Probably the easiest problem. Could use AO rays or many view rasterization to determine visibility.

Nagle said:
Mesh to texture conversion.

Possible. Simplygon does such things already. A background process could do it, while the player dresses up his character.

Nagle said:
Interpenetration at joints. This is where the elbow sticks through the sleeve. Sometimes it's going to be necessary to subdivide a mesh at joints to prevent that. Are there automated tools for this yet?

Possible, but never seen such tools even offline. One would need to project the skin vertices to cloth and insert them using the same weights.
But keeping original cloth vertices as well, we get quickly increasing numbers of vertices for additional layers. Which brings us to…

Nagle said:
Better mesh reduction.

The reduction algorithm would need to ensure the decimation does not introduce new popping through artifacts.
Not sure if this can be a quick process to run on clients. Seems the hardest problem.

Personally i really think we want to solve those problems, even if it's just about visuals.
But it's not a low hanging fruit, or something urgent. So i guess it has to wait for quite some time…

Nagle said:
The general idea seems to be to use Clo or Marvelous Designer to make clothes, and then run that through tools to get them into a game.

I think the problem would become easier to solve if we develop authoring (create) and runtime software (dress up).
If i was an engine maker like Epic, this would make a lot of sense: You need to build an advanced geometry processing framework, so you can implement both using the same code base.
Plus, the authoring software can respect the runtime limitations.
This way it becomes much easier to come up with some practical standard, at least for your engine.
Also, i tried Marvelous Designer some years ago, and it was pretty bad. Camera navigation sucked, tools very buggy and inaccurate, options felt incomplete.
It's industry leader regardless, but this only shows how distant we still are from the goal.

This topic is closed to new replies.

Advertisement