Screen Space Reflections, faster than Projective Reflections?

Started by
2 comments, last by Frantic PonE 4 years, 9 months ago

Greetings all,

I am building my own game engine, and recently have touched into the topic of water visuals and rendering. I have done quite a bit of research and specifically, have implemented a type of "Projective Texturing" water reflection through following this tutorial series: ThinMatrix Water Tutorial Series

And so, my question is - are Screen Space Reflections a "faster" (even if not more accurate) solution in comparison to the aforementioned method? If so, how?

From what I have researched, SSR only reflects what is seen on the screen (hence, the performance advantage). However, how can this be faster than the aforementioned method? SSR needs to ray cast/trace in order to determine whether a color is reflected. On the other hand, projecting the reflected image does not; one simply samples the pixel and projects it on the water grid.

Likewise, the aforementioned method is not planar reflections either, thus one does not need to render the entire scene geometry; one can pick and choose wisely.

Thanks in advance, if you could please enlighten me on this topic!

 

Advertisement

While SSR are a relatively expensive post process effect, there will be a balancing point where its cost is lower than rendering the scene twice for the reflection image. In that video you linked the scene is really simple so one would expect it to be more efficient than SSR, but typical AAA or even AA games these days have requirements that can make rendering a full size reflection texture prohibitive - not just the rendering, but recalculating objects in view etc.

So it becomes a case of choosing the best method for your project, based on the knowledge of the demands of you project.

Hopefully in the near future this will become academic as we'll have physically correct, ray-traced reflections ;)

SSR is extremely fast, and there's plenty of hacks to get it to sort of look good for water. Most of them work by just choosing the previous valid result/nearest valid result/temporal reprojection and then fading the effect on/off as the player tilts the camera towards/away from parallel to the water.

Here's a relevant blog post going into detail, most SSR water today looks a lot like this: http://remi-genin.fr/blog/screen-space-plane-indexed-reflection-in-ghost-recon-wildlands/

Regardless just about every game I can think of just uses SSR for water this gen if they use anything, at least at times (sometimes it'll be just a cubemap). It doesn't work for a lot of scenarios obviously, but it's just so bloody fast it's hard not to use.

This topic is closed to new replies.

Advertisement