UnityのシェーダーではGrabPass
を使うことで、シャーダー内で簡単にスクリーンの絵を取得できて便利です。
使い方は
GrabPass
{
}
と書くだけ。
後は普通のTextureと同じように
sampler2D _GrabTexture
grabPos = ComputeGrabScreenPos(o.pos);
half4 color = tex2Dproj(_GrabTexture, grabPos);
のようにして使えます。
_GrabTexture
の名称を変更したい場合は、GrabPass
に
GrabPass
{
"_BackgroundTexture"
}
という風に書くと良いようです。
リンク
Unity – Manual: ShaderLab: GrabPass
https://docs.unity3d.com/Manual/SL-GrabPass.html