Почему OpenGL поддерживает mipmaps, а не встроенные изображения? - PullRequest
2 голосов
/ 11 января 2012

Я понимаю, что и у mip-карт, и у целых изображений есть проблема, заключающаяся в том, что полученное значение пикселя не является интегралом произвольного многоугольника в исходном текстурном пространстве. Интегрирование по выровненному по оси прямоугольнику в текстурных координатах с использованием интегральных изображений требует 4 поиска текстур. Используя mipmaps, opengl интерполирует 4 значения смежных пикселей в mipmap, а также 4 поиска в памяти. При использовании интегрального изображения вам нужно меньше памяти (без дополнительных предварительно измененных размеров изображений, только целое изображение вместо оригинала) и без определения уровня. Конечно, это может быть реализовано с помощью шейдеров, но почему конвейер с фиксированными функциями (в настоящее время считается устаревшим) когда-либо разрабатывался с поддержкой mipmap и без встроенной поддержки изображений?

Ответы [ 2 ]

2 голосов
/ 11 января 2012

При использовании интегрального изображения вам нужно меньше памяти

Я очень сомневаюсь, что это утверждение верно

Из того, что я понимаю, значения интегрального изображения могут быть довольно большими, поэтому требуется представление с плавающей запятой, которое будет занимать намного больше места, чем типичный 24-битный mip-карта (mip-карты только удваивают размер изображения) и / или быть меньше точный и создающий шум во время интерполяции. Кроме того, изображения с плавающей запятой на самом деле не использовались, что часто с конвейером фиксированных функций и графическими процессорами, возможно, было намного медленнее с изображениями с плавающей запятой.

Если бы вы использовали целые числа для изображения, то необходимая для интегрального изображения битовая глубина была бы неоправданно высокой (bitdepth = extents + 8 для белого изображения, что означает, что для изображения 256x256 потребуется битовая глубина 264 бит на цвет канал) с изображениями с более высоким разрешением.

1 голос
/ 11 января 2012

но почему (в настоящее время устаревший) конвейер фиксированных функций когда-либо разрабатывался с поддержкой mipmap и без встроенной поддержки изображений?

Поскольку доступ и интерполяция mipmaps могут быть построены какпростые проводные схемы.Когда-нибудь задумывались, почему размеры текстуры должны быть степенью двойки?Реализовать вычисления mipmapping в виде последовательности битовых сдвигов и дополнений.Также доступ к соседним элементам в гауссовой пирамиде требует меньше обращений к памяти, чем оценка интеграла.И есть ваша главная проблема: Fillrate, то есть пропускная способность видеопамяти, всегда была узким местом графических процессоров.

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