Game Friendly Low Poly Cage for baking normals/disps

This forum is aimed at user contributions, in the form of assets, side projects, code patches and similar.

Moderator: joepal

Game Friendly Low Poly Cage for baking normals/disps

Postby illincrux » Mon Apr 19, 2010 2:49 am

It'd be really cool if you guys included upon export a functional (as in animator friendly...) low poly (5k or less) cage mesh that somewhat accurately conforms to the high poly mesh. I mean, as far as my tests have gone, you can very easily get a way with baking the normals from the individual toes of the high poly mesh into a low poly boot-like (no toes) mesh and as a result, trick the untrained eye of the less informed viewer into thinking there's actual toes on the mesh...when, indeed, there really isn't.

Just a thought that I think might further take out some of the redundancies in humanoid game character development...which is the entire point of this project right?

Removing redundancies?

It would have to be a low poly mesh that sits in the middle ground for most games...


Hmmm, this is right of the top of my head, but the convincible camera distance for most up-close details in games (down to the nails) would probably be 5 feet/0.3 meters as a middle ground....So the number of polys of the low poly mesh would have to reflect that distance in order for it to be feasible/usable in any game.
illincrux
 
Posts: 9
Joined: Thu Aug 13, 2009 2:58 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby ThomasL » Mon Apr 19, 2010 5:35 am

Something like that is available, see http://makehuman.blogspot.com/2010/03/proxy-mesh.html .

If you use mhx to export to Blender, a lowpoly proxy mesh is hidden inside the mhx file. Alternatively, a separate file is generated on obj export: apart from foo.obj you also get foo-proxy.obj.

The low-poly mesh weighs in at around 1,500 verts compared to ten times as much for the original mesh. It is constructed from a proper subset of the original verts, which limits its quality. A better lowpoly mesh could be made by putting verts anywhere on the original faces - the locations can then be chosen to make good edge-loops and an all-quad mesh. However, that requires much more work, and since we are short of artists this will only happen sometime in the distant future.

Because of these limitations, I am unsure how useful it is for games or as a sculpting basis. It should be good enough for speeding up rough animations in the viewport.
ThomasL
 
Posts: 1139
Joined: Tue Sep 15, 2009 2:46 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby illincrux » Mon Apr 19, 2010 1:48 pm

I haven't checked it out just yet, but I can already tell that a few things can be removed after viewing that post...such as the verts around the belly button, they totally don't need to be there. The only things that need some level of concentration is the face and the joints: elbows, knees, kneck, wrists, ankles, and the fingers. Other than that, the placement of the edge loops need to hit the highest and lowest peaks of the mesh so that the silhouette matches the sculpted mesh. I mean if it didn't, from a distance within a game, things would kinda throw the viewer off. But then again, I don't think they'll be running around naked so I guess it doesn't really matter! lol

And, oh, the low poly mesh really doesn't need to be all quads since I don't think anybody in their right mind would use it for sculpting....

This is a nice tutorial to refer to if the dev team is looking to improve their proxy mesh:

http://www.cgarena.com/freestuff/tutorials/maya/varga/index.html

It definitely reflects the current status of humanoid game character development...see page 4 as a ref to what the proxy mesh should be.
illincrux
 
Posts: 9
Joined: Thu Aug 13, 2009 2:58 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby ThomasL » Tue Apr 20, 2010 7:00 am

Thank you for your valuable insights. MakeHuman has a severe shortage of competent artists; I am sure Manuel would like to hear from you if you want to help.

That said, I would like to point out that it is not so straightforward to push verts. By construction, every proxy vert coincides with an original vert. It is undoubtedly possible to make a better selection than I did, but a good lowpoly mesh probably needs that this restruction is lifted. An optimized lowpoly mesh is planned, I think for beta 5. However, due to the above-mentioned shortage of artists, we don't know when that will happen.
ThomasL
 
Posts: 1139
Joined: Tue Sep 15, 2009 2:46 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby illincrux » Wed Apr 21, 2010 11:29 pm

Hmm, yeah I'm not really sure if you can get away with reducing the original mesh down to a game friendly/highly malleable proxy mesh that everyone would be happy with although I know animators would love it either way. I don't know how hard this would be to code, but your best bet may be to create a completely different mesh that envelopes around the original base mesh and then upon export, some how relax the verts of the low poly mesh to the surface of the altered base mesh, similar to how it works in retopology programs.

On a side note, this could also serve as a way to also cloth characters within Makehuman....

All in all, it's probably not too direly important for this feature to be perfect and more than likely it'll be retopologized anyways. But like I said, it would serve as a good placeholder mesh for animators to work from while the modelers work their magic.


Nevertheless, it seems like a fun challenge to try and reduce it and so I guess I could give a crack at it. ;)

I'm not exactly sure how to get in touch with Manuel, but if he'd like to give me an email... illincrux(at)gmail(dot)com
illincrux
 
Posts: 9
Joined: Thu Aug 13, 2009 2:58 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby ThomasL » Sat Apr 24, 2010 6:14 am

As I said, a better lowpoly mesh is planned, which does not have the restriction to original verts. It would be great if you could speed up that process.

In the present code, each lowpoly vert inherits things like location, vertex groups, morph targets etc from a single vert in the original mesh. It is easy to change to code so that it instead inherits a weighted average from the three verts in the corners of the triangle on which it lies. Identifying the right face is harder, but it can be done, perhaps with some manual cleanup afterwards. But this is a one-time job. In fact, we have already done the same thing before, when the morph targets were converted to the new base mesh.

I have asked Manuel to contact you. You can find the high-poly mesh at makehuman/data/3dobjs/base.obj.

/Thomas
ThomasL
 
Posts: 1139
Joined: Tue Sep 15, 2009 2:46 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby illincrux » Sat Apr 24, 2010 4:02 pm

Now is that the actual base mesh that was constructed by hand or was it generated by makehuman?

The reason I ask is that something seems very odd about it when I import it into Maya, in the way that it's completely blown apart into hundreds of pieces. I mean, i guess I could work with it, but it's going to take a really really long time! :shock:

Although if it's built in some unique way to work with blender, then I suppose I could switch over to that app without a problem. But before I make that move, I think I need a bit of a basic explanation to how I need to approach this from start to finish if you wouldn't mind?
illincrux
 
Posts: 9
Joined: Thu Aug 13, 2009 2:58 am

Re: Game Friendly Low Poly Cage for baking normals/disps

Postby ThomasL » Sun Apr 25, 2010 7:04 am

The problem is that the mesh is divided into groups. There should be an option in Maya's obj importer to combine all groups into a single mesh, but for simplicity I made a version of the file without the group lines and sent to you. The groups are needed to select body parts in MH but not for the lowpoly mesh.
ThomasL
 
Posts: 1139
Joined: Tue Sep 15, 2009 2:46 am


Return to User contributions

Who is online

Users browsing this forum: No registered users and 1 guest