Ответ 1
Причина, по которой большинство систем (даже многие современные графические карты) требуют текстуры из двух текстур, - это mipmapping.
Что такое mipmapping?
Меньшие версии изображения будут созданы для того, чтобы все выглядело правильно при очень небольшом размере. Изображение делится на 2 снова и снова, чтобы создавать новые изображения.
Итак, представьте себе изображение 256x128. Это будет иметь меньшие версии, созданные с размерами 128x64, 64x32, 32x16, 16x8, 8x4, 4x2, 2x1 и 1x1.
Если это изображение было 256x192, оно будет работать нормально, пока вы не достигнете размера 4x3. Следующее меньшее изображение будет 2x1.5, что, очевидно, не является допустимым размером. Некоторые графические устройства могут справиться с этим, но многие типы не могут.
Некоторое аппаратное обеспечение также требует квадратного изображения, но это уже не так часто.
Зачем вам нужно mipmapping?
Представьте, что у вас есть изображение, которое ОЧЕНЬ далеко, так далеко, чтобы быть только размером 4 пикселя. Теперь, когда каждый пиксель рисуется, позиция на изображении будет выбрана в качестве цвета для этого пикселя. Таким образом, вы получаете 4 пикселя, которые, возможно, вообще не представляют изображение в целом.
Теперь представьте, что картина движется. Каждый раз, когда создается новый кадр, выбирается новый пиксель. Поскольку изображение SO далеко, вы, скорее всего, увидите очень разные цвета для небольших изменений в движении. Это приводит к очень уродливому миганию.
Недостаток mipmapping вызывает проблемы для любого размера, который меньше размера текстуры, но он наиболее выражен, когда изображение тянется до очень небольшого количества пикселей.
С mipmaps аппаратное обеспечение будет иметь доступ к текстуре 2x2, поэтому каждый пиксель на ней будет средним цветом этого квадранта изображения. Это устраняет проблескивание нечетного цвета.
http://en.wikipedia.org/wiki/Mipmap
Изменить людям, которые говорят, что это не так: Это правда, что многие современные графические процессоры могут поддерживать текстуры без питания двух, но это также верно, что многие не могут.
Фактически, только на прошлой неделе у меня была текстура 1024x768 в приложении XNA, над которым я работал, и это вызвало крах при загрузке игры на ноутбуке, которому было всего около года. Однако он работал отлично на большинстве машин. Это безопасная ставка, что iPhone gpu значительно проще, чем полный ПК gpu.