Overview
Texture optimization: baking, atlasing & channel packing
Textures tend to cause the most common bottleneck in mobile games due to draw calls. We can take advantage of common tactics like baking, atlasing and channel packing to achieve texture optimisations. Note that atlasing is only an option when all of the given textures require the same shader!
Mesh optimization: polycount reduction
Mesh and Animation file types are large arrays of vertex & skinned bone data. When we cannot batch objects using Skinned Mesh Renderers, reducing polycount is one of the only good ways of reducing CPU and GPU runtime overhead for animated objects. This is especially important for VR and mobile.
Summary
- There are tools for automated polycount reduction instead of having an artist do it manually, this will help save time but automated mesh optimisation is a very difficult problem to solve mathematically.
- At the time of writing, even the best algorithms are not free from artefacts and irregularities. If there is enough time and budget, it’s better to get an artist to manually reduce the polycount in order to achieve the best results.
Unity Plug-ins:
- Free version with a few limitations, such as having to share content data with Microsoft
- When reducing a geometry, there are a lot of different data that needs to be taken into consideration: UV coordinates, normals, tangents, vertex colors, skinning. you can weight how important each feature is individually so that they get a higher priority relative to the others.
- Other features include material baking, billboard generation, mesh combining, etc
MeshBaker
- MeshBaker manual: https://digitalopus.ca/site/mesh-baker-3-manual/
Open source mesh optimization tools & libraries for Unity on Github
useful for those interested in polygon reduction algorithms:
Tools for Automating LOD creation
DCC Tools
A lot of DCC programs have poly count reduction tools built-in:
- Houdini: PolyReduce
- Maya: Mesh Reduce
- 3Ds Max: Optimization Modifiers
- Blender: Decimate modifier
- ZBrush: ZRemesher
Standalone tools
Suitable for custom game engines:
- ATangeo: Free version with limitations: can only process meshes with <65K vertices.
- Mesh Lab: open source system for processing and editing 3D triangular meshes.
Further Reading
Polygon Reduction Algorithms: