About Me

My photo
Bangalore, Karnataka, India
Strategic Senior Producer with over a decade of experience in PC, consoles, and social media game production. Proven track record of managing and delivering projects for both client-side and client-facing companies. Experienced in developing specifications project planning, scheduling and tracking, scalable production processes, scopes, SOWs, budgets, and timelines; good understanding in marketing strategies, emerging trends, analytics, and comparative analyses. Well versed in managing multi-million dollar projects/budgets and art outsourcing to vendors. Skilled in adapting to multiple cultures, and in managing international talent. Deep knowledge industry tracking and scheduling tools including MS Project, JIRA and Hansoft. Good understanding in 2D and 3D art and animation.

Useful Presentations/Docs

Monday, May 31, 2010

Game Model: Asset Complexity Guideline

This documentation explains the importance of defining smoothing groups as well as practically showing how careless unwrapping can increase vertex count in a model which will not be visible in a 3d application like Max or Maya.
The model in this example is a simple pillar (below):
 Vertex count is more important for a mesh because of the simple fact that in any 3d application or game engine the mesh/model is displayed/ rendered based on the position of the vertices. 
No 3d application knows about a face or an edge but creates a face based on the corresponding vertices and their position. 
We cannot define vertex count for a mesh (especially for gaming model) because it depends on many things like smoothing groups, UV-Unwrap and multi-material. Moreover, the smallest face that can be rendered is a triangular face (Connecting 3 vertices), we prefer defining tri count for a model rather than vertex or face count.
 Coming back to our example models:

  1.  First Model is exported to unreal editor with auto smooth applied (each face has its own smoothing group based on the angle defined). Importing the model (Especially for Reich) will give you an error:

What is this error?
Model’s vertex count exported to unreal should not be 125% more than the actual mesh count in 3d application. E.g. If your model has 100 vertices, the exported vertices count should not be more than 125 vertices.
 In unreal engine the actual vertices exported are 66 instead of 17.

 Why this happened?
 Whenever 2 different smoothing groups are applied to 2 adjoining faces, theirs common vertex is split into 2 (each contain information of their face smoothing angle)

2.  This time we import manual smoothing model. This model has less smoothing separations compared to auto smoothing import. Vertex count comes down to 52.

3. Now we import single smoothing group model and definitely it will have least no. of vertex count.

(Check the shading issues with single shading)
Surprised??Vertex count remains the same contradicting out though….No…this is because of the fact that vertex count also depends on unwrap, even though smoothing is single default unwrap islands created so many vertices.

4. Lastly, we import chamfered model and see the count.
Surprised again?? Though tricount has increased but the vertex count got reduced to 49 compared to all previous imports.
Why this happened?? This is because of the simple fact that it all depends on smoothing group and unwrap layout.

In all the above exports we didn’t touch Unwrap….Now we start fiddling with unwrap on the model. All the models has now flattern mapping applied.

(Normal Model)                                   (Chamfered Model)

1. This time we export our very first model (Auto smoothing group) with generic flattern mapping.

See how vertices reduced from our first export with no mapping (60 vertices) to one level of flattern mapping (52 vertices).

This change occurred because in default/no mapping, unwrap was broken at many places while in flattern, it got reduced to lesser UV islands.

2. Now we import manual adjusted smoothing group model with default flattern mapping. 
The vertex count again reduced from 52 to 44 because smoothing groups was same but unwrapping was different.

3. If we import single smoothing group model with flattern mapping: 
 Same result…….Vertex count reduced due to flattern mapping.

4. Last import is of chamfer model with flattern mapping. 
This time vertex count raised significantly because of flattern angle breaks in the mapping. More the number of uv islands, more the vertex count.

We can reduce it more after adjusting the Unwrap. We try to change mapping to our models and see the final count.
                           (Normal Model with adjusted unwrap) (Chamfered Model with adjusted unwrap)

1. Our first import is of auto smooth model with adjusted and fixed Unwrap. 
Vertex count didn’t change. It all depends on the UV layout.

2. Next import is of manual adjusted smoothing group with adjusted unwrap.
Same result…..no change..It must be because wherever there is a shading split there is a UV split. If shading split is on one face while uv split is on another face, then both the split will be taken into consideration.

3. Now, simple models with single smoothing and adjusted unwrap.
Drastic change……decent count but lighting issue is persistent.

4. Lastly, we import our chamfered model with accurate smoothing and adjusted unwrap. 
Again, the count got reduced to a decent level.

As a final not if we compare all the models we have the chart:

(In all the modes above, chamfered model is perfect in terms of specular highlight and shading)

 AUTO: Such smoothing is rarely used since it increases unnecessary vertex count. Though smoothing angle can be adjusted to get more appropriate smoothing result. Drawback is there will be razor sharp edges with no specular highlight so the model looks bad visually. It is always recommended to manually adjust the smoothing.

Manual: Manual adjustment of smoothing is always necessary to reduce smoothing groups wherever possible and thus keep vertex count in limit. Try to keep, wherever possible,different shading only at those face where UV gets split. In this process, try to get as few smoothing groups as possible (while not hampering lighting/shading information) so as to minimize smoothing splits. 

Single: It really helps to get the model with least vertex count in the engine at the cost of lighting issue if the model is less complex (At times). Such smoothing can be used where the mesh count is enough to support pooper lighting. Since this is a very basic model (example above) lighting is not so much accurate but a complicated model with single smoothing group is best way to create gaming models. 

Chamfer Corners/Edges: Rather than setting different smoothing groups for a cornered surface, it is always better to chamfer the models and assign single smoothing. Though it increases the mesh count a bit but it is far better way to reduce vertex count and get lighting/shading perfect on the surface.

Another Example:

No comments: