Как избавиться от артефактов в приложении OpenGL ES для iPhone? - PullRequest
1 голос
/ 06 июня 2009

Я использую класс Texture2D из примера кода CrashLanding. Я получаю странные артефакты вокруг моих изображений в симуляторе и телефоне. Артефакты - это маленькие серые границы вокруг текстур. Границы противоречивы и не охватывают всю текстуру. Я использую PNG.

Ответы [ 2 ]

5 голосов
/ 06 июня 2009

Эй, MrDatabase - Похоже, проблема в том, что ваши текстурные изображения предварительно умножены на альфа. У меня была эта проблема и на iPhone - сжатие PNG, которое оно выполняет при сборке приложения, автоматически умножает все альфа-значения. Если вы используете glBlend(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA), вы в основном применяете альфа дважды - попробуйте вместо этого использовать glBlend(GL_ONE, GL_ONE_MINUS_SRC_ALPHA). На форумах Apple есть много материала по этому поводу: -)

1 голос
/ 06 июня 2009

Ваши текстуры имеют все полномочия по ширине и высоте? Если нет, то это, вероятно, ваша проблема.

У меня также были проблемы с текстурами меньше определенного размера. Помню, кто-то говорил, что для небольших текстур очищайте память после того, как она выделена. Изменение malloc на calloc в источнике Texture2D решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...