Reflections in Shapespark may be inaccurate as they use a fast approximate technique suitable for real-time visualization on devices not equipped with a powerful graphics card. Rendering physically accurate reflections requires tracing how light rays bounce through the scene, which would be too complex computationally and lead to a very low frame-rate for a scene visitor using an average desktop or mobile device.
The approximate technique is based on 360° panoramas captured by light probes placed in the scene. The captured panoramas are 2D and don't have full 3D information about the scene needed to correctly trace the incoming reflection rays, however in many cases approximating the incoming ray from one of the panoramas gives near-accurate results. The most typical cases where the technique doesn't produce accurate results are described below.
Reflection is distorted
In most cases the distortion cannot be removed, but often it can be reduced. Try moving the light probe around the room to find a position with least distortion. If a room has a mirror hanging on a wall the best result is usually achieved if you move the light probe in front of the mirror.
Distorted reflection in the mirror.
Light probe placed in front of the mirror.
Reflection has seams
Seams visible in a reflection have usually one of the below causes:
- Inaccurate light probe bounding box. Make sure that light probe bounding boxes are aligned with the room walls.
Light probe bounding box not aligned with the room walls.
Light probe bounding box aligned with the room walls.
- The seam is visible where two objects meet. See the below "Reflections on neighboring objects are inconsistent" issue
Reflections on neighboring objects are inconsistent
When the scene is loaded all objects in the scene are assigned the closest light probes such that the object is visible from the assigned light probe. If two neighboring objects have inconsistent reflections they have been assigned different light probes. Try moving the closest light probes around or removing some of them.
Reflection in the TV screen is not aligned with reflection on the wall - objects are using different light probes.
Reflection shows objects from another room
The object with incorrect reflection has been assigned a light probe placed in another room, so the reflection uses a panorama from another room. Make sure that the object mesh fully belongs to the room. If you are using SketchUp, turn the mesh into a group or component, so the mesh is not merged with other meshes using the same material when the model is exported. Finally, make sure there is a light probe placed in the room with the incorrect reflection.
Mirror is using a light probe from the room behind the wall, because there is no light probe in the bathroom.
Mirror is using a light probe from the bathroom.
Reflection doesn't react to material picker changes
Light probe panoramas are not recaptured when a material is changed using the material picker, because this is a time-consuming operation and would cause the scene to freeze temporarily. The panoramas are captured only when the scene is loaded and used for the whole duration of the scene viewing.
So, even after a material is changed it's still the same panorama, storing the original material assignment, used to render the reflection.
After changing the floor material from wood to terazzo the mirror still uses the original material.