RESOLVED: PBR reflection issue (099)

64bit 2019.20700
Virtual_Stage_Reflection_Test.toe (6.5 KB)

The further I move the camera up the Y axis, the less accurate the reflection becomes. If I use 2 back-to-back cameras instead of Environment Map Rotate I don’t have this same issue.

Hey, can you share your sbsar file as well so I have the full example?
Thanks!

Here is the sbsar. Too big to upload directly I guess. https://drive.google.com/file/d/1z7-qarENK-mjTgdeYbXig1r5mIBDMKXW/view?usp=sharing

Can you post the back to back camera example as well?

Offhand I wouldn’t expect you to get an accurate reflection this way. The point of an environment map is to light the scene based on a lighting that is coming in from the outside of the world. It doesn’t really work to do object->object reflections.
Specifically, once you are in a ‘cubemap’, there pixels have no notions of where they are in terms of position, they only have a direction, ‘off in the distance’. So the floor isn’t going to show the stage accurately since the cube map has no information about where the actual stage is relative to the floor.

The closer way of doing that would be to do a render from the point of view of the point where you want the most accurate reflections, and use that as the environment map. For example an object in the middle of the room, you’d put your env map rendering camera there, so it’s gathering all the lighting from everything else in the room. If you do this, reflections on that one object should look quite accurate. It won’t work great for a floor plane though.
For a floor plane you need to render the scene upside down and mask the render by the floor plane, then texture that onto the floor plane.

Looking at this some more, maybe it can work in this case. The main thing is that the Cubemap render will render with -Z pointing where-ever the camera is facing, However, in the actual render -Z is in world space, not camera relative. So you in general you want to render your cubemap using a camera that has no rotation on it, so the rendered -Z matches up with the world -Z.