Unity Shader 屏幕抓取,屏幕坐标

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。

你可能感兴趣的:(Unity渲染基础,unity,游戏开发,shader,渲染管线)