Ширина и высота текстур OpenGL должны быть одинакового размера? - PullRequest
3 голосов
/ 09 августа 2011

Я видел некоторые игры, использующие текстуры, такие как 256x512, это стандартная функция opengl? и поддерживается ли он всеми драйверами?

У меня сложилось впечатление, что и ширина и высота должны быть одинакового размера (и степени двойки). Но могут ли они действительно быть разного размера (но все же степени двойки)?

Редактировать: Также я хотел бы знать, есть ли различия в производительности с 512x128 против 256x256 (при одинаковом использовании памяти)?

Ответы [ 2 ]

3 голосов
/ 10 августа 2011

Проверьте спецификации или документы :

Для текстур с степенью двойки и игнорированием границ width = 2^n и height = 2^m, где n и m могут бытьразные числа.

width или height не может превышать GL_MAX_TEXTURE_SIZE.

Что касается производительности, вы не можете заранее знать, еслиданная реализация GL использует линейное или мозаичное представление текстуры внутри.Плитчатой ​​реализации на самом деле все равно, если у вас есть текстура 1024x16 или 16x1024, так как все кэши видят маленькие (например) фрагменты 16x16 текселей.Линейная реализация будет иметь гораздо лучшую частоту обращений к кэшу для текстуры 16x1024, чем 1024x16, при условии хранения на уровне строк.

0 голосов
/ 09 августа 2011

нет такого ограничения на размер текстур нет. если бы был такой предел, было бы невозможно трудно применить текстуры к сложной 3d-модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...