GPU visualizer shows planar reflection using about 15-20% of frame time even when “Capture Every Frame” is unchecked for the planar reflection. Is this expected?
Steps to reproduce:
1.Create new empty project.
2.Enable global clip plane and restart editor
3.Add a planar reflection.
4.Uncheck “Update Every Frame” on the planar reflection.
5.Play in editor.
6.Hit ctrl-shift-comma to bring up GPU Visualizer
Result: PlanarReflection.renderscene takes up a noticable chunk of frame time, around 15% or so for default scene with one floor and a sky.
Expected: PlanarReflection should consume no frame time as it should not be updating.
Is this a bug or is my understanding incorrect and planar reflecitons still somehow use resources even when not updating?
So you are correct that it is taking up around ~15% even when not active. This is expected and highlighted in the tooltip of the global clip plane setting. The cost to render the Planar Reflection Actor comes directly from what’s currently being rendered in the level. Scenes that are triangle and draw call heavy will suffer the most performance issues when this feature is enabled because those costs don’t scale with ScreenPercentage.
As shown, the beautiful reflections of the 3rd person character and the clouds update in real-time when running around. I would expect this not to happen because “Capture every frame” is turned off. Am I mistaken, and “Capture every frame” means something else?
Also, one would expect the “BasePass triangle cost” to increase by 15% (it probably does), even if the planar reflections are not updated (due to cost of global clip plane, as stated). But the entire base pass is 0.35 ms in my test, and the PlanarReflection.renderScene is 1.82 ms. This still seems like the planar reflections are capturing the scene on every frame.
So I think this issue is actually not resolved, sadly. Any more input?
Hello again . I just got a notification saying that you marked your own answer as accepted, which I don’t agree with as the poster. Seems I don’t have permission to undo it either. Did you read my follow-up testing and questions above? Did any new information surface that I’m not aware of?
How would you expect planar reflections to behave if you didn’t have them update every frame? Do you have a fixed camera? Because they’d be stuck in place and wouldn’t move if they didn’t update. They don’t work like cubemaps.
Ah thanks duke22! That explains alot, I didn’t think it had to update to account for camera position (so I did think it worked like a “prettier cubemap” I guess). Was expecting unticking the checkbox to simply make it static, ie not show moving objects. Now I get it. There’s still a question why there’s a checkbox like that (“update every frame”) and if it does anything, but not a big deal. Any guess? Does it normally update less often?