the first part about the thing you'd want to know is right here
Things you'd want to do
So I hope this wall of text up here made some sense for you guys.) I find all this information on how stuff works really useful, but it’s not exactly what you would use on a day by day basis. It’s nice to read once, but I doubt I myself would want to go through this again in case I forget something. And though I think “whys” are important, as an artist(or as an artist wanna be), I’d love to have a place where all the “hows” are clearly stacked, without any other distracting information. And the “whys” section would serve as a reference you can turn to, in case something becomes unclear.
So, while making and asset or a character you’d want to keep these things in mind all the time:
It’s not the tri count that matters, but vertex count. Smoothing Groups(Soft/Hard Edges), UV seams and Multiple Materials increase the number of verts, so you want to have the least number of those possible. Vert counts don’t matter at all, if they don’t add another drawcall, so feel free to find them a proper use. Uberlowpoly models are bad for performance.
Triangulate using “Max Area” or “Shortest Edge” principles.
Materials(Shaders) are the most fruitful thing to optimize.
If you know you’re going to have dynamic lighting, then try to break bigger objects into smaller ones.
Lightmapping is more efficient then vertex lighting, so try to lightmap static meshes and make them lightmapping ready if your engine supports it.
Workability is still king.
Now lets imagine you’re finally done with an asset. You’d want to make sure things are clean and engine friendly. Here’s the list of things to check upon consecutively:
- Deleted History, Frozen Transformations/Reset XForm, Collapsed Stack
Transformation information stored in a model could prevent it from being displayed correctly, making all further check useless. Plus it’s simply unacceptable for import into some engines. And even if it does import, objects orientation and normal direction could be messed up.
In Maya, don’t forget to select your object.
- Inverted Normals
While mirroring(scaling by a negative number) or performing a ton of other operations actually, your vertex normals could get turned inside out. You should have the right settings set in your modeling application in order to spot such problems.
In 3ds Max you can go to object properties and turn “Backface cull” on. Then examine your mesh.
In Maya you could just disable “Double Sided lighting” in the lighting tab(if it’s missing hit “shift+m”), then make sure, that in the Shading tab “Backface Culling” is disabled. Then If you’ll check out your model with shading all the places with inverted normals will be black.
- Mesh splits/ Open Edges
It sometimes happens, that while working we forget to weld some vertices or accidentally break/split some. Not only this could cause some lighting and smoothing issues, but it’s also a waste of memory and pretty much a sign of a sloppy work. You wouldn’t want that.
Open edges are an issue you want to think twice about. And not only because in some cases they could be an additional stress for computing dynamic lighting, but because it seriously reduces reusability of your asset. If you simply close the gap and find a place on your texture you can throw this new shell on, that would still be more preferable.
To detect both those issues in 3ds Max simply choose border selection mode (“3” by default) and hit select all (“ctrl + a” by default).
In Maya you could use a handy tool called “Custom Polygon Display”. Choose “Highlight: Borders” radio button and apply to your object.
- Multiple edges/ Double faces
This double stuff is a nasty bugger since its almost impossible to spot unless you know how. And sometimes when you modify stuff you can get very surprised with things behaving not the way they should.
I could hardly remember having them in max, but just to be sure I always apply a STL Check modifier. Tick the appropriate radio button and check the “Check” checkbox.)
In Maya “Cleanup” tool is very useful. Just check “Nonmanifold geometry” and “Lamina faces” and hit apply.
- Smoothing groups/soft-hard edges
For this one you’d want to have as less smoothing groups/hard edges as possible. You might consider making it all smooth and just adding some extra chamfers, where bad lighting issues start to appear.
Plus there’s one more issue to watch out for, more in Maya then in 3ds Max though, since max utilizes the Smoothing Group concept:
Edges on planar surfaces would appear smooth even if they are not. To see which edges are actually unsmoothed “Custom Polygon Display” tool comes in handy again. Just click “Soft/Hard” round button right alongside the “Edges:”
- UV splits
You would like your UVs to have the least number of seams possible, but, as long as it is nice to work with. No need to go over the top with distortion here, just keep it clean and logical.
Broken/split vertices are a thing to watch out for too. 3ds Max would indicate them with different color inside the “Edit UVWs” window.
While in Mayas “UV Texture Editor” window you have Highlight Edges button, that simply checks “Highlight: Texture Borders” checkbox in the “Custom Polygon Display” tool for you.
While checking triangulation up, first of all make sure, that all the triangles accentuate the shape you’re trying to convey, rather than contradict it. Then a quick glance, to check if triangulation is efficient.
Plus. Some engines have their own triangulation algorithms, and will triangulate a model on import themselves, with no concern about how you thought your triangulation looked. In trickier places this could lead to a messy result, so please take caution and investigate how your engine works and connect the vertices by hand If necessary. Btw, Maya more or less helps you find such places if you check “Concave faces” in “Cleanup Options”. In 3ds Max you’ll just have to keep an eye out for yourself.
- Grid Alignment/ Modularity/Pivot point placement
Since the last generation of videogames, graphics production costs has increased significantly, so modularity and extensive reusability are now a very common thing. Ease of implementation and combination with different assets could save a lot of time, maybe not even yours, so don’t make your level designers hate you – think about it.
- Material Optimization
Evaluate your textures and materials again, since it’s probably the biggest source of optimization. Maybe the gloss map doesn’t deliver at all and specular is doing great on its own? Maybe if you used a twice smaller specular the asset would still hold up? Or maybe you can go with the diffuse for specular, since it’s a just a small background asset? Maybe that additional tileable normal isn’t necessary at all? Or maybe you could go with a grayscale spec, and use the spare channels for something else?
- Lightmapping possibility
If your engine supports lightmapping make sure you have a spare set of uniquely unwrapped UVs, which totally met all your engines requirements.
Everything said, there’s still one more thing left.
no matter how technical and optimized your model is, it’s meant to look beautiful first of all. No optimization could be an excuse for an ugly model. Optimization is not what artists do. Artists do art. And that’s what you should concentrate on.
The beauty of technicalities is that they can be precise to a pretty big extent. Which means you can write them down, memorize them and don’t bother thinking about them again for quite a while, just remembering instead.
But it’s art where you have to evaluate and make millions of decisions every single second.
All this text is not important and that is exactly why it is written down. Really important things aren’t all that easy to be expressed with words. And I hoped, that maybe, if you didn’t have to bother thinking about all the tech crap at least for some time, you’d concentrate on stuff much more important, and prettier I hope.
Very helpfull links which I owe most of my information to
(I suupose most you know them though)
Beautiful, Yet Friendly Part 1: Stop Hitting the Bottleneck
Beautiful, Yet Friendly Part 2: Maximizing Efficiency
- a series of deep and easily understandable articles by Guillaume Provost
Unreal Developer Network
- contains a ton of usefull information.
Hummus on the triangulation
- some amazing tests.
Too much optimisation thread at polycount
thats where I first encountered most of the termes I've been talking about...