为什么在查询2d纹理时dFdx / ddx和ddy / ddy 2维变量?

时间:2014-07-04 07:31:37

标签: glsl cg derivative

我似乎无法理解这一点,不应该在2d纹理/数组中沿U或V坐标的导数/变化是单维变量,因为我们只是沿着ddx(U坐标)或ddy(V坐标)检查它)?

2 个答案:

答案 0 :(得分:5)

这里有4个不同的偏导数:du / dx,dv / dx,du / dy和dv / dy。除非纹理图像坐标恰好与显示屏轴完全对齐,否则这四个值中的任何一个都不需要为零。通常,纹理坐标轴不需要与屏幕显示轴对齐。 X和Y(显示视口轴)与U和V(纹理图像轴)的方向不同。

Diagram showing relationship of UV and XY

换句话说,将2D屏幕/视口坐标系与2D纹理/图像UV坐标系相关联的雅可比矩阵包含4个条目:每个可调参数两个。

答案 1 :(得分:0)

您正在计算x或y方向相对于屏幕空间的变量(例如纹理的uv坐标)的导数。换句话说,你可以说该函数回答了这个问题:“当我将一个像素移动到[左侧] / [向上]时,该变量会发生什么变化。”