void SetPlanarReflectionSettings(UPlanarReflectionComponent* p, bool t)
{
p->ShowFlags.SetLightFunctions(t);
p->ShowFlags.SetSkyLighting(t);
p->ShowFlags.SetMotionBlur(t);
p->ShowFlags.SetScreenSpaceAO(t);
p->ShowFlags.SetRefraction(t);
p->ShowFlags.SetSubsurfaceScattering(t);
p->ShowFlags.SetPostProcessing(t);
p->ShowFlags.SetBloom(t);
p->ShowFlags.SetInstancedGrass(t);
p->ShowFlags.SetInstancedFoliage(t);
p->ShowFlags.SetAntiAliasing(t);
p->ShowFlags.SetAtmosphericFog(t);
p->ShowFlags.SetDynamicShadows(t);
p->ShowFlags.SetLensFlares(t);
p->ShowFlags.SetOnScreenDebug(t);
p->ShowFlags.SetEyeAdaptation(t);
p->ShowFlags.SetColorGrading(t);
p->ShowFlags.SetCameraImperfections(t);
p->ShowFlags.SetDepthOfField(t);
p->ShowFlags.SetVignette(t);
p->ShowFlags.SetGrain(t);
p->ShowFlags.SetSeparateTranslucency(t);
p->ShowFlags.SetScreenPercentage(t);
p->ShowFlags.SetScreenSpaceReflections(t);
p->ShowFlags.SetTemporalAA(t);
p->ShowFlags.SetLightShafts(t);
p->ShowFlags.SetPostProcessMaterial(t);
p->ShowFlags.SetHighResScreenshotMask(t);
p->ShowFlags.SetHMDDistortion(t);
p->ShowFlags.SetStereoRendering(t);
p->ShowFlags.SetDistanceFieldAO(t);
p->ShowFlags.SetDistanceFieldGI(t);
p->ShowFlags.SetSkinCache(t);
p->ShowFlags.SetAmbientOcclusion(t);
}
I figured out that I can manually disable most of the expensive settings from planar reflections. This cut reflection pass cost about 60% for me. If you find others stuff that can be safely disabled let me know.
Edit: I noticed that these settings are visible from editor if you use planar reflection actor but hidden if you use planar reflection component.