Portal crossing causes inconsistent lighting and visual artifacts between virtual and real spaces (visionOS 2.0)

Hello,

I'm working with the new PortalComponent introduced in visionOS 2.0, and I've encountered some issues when transitioning entities between virtual and real-world spaces using crossingMode.

Specifically:

Lighting inconsistency: When CG content (ModelEntities with PhysicallyBasedMaterial) crosses the portal from virtual space into the real environment, the way light reflects on the objects changes noticeably. This causes a jarring visual effect, as the same material appears differently depending on the space it's in.

Unnatural transition visuals: During the transition, the CG models often appear to "emerge from the wall," especially when crossing from virtual to real. This ruins the immersive illusion and feels visually unnatural.

IBL adjustment attempts: I’ve tried adding an ImageBasedLightComponent to the world entity, and while it slightly improves the lighting consistency, the issue still remains to a noticeable degree.

My goal is to create a seamless visual experience when CG entities cross between spaces, without sudden lighting shifts or immersion-breaking geometry reveals.

Has anyone else experienced similar issues? Is there a recommended setup or workaround to better control lighting and visual fidelity when using crossingMode with portals in visionOS 2.0?

Any guidance would be greatly appreciated.

Thank you!

Have you tried using EnvironmentLightingConfigurationComponent? https://developer.apple.com/documentation/realitykit/environmentlightingconfigurationcomponent

Apple talked using this with portal crossing at WWDC 2024 https://developer.apple.com/videos/play/wwdc2024/10103?time=1473

@radicalappdev Thank you for the suggestion!

Yes, I did try using EnvironmentLightingConfigurationComponent as described in the WWDC 2024 session. I also experimented with different values such as intensityExponent and applied the component to both the virtual space entity and the world entity.

However, unfortunately it didn’t resolve the issue. The lighting still shifts noticeably when crossing the portal — especially when going from the virtual environment back into the real-world view. The CG objects appear much darker after crossing, even with environment lighting configured.

I also tried adding an ImageBasedLightComponent to the world, which helped a bit with consistency, but the lighting discontinuity through the portal still remains quite visible.

It seems like the lighting system doesn’t fully preserve consistency across portal boundaries, or maybe there’s some additional configuration I’m missing?

If you’ve seen a case where this worked seamlessly, I'd love to know more about the setup.

Hi @sadaotokuyama

As of visionOS 26 image based lighting is automatically blended across portal boundaries, which should eliminate the seam you're seeing here.

If you're able to update and test this scene out on visionOS 26, please do let me know how it goes!

@Vision Pro Engineer Thank you very much for your advice.

Would it be correct to say that this issue will not be resolved unless we update to visionOS 26 beta?

This project is currently being developed using the official release version of visionOS, not the beta version. The reason is that we have a trial operation scheduled in the near future, and therefore we are refraining from using the beta version.

If this issue cannot be resolved on the development side, we are also considering alternative approaches. So if it’s clear that this can only be resolved with visionOS 26 beta, we would like to proceed with an alternative plan.

We have observed that this issue occurs regardless of whether image-based lighting is used. With that in mind, could you please confirm whether our understanding is correct that this issue no longer occurs across portal boundaries in visionOS 26?

Hi @sadaotokuyama

I'm afraid that this specific issue will not be resolved unless you update to visionOS 26.

Additionally, I should note that if you happen to be using any dynamic lights to illuminate your scene (e.g. directional, point, or spot lights), then you will likely still see a seam given that dynamic lights and shadows do not cross portals. If you are using dynamic lights, I would strongly encourage you to file a feedback request regarding dynamic lighting across portal boundaries.

Portal crossing causes inconsistent lighting and visual artifacts between virtual and real spaces (visionOS 2.0)
 
 
Q