Даже если вы решили свою проблему, я хотел бы уточнить концепцию, которая может решить проблемы, которые могут возникнуть в ближайшем будущем.
Вот что не так:
Теперь я добавляю текстуры NPOTS (используя TEXTURE_RECTANGLE_ARB)
GL_texture_rectangle Расширение OpenGL не означает поддержку текстур Not Power Of Two (NPOT); правильное расширение OpenGL для запроса - GL_texture_non_power_of_two.
GL_texture_non_power_of_two не может сломать существующие приложения, которые ожидают текстуру Power Of Two (POT), потому что это ослабляет спецификацию, чтобы принимать текстуры, имеющие любую ширину / высоту / глубину (в определенных пределах, конечно). Вот цитата расширения:
Нет никаких дополнительных процедурных или перечисляемых API, введенных этим
расширение, за исключением того, что реализация, которая экспортирует расширение
строка позволит приложению передавать размеры текстуры для
1D, 2D, карта куба и 3D цели, которые могут быть или не быть степенью
из двух.
Вместо этого GL_texture_rectangle позволяет вам задавать координаты текстуры, обращаясь к экстентам текстуры (ширине и высоте) с помощью координаты пикселя, которая является целым числом (вместо обычной координаты с плавающей запятой, нормализованной в диапазоне [0.0f, 1.0f] ). Кроме того, текстуры прямоугольника не могут поддерживать мипмаппирование.
Кроме того, если вы прочитали спецификацию GL_texture_rectangle, она не предназначена для поддержки текстуры NPOT, потому что на текстуры прямоугольника должны влиять те же ограничения 2D-текстур.