У меня острая проблема, которую я пытаюсь решить в фрагментном шейдере webgl GLSL.Для контекста я реализую симуляцию flocking с использованием техники ping-pong .На ПК и 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!
}
У кого-нибудь есть какие-нибудь подсказки, которые могут указать мне правильное направление?Есть ли хороший способ отладки значений в фрагментных шейдерах, которые могут помочь?