Reflections are part of physically based rendering. They make materials respond to their environment and are most visible on glossy surfaces such as car paint, glass, chrome, wet roads, polished floors, and metal parts.
In BeamNG, reflections can come from multiple sources depending on material settings, graphics settings, and the object being rendered.
Without reflections, materials can appear flat, dull, or disconnected from the scene. Good reflection setup improves:
Physically based materials depend on reflected light for roughness, metallic, and clear coat response.
BeamNG supports several reflection sources:
These systems work together. When one source is unavailable, the engine usually falls back to another source.
Dynamic cubemaps are real-time reflection captures used for the player vehicle. They update during gameplay and provide accurate reflections of the surrounding environment.
Dynamic cubemaps are only available for the player vehicle. If dynamic reflections are disabled in graphics settings, materials fall back to the level cubemap instead.
Dynamic Reflections missing on the left, and enabled on the right.
Static cubemaps are pre-captured reflection maps. They do not update in real time, but they are cheaper to render and work well for fixed environments or specific materials.
Static cubemaps can be used in two main ways:
Static Reflections missing on the left, and enabled on the right.
A material can reference a specific cubemap directly. Use this when a material needs a controlled reflection source, such as a showroom object, special prop, or environment-specific surface.
Use per-material cubemaps when:
To assign a material cubemap, select the material in Material Editor, set reflection mode to Cubemap, then assign the cubemap.
Level cubemaps represent the general environment reflection for a level. They are used by materials when reflection mode is set to Level, and may also be used as fallback reflection data.
If a material reflection mode is set to None, level cubemap reflections can still be used when lighting quality is set to High or Ultra.
Use level cubemaps for:
To set the level cubemap, select the LevelInfo object in the scene tree, then assign the cubemap to globalEnviornmentMap.
Materials can control which reflection source they use.
The material does not explicitly request a reflection source.
However, when Lighting Quality is set to High or Ultra, the material will still receive global level cubemap reflections.
Use this for materials where reflections are not needed or should be very subtle.
The material uses the level cubemap environment map.
This is the recommended option for most static environment materials that need reflections without a custom cubemap.
The material uses a specific assigned cubemap.
Use this when the material needs a custom static reflection source.
Planar reflections are used for flat reflective water surfaces. Unlike cubemaps, which capture the environment from a point, planar reflections render a mirrored view of the scene from the water surface. This makes them much more accurate for large flat surfaces.
Planar reflections are available only on select object types:
Use them mainly for water rendering, where reflections of the sky, terrain, vehicles, and nearby objects need to line up with the water surface.
Planar reflections require Shader Quality to be set to High. If Shader Quality is lower, water objects should use a fallback cubemap instead.
Compared to cubemaps or Screen Space Reflections, planar reflections are relatively expensive because the scene needs to be rendered again from the reflected view. Use them only where the visual improvement is worth the performance cost.
Planar Reflections missing on the left, and enabled on the right.
Planar reflection settings:
Static cubemaps can be captured using:
World Editor → Window → Cubemap Editor
A typical workflow:
Capture cubemaps from locations that represent the surrounding environment. For large areas, use a neutral location that does not overrepresent one landmark or lighting condition.
Static cubemaps can be normalized using ambient lighting / global illumination information. This keeps reflection intensity and color aligned with the level lighting instead of making cubemaps appear too bright or too dark.
Evaluate reflections together with:
Possible causes:
Capture or assign a more appropriate cubemap.
Reflection quality depends on graphics settings. Make sure materials have proper fallback behavior through level cubemaps.
Possible causes:
Was this article helpful?