glsl sqrt结果是否定的

时间:2014-03-31 16:08:20

标签: glsl sqrt

我的着色器中有一个模糊功能,它将浮动作为模糊半径。

我像这样计算屏幕中心的距离:

vec2 nPos = texCoord.xy - vec2(0.5, 0.5);
float d = sqrt(nPos.x * nPos.x + nPos.y * nPos.y)/sqrt2; //ranged from 0 to 1

现在我调用我的模糊功能:

gl_FragColor = chromaticBlur(pr, pg, pb, d, size);

奇怪的是,如果我将d设置为0,则没有模糊,正如预期的那样(0以上的值也按预期工作)。但是如果我使用上面显示的功能,屏幕的大部分(实际上是椭圆形)将是黑色的。这意味着该区域的模糊值为负,这应该是不可能的。怎么会发生这种情况?

0 个答案:

没有答案