Instead of rendering a full screen quad for post process passes, render a mesh which represents only the screen area visible in the HMD after distortion.
This cuts the cost of post processing ~10-15% with no visible difference.
Initial implementation for the Vive.
[CL 2644327 by Ryan Vance in Main branch]
This is more correct for scanned textures as they include scattering already. Affects the look of emissive lighting (rarely needed and can be fixed by content). All diffuse lighting for SubsurfaceScatteringProfile is now done without the BaseColor (minor performance cost) and reading the Lighting before the SubsurfaceScattering pass would be different.
Removed the need for a SceneColor alpha channel as lighting is now stored in a checkerboard pattern for diffuse and specular separate. Specular and diffuse lighting on Subsurface materials can appear a bit less crips.
This means the use of 32bit SceneColor (for better performance) is now possible (we might change the defaults soon).
[CL 2640696 by Martin Mittring in Main branch]
- wasn't scaling right with ViewportSize, e.g. HighResScreenshot
- Missing a horizontal line in the 2d kernel
- Improved quality of the full res portion
- refactored to avoid one full res pass
- simplified Stereo rendering support
- In single viewport case it now goes down to 32bit texture format afterwards (input can be 32/RGB or 64/RGBA as before, without alpha it can look bad)
[CL 2637623 by Martin Mittring in Main branch]
FORT-2471 Player character appears blurry with certain video settings
(Blurry is now only on Subsurface, there it could be a bit better using the non subsurface constribution as full res)
[CL 2383733 by Martin Mittring in Main branch]