Since I’m not an artist, I have a hard time making an argument to shell out the thousands of dollars required for 3D Studio Max or Maya, the leading tools for 3D art creation in the game industry. However, for many of my home programs, a 3D art creation tool would be really, really nice.

Enter MilkShape3D.

It’s a cheap ($30), low-polygon modelling tool that does many of the things I need. Not hard, since I’m not an artist, but still, it’s definite quality for the money in my mind. There are a few small features missing, though, like the ability to do geometry intersection operations (like cutting out a sphere from the side of a cube to make a dent in the cube, for example). Some of these I work around, but some were really starting to frustrate me.

Then I found out that the author of MilkShape published some C++ code to load his model format. Although this isn’t totally the format he uses to save (there appear to be some end segments missing for comments and such, which he doesn’t give the format for), it was enough for me to build a DirectX app to load his model format, convert it to DirectX’s vertex/index buffers, modify them, and save them back out to “almost” his format. That let me load up the modified model in MilkShape, and although it gave me an error, I was able to continue my work. Now I can do some seriously cool things to my models outside of MilkShape, like drape the vertices of one model onto the convex hull of another. Next up, model intersections.

Anyway, just wanted to send out a big “Thank You” to MilkShape and its creator, especially for publishing that model loading code. It just saved me hours of work!