# \[5.8.3\] Instanced Stereo: Volume-domain materials are only voxelized into Volumetric Fog for the left eye (regression from 5.5)

**URL:** <https://forums.unrealengine.com/t/5-8-3-instanced-stereo-volume-domain-materials-are-only-voxelized-into-volumetric-fog-for-the-left-eye-regression-from-5-5/2842316>\
**Category:** Issues and Bug Reporting (Unreal Engine)\
**Tags:** stereo-rendering, unreal-engine\
**Created:** [October 19, 2026, 5:02am UTC](https://forums.unrealengine.com/t/5-8-3-instanced-stereo-volume-domain-materials-are-only-voxelized-into-volumetric-fog-for-the-left-eye-regression-from-5-5/2842316 "2026-10-19T05:02:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![adjnor](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@adjnor](https://forums.unrealengine.com/u/adjnor)\
**Post date:** [October 19, 2026, 5:02am UTC](https://forums.unrealengine.com/t/5-8-3-instanced-stereo-volume-domain-materials-are-only-voxelized-into-volumetric-fog-for-the-left-eye-regression-from-5-5/2842316/1 "2026-10-19T05:02:13Z")

</div>

### Summary

With Instanced Stereo enabled, primitives using a **Volume** material domain (meshes injected into Volumetric Fog,  
e.g. the Ultra Volumetrics marketplace pack) only appear in the **left eye**. The right eye shows the  
Exponential Height Fog’s own volumetric fog, but none of the volume-material primitives. The same project/content  
renders correctly in both eyes in **UE 5.5**.

### What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

### Steps to Reproduce

1. New map. Add an **Exponential Height Fog** , enable **Volumetric Fog**.
2. Add a mesh (e.g. a cube) with a material whose **Material Domain = Volume** (any non-zero Extinction/Albedo),  
placed in front of the player start (inside the Volumetric Fog distance).
  - Confirmed with Ultra Volumetrics’ `BP_UltraVolumetrics` (its `Fog` cube uses a Volume-domain material).

3. Project Settings: Instanced Stereo ON.
4. Play in **VR Preview** (or package and run with `-emulatestereo`).

### Expected Result

The volume-material fog is visible in both eyes (as in 5.5).

### Observed Result

- The Exponential Height Fog’s volumetric fog renders in **both** eyes.
- The **Volume-domain primitives render only in the left eye**. The right eye has no contribution from them.
- Disabling volumetric fog (`r.VolumetricFog 0`) removes the effect from both eyes (so it is the voxelization input, not  
the fog composite). `r.Fog.SeparateComposition 0` and `r.MegaLights.Volume 0` make no difference.

### Affects Versions

5.8

### Platform(s)

OpenXR

### Upload an image

 ![FogTest_UE5.8_emulatestereo.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/2/f/32f5cb76feb9bb87bc6b0262e729e89321a3530b.png) ![FogTest_UE5.5_emulatestereo.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/7/2/3/723093d3e65bfb3d9107379c0f7a632ba8baf084.png)

### Additional Notes

Screenshots (same project and map, Ultra Volumetrics fog volume, `-emulatestereo`, left half = left eye)

- `FogTest_UE5.5_emulatestereo.png` - UE 5.5: fog in **both** eyes.  
On-screen stereo info: _“Stereo rendering method: Multi-viewport”_.
- `FogTest_UE5.8_emulatestereo.png` - UE 5.8: fog in the **left eye only**.  
On-screen stereo info: _“Stereo rendering method: Instanced-Stereo”_ (the stereo path itself changed between versions).
- Both builds use the SAME project config (`vr.InstancedStereo=True`). The label differs only because 5.8’s  
`SceneRendering.cpp` stats text prints “Instanced-Stereo” for single-pass stereo, while 5.5 printed the  
implementation (“Multi-viewport” = 5.5’s instanced stereo on D3D12). It reflects the bIsMultiViewportEnabled →   
bIsSinglePassStereo refactor, not a different setting.

## Root cause (from reading the 5.8 source)

In 5.8 the secondary (right-eye) view no longer computes its own relevance under single-pass/instanced stereo:

- `Engine/Source/Runtime/Renderer/Private/SceneVisibility.cpp`, `FVisibilityTaskData::LaunchVisibilityTasks` (~line 4477):  
secondary views are skipped (`if (bIsSinglePassStereo && StereoPass == eSSP_SECONDARY) continue;`).
- Same file, ~line 2367-2400 (`if (View.bIsSinglePassStereo)` block, comment _“Secondary views should not calculate  
relevance”_): the primary view copies its results to `View.GetInstancedView()` - `PrimitiveVisibilityMap`,  
`PrimitiveViewRelevanceMap`, `StaticMeshVisibilityMap`, translucency / custom depth / Substrate flags, etc.  
**`VolumetricMeshBatches` is not copied** (neither are `HeterogeneousVolumesMeshBatches` and `SkyMeshBatches`), so the  
secondary view’s list stays empty.
- `VolumetricFogVoxelization.cpp`, `VoxelizeFogVolumePrimitives` (~line 706) runs per view and early-outs on  
`View.VolumetricMeshBatches.Num() > 0`, with instanced stereo forced off for that pass  
(`bForceInstanceStereoOff = true`), so the right eye’s fog volume never receives the volume primitives.

In **5.5** the secondary view still ran its own relevance (`SceneVisibility.cpp` ~line 3554-3561: the secondary relevance  
command pipe forwards to the primary AND calls `Relevance.Context->AddPrimitives(...)` for itself), so both views had  
their `VolumetricMeshBatches`.

### Suggested fix

In the 5.8 `bIsSinglePassStereo` copy block, also give the instanced view the volume mesh lists, e.g.  
`SecondaryView->VolumetricMeshBatches = View.VolumetricMeshBatches;` (and likewise  
`HeterogeneousVolumesMeshBatches`, probably `SkyMeshBatches`), after relevance has been finalized for the primary view.  
(The dynamic-mesh path - `ComputeDynamicMeshRelevance` / `GatherDynamicMeshElements`, which marks secondary-visible  
dynamic primitives on the primary only - likely needs the same treatment.)

---

<div class="post-metadata">

**Author:** ![adjnor](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@adjnor](https://forums.unrealengine.com/u/adjnor)\
**Post date:** [October 19, 2026, 7:32am UTC](https://forums.unrealengine.com/t/5-8-3-instanced-stereo-volume-domain-materials-are-only-voxelized-into-volumetric-fog-for-the-left-eye-regression-from-5-5/2842316/2 "2026-10-19T07:32:04Z")

</div>

Here is a plugin made by claude to fix this issue.

[UE5.8\_StereoFogFix.zip](https://forums.unrealengine.com/uploads/short-url/qUTgYqohyBxPMSI12SfA6Vjcs9Y.zip) (3.7 KB)
