TemporalAA and FXAA cause Artifacts in Reflection Mode with SSR
The Reflection viewmode overrides all normals to be the smooth vertex normal, and makes all surfaces fully specular and completely smooth (mirror like). Limitations and artifacts of the Reflection Environment are also clearly visible in this mode so it is important to switch to Lit periodically to see what the reflections look like in normal conditions (bumpy normals, varying glossiness, dim specular).
Reflections through this method are approximate. Specifically, the reflection of an object will rarely match up with the actual object in the level due to projection onto simple shapes. This tends to create multiple versions of that object in reflections as many cubemaps are being blended together. Flat, smooth surfaces that cause mirror reflections will show the error very noticeably. Use detail normal maps and roughness to help break up the reflection and these artifacts.
The cubemap reflection is mixed together with the lightmap indirect specular based on how rough the material is. A very rough material (fully diffuse) will converge on the lightmap result. This mixing is essentially combining the high detail part of one set of lighting data (cubemaps) with the low-frequency part of another set of lighting data (lightmaps). For this to work correctly, though, only indirect lighting can be in the lightmap. This means that only the indirect lighting from Stationary lights can improve the quality of reflections on rough surfaces. Static light types should not be used together with the Reflection Environment as they will put direct lighting in the lightmap. Note that this mixing with the lightmap also means that the map must have meaningful indirect diffuse lighting and that lighting must already be built to see results.
This was all taken straight from our documentation on the Reflection Environment which explains the issue you are describing in the limitations section, and gives solutions on how to work around the limitations to optimize your reflections.
Regarding the FXAA not looking correct, this is a known issue with FXAA, and the order in which things are applied when calculating screen space reflections work differently than that of Temporal AA. SSR as Temporal AA reflects the prior frame's screen color which has fog and translucency and reflections in it. SSR without Temporal AA reflects the frame buffer as it is rendered to that point. Fog, translucency and reflections haven't been rendered yet. Currently FXAA is not a priority as Temporal AA and MSAA are becoming a more commonly used anti-aliasing approach due to its high quality and lower performance cost.
answered May 01 '17 at 09:37 PM
AndrewHurley ♦♦ STAFF
Follow this question
Once you sign in you will be able to subscribe for any updates here