Hi everyone,
For my own project I will allow endusers to upload their own 3D models. But these models are bound to be immense in terms of number of vertices and triangles. Some of them will have to be reduced, all of them will need reduced LOD levels for distant viewing and most of them will need many sub meshes to be combined.
Since many developers run into the same problems when they download some model from the internet or the asset store that often contain way too many vertices for its purpose, I decided to turn the programs into a package.
SimpleLOD will combine the meshes of all child objects in 1 mesh with a submesh per shared material. You can then reduce the number of triangles by setting the compression level.
With 1 click you can generate 3 LOD levels and add a LODSwitcher component to your gameobject. This way any gameobject (skinned meshes as well) can be made LOD ready.
There are many mesh combine packages, but most of them do not support skinned meshes. SimpleLOD does support skinnedmeshes. So you can have an avatar model, several clothes meshes and several items that will all be combined into 1 skinned mesh, provided that they all use the same skeleton.
Of course there are also very good alternatives that generate your LOD meshes. But SimpleLOD produces very good results, supports skinned meshes, contains all source code, has no DLL’s and uses no external services.
And of course the end result will be better when you model everything by hand.
But not everyone is a master 3D modeler and not everyone can afford those programs. This package is for those people that want an easy solution for a complex problem.
When you want to use it at runtime (like I do) you can make use of the GameObject extension methods:
myGameObject.CombineMeshes();
Will combine all meshes in all child gameObjects into 1 mesh with submeshes for each unique shared material.
myGameObject.SetUpLODLevels();
Will create 3 LOD level meshes, add a LODSwitcher component and make your gameobject ready to go. Optionally you can set compression levels and switch distances
myGameobject.SetUpLODLevelsAndChildrenWithLODGroup()
If you prefer to use Unity’s LODGroup component instead, this method will set it all up for you.
The mesh compression algorithm is described here
The documentation can be found here
The webplayer demo can be found here
The asset store package can be found here
Simple LOD runs entirely inside Unity. The source code is all included and written in C#. There are no DLL’s or hidden stuff.
Note: Reducing triangles is a complex process and is bound to take some time, varying exponentially from a few milliseconds for small meshes up to several minutes for meshes with 64K vertices. This action is only needed once, since the reduced mesh is stored in your project folder.




