Обработка h при непосредственном синтезе изображения.

1. Инициализируем поля V, H = 0. Очищаем поле V (например, делаем его черным). В H записываем минимальное значение, т. е. заполняем его нулями. Минимальные значения соответствуют максимальной удаленности.

 

 

 

2. Для пространственного многоугольника определяем точки с координатами (X,Y,Z,S). Для плоскости изображения используются координаты (x,y,h,v), где v – это яркость в точке.

 

3. Используем алгоритм построчного сканирования.

 

h и v – линейно интерполируем

 

 

 
 

Обработка текущей точки:

 

а) точка вдали

;

б) точка в близи

 

 

Пример:

Пусть,

а) точка в дали

ошибка по глубине

б) точка вблизи

При малоразрядном буфере отношение Smin и Smax уменьшается.

Значение h – нелинейно зависимое разрешение по глубине от дальности.

 

Если записывать в G значение S, то нельзя линейно интерполировать.


Формула нелинейной интерполяции величины S:

 

Недостатки:

- Большие вычислительные затраты на каждую текущую точку;

- S имеет равномерную (т. е. постоянную) разрешающую способность по глубине;

- Вместо линейной - нелинейная интерполяция.


Алгоритм отсечения по пирамиде видимости.

 

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

Поскольку камера видит только то, что перед ней находится, все те точки, для которых Smin > z > Smax, рисовать не надо. То есть, каждую грань надо обрезать плоскостями z = Smin и z = Smax.

 

 


В плоскость изображения попадают только те точки, которые находятся внутри ПВ.
Алгоритм:
Пусть имеется пространственный многоугольник с вершинами i = 1…n. Для каждой вершины вычисляем значения Si, X¢i и Y¢i, которые будут исходными данными


 

 

 

Нанесение текстур

 

 

Различают два вида текстур:

· Процедурные

· Проективные (наносятся на грань объекта)