View Full Version : Silhouette and Form vs. Optimization
11-01-2009, 01:16 PM
Recently, I've been looking to take my hobby a bit more seriously and potentially look for a job somewhere. I've got a lot of work to do, so I'd thought I'd tackle one of the weakest and easily hardest parts of my workflow first: optimization.
I can generally recognize silhouette and form in a high-poly model, but transferring that information to a low polygon model often leaves me with too lowpoly of arms, too stretchy of shoulders, poorly deforming hands, etc. Usually, my solution ends up being more polygons, which then balloons out to ridiculous numbers as I try to keep the lowpoly as close to the silhouette and form of the high.
Anyway, my main question is this: do you guys have some tips on what someone should look for when optimizing a model? What fairly large details do you guys give leeway on in optimization and leave to the normal map (muscles, horns, goiters and the like)?
For general reference, let's keep discussion towards a typical next-gen model polycount. I realize there isn't an end-all-be-all answer, but I really need help. Having a 14,000+ tri model for a fairly simple character isn't acceptable for me or anywhere else. Any tips you have would be appreciated and I'm sure some others would look forward to some input, too.
It sounds like you already have a pretty good idea of what to look for when doing this.
Basically I just try and get any of the biggest details that are going to be seen in silhouette. Any "interior" details which will mostly be seen flat-on or surrounded by other, protruding detail, can be optimised down as low as possible and let the normal-map do the work.
Always try to include whatever makes the largest "change in direction" on the surface of a model. Don't have vertices and edges added just for tiny deviations in surface shape, keep that budgetted for the large and curvy shapes which really need it. Zoom out a lot :)
Obviously you need a decent amount of geometry for deformation around key areas (hips, knees, shoulders, elbows, wrists).
Do you have any examples of your models which you think are either "too low" or "too high"? 14,000 triangles isn't tooooo bad for a complex model but if you say it's a "simple character", then yeah it should really be less. I'd have to see images to judge and give more focused feedback, since it seems like you already know most of what I've said.
11-02-2009, 02:21 AM
Thanks for the tips. I guess I still need to mess around with what shapes should be important.
I really noticed this problem with the prawn model I pimped a little more than a month ago. It's probably the best example of what I'm talking about. Here's the lowpoly at 14,248 tris and the high:
I kept deformation in mind for the joints, but the carapace topologies are an absolute mess. My main fear was that the concave shape of the back ridges wouldn't have come through that well on the normal map. Same thing with the back of his pelvis. I'm guessing that's detail I probably should've trusted my normal map to take care of?
the normalmap can almost fake anything within the silhouette as if it was the highpoly, its the silhouette itself it cannot be faked.
the back of the prawn has some irregularity in the silhouette, but its not that big of a variation, so you could get away quite cheap there, same with other areas.
you could definately get away way cheaper on this one, it doesn't have too much of a complex silhouette
Yep you have a lot of edge loops there around non-deforming parts (eg. mid leg areas, forearms), you could easily collapse or delete every other loop and the silhouette would be virtually identical.
Also as eld says the back is the most obvious place to optimise, there's no need to model all those little details out - maybe just a few extra triangles in the centre where the scales raise up the most. The rest of the back can pretty much be flat polys, the normalmap will describe all the detail there.
In general it looks like you've just added too many edge loops to a lot of the cylindrical sections (ankles, stomach, neck, arms, legs) you could easily half the number there without affecting silhouette or deformation much if at all.
11-02-2009, 11:04 AM
That's what I figured, but how would I go about modeling the spines/nubs on the forearms and legs, then? That's where most of those loops went towards because, again, I didn't think a normal map would handle the transition between two non connected meshes very well.
I don't know. I'll mess with it, see what comes up. I really appreciate the input, MoP and Eld. Thanks again!
11-02-2009, 11:26 AM
When you get to the final low poly you're free to start terminating loops no need to carry they all the way around the leg creating more tris, like MoP said you could collaspe just about every other ring and get the same result.
You could have separate meshes clipping through for the spines and nubs, or you could just have the extra geometry there like you have now, but collapse the loops surrounding them. You don't have to keep everything regular quads and straight edge loops, feel free to collapse away like crazy.
It seems like you're trying to keep everything too "even" in terms of distribution - for a lowpoly mesh like this you only need to add triangles or quads where they're really needed - you don't need to keep all the quads the same size or the edge loops all neat. Don't be afraid for the mesh to get a little less "regular" if it means you save thousands of polys.
Nice highpoly though, and with a bit of optimisation the lowpoly will be great too - I look forward to seeing the final textured version :)
11-03-2009, 02:39 AM
looks awesome so far! can't wait to see it finished. i reckon you could get the lowpoly down to 10k tris easily
11-03-2009, 05:07 PM
Unfortunately, I got this in-engine about three weeks ago and stopped there. I had so many problems with it lowpoly-wise, rigging-wise, bake-wise, I ended up setting it aside. Like I said, I've still got a lot to learn. I doubt burning myself out getting one model right isn't going to do as much as moving on.
vBulletin® v3.8.4, Copyright ©2000-2013, Jelsoft Enterprises Ltd.