ЛекцииММ2 (Курс электронных лекций), страница 3
Описание файла
Файл "ЛекцииММ2" внутри архива находится в папке "Курс электронных лекций". Документ из архива "Курс электронных лекций", который расположен в категории "". Всё это находится в предмете "технологии мультимедиа" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "технологии мультимедиа" в общих файлах.
Онлайн просмотр документа "ЛекцииММ2"
Текст 3 страницы из документа "ЛекцииММ2"
Определением принадлежности пикселя экрана многоугольнику.
Штриховкой.
Ускоренный метод построчного заполнения.
Определение принадлежности пикселя многоугольнику. Простейший способ заполнения многоугольника – определять, принадлежит ли пиксель многоугольнику или нет.
Если пиксель внутри - суммарный угол, составленный отрезками, соединяющих пиксель и вершины = 360°. Пиксель снаружи – суммарный угол = 0°
Штриховка. Просматриваются пиксели, лежащие на одной строке и закрашиваются те, которые принадлежат многоугольнику.
Для каждой строки сканирования вычисляются X - координаты пересечений со всеми ребрами, X - координаты пересечений сортируются, закраска ведется между парами отсортированных координат.
Ускоренное построчное заполнение. Смена интервалов закраски происходит только тогда, когда в строке сканирования появляется вершина.
Зная X-координату пересечения с i-ой строкой легко вычислить пересечение с i+1-ой:
|
где k = dy/dx - тангенс угла наклона ребра
Для каждой строки рассматриваются только те ребра, которые пересекают строку. Они задаются списком активных ребер (САР). При переходе к следующей строке перевычисляются X-координаты пересечений. При появлении в строке сканирования вершин производится перестройка САР.
Общая схема алгоритма:
Подготовить массивы Y-координат вершин и номеров вершин.
Совместно отсортировать Y-координаты по возрастанию и массив номеров вершин.
Определить пределы заполнения по оси Y - Y_мin и Y_max. Стартуя с текущим значением Y_tek = Y_min, исполнять пункты 4-9 до завершения раскраски.
Определить число вершин, расположенных на текущей строке Y_tek.
Если вершины есть, то для каждой из вершин дополнить список активных ребер.Для каждого ребра в список активных ребер заносятся:
Ymax ребра,
dX при увеличении Y на 1,
Xначальное ребра.
Горизонтальные ребра тут же закрашиваются и информация о них в список активных ребер не заносится. Если после этого обнаруживается, что список активных ребер пуст, то заполнение закончено.
По списку активных ребер определяется Y_след - Y-координата ближайшей вершины. (До Y_след нет модификации САР а только меняются X-координаты пересечений строки сканирования с активными ребрами).
В цикле от Y_tek до Y_след:
выбрать из списка активных ребер и отсортировать X-координаты пересечений активных ребер со строкой сканирования;
определить интервалы и выполнить закраску;
перевычислить координаты пересечений для следующей строки сканирования.
Проверить не достигли ли максимальной Y-координаты. Если достигли, то заливка закончена, иначе выполнить пункт 9.
Очистить список активных ребер от ребер, закончившихся на строке Y_след и перейти к пункту 4.
Результаты работы
Заливка области с затравкой . Задаются: · заливаемая (перекрашиваемая) область,· код пиксела, которым будет выполняться заливка, начальная точка в области, начиная с которой начнется заливка.
По способу задания области делятся на 2 типа:
- гранично-определенные, задаваемые своей (замкнутой) границей, нарисованной определенным кодом пикселя.
· внутренне-определенные, нарисованные одним определенным кодом пикселя.
Правая и левая системы координат
Система координат называется правой, если для совмещения с положительной полуосью Y положительную полуось X требуется повернуть на +90 при этом направление движения расположенного вдоль оси Z и поворачивающегося против часовой стрелки правого винта и положительной полуоси Z совпадают.
В однородных координатах точка представляется четырехмерным вектором [ x y z w ], где w 0, а матрицы преобразований имеют размер 4×4
Точка в пространстве определяется вектором а с учетом однородных координат - (X,Y,Z,H) или (X*,Y*,Z*,1).
О
бобщенная матрица преобразования для трехмерного случая имеет вид:
Эта матрица состоит из четырех частей:
Матрица 3*3 меняет масштаб, осуществляет сдвиг и вращение изображения, 1*3 – перенос, 3*1 – преобразование в перспективе, 1*1 – общее изменение масштаба.
( X,Y,Z,1)* = (AX, EY, JZ, 1).
Сдвиг:
(X,Y,Z,1)* =(X+YD+HZ, BX+Y+IZ,CX+FY+Z,1).
Вращение:
TX= TY=
Tz=
где T – вращение относительно указанной оси.
Пространственный перенос:
( X,Y,Z,1)* = (X+L, Y+M, Z+N, 1).
Проецирование:
T=
Комбинированные вращения, которые следуют за проецированием из центра, лежащего в бесконечности, являются основой для получения аксонометрических проекций всех типов. Для наиболее распространенных типов аксонометрических проекций - изометрии и диметрии - углы поворота имеют следующие значения: az =-450, bx=350, gy=-200; dx=200.
Для построения косоугольных проекций пользуются различными вариантами сдвига.
Для получения псевдореального изображения в центральной проекции оси координат следует расположить следующим образом. Начало координат расположить в левом нижнем углу. Ось X направить направо, ось Y наверх, ось Z вглубь экрана, от наблюдателя. Расстояние до экрана обозначить через z0<0, (x,y,z) – координаты объекта в пространстве, (X,Y) – на экране. Тогда матрица преобразования имеет вид:
Т.к. величина H должна быть равна 1, то последний вектор надо разделить на H.
Реалистичное представление сцен
Включает:
Модели освещения.
Механизмы отражения света.
Модели закраски.
Прозрачность.
Тени.
Фактура.
Трассировка лучей.
Излучательность.
Источники света подразделяются на:
излучающие и отражающие, источники точечные и распределенные, источники рассеянного света.
Поверхности: отражающие, поглощающие, полупрозрачные, рассеивающие.
Диффузное отражение
Закон Ламберта - падающий свет рассеивается во все стороны с одинаковой интенсивностью. Освещенность точки пропорциональна доле ее площади, видимой от источника.
|
Ir - интенсивность отраженного света,
Ip - интенсивность точечного источника,
Pd- коэффициент диффузного отражения, зависящий от материала поверхности и длины волны,
q - угол между направлением света и нормалью к поверхности.
Учет рассеянного света
|
Ir - интенсивность рассеянного света,
Pr- коэффициент отражения рассеянного света.
d- расстояние от центра проекции до объекта, при параллельной проекции d - расстояние от объекта, ближайшего к наблюдателю,
K - произвольная константа.
Зеркальное отражение
a)Зеркальное отражение |
б) Отражение от блестящей поверхности |
в) Отражение от тусклой поверхности |
[L\vec] - ед. вектор направления на источник света.[N\vec] - нормаль к поверхности.[R\vec] - ед. вектор направления идеального отражения.[V\vec] - ед. вектор направления к наблюдателю.
Эмпирическая модель Фонга:
|
W(l, q) - кривая отражения,-p/2 Ј f Ј p/2,1 Ј n Ј 200,
Для идеального отражателя n = Ґ.
Для тусклых, негладких поверхностей типа мела или сажи n » 1.
Зависимость cosn(f) от значения параметра отражения n:
Часто W(l, q) заменяется константой Ks, такой, чтобы полученная картина была субъективно приемлема.
Суммарная модель освещения:
Или при замене W(l, q) на константу Ks:
Для поверхностей, представленных например в виде бикубических кусков, каждое произведение меняется в пределах куска.
Фонг предложил алгоритм пошагового вычисления по рассмотренной модели, существенно снижающий затраты.
Модели с микрогранями
Отражающая поверхность представлена в виде плоских микрограней.
Ориентации нормалей к граням относительно нормали к средней линии поверхности задаются некоторым распределением, например, Гаусса.
Модели закраски.
Однотонная (и источник и наблюдатель в бесконечности).
Метод Гуро.
Метод Фонга.
Прозрачность.
Без учета преломления.
С учетом преломления.
Суммарная закраска:
|
K - характеризует прозрачность ближнего многоугольника. Если k = 1, то он непрозрачен. Если k = 0, то ближний многоугольник полностью прозрачен. Iб - интенсивность для пикселя ближнего многоугольника. Iд - дальнего.
Тени. Объект невидимый из источника света находится в тени.
Шаги алгоритма:
Определяются все многоугольники, видимые из точки освещения.
Удаление поверхностей невидимых из точки зрения.
Закраска многоугольников. Если видим из источника освещения, то учитываются диффузное и зеркальное отражения и рассеянный свет. Если невидим, то многоугольник в тени и надо учитывать рассеянное освещение.
Трассировка лучей : прямая трассировка лучей, обратная трассировка лучей.
Прямая трассировка лучей
Расчет освещения сцены:
- от всех источников света испускаются лучи во всех направлениях;
- расчитываются преломление и отражение каждого луча, в том числе и отраженного, т.е. каждая точка сцены может освещаться либо напрямую источником, либо отраженным светом;
- часть лучей, попавшая в глаз наблюдателя, сформирует в нем изображение сцены.
Изображение формирует только малая часть лучей.