The Current State of Reflection Probes

Hi folks,

I caught up on some discussions around the PS Lighting Node and reflection probes at large, and they seem to be working in PS. Questions as follows:

  1. Do they?

    (I do have realtime reflections turns on in Quality Settings, FWIW)

  2. Can they be instantiated at runtime, set to realtime/refresh every frame, and reflect dynamic content generated at runtime?

My specific use case involves getting reflections of in-scene virtual content, on realtime-detected planes. A couple of approaches I’ve tried are:

  1. Adding a reflection probe to each instantiated plane
  2. Setting a reflection probe in the scene and making sure its bounds cover my play area

In both cases the plane material has a PS lighting node with “blended” reflection probes and lighting probes enabled. Unfortunately while testing in the simulator, I have not seen this take effect in any way, aside from serious flickering on the plane surface.

A clarification about the current capabilities of realtime reflection probes under PS - ideally with a general idea around how to set it up, if doable - would be highly appreciated. Thanks!

That won’t have any effect on PolySpatial, AFAIK. The warning is incorrect, and will be removed in a future version; reflection probes are supported through the PolySpatial Lighting node (only).

This isn’t something we’ve tested; we’ve only tested the PolySpatial Lighting node with baked reflection probes. I suspect that real time reflection probes probably won’t be updated in PolySpatial, since MR apps run in Unity “batch” mode and the normal render pipeline isn’t active. It might be possible to render the probe manually every frame, and doing so would also likely require manually marking the RenderTexture as dirty.

1 Like

Just in the way of a follow-up, I tried to get dynamically rendered reflection probes working this way, and found that (among potentially other issues), PolySpatial is not correctly transferring the texture when it’s set to a RenderTexture (that is, realtimeTexture is assigned). It seems we read a null value from texture in that case. Anyway, we’ll add this to our list of features to support eventually. I’d also suggest adding it to our road map so that we can track it as a desired feature.

Hi, I just tested that the realtime reflection probe does not work. Any chance we can get this working?

Another question, does planar reflection work?

As I mentioned above, I suggest adding it to our road map. We’re aware that it does not work at present (we’ve only tested with baked reflection probes).

I think that would depend on how you intend to implement it. I’m not aware of any built-in support for planar reflections in Unity other than perhaps the HDRP Planar Reflection Probe (but we don’t support HDRP: only the URP and built-in pipelines). One approach to implementing planar reflections would be to render the reflected scene to a RenderTexture and use that texture on a plane mesh, but you would have to figure out the appropriate Camera settings, etc., and it would probably only be possible in unbounded mode (because that’s the only mode in which you can get the device position in C#). Further, the reflection won’t have any depth unless you specifically render it in stereo and use the shader graph Eye Index node to present a different image to each eye.

1 Like

that’s what I tried, using render texture and add it to the plane.
But I’m having hard time getting the camera. In the unity editor and play mode, the reflection works perfectly with the camera. But once I move to vision pro headset, the reflection is moving with the headset and plus, left and right eye have its own rendering.
I think it would be super helpful if Unity could provide a sample project about it.