OpenGL ES - пиксельная «интерференция» внизу текстуры

Я загружаю массив int* данных пикселей RGBA из UIImage, выполняю над ним манипуляции, затем устанавливаю пиксели в буфер текстуры Glubyte* и записываю их в текстуру с помощью

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, texBuffer);

Это работает нормально, однако я получаю странные пиксельные «помехи» внизу экрана.

Кто-нибудь знает, что может быть причиной этого эффекта?

РЕДАКТИРОВАТЬ: решил это сам, см. мой ответ


person RSH1    schedule 06.01.2012    source источник
comment
Как вы выделяете texBuffer? Попробуйте выделить texWidth*texHeight*4 байта и заполнить память нулями. Все еще помехи? Если нет, то ваше существующее распределение неверно.   -  person Ville Krumlinde    schedule 07.01.2012


Ответы (1)


Проблема здесь была в объявлении буфера int*, должно было быть так:

int* pixelArray = malloc(4*w*h);
person RSH1    schedule 08.01.2012