ddx和ddy:
当代GPGPU在像素化的时候一般是以2x2像素为基本单位,那么在这个2x2像素块当中,右侧像素对应的fragment的属性值(具体是哪个属性取决于ddx的参数传的是哪个属性)减去左侧像素对应的fragment的属性值就是ddx;下侧像素对应的fragment的属性值减去上侧像素对应的fragment的属性值就是ddy。
ps:
上面说的像素是物理设备的像素
fwidth:
fwidth(v) = abs(ddx(v))+ abs(ddy(v))
应用:
通过传入uv坐标可以用来判断Mipmap贴图的层级(下文链接,这里稍微补充说明一下差值大小和相机远近的关系:差值越大,说明两个像素相关属性差值越大,即细节较少,离相机越远)、抗锯齿(Freya Shader Part2)等
参考:https://www.zhihu.com/question/329521044 文礼和ChuChu的回答