Lod Creator & previewing tool

I wanted to continue developing my skills and interest with Python, PyMel and QT further so after a discussion with one of my artists, I got the idea that it would be nice to have a tool that would let the user create and preview lods directly in Maya instead of having to go through the pipeline to show objects in the engine. 

Very early version of the Lod Creator

Very early version of the Lod Creator

Final result of the Lod Creators UI and functions

Final result of the Lod Creators UI and functions


During the development process I was once again reminded of how important feedback & communication is. The first couple of iterations of this tool were very clunky and wasn't actually very useful, but for every piece of feedback and the following iteration, it turned into a useful tool and more knowledge of Python and Maya for me.

The first screenshot (on the left) depicts how one of the earliest versions of the tool looked, This was before I got any feedback on it and as can be seen, barely had any functionality other than being able to create 3 different lod versions of a mesh, without any way for the user to change how many polygons to keep from the original mesh.


As can be seen in the GIF above, the user can choose the number of lods to be created, as well as the percentage number of the original mesh to keep. In the outline on the left side you can see that Maya cycles through each of the lods based on how much screen space the mesh is currently using in the scene.

Lod2 and Lod3 in this example can be seen to have some issues with their geometry, the user have a few ways of dealing with any number of problems, as well as just viewing each separate lod by clicking the 'Unstack Lods' button. This button will separate the group and display them side by side, after the user is done viewing the lods this way, pressing the 'Stack Lods' button will put all of them back into the lod preview mode.


Fixing an issue with normals, using 'Unstack Lods' and then going back into preview mode with 'Stack Lods'


Final thoughts and lessons

"Communication is key" is something I feel needs to be mentioned again and again. Listening to feedback and requests is something I've really started to value very highly when it comes to the development of my tools. I'm not making them for myself, they are intended for others to use, this obviously means that their opinion is extremely important for my entire process. 

With this project I've become even more comfortable with QT Designer, Pyside2 and interacting with Maya through PyMel, being able to solve problems faster and more reliably than I previously could.

Research and development of this project was conducted at The Game Assembly as part of an Advanced Technical Specialization course.

Last updated: 31st May - 2018