The Planar Reflection Renderer (previously, Planar Reflections Renderer) is the script responsible for rendering the real-time reflections and their corresponding depth pass. Using considerably faster methods than in version 3.x and adding several new features both in terms of quality and coherence between rendering pipelines.
Main Settings
The main settings for the reflection renderer are for the most part self-explanatory. We have a Reflect Layers LayerMask value to define which layers will be rendered into the reflections and which ones will be ignored, a Camera’s Tag which can be used to filter which cameras will trigger the generation of reflections with all the others given an empty texture instead.
We have an override to determine whether the reflections will Render Shadows, whether a Preview Reflection will be shown in the scene view and some basic control over the reflection’s projection matrix and clipping planes. You should use the Accurate Matrix projection in most cases to avoid the reflection from showing things that are behind / under it, but you may need to disable it in order to show some view / projection dependent post process effects accurately.
External RenderTexture assets can be assigned to the Reflection Renderer to store the reflection’s color and depth but if your game uses multiple cameras in the Universal or High Definition Pipelines you should avoid this and let the Reflection Renderer to use its own internal textures instead as otherwise the reflections of one camera may overwrite the reflections of the previous one, since both of them will be writing to the same external RenderTexture.
Additional features for the rendering can be enabled here as well, such as whether the reflection will render an additional Depth Pass, if it will use PostFX, whether to clear to a solid color or not and even a custom skybox to override the scene’s default one
Finally, you can easily adjust the quality of the reflection including its resolution and downscale, whether the resolution should be absolute or based on the screen’s resolution, as well as different parameters of the resulting reflection texture’s format such as HDR support and / or MipMaps (highly recommended).
Optimization Settings
Different optimization parameters can be used to speed up the reflection’s rendering time. While lowering the reflection’s resolution can help in situations where shaders are complex or multiple full-screen effects are being used may improve the performance, in most cases the main reason for lower performance when using real-time reflections comes from a mix of draw calls (or SetPass calls) and geometry complexity.
Starting with version 4.x you can set custom LOD biases and control the maximum LOD level to be used by each reflection in order to limit considerably the visual quality of the reflections and use lower quality versions of your models for them instead of the full resolution ones. On top of this, you can also set up a lower framerate for your reflections to gain some extra FPS in your game.
HDRP Optimization Settings
The asset has specific optimization parameters for the HD Rendering Pipeline that allow you to enable and disable advanced features that are exclusive to this pipeline. By default, most of them are disabled in order to ensure maximum performance but you can turn them on depending on the kind of effects that you need to reflect. Unlike the Planar Reflection Probes used by Unity the Planar Reflections generated by PIDI Planar Reflections 4 use a fully featured virtual camera which allows you to reflect and control additional features.