美文网首页Unity3D
Unity3D Shader 2D扭曲

Unity3D Shader 2D扭曲

作者: 土豆写书 | 来源:发表于2019-01-28 14:32 被阅读1次
    效果图
    fixed4 frag (v2f i) : SV_Target
    {
        float2 uv = i.uv;
    
        //uv 扭曲代码 
        if (_RotScal > 0)
        {
            //计算距离
            float2 dt = uv - center;
            float len = sqrt(dot(dt, dt));
    
            //根据距离 计算出旋转角
            float theta = -len * _RotScal;
    
            //旋转矩阵
            float2x2 rot =
            {
                cos(theta), sin(theta),
                -sin(theta) ,cos(theta)
            };
            dt = mul(rot, dt);
            uv = dt + center;
        }
    
    
        
        fixed4 col = tex2D(_MainTex, uv);
        return col;
    }
    

    原理:通过UV偏移,实现扭曲,距离中心越远,扭曲角度越大
    备注1:_RotScal ,扭曲缩放

    相关文章

      网友评论

        本文标题:Unity3D Shader 2D扭曲

        本文链接:https://www.haomeiwen.com/subject/lmeajqtx.html