opengl topdown <-> снизу вверх текстуры? - PullRequest
2 голосов
/ 14 января 2009

Когда я загружаю изображение через FreeImage, биты идут снизу вверх. Мой код GL ожидает, что все изображения будут сверху вниз. Какой лучший способ перевернуть изображение, когда я копирую биты в текстуру?

Ответы [ 4 ]

4 голосов
/ 15 января 2009

Вы можете использовать матрицу текстур, чтобы эффективно переворачивать texcoords. Я думаю, что это будет работать:

glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glScalef(1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
2 голосов
/ 15 января 2009

Может попробовать FreeImage_FlipVertical ().

2 голосов
/ 14 января 2009

Я думаю, что было бы целесообразно сделать переворот на месте, используя простую арифметику массива и 1 временное значение длинного слова. (поэтому переворачивать на пиксель 4 байта).

Конечно, вы могли бы перевернуть координаты текстуры, но это было бы неразумно ИМХО, поскольку вы, вероятно, не хотите загрязнять свой код информацией о том, что текстура перевернута.

1 голос
/ 16 июля 2011

В зависимости от вашего приложения, большинство профессиональных игр переворачивают свои текстуры в процессе сборки, а не во время загрузки.

...