Ray-Marching#

If an application implements a ray-marching graphical effect such as screen space reflections (SSR), the algorithm should implement an optimal sampling technique which takes as few samples as possible to achieve the desired quality. One possible approach to reducing the number of samples is to perform the ray marching in a half-screen resolution buffer – in other words, downsampled. PowerVR hardware exposes an extension in OpenGL ES for hardware-accelerated downsampling, see Efficient Frame Buffer Downsampling with PowerVR. This approach could also be coupled with a hierarchical-Z buffer (similar to the technique discussed in Screen Space Ambient Occlusion to accelerate the ray marching further).

In place of the relatively expensive ray marching algorithms, consider using a parallax corrected local cube map method. This could be used as either a fall-back technique, or even as the main technique as it may be good enough visually for the application, and is considerably cheaper to perform. Also consider simple, cheap, planar reflections for flat surfaces.