Thread Tools Display Modes
EsotericAgenda's Avatar
Old (#26)
Originally Posted by d1ver View Post
And I still have to translate it to russian=(
You know you COULD make a video instead of typing, and it would probebly be much easier to translate too!

BTW this is an interesting read, I learnt some new stuff, so thanks.
Offline , line, 65 Posts, Join Date Aug 2009,  
   Reply With Quote

Cyrael's Avatar
Old (#27)
This is awesome! Very insightful for up and coming artists trying to get their bearings on workflow and industry standard info.
Offline , polygon, 515 Posts, Join Date Aug 2009, Location Los Angeles, CA  
   Reply With Quote

d1ver's Avatar
Old (#28)
Hey, Pior, Thanks. I didn't know that.=(

I was too used to seeing our animater running arond the studio and all like "where is this m*therf*cker!? I wanna show him what he did and then probably brak his leg.".)
I guess i'll correct it right away.

EsotericAgenda, Cyrael, I'm so very glad you found it useful. Makes me happy.)
Offline , dedicated polycounter, 1,623 Posts, Join Date Jan 2008, Location Santa Monica, California  
   Reply With Quote

Whargoul's Avatar
Old (#29)
I'm not sure where this concept of "don't use less than X verts since they cost the same" came from - but we need to lose it. Same with the idea that LODs cost you more.


Small triangles are bad. If anyone uses PIX - turn on overdraw and check something out that has very small triangles - and there will be overdraw all over the edges of the small triangles. Especially when triangles get to 1-to-1 with pixels. Do not do that! I'm not sure the ideal triangle/pixel ratio, but bigger tris are better on fill & ROPs.

LODs are essential - yes, there is a memory cost, but that is small. Yes, there is CPU cost to check the distance to make it switch, but that is small also. There is no GPU cost to switching models though, except the savings you get from better sized tris on screen.

Some exceptions of course, like grass, particles, etc, but for standard geo, build LODs. Use as many verts as needed.

There are no hard and fast rules - guidelines only. A lot of the doc is helpful, some useful info in there. But beware spreading incorrect info. Test stuff yourself - ask programmers to debug & profile it.

And as many people have said - workflow is more important than anything. I'd rather have twice as many slightly inefficient objects in the game than half as many perfect ones!
Offline , triangle, 433 Posts, Join Date Oct 2004, Location Vancouver  
   Reply With Quote

d1ver's Avatar
Old (#30)
Thanks a lot, Whargoul, you've made a pretty clear point.
I'll correct it right away.
I am afraid to spread false knowledge. And least of all I want to do this. I've had the paragraph about it in the first post.
Sorry but I unfortunately have no one to turn to debug and profile it(except fellow polycounters), so thanks again. And I'm glad you found some of the info useful.
Good luck.
Offline , dedicated polycounter, 1,623 Posts, Join Date Jan 2008, Location Santa Monica, California  
   Reply With Quote

d1ver's Avatar
Old (#31)
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.

- Triangulation

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.
Please remember,
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...

Last edited by d1ver; 12-24-2009 at 04:56 PM..
Offline , dedicated polycounter, 1,623 Posts, Join Date Jan 2008, Location Santa Monica, California  
   Reply With Quote

d1ver's Avatar
Old (#32)
Hey, guys. I've tryed to add some pictures to the first post, but it said that I a limited to 18 pictures per post, so excuse me, but I had to make the second part a separate post.

I've added some minor tweaks to the rext too. Hope it's a bit more readable now.

If there's anything in the text still bothering you please speak up.

Offline , dedicated polycounter, 1,623 Posts, Join Date Jan 2008, Location Santa Monica, California  
   Reply With Quote


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.

Copyright 1998-2014 Polycount