Using grab passes to draw behind objects
In the Adding transparency to PBR recipe of Chapter 6, Physically Based Rendering, we learned how a material can be made transparent. Even if a transparent material can draw over a scene, it cannot change what has been drawn underneath it. This means that those Transparent Shaders cannot create distortions such as the ones typically seen in glass or water. To simulate them, we need to introduce another technique known as grab pass. This allows us to access what has been drawn on-screen so far so that a shader can use it (or alter it) with no restrictions. To learn how to use grab passes, we will create a material that grabs what's rendered behind it and draws it again on the screen. It's a shader that, paradoxically, performs several operations to show no changes at all.
Getting ready
For this recipe, you will need to do the following:
- Create a shader (
GrabShader
) that we will initialize later. - Create a material ...