Exit

Уроки онлайн

Уровень

Закраска методом Гуро.

Если при построении полигональной поверхности для каждой грани используется по одной нормали, то модель освещения создает изображение, состоящее из отдельных многоугольников (рис. 11.9, а). Методом Гуро можно получить сглаженное изображение. Для того чтобы изобразить объект методом построчного сканирования, нужно в соответствии с моделью освещения рассчитать интенсивность каждого пиксела вдоль сканирующей строки. Нормали к поверхности аппроксимируются в вершинах многоугольников так, как описано в предыдущем разделе. Однако сканирующая строка не обязательно проходит через вершины многоугольника (рис. 11.10). При закраске Гуро сначала определяется интенсивность вершин многоугольника, а затем с помощью билинейной интерполяции вычисляется интенсивность каждого пиксела на сканирующей строке.

       

 

           a                                         b

 

Рис. 11.9. Однотонная закраска многоугольников и закраска Гуро.

Рис. 11.10. Интерполяция закраски.

Рассмотрим, например, участок полигональной поверхности на рис. 11.10. Значение интенсивности в точке определяется линейной интерполяцией интенсивности в точках и R. Для получения интенсивности в точке Q - пересечении ребра многоугольника со сканирующей строкой - нужно линейной интерполяцией интенсивностей и найти

где u=AQ/AB. Аналогично для получения интенсивности R линейно интерполируются интенсивности в вершинах B и C, т. е.

где w=BR/BC. Наконец, линейной интерполяцией по строке между и находится интенсивность P, т. е.

где t=QP/QR.

Значения интенсивности вдоль сканирующей строки можно вычислять инкрементально. Для двух пикселов в t1 и t2 на сканирующей строке

Вычитая, получим, что вдоль строки

На рис. 11.9, b показан результат применения закраски Гуро к полигональной аппроксимации лица, изображенного на рис. 11.9, а. Видно, что качество изображения намного улучшилось, но при внимательном рассмотрении на рис. 11.9, b заметно проявление эффекта полос Маха, например на скулах, вокруг глаз и на подбородке. Это происходит потому, что такой метод интерполяции обеспечивает лишь непрерывность значений интенсивности вдоль границ многоугольников, но не обеспечивает непрерывности изменения интенсивности. Обратите внимание также на то, что контуры лица, например глаз и носа, - многоугольники.

Рис. 11.11. Эффекты закраски Гуро.

Еще одна проблема метода Гуро иллюстрируется на рис. 11.11, а. Если нормали к вершинам B, CD вычислить усреднением нормалей к многоугольникам, то они будут одинаково ориентированы, т. е. интенсивность в этих точках будет равной. При линейной интерполяции от B до D значение интенсивности получится постоянным, и поверхность на данном участке будет выглядеть плоской. Для изображения плавного перехода в BC и D необходимы дополнительные многоугольники (рис. 11.11, b). Если же нужно сохранить резкие складки, то для предотвращения сглаживания требуется выборочное усреднение нормалей к поверхности. В примере, показанном на рис. 11.11, с, nB1 вычисляется только для одной грани справа от B,аналогично получается nD1 и nD2В то же время nCвычисляется как среднее для граней слева и справа от C. В этом случае в и получается острое ребро, а в C - плавный переход, как видно, например, на губах на рис. 11.9, b.

Закраска Гуро лучше всего выглядит в сочетании с простой моделью с диффузным отражением, описываемой уравнениями освещения (11.1) или (11.2), так как форма бликов при зеркальном отражении сильно зависит от выбора многоугольников, представляющих объект или поверхность.