我有一个棘手的问题要在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!
}
任何人都有可能向我指出正确方向的线索吗?有没有什么好的方法可以调试片段着色器中的值呢?