Hi developers,
How have you been enjoying the beta for Indoor Dynamic Environment Maps? We’re excited to share that we just released an update which enables the lighting beta for places with Lighting.Technology
set to Future mode and comes with a few improvements based off of your feedback!
We hope these adjustments brighten your day
How Does It Work?
When rendering a scene, the engine calculates whether an object is indoor or outdoor based on a light grid. When the cell at the object’s position is occluded from the sky, it will be considered as being indoor.
Outdoor objects use the skybox to generate information on how reflections should look. And, before this update, we used to have very little information about the indoor environment, so indoor reflections looked… well, a little boring.
In this update, we added a true environment probe that can automatically capture and update the environment map, taking into consideration camera movement, and then use it to apply a realistic reflection on smooth objects. Each environment map takes a few frames to generate and if the engine finishes generating a new map, the old map will slowly fade out and be replaced with the new one.
The purpose of this update is to improve the appearance of indoor metals. Just note that while the reflections are more realistic, they are not intended to be used as a real-time mirror. At this time, humanoids are explicitly excluded from the reflection (because they usually keep moving and don’t belong to the environment).
Additionally, the reflection will be blurred on surfaces that have some roughness (see for example the metal and foil materials).
Before:
After:
How to Enable
Set Lighting.EnvironmentSpecularScale
to 1 to have full power
Set Lighting.EnvironmentSpecularScale
to 0 to turn it off
If you are already in ‘Future’ mode, this feature is already live on all platforms. If not, you will need to enable it via Studio beta before it can be previewed.
Important Notes
-
Frame generation does not happen real-time - it takes several frames to generate an environment map. This might cause some side effects, especially when you walk from a bright room to a dark room.
-
You may be wondering, “Why isn’t there Screen Space Reflection (SSR)?” SSR can only run smoothly on high end devices. We’d like to have a solution that can run on most devices. This update is supported by all graphics APIs except GLES2.0.
We’ll add other technologies for higher quality in the future.
Known Issues
-
Sky visibility is not accurate if you use MeshParts or CSGs as the wall or roof of a room, doing this can cause light leaks. In this case you’ll see sky reflection instead of the indoor reflection. We have plans to improve the way this functions.
-
The environment map is captured at an empty space in the room, not from the position of each object reflection we render. So it’s expected to see the object reflecting itself.
-
For performance reasons, objects in the environment map are rendered with low quality. That means some objects in the reflection will not match the resolution of the scene.