Mirror Like Reflection?

I wanna make the material reflect the environment like marble, and give it a very clean and clear reflection like how it was made in Alien isolation here:0f03bae4b57185cb1344e30f357f3fc762c0fb92.jpeg

i suppose it can be done with materials with a roughness value of zero. Lights and mesh needs to be static. After baking it should look like a mirror. At least that’s the result i’ve produced. :slight_smile:

Okay, it kinda worked but I am encountering another issue now, the reflection seems to get a very bad quality when looking directly at it and looks good when only slightly visible, the screenshots will show u what I mean.

Good Quality:

Bad Quality:

screen space reflections only work for what is visible on the screen… bottom screenshot looks like its using both the sccreen space and the refelection capture probe to fill in what the screen space cant see.

sry, I’m pretty new to unreal, can you explain how to fix this?

You dont. Your only option is disable screen space reflection and let the baked reflections from the probes be the only ones… though they are not very accurate.

This cannot be fixed. And its not only Unreal, it’s a common problem. Why do you think so many games don’t have mirrors in their levels?
However there are workarounds. You need to make use of the screencapture3d asset. Align it with the floor, so that it faces the ceiling. Then assign the material you render to, to the floor. This will create a mirror like effect. Now you just have to offset the camera to make sure that you always get correct reflections. Very performance intensive.

They’re going to be adding an option for this at some point, UDK had 2D reflection capture actors to do mirrors and reflective floors and they have an alternative they were using in one of their GDC demos.

The second workaround is to just copy your meshes, turn them upside down and place them under the floor. Then you would want to make a translucent material, maybe apply some dirt and boom you have your mirror. However this is only accurate if you don’t have a character that is walking through that corridor. To achieve this effect do the following:

  1. Make a new Blueprint and call it mirrorVolume.
  2. Copy every static mesh that should be mirrored, turn it upside down and place it in a way that it actually seems that the floor is mirroring.
  3. now to the mirrorVolume: Add a Box collision component to your component list. Make sure to set “Generate Overlap events” to true. Make also sure to set “Generate Overlap Events” to true for every character and moving thing you have in the scene.
    Under Collision: Make sure you set your Collision Preset to overlapalldynamic, so that it only overlaps moving things.
  4. While still having the collision component selected in the component bar, come to the event tab and click OnComponentBeginOverlap.
  5. Now store every actor that is overlapping in an array. ALSO: Make a copy of that actor and store it into another array. So an actor overlaps, you store it into the first array with index n, then you make a copy and store this into the second array at the same index n. (Make sure that physics doesn’t affect your copied actor.)
  6. For every frame do the following (EventTick): For every actor in the first array: Grab yourself the associated actor in the second array and mirror it:
    That means: a) Subtract the thickness of the floor from its position (only Z-axis). b) Rotate him (180 degrees). a) Skip a if you have a thickness of 0 (which is acutally essential.)
    (This could be optimized as it is calculated every frame, you could also do this when copying the actor in 5. —> Only have to do it once.)
    Now your character is mirrored and placed under the floor. The following steps have to be done every frame:
  7. For every actor a that is stored in array one: Copy the values of the transform of a into the values of the transform of b (which is the corresponding actor in the second array).
    Calculate the distance from the floor to a. Only perform this caluclation for the Z-axis. (The position of the floor has to be assigned to a variable before the game starts.) Offset b according to the result of this computation (so if he jumps you would subtract the result from this z-position.)
    Negate the pitch value of b.
  8. Go back to the viewport. Click the collision component and click OnComponentEndOverlap. Remove the actor that gets output by the event from the first and from the second array. click save and apply in your event graph and close the blueprint.
  9. To finish, just drag your blueprint into your scene so that it properly aligns with the floor and the size of the room.
    Now your good to go, (don’t forget to bake)
    This is not that performance intensive (I hope)

Sorry if something doesnt work as i said. I havent tested it myself.

Edit: This only works if oyu have no animations. If you have you have to replicate the movement and basically everything.

At 10:30 https://www.youtube.com/watch?v=HaUAfgrZjlU

They mention Planar Reflection having just been coded for GDC; Not sure if it’s already in 4.11 or if it’s coming or ANYTHING. Haven’t finished the video yet (: But I remembered this thread and figured I’d mention it.

PERFORMS WELL ENOUGH TO RUN ON A PHONE THOUGH!

I would put money on that Alien Isolation reflection being actual mirrored geometry under the floor.