Shader graph: Scan effect

Using Unity 2019.2.1f1, LWRP 6.9.1 and Shader Graph 6.9.1. You can get the article’s code and shaders here.

Scan effect shader uses depth intersection to determine where to render the scan object’s mesh.

Depth intersection

When the camera renders a scene, it creates Depth texture, writing in it all opaque objects. Using this texture, you can get distance from scene geometry to camera. Scene Depth Node provides access to the Depth Texture in several different sampling modes. (For LWRP to access Depth texture, it must be enabled in the Pipeline Asset)

When you render your object, you can get the fragment’s distance from camera and compare it to the distance to scene geometry. The main trick is to compare Scene Depth node output and Position/Screen Position node output in the same space.(comparing value A in range 0..1 with value B in range near… far plane won’t make any sense.)

Read More »