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

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

5.1.3. Виды текстур

1.       Прозрачные текстуры

2.       Полупрозрачные текстуры

3.       Циклические текстуры

4.       Динамические текстуры

5.       текстуры с мультиразрешением

Прозрачные

Если необходима прозрачная текстура, то можно воспользоваться следующим методом:


Зарезервируем один код Vt под признак прозрачности, то есть эта точка не будет заноситься в буфер изображения. Нижеприведенный алгоритм отображает обработку одной точки при использовании прозрачной текстуры:


Полупрозрачные

При применении полупрозрачной текстуры используется L-буфер, хранящий коэффициенты прозрачности всех точек текстуры, то есть размет буфера равен размеру текстуры.

Коэффициент прозрачности L = 0…1 , 0 – чисто прозрачная точка, 1 – непрозрачная точка.

Алгоритм обработки точки полупрозрачной текстуры:


 

Наложение двух полупрозрачных граней:


 


Полупрозрачнсть:

H – обычный буфер

A – a- буфер

V – поле изображения

HA – вспомогательный буфер для полупрозрачной грани

VA – яркость полупрозрачной грани

Pj – признак обработки j- ой грани (j = [0;m-1], если m граней)

Алгоритм:


 


Алгоритм обработки грани – сводится к обработке текущей точки:


 


Алгоритм учета полупрозрачности - перебор всех точек изображения - для каждой точки с координатами x,y:


 


Циклические

Допустим, что нам необходимо изобразить поверхность моря. Можно взять большую структуру  на всю поверхность моря, но это очень громоздко и сложно. Вместо этого можно взять небольшой фрагмент и составить поверхность из нескольких таких фрагментов (т.е. размножить исходный текстурный фрагмент). При этом необходимо, чтобы вертикальные стороны были абсолютно одинаковыми.

Динамические

Как можно показать, что море волнуется? У нас есть несколько текстур моря, и мы генерируем изображение с учетом изменения текстур. Т.е. в первом кадре накладывают первую текстуру, в следующем вторую и т.д. (каждый кадр берёт текстуру из своего файла).

 

Текстуры с мультиразрешением

Рассмотрим текстуру шахматного поля:

Рис 4.4.5.1

При большом удалении мы будем иметь чередование черных и белых точек, и скорее всего нарушится порядок клеток шахматного поля. На самом деле при большом удалении мы должны наблюдать серый фон, следовательно, надо иметь несколько текстур с разным расширением. Все поле видимости делится на несколько областей, которые нумеруются .Для каждой области удаления используется своя текстура – чем ближе она расположена к наблюдателю, тем большее разрешение имеет. Оценив расстояние до объекта, надо использовать либо текстуру для малых удалений, либо – для больших удалений.

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