du
float Du(float n, ...)
vector Du(vector n, ...)
vector4 Du(vector4 n, ...)
返回值
返回n
相对于U的导数。
在着色上下文中,这表示变量在着色区域上的变化量。
导数选项
导数选项
计算导数的函数可以接受额外参数,用于调整导数计算方式。
“extrapolate
”,
int
=0
控制导数是否在面片边界处保持”平滑”。大多数情况下应设为true,如果开启外推,对于C2连续曲面导数计算将是精确的。然而当VEX变量高频变化时(例如高频位移贴图导致P变量高频变化),导数计算的外推可能会放大面片边界处的不连续性。
“smooth
”,
int
=1
非均匀地调整面片上微分的幅度。这通常会减少位移/纹理着色器中面片间的不连续性。但在某些特殊情况下可能需要关闭此功能。
N = computenormal(P, "extrapolate", 1, "smooth", 0);