GrabPass(“Name”)
抓取屏幕,抓取后名字为Name
屏幕坐标
获取屏幕坐标有3种方法:
#####SV_POSITION语义的xy
使用SV_POSITION语义,在片元着色器中拿到的pos.xy就是屏幕空间的坐标。
struct v2f
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
#####VPOS语义
VPOS语义和SV_POSITION冲突,使用VPOS语义,则v2f不能定义SV_POSITION。
fixed4 frag (v2f i, UNITY_VPOS_TYPE screenPos : VPOS) : SV_Target
ComputeScreenPos
Unity自带的宏, 在顶点着色器中使用ComputeScreenPos,然后在片元着色器中把计算结果的xy/w。