Перенос баз данных с одного SQL Server на другой Изменения в системе защиты SQL Server Новые средства разработки Новые элементы программирования на языке Visual Basic Редактирование и анализ данных с помощью запросов

Лекции по компьютерной графике начало

5.1.2. Билинейная интерполяция

При обращении к полю текстуры с дробными координатами мы округляем их до целых. В результате получается несколько кривое изображение. Можно с этим бороться, используя билинейную интерполяцию. Она основана на том, что яркость в точке находится по яркости 4-х соседних точек, а в пространственных координатах это позволит избежать искривлений при проецировании текстуры. Однако в координатах изображения это будет уже не линейная интерполяция.

Задача заключается в нахождении яркости в точке V.

Сначала находится яркость в точке V5 с учетом линейной интерполяции между точками V1 и V4; затем в точке V6 с учетом интерполяции между точками V2 и V3. Затем производится интерполяция между точками V5 и V6 для нахождения яркости в точке V. 

V5=V1*(1-Ex) +V4*Ex

V6=V2*(1-Ex) +V3*Ex

V = V5*(1-Ey) +V6*Ey

Ex, EyÎ{0:1}

 
 

Рис. 4.3.1

Линейная интерполяция в большинстве случаев не совсем корректна, так как можно получить эффект искажения картинки. Необходимо линейно интерполировать текстурные координаты исходя из координат изображения. Использование этого метода существенно замедляет работу алгоритма, но улучшает качество картинки.

Вопрос: как реализовать прозрачность (например, прозрачное окно в доме)?

Ответ: вводят признак прозрачности текстуры. При появлении кода прозрачности соответствующие точки игнорируются. 

 

 

 

   окно

  непрозрачно

   a1

a1 - коэффициент прозрачности.

a1 Î [0, 1]

a1 = 0 => прозрачно

a1 = 1 => непрозрачно

 

 

Рис. 4.3.2

 В этом случае VS = a1V1 + V2 (1-a1)

 

  

   aa2    непрозрачно

 


   V2 

   V3

 V

Рис. 4.3.3

 VS = a1V1 + (1-a1)( a2V2 + V3 (1-a2))

Дизайн, инженерная и Web графика