Сжатие 2д текстур
Допустим 2д текстура при наложении на 2д объект сжимается (в режиме GL_NEAREST, без мипмапинга). Почему закономерность горизонтального сжатия (по оси s) отличается от закономерности вертикального сжатия (по оси t)? Мне почему-то казалось, что оба направления должны быть равнозначны. Может нужно какие настройки изменить ??
Поясню на конкретном тестовом примере.
1) Создаю текстуру размерами 1x4. Беру прямоугольник (0, 0); (1, 0); (1, 500); (0, 500). Накладываю так, чтобы текстура сжалась только по оси t.
[COLOR=darkblue]
glBegin(GL_QUADS);
glTexCoord2d (0 / 1, 0 / 3);
glVertex2i (0, 0);
glTexCoord2d(1 / 1, 0 / 3);
glVertex2i(1, 0);
glTexCoord2d(1 / 1, 500 / 3);
glVertex2i(1, 500);
glTexCoord2d(0 / 1, 500 / 3);
glVertex2i(0, 500);
glEnd();
[/COLOR]
В этом случае рисуется узкий вертикальный прямоугольник (полоска пикселей) в котором чередуются тексели с коордунатами (0, 0), (0, 1), (0, 3). Т.е. при сжатии теряется тексель с координатами (0, 2). Все ок.
2) Создаю текстуру размерами 4 x 1. Беру прямоугольник (0, 0); (500, 0); (500, 1); (0, 1). Накладываю так, чтобы текстура сжалась только по оси s.
[COLOR=darkblue]
glBegin(GL_QUADS);
glTexCoord2d (0 / 3, 0 / 1);
glVertex2i (0, 0);
glTexCoord2d(500 / 3, 0 / 1);
glVertex2i(500, 0);
glTexCoord2d(500 / 3, 1 / 1);
glVertex2i(500, 1);
glTexCoord2d(0 / 3, 1 / 1);
glVertex2i(0, 1);
glEnd();
[/COLOR]
В этом случае рисуется узкий горизонтальный прямоугольник (полоска пикселей) в котором очередность тексели совершенно иная, и закономерность не проглядывается.