Infinite Mirror reflection?

Hey guys!

Does anyone have any idea how I could stick to reflective materials together, on the same axis and make them (or at least give the illusion) reflect off each other like 2 mirrors will? If you have ever played Portal or went to a big mirror maze, you’ll know what I mean :slight_smile:

I did try putting two objects facing each other (same material, roughness et to 0, facing each other, same axis etc) and a reflection capture actor in the middle of them but the reflections seem to mess up and some reflections appeared on the wrong face of the object and it just in general didn’t work. Does anyone have any ideas how to do this?


Reflection probes don’t do that type of thing. For the type of portal thing it’s specifically coded for that feature, and it’s not actually infinite. In UE4 the performance would be way too much.

You would need render targets that face each other. However the cost of doing so is pretty high. Render targets fully render the scene with extra cameras. It would triple the render cost of your scene.

Sadly reflections are just one of those things that are really hard in real time graphics. The current solution is reflection captures(prerendered reflection of static objects in the scene)+screen space reflections(does it’s best to use the scene as rendered through the main camera to create reflections).

In the future there may be better solutions though. If you check the trello, the rendering team is going to do raytracing on distance fields for soft shadows. It’s possible to use ray marching to generate reflections from distance fields. That said, who knows how well that method would run in a game…

I’m intrigued about the potential for the announced in-development Octane (GPU Renderer) plugin for UE4.

It can do this… :cool:

It will be interesting to see what it can actually do.

Octane isn’t for games sadly… Even with a UE4 integration, it isn’t meant for games. Even in that demo where their running 4 Titans, it still takes about a second for the noise to die down. Path tracing isn’t ready for real time, and won’t be for another decade at least.

For VFX artists and the archviz crowd however, Octane is definitely revolutionary. If all you need is a screenshot, or even rendering a movie. Octane is several orders of magnitude faster than other methods.

I agree that no one has used Octane traditionally with a gaming engine in the past. Also Octane requires a license so you are not distributing it anyway, hence the Kiosk use I mentioned. Of course Octane is for rendering, stills and movie shots. That said being that I’m building a 12 GPU render farm for Houdini, and being that I use UE4, I might as well hook it up and test it, render several scenes in Octane to see what it could be used for with different scenes of varying complexity.

And what takes time for Octane is the Ray-tracing and lighting methods which have multiple controls, and can vary the render time from subsecond to several minutes. If I can use UE4 to do other workflow other than strictly gaming I think that’s in the spirit of what Epic wants and mirrors what I want.

I’m just saying I’m going to test it when available…

What about capturing in game footage (like a security camera screen) and projecting that onto a material? I would have two materials facing each other and maybe activate one capture camera a moment after the first one so then they can reflect off of each other?

It is fast but remember this scene is fairly open. scenes like interiors still produce a lot of noise even with fast hardware especially if you decide to use a lot of glossy materials

The camera image will not give you the correct perspective of what a mirror would reflect.

What about running that through a material to give a little bit of a mirror feel (rather than having straight footage from a camera)? This does not have to update AT ALL (the player is invisible, think archviz) I just need the illusion of the room being reflected back and forth between two objects to appear as if it were infinitely reflecting (so it could even be faked; eg: take a high res shot fo the scene get it rendered in the editor before I deploy the game and applied to an object as a texture with maybe a world offset to change the view of the texture dependent on the angle of the player - this would simulate only seeing parts of the ‘reflection’ from a mirror, rather than seeing the side view of a texture on a wall)

Does this sound like a good idea? Any thoughts?

I bet you could do that, might be complex but I saw in another thread a setup to do windows to make them look like there was a room inside by warping an image that would adjust based off the camera view.

YES! exactly (but you put it in much better words; my articulation at the current moment is s good as my mirrors)

Do you remember where the thread was?

You should take a look at the Brigade 3 path tracing demos on YouTube (no link sorry, I’m on my phone).

Here’s the thread that had that window shader: Parallax Window? - Rendering - Unreal Engine Forums