Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternaya_grafika.doc
Скачиваний:
90
Добавлен:
23.04.2019
Размер:
5.45 Mб
Скачать

61.Модель закраски Фонга.

Данный метод превосходит метод Гуро по объемам вычислений, однако позволяет добиться более высокого качества сглаживания полигональных поверхностей.

Метод Фонга (Phong Shading) также базируется на линейной интерполяции. Однако в качестве интерполируемой величины выступает не интенсивности точек поверхности, а векторы нормалей к поверхности в этих точках.

Метод Фонга заключается в построении для каждой точки поверхности вектора-нормали G U . На базе полученного значения G U производится вычисление интенсивности 0 I . Схема интерполяции аналогична схеме, приведенной для метода Гуро. При этом нормали в вершинах полигональной сетки определяется как сумма нормалей прилегающих гра-

ней:

где i k - коэффициент, определяющий вес грани среди всех граней, которые имеют общую вершину.

Для вычисления нормали G U , используются значения векторов

Для расчета значений интенсивности, используются формулы закраски, в которых вместо углов α и β используются векторы-нормали по соответствующим направлениям. Благодаря этому, метод Фонга поzволяет получить более реалистичный эффект сглаживания, позволяющий учитывать зеркальную составляющую отраженного света.

Достоинства метода Фонга:

- гарантированная гладкость изменения интенсивности;

- в большинстве случаев устраняет эффект Маха, присущий методу Гуро;

- обеспечивает высокое быстродействие за счет наличия рекурсии в вычислениях.

Недостатки метода Фонга:

- возможны ошибки при вычислении большого числа невыпуклых многоугольников;

- не исключена возможность появления полос Маха (например,для сфер эффект Маха усиливается).

Конец 61 вопроса.

62.Алгоритм отсечения лучей.

Алгоритм отсечения лучей (Ray Casting) является простейшим вариантом алгоритмов обеспечивающих виртуальную реальность. Наиболее известно использование этого алгоритма в качестве графического ядра первых 3D игровых программ.

Алгоритм отсечения лучей(АОЛ) можно рассматривать как упрощенный вариант алгоритма трассировки лучей с обратным ходом луча. Для упрощения реализации вычислительных функций данный алгоритм рассматривает простейшую геометрическую модель пространства в виде конечного числа кубов.Идея АОЛ заключается в том, что при построении каждого очередного кадра по направлению взгляда наблюдателя в этом пространстве отсекается сектор лучей (600-900). Все остальные лучи, выходящие за поле

просмотра, не рассматриваются, то есть отсекаются. В алгоритме не учитываются источники света и отражательные характеристики поверхности объекта. Учет освещенности производится статически, то есть описывается на старших формированиях пространства, и в момент выполнения алгоритма находится в описании кубов, из которых

сформировано объектное пространство.Динамические объекты сцены (движущиеся персонажи) реализованы в виде спрайтов1. Поэтому данное графическое ядро

относят к 2,5D графическим программам. После выделения сектора просмотра вычисляются координаты точек пересечения лучей с объектами пространства. Причем

лучи проводятся через каждый пиксель экрана.

1 Под спрайтом понимают семейство растровых изображений, отображающих фазы движения какого-либо объекта. Спрайт используется для формирования анимационных последовательностей в игровых и мультимедийных программах

Взгляд наблюдателя последовательно сканирует выбранный сектор при этом каждому лучу будет соответствовать вертикальная линия развертки на экране. В связи с этим, число отсекаемых лучей,как правило, выбирается равным горизонтальному расширению экрана.Объем вычислений по расчету точек пересечения значительно сокращается при использовании регулярного пространства.АОЛ за цикл своей работы автоматики выполняет следующие операции:

1) удаление невидимых поверхностей;

2) создание перспективы;

3) образование теней и освещения;

4) отображение текстуры объекта.

В общем случае АОЛ состоит из семи этапов:

1) предварительный;

2) вычисление координат первого пересечения с координатной

сеткой;

3) вычисление последних пересечений с координатной сеткой;

4) определение расстояний до точек пересечения;

5) масштабирование;

6) устранение проекционного искажения;

7) отображение линии развертки.

Этап 1

На предварительном этапе осуществляются следующие операции:

1) формирование табличных значений тригонометрических функций;

2) выделение в оперативной памяти рабочего пространства;

3) формирование начального заполнения кадра развертки;

Формирование табличных значений. Данная операция заключается в выделении памяти и заполнении таблицы тригонометрических функций, используемых при геометрических расчетах. Замена функциональных выражений на табличное значение является стандартным приемом, позволяющим ускорить обработку данных.

В данном случае для проведения геометрических построений требуется определить синус, косинус, тангенс при угле от 00 до 3600. Количество элементов таблиц легко определить по следующей формуле:

где L - ширина кадра, α - угол наблюдения.

Выделение рабочего пространства. Выделение рабочей памяти для объектного пространства происходит по заранее подготовленным исходным данным.

При формировании пространства образуется двойная система координат объекта:

1) координаты текущего куба;

2) координаты объекта внутри этого куба.

Начального заполнения кадра. Формирование фона в простей-

шем случае осуществляется делением экрана на две половины:

пол/потолок или земля/небо. В более сложных вариантах могут ис-

пользоваться текстуры для этих объектов.

Этап 2

Для вычисления координат первого пересечения используют уравнение прямой:

где α - угол наклона относительно горизонта, xн,yн – положение наблюдателя; xi, yi – искомая точка.Исходя из этой формулы, можно вычислить координаты точек

пересечений с сеткой моделируемого пространства:

Этап 3

Возможны два варианта пересечений луча-наблюдателя с координатной сеткой: с меридианами и параллелями.Пересечение с вертикальными гранями будем называть пересечением с Х-гранями, с горизонтальными – пересечение с Y-гранями.

Согласно вышеприведенным рисункам последовательные вычисления производятся через приращение координат:

Рис.8.2. X- и Y-грани

Здесь: m - размер сетки, k – наклон луча наблюдения относительно координатной сетки.

После определения очередной координаты x или y необходимо проверить наличие в этом кубе объекта. Если на пути следования луча такой объект есть, то переходим к этапу 4. В противном случае этап 3 повторяем.

Этап 4

Расстояние от наблюдателя до ближайшего объекта по направле-

нию следования луча определяется по одной из формул (рис.7.3):

Этап 5

Определив расстояние до точки пересечения, можно определить масштаб ее отображения в кадре:

где k - коэффициент, подбирающийся эмпирически.

Этап 6

Необходимость устранения искажений объясняется тем, что при формировании кадра, содержащего объекты, находящиеся на малом расстоянии друг от друга, возникает эффект рыбьего глаза (рис.7.4).

Для устранения искажения масштаб S делят на cos β:

где β - отклонение луча от нормального изображения.

Этап 7

Если для отображения куба используются не текстурированные объекты (одного цвета), то вертикальная линия развертки определяется следующим образом

где L0- линия горизонта, S’ – величина, полученная на предыдущем

этапе.__

Конец 62 вопроса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]