Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
quest_KG_2010.doc
Скачиваний:
10
Добавлен:
15.04.2019
Размер:
419.33 Кб
Скачать

39. Трехмерные преобразования

Рассмотрим трехмерную декартовую систему координат. Из курса геометрии известно, что точка в трехмерном пространстве описывается радиус-вектором r и координатами (x,y,z). Для реализации трехмерных преобразований с помощью матриц необходимо перейти к однородным координатам (x,y,z,1).

Тогда матрица трехмерного преобразования А (переноса, масштабирования, поворота) в общем виде будет следующей:

где матрица A1 осуществляет линейное преобразование в виде изменения масштаба, сдвига и вращения, вектор (a41,a42,a43) производит перенос объекта, а вектор-столбец (a14,a24,a34)T − преобразования в перспективе. Скалярный элемент a44 выполняет общее изменение масштаба.

40. Трехмерный сдвиг. Трехмерные вращения.

Трехмерный сдвиг

Недиагональные элементы матрицы A1 осуществляют сдвиг в трех измерениях, т.е.

Трехмерное вращение

Матрица поворота вокруг оси Oz имеет вид:

Матрица поворота вокруг оси Ox имеет вид:

и вокруг оси Oy:

Обратные преобразования будут выражаться обратными матрицами. Для операции переноса надо лишь заменить знаки компонент вектора переноса на противоположные:

для операции масштабирования − на обратные значения:

для поворота − выбором отрицательного угла поворота: .

Результатом нескольких последовательных поворотов будет матрица

Здесь верхняя матрица размером 3x3 является ортогональной.

41. Закраска Гуро

Метод закраски, который основан на интерполяции интенсивности и известен как метод Гуро (по имени его разработчика), позволяет устранить дискретность изменения интенсивности. Процесс закраски по методу Гуро осуществляется в четыре этапа:

1. Вычисляются нормали ко всем полигонам.

2.Определяются нормали в вершинах путем усреднения нормалей по всем полигональным граням, которым принадлежит вершина.

Нормали к вершинам:  v=( 1 +  2 +  3 +  4 +  v)/4

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

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

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

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

42. Закраска Фонга

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

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

Чтобы закрасить куски бикубической поверхности, для каждого пиксела, исходя из уравнений поверхности, вычисляется нормаль к поверхности. Этот процесс тоже достаточно дорогой. Затем с помощью любой модели закраски определяется значение интенсивности. Однако прежде чем применить метод закраски к плоским или бикубическим поверхностям, необходимо иметь информацию о том, какие источники света (если они имеются) в действительности освещают точку. Поэтому мы должны рассматривать также и тени.

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