As I wrote about previously, I’m working on a utility to convert Minecraft levels into a Wavefront OBJ format so I can render my worlds in 3ds Max. Since my last post, I’ve added the following features:
- You can now choose the region to render. This reduces the polygon count on the final object, especially if you’re just doing a surface render, and don’t need all of the cave polygons.
- I exported the default texture set from Minecraft so I could apply the in-game textures to my final model.
- Fixed some chunk boundary issues. Previously, if a block was at the edge of a chunk, it couldn’t tell if it should be rendered or not, since there was no next block to compare to. This resulted in holes in the final object. Now, the converter imports all of the chunks before doing the export, so it can check conditions across chunk boundaries.
- The biggest feature I added was the ability to use custom geometry for certain blocks. So, now the exporter will automatically insert actual torches, doors, fences, flowers and steps where appropriate. It will also check the extra info for those objects in the level data, so the torches and doors are rotated correctly. There are many other custom geometries that I could add, but I don’t have any in the scenes I wanted to render, so I haven’t done them yet.
Rendering Minecraft scenes in 3ds Max
Once I have the level object imported into 3ds Max, I still need to hook up the materials and setup the lighting. I used the Mental Ray rendering engine with a dim skylight for ambient light. I also added a glowing material to the torch flames to get more dynamic lighting in the scene.
I still need to wrap the utility in a nice interface, and perhaps add some more custom geometry. Once I find the time to do that, I’ll package up the utility and release it here.