@[TOC] shader 关键字
原文链接:http://www.aclockworkberry.com/shader-derivative-functions/#footnote_3_1104
导数运算
在三角形光栅化期间,gpu一次运行多个片段着色器的实例,每个实例是2×2像素块。导数就是计算像素块中的像素值的差异。如下图所示:
ddx:像素右侧减去左边的像素差
ddy:像素下方减去上方的像素差
应用:
1.mipmaps 应用
在纹理采样中,根据UV的导数来选择mipmap等级,导数越大,mipmap等级值越高,反义亦然。
2.法线计算
法线等于ddx和ddy的叉乘:normalize( cross(ddx(pos), ddy(pos)) );
ps:在HlSL上面,或者Unity上面要写成normalize( cross(ddy(pos),ddx(pos)) )
3.[branch]
不能在[branch]的分支中使用,会报错。
4.块对齐