April 18, 2012, 03:46:15 pm
The techniques for planar reflections (e.g. for floors, mirrors etc) and local cubemap reflections (for objects) are well-known and pretty simple.
Lumion currently uses a single global cubemap reflection texture which is rendered from a single position (you can specify this position using Lights -> Utilities -> Reflection control). This reflection map is then projected onto all reflective materials in the scene.
A local cubemap reflection texture on the other hand, is a 360 degree reflection map which is rendered from a single position (typically from the center of the object), and then projected onto the object. This gives the appearance of the material being reflective, but it's not accurate and may look a little weird, depending on the shape of the object. It works best for smaller models, e.g., cars, balls, beer cans etc.
Planar reflections have been around since the dawn of 3D.
You basically mirror all objects temporarily in each frame and render the result to a texture, then apply material effects to this texture, for example a bit of distortion/bump, and finally project the texture onto the floor/mirror/etc.
Remko has previously mentioned that he'd like to implement this in a future update.
The downside is that render times will be longer and memory requirements higher since everything has to be rendered twice to create the mirror effect, so you'd really not want to add planar reflections to more than 1 or 2 surfaces in your scene. This is the reason that the planar reflection effect is mostly only used in small scenes in other real-time 3D engines.