The largest difference from PTM Lua baking, which we covered earlier, is that we haven't provided a basis function for this Lua Bake Script. We aren't fitting the sampled data to a function basis, but a simple vector basis, and we can do that ourselves in the bake function. We also choose to sample indirect illumination instead of dynamic lighting, which will capture bounced light, color bleeding and neat things like that.

Make sure no other pass is enabled in the Texture Baking tab, enable the Lua pass and bake out a texture using the RNM Lua Bake Script.

The Bake script bakes down both Indirect and Direct Illumination by default.

You can experiment with baking only Indirect or Direct Illumination by commenting out the respective sections in the script. If you notice the output array, we are writing out 12 values. The RNM basis actually only needs nine components, but RNMs are most often written out as ordinary image files like TGA. We explicitly specify every fourth channel as 1.0, because the output channels will in turn be written out to R, G, B and A channels of a set of image files to match the number of output components, so we make sure that all alpha channels will represent an opaque value. Our 12 output components will thus be output to 3 RGBA images, which is what we'd want for an RNM map.

You will really start to appreciate the RNM maps once you start using them on textured scenes, and properly take advantage of color bleeding to pronounce mood or visual style.

Trying out new ideas will be a breeze once you get used to the Lua interface, so get busy coding!