Пиксели OpenGL, нарисованные при каждой замене горизонтальной пары
Я немного новичок в OpenGL, хотя я уверен, что моя проблема заключается в используемом формате пикселей или в том, как генерируется моя текстура...
Я рисую текстуру на плоском двумерном четырехугольнике с использованием 16-битного пиксельного формата RGB5_A1, хотя на данном этапе я не использую альфа-канал. У меня проблема в том, что каждая пара горизонтальных значений пикселей была поменяна местами.
То есть... если позиции пикселей должны быть в этом порядке (предположим, 8x2 изображение)
0 1 2 3
4 5 6 7
вместо этого они нарисованы как
1 0 3 2
5 4 7 6
Или, более четко из этого изображения (ниже). Левый это то, что я получаю... Правое это то, что я должен получить.
,
Вопрос в том... Как я дошел до этого? Что-то не так с форматом пикселей? Маловероятно, так как все цвета выглядят правильными, и я бы ожидал все виды мерзости, если бы это было до порядка байтов. Предложения с благодарностью.
Обновление: Оказывается, проблема была в моем исходном рендерере. Интересно, что я полностью избежал этой проблемы, используя 32-битные текстуры (пока не пробовал 24-битные).
1 ответ
Это может быть не связано, и вы нашли обходной путь, но это может быть связано с выравниванием распаковки OpenGL. Вы пробовали с помощью следующего звонка? Для указания выравнивания каждой строки изображения по 1 байту (по умолчанию 4).
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);