Hey. So, I was thinking about how to do a global illumination-styled feature in the BGE. Global Illumination is where objects are lit by surrounding textures or objects. It’s a nice, subtle feature - you can see it in effect in this image.
You see, the left wall is red, and the right is blue. The right sides of the spheres gets blue, and the left sides get red. My implementation is far worse, but still could be useful.
Now, it’s not possible to do this in the BGE by default, but I’m working on a very simplified version with node object that changes objects’ colors depending on how close each object is to the nodes. The results aren’t too bad.
Here’s a shot with the ‘light’ nodes not adding their color to objects.
The colors can mix between GI nodes, which is a nice feature. I still need to add a raycast to change the color of an object based on whether it can ‘see’ the node. While it doesn’t look nearly as good, it still has a little bit of an effect, and should be especially interesting in a more developed scene. It also runs very quickly - each of those shapes in the screenshots are getting illumination dynamically, and the script is running every frame.
EDIT: So, this would be most useful in an environment with dynamic objects, where you can’t spare lamps (like an indoor scene, for example), and with baked lighting. With this, you can make baked lighting seem like it’s giving off a little light.
Oh, and you can tweak some settings via game properties - the strength of the GI effect for each node, the color of the node, whether it’s additive or not, and the minimum and maximum distances for the GI effect to appear.