基础shader 画圆

    技术2023-12-14  68

    首先画圆需要中心点,半径,我们要做的就是判断像素点和中心点距离是否等于半径 直接上代码

    frag函数的核心代码

    //i.vertex是裁剪空间下的顶点坐标.xy就就是屏幕坐标 //_MousePos中xy是原点,z是半径 if (length(i.vertex.xy- _MousePos.xy) < _MousePos.z) { return col* _PointColor; } else { return col; }

    但是这样画出的圆锯齿感很强 所以我们做一个边缘检测 利用透明度让边缘模糊起来 用smoothstep

    //得到圆以外范围 float temp = length(i.vertex.xy - _MousePos.xy) - _MousePos.z; //_MousePos.w相当于模糊系数 //利用smoothstep进行插值 相当于求出透明度 float a = smoothstep(0, _MousePos.w,temp); //col = (col.rgb* _PointColor.rgb,1.0-a); _PointColor = (_PointColor.rgb, 1.0 - a); return _PointColor;
    Processed: 0.015, SQL: 9