Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по компьютерной графике [по билетам].doc
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
805.89 Кб
Скачать

Пирамидальное фильтрование (Mip-mapping).

Если посмотреть на текстурированную поверхность, находящуюся на большом расстоянии, то вместо рисунка текстуры мы увидим фактически случайный набор точек. Это связано с тем, что здесь одному пикселю экрана соответствует сразу несколько пикселей текстуры.Пусть исходное изображение имеет размер 2n на 2n. Построим по нему последовательность изображений, являющихся копиями данного и имеющими размеры 2n-1, 2n-2 и т. д. Размер последнего изображения будет 1 на 1 пиксель. В результате получим пирамиду (mip-map), состоящую из (n+1) уровня, где на нижнем (0-м) уровне находится исходное изображение. Вся пирамида занимает объем памяти, необходимый для размещения 22n-1 пикселей.

Изображение k-го уровня строится из изображения (к-1)-ого уровня следующим образом: цвет пикселя определяется билинейной интерполяцией цветов соответствующих 4-ех пикселей изображения предшествующего уровня.

Проверка выпуклости и определение нормалей Вопрос 27 Алгоритм с использованием векторных произведений

Проверка на выпуклость может производиться анализом знаков векторных произведений смежных ребер |[A\vec] ×[B\vec]| = A·B · sin (AB )

  1. в одной вершине = 0, то вершина вырождена, т.е. смежные ребра лежат на одной прямой (рис. 15б, вершина Q).

  2. все знаки равны 0, то многоугольник отсечения вырождается в отрезок.

  3. Если же векторные произведения имеют разные знаки, то многоугольник отсечения невыпуклый

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

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

Разбиение невыпуклых многоугольников. Алгоритм метода при обходе вершин многоугольника против часовой стрелки состоит в следующем:

  1. Для каждой i-й вершины многоугольник сдвигается для переноса упомянутой вершины в начало координат.

  2. Многоугольник поворачивается против часовой стрелки для совмещения (i+1)-й вершины с положительной полуосью X. Вектор внутреннего перпендикуляра к ребру, образованному вершинами i-й и (i+1)-й, вычисляется поворотом ребра на -90°

  3. Анализируется знак Y-координаты (i+2)-й вершины. Если Yi+2 і >=0, то в (i+1)-й вершине выпуклость, иначе невыпуклость. Если имеется невыпуклость, то многоугольник разрезается на два вдоль положительной полуоси X. Так как вновь полученные многоугольники могут в свою очередь оказаться невыпуклыми, алгоритм применяется к ним, пока все многоугольники не станут выпуклыми.

Отсечение многоугольника

Будем называть многоугольник, используемый в качестве окна отсечения отсекателем, а многоугольник, который отсекается, - от­секаемым.

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

Билет 17

Построение реалистических изображений – глобальные модели освещения: трассировка лучей и метод излучательности