Я делаю простую 2D-игру для iPhone. Он основан на CrashLanding. так что это в основном фоновая текстура и несколько движущихся прямоугольных текстур.
У меня есть эта причудливая небольшая графическая проблема: некоторые из маленьких 2-мерных элементов (можно предположить, что это только прямоугольники), перемещаясь, получают эту маленькую мигающую черную полосу поверх них (фоновая текстура почти полностью белая, поэтому маленькая полоса заметна).
Я использую текстуры небольшого размера (~ 1 КБ) в формате png.
Кто-нибудь еще сталкивался с этим? Это распространенная проблема с OpenGL?
Кстати, это происходит как на симуляторе, так и на реальном устройстве.
Это происходит как на симуляторе, так и на реальном устройстве.





Есть ли в ваших текстурах что-то вроде этой маленькой черной полосы?
Я сталкивался с подобными проблемами, когда делал что-то не так. Вот небольшой чек-лист:
Если что-то в списке для вас непонятно, почитайте об этом хорошее упражнение.
Я также делаю хорошее предположение: я считаю, что вы не оборачиваете свои текстуры в каком-либо направлении, и что кадры анимации немного смещены, поэтому ваше приложение имеет немного неправильные координаты / высоту текстуры в квадрате, который вы рисуете.
Надеюсь, мои советы имеют смысл. У меня есть только опыт работы с обычным opengl, а не с OpenGL ES, графические конвейеры которого были сокращены, чтобы сделать его более компактным, чистым и элегантным.
Поскольку это 2D-игра, содержатся ли эти маленькие прямоугольные спрайты в одном текстурном листе? Другой возможной причиной может быть фильтрация текстур.
Если вы пытаетесь манипулировать координатами текстуры, чтобы нарисовать подобласть текстуры, вы можете проверить, рисуете ли вы спрайт с соотношением сторон больше 1: 1. Если у вас включена линейная фильтрация текстур (в отличие от ближайшей), OpenGL может захватить некоторые пиксели из соседнего спрайта, если вы попытаетесь масштабировать спрайт за пределы 1: 1.
В этом случае вы можете попробовать разместить 1-пиксельный буфер в текстурном листе между спрайтами.
Вы видите проблему как в симуляторе, так и на реальном устройстве?