Shader-Part 1 画圆

效果

过程

将每个像素映射到 [-0.5,0.5]

vec2 uv = fragCoord / iResolution.xy;
// 片元坐标 / 视口长宽

uv -= 0.5;
// 0 1 -> -0.5 0.5

乘长宽比保持比例相等

uv.x *= iResolution.x / iResolution.y;
// 让长宽的比例相等

处理圆的逻辑

float d = length(uv);
// 求每个像素到屏幕中点的距离
float r = 0.3;
// 圆的基础半径,用于平滑的参数,大于0.3的为黑,小于0.3-0.02的为白,处于中间的会进行平滑
float c = smoothstep(r, r - 0.02, d);
// 平滑边缘

完整代码-shadertoy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值