Билинейная фильтрация

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Билинейная фильтрация — процесс извлечения нескольких пикселей исходной текстуры с последующим усреднением их значений для получения окончательного значения пикселя. Понятие «билинейная фильтрация», точно так же, как и сходное понятие «трилинейная фильтрация», применимо только к двумерным текстурам. Для трехмерных, например, данное понятие неприменимо, а понятие трилинейной фильтрации имеет совершенно другое значение.

[править] Пример исходного кода функции билинейной фильтрации

В коде [1] принимается, что текстура квадратна (наиболее общий случай), а также, что имеется только один канал данных.

 double getBilinearFilteredPixelColor(Texture tex, double u, double v) {
   u *= tex.size;
   v *= tex.size;
   int x = floor(u);
   int y = floor(v);
   double u_ratio = u - x;
   double v_ratio = v - y;
   double u_opposite = 1 - u_ratio;
   double v_opposite = 1 - v_ratio;
   double result = (tex[x][y]   * u_opposite  + tex[x+1][y]   * u_ratio) * v_opposite + 
                   (tex[x][y+1] * u_opposite  + tex[x+1][y+1] * u_ratio) * v_ratio;
   return result;
 }

[править] Примечания

  1. Язык — C

[править] См. также


Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках