hlsl函数 ddx ddy
这两条指令用于对指定的寄存器,求其值在临近像素上的变化率,因为纹理坐标的梯度可以用来确定纹理当前被缩放的程度,可用该值来计算Mip层,另外它也可以用来计算Texel的跨越Size,由此求得正确的过滤宽度,从而纠正通常的线性过滤在远处由于过滤宽度错误而产生的失真。
简单的说就是三角面上一个像素的位置上对屏幕坐标x和y方向的导数,也就是改点位置的表面相对于屏幕平面的倾斜程度的度量。
vs_data vs_fun()
{
uv = half2(0,0);
}
vs中纹理坐标值赋0,则ps中得到的ddx和ddy的值为0.

本文介绍了 HLSL 中的 ddxdy 函数,详细解释了如何使用这些指令来计算纹理坐标的变化率,这对于确定纹理缩放程度、计算 Mip 层及修正线性过滤中的失真非常重要。
949

被折叠的 条评论
为什么被折叠?



