对于webgl / glsl中的(x> 0. && x <= 0。),x的哪个值将为true?

时间:2019-04-27 00:03:04

标签: glsl webgl

我有一个棘手的问题要在webgl GLSL片段着色器中解决。对于上下文,我正在使用flocking技术来实现ping-pong模拟。一切都可以在PC和Mac上正常运行,但在IOS(在Safari / Chrome / Firefox中)却无法正常运行。没有错误,只是行为不正确。

我已将其跟踪到使用纹理纹理采样的vec4的位置,该值似乎在某种程度上已损坏。如果不使用采样值,则IOS上的结果与其他设备类似。

由于这种行为,我认为采样值具有损坏的值或其他意外值:

vec4 sampled = texture2D( inputTexture, textureCoordinate);

// a condition that shouldn't fire
// except perhaps for a 'special value' -
// (e.g. something like nil, null, NaN, undefined)
if (sampled.x > 0.0 && sampled.x <= 0.0) {
    // do something that modifies behavior
    // THIS FIRES! WHY!
}

任何人都有可能向我指出正确方向的线索吗?有没有什么好的方法可以调试片段着色器中的值呢?

0 个答案:

没有答案