Multiple Planar Reflections?

Hello!

I’m working on a scene where I have two very large pieces of furniture (bookcase and shelving) that have many glass surfaces.
I would like to have planar reflections for them to make it look better.
And yes I know that planar reflections tank performance a lot, but I just need it for good screenshots.

Now the problem is, those pieces of furniture stand along different walls, perpendicular to each other. Which means I have to use two planar reflections.
However, when I place a second planar reflection, it doesn’t work. It does nothing until I disable the first one. And when I re-enable the first one, now the first one doesn’t work but the second does.
Basically, only one of them works at the same time.

I tried to find any info about this issue, but all I found on google is people discussing how multiple planar reflections are bad for performance (which is obvious), but no one mentions this issue that I’m having.

What’s going on? Why can’t I have more than one planar reflection working at the same time?

The Unreal engine only supports one global clip plane, and the global clip plane is needed to support planar reflections. The planar reflection feature is mainly useful for a single building front made of glass, or a horizontal water surface.

If you want good reflections for screen shots, try turning on ray tracing?

Unfortunately, my video card doesn’t support ray tracing. :\

But what about this video here:

They have several mirrors on the scene in different rooms. And two planar reflections on the scene.
Unfortunately the author doesn’t show how they are placed. Only talks about enabling planar reflections in project settings.

It may be that the engine picks one to display/use when more than one is in view?

Or it may be that some shader models/cards support more than one clip plane? The docs seem silent on this unfortunately. The code seems to only set up planar reflections once, in the scene base pass, so I don’t think it will render the scene even more times, but I could be wrong?

Apparently there’s a different implementation of planar reflections on mobile, too. That might matter if you’re using mobile preview or some render mode like that.

That’s all I’ve got.

(At least graphics cards are coming down in price now, and RTX 3060 cards are almost affordable again!)

The main issue is, if I use just standard cube/sphere reflection capture, I can only place one - in the middle of the room. Which means all the reflections will be captured from a wrong position and will be bigger than they supposed to be.
And the reason why I can only use one reflection capture is because if I place several across the scene, then reflections start double and triple on the glass and it looks weird.

Here’s an example.

This is with planar reflection:

This is a single cube reflection capture in the middle:

And this one is a cube reflection capture with big radius in the middle, and two sphere reflection captures with medium radius each at a different end of the room:

The last one doesn’t look too bad… until I move the camera. Then all sorts of wonky stuff starts going on in the reflection.

Those are the three separate reflections that move independently of each other. Which is obviously weird and noticeable.

So I’m kinda not sure what would be the best way to approach this situation.

Yeah, that’s just really hard. The best you can do is probably to place a reflection capture very close to the shelves (not in the middle of the room,) and/or to pick the most important feature to use a planar reflection.

This is why games and real-time movies are moving in the direction of ray tracing. That’s the only solution that robustly solves this problem.

What’s annoying is…
From all the information that I found, reflection captures with smaller radius are supposed to take priority over reflection captures with bigger radius.
However, when I place “local” reflection capture near my glass surfaces, not only reflections are all ballooned because of a small capture radius, but I still get ghosting effect from bigger reflection captures!

There’s just no winning, it seems :expressionless: