opengl topdown<->снизу вверх текстуры?

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

4 ответа

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

glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glScalef(1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);

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

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

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

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

Другие вопросы по тегам