For all objects

For all covered pixels

Compare z

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

Если известно уравнение плоскости, несущей каждый многоугольник, то вычисление глубины каждого пиксела на сканирующей строке можно проделать пошаговым спосо­бом. Грань, при этом, рисуется последовательно строка за строкой. Для нахождения не­обходимых значений используется линейная интерполяция (рис 5.11).

Рис. 4.11 Сканирующая строка по грани

Для рисунка y меняется от y1 до y2 и далее до y3 при этом для каждой строке определя­ется xa, za, xb, zb.

x a = x 1 + (x 2 - x 1

x b = x 1 + (x 3 - x 1

z a = z 1 + (z 2 - z1

z b = z 1 + (z 3 - z1

На сканирующей строке x меняется от x a до x b и для каждой точки строки определяется глубина z:

z = z a + (z b - za

Реализация алгоритма вдоль сканирующей строки позволяет совместить алгоритм z – буфера с алгоритмами рас­тровой развертки ребер и алгоритмами закраски грани.

Проиллюстрируем работу алгоритма на примере для рис. 5.12.

Рис. 4.12 Протыкающий треугольник

В начале в буфере кадра, и в z-буфере содержатся нули. После растровой развертки пря­моугольника содержи­мое буфера кадра будет иметь вид:

                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     

Содержимое z-буфера таково:

                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     

При обработке треугольника преобразование его в растровую форму и сравнение по глубине дает новое значе­ние буфера кадра:

                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     

Новое содержимое z-буфера таково:

                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: