Насколько эффективнее текстуры с двумя степенями свободы? - PullRequest
5 голосов
/ 30 августа 2011

Я создаю видеоплеер OpenGL с использованием Ffmpeg, и все мои видео не имеют степени 2 (поскольку они имеют нормальное разрешение видео). Он работает на частоте кадров в секунду с моей картой nvidia, но я обнаружил, что он не будет работать на старых картах ATI, потому что они не поддерживают текстуры не-степени двух.

Я буду использовать это только на карте Nvidia, так что я не особо беспокоюсь о проблеме ATI, но мне было интересно, сколько выигрыша в производительности я получу, если бы текстуеры были power-of-2? Стоит ли их дополнять?

Кроме того, если оно того стоит, как мне добавить их к ближайшей большей степени двойки?

1 Ответ

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

При написании видеоплеера вы должны обновить текстуру с помощью glTexSubImage2D().Эта функция позволяет вам предоставлять изображения произвольного размера, которые будут размещены где-то в целевой текстуре.Таким образом, вы можете сначала инициализировать текстуру с помощью вызова glTexImage() с указателем данных, равным NULL, а затем заполнить данные.

Прибыль производительности чистой мощности двух текстур сильно зависитна используемом оборудовании, но в крайних случаях оно может составлять до 300%.

...