There's more...

Every time you use a material with GrabPass{}, Unity will have to render the screen to a texture. This operation is very expensive and limits the number of GrabPass instances that you can use in a game. Cg offers a slightly different variation:

GrabPass {"TextureName"}

This line not only allows you to give a name to the texture, but also shares the texture with all the materials that have a GrabPass called TextureName. This means that if you have ten materials, Unity will only do a single GrabPass and share the texture with all of them. The main problem of this technique is that it doesn't allow for effects that can be stacked. If you are creating a glass with this technique, you won't be able to have two glasses one after ...

Get Unity 2018 Shaders and Effects Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.