注意
在HLSL中为ddx、ddy
原理
在光栅化时,GPUs会在同一时刻并行运行很多Fragment Shader,但是并不是一个Pixel一个Pixel去执行的,而是将其组织在2x2的一组Pixels分块中,去并行执行。而偏导数(dFdx、dFdy)就正好是计算的这一块像素中的变化率。
// 以下v可以是任何类型
dFdx(v) = 该像素点右边的v值 - 该像素点的v值;
dFdy(v) = 该像素点下边的v值 - 该像素点的v值;
fwidth(v) = abs(dFdx(v)) + abs(dFdy(v));fwidth即计算出当前像素在横坐标和纵坐标的总变化率。