Project: pureLIGHT and UDK

A quick project of mine: I took some very basic geometry from Blender, baked some lightmaps in pureLIGHT then brought all of that over to the UDK to see how it would all work out. The level concept consisted of a very simple maze-like level that would be able to fit two players just nice, while demonstrating that you don’t just have Lightmass at your disposal if you want pre-calculated lighting.

The maps turned out just nice and showcased what pureLIGHT was capable of, while also demonstrating just how easy it is to implement a sort of middleware like this.

Anyway, on to the level!

All the meshes of the level where very basic exports from Blender, which was one of the harder things to get going as I eventually needed to just ask the pureLIGHT guys for a proper export script as none I found did the trick. Once that was said and done, the momentum with the project grew tenfold. With everything in pureLIGHT, it was as simple as telling it to bake, as the materials from my lights had saved and pureLIGHT imports the x,y and z from all meshes so fiddling with positioning shouldn’t be required.

Once processed, pureLIGHT dumps all of the final mesh and map data into ASE and TGA files that can be easily brought into just about anything, be it a game engine like UDK or 3D software like 3ds Max. The best part is pureLIGHT does all the custom UV work, meaning once it’s imported you just drag and drop the texture/material onto the outputted mesh and you map is applied perfectly onto it.

From here on out, it was as simple as placing and scaling all of the meshes and a few dynamic lights to get the end result. I do have to give thanks to Andrew Czarnietzki, he explained to me how to disable much of the UDK’s Simple collision that was wreaking havoc on my meshes. I found out soon after, however, that there must have been something that Unreal didn’t like about my meshes, as every time a bot or I moved while on per-poly collision, we both rose and fell. In the end I was able to add a BlockingVolume to even things out, but in the future collision meshes may be the way to go, even with this very simple geometry. I’ve noted that the next time through it would likely be better to export per mesh instead of per group of mesh, just to avoid some of this strangeness.

 

What I did right:

- Went to the resources available to me. The script I got directly from the guys at pureLIGHT Technologies worked exactly as I wanted it too.

- Had a clear plan from the beginning and executed it.

- Doing the project at all. Had I decided to bring this into something else mid project, it likely would have stalled everything.

What I did wrong:

- Very rough meshes, making for some light bleed and extra unnecessary polys. 

- Lightmap resolution not fully optimized.

- No collision meshes.

What I will do in the future:

Outside of adding the collision and making things a bit more optimized, I plan to move on from Blender and work toward adding proper materials and details into similar levels.