Метод Гаусса-Зейделя решения систем линейных уравнений, Алгоритм Z-буфера - Моделирование воздействия теплового излучения на элементы космического аппарата

Для решения системы линейных уравнений (4.18) воспользуемся итерационным методом Гаусса-Зейделя. Перепишем (4.18) в матричном виде:

(4.14)

Матрица А разлагается на нижнюю треугольную с главной диагональю и верхнюю треугольную U:

(4.15)

Тогда система преобразуется:

(4.16)

И переписывая как итерационный процесс:

(4.17)

Где и k-ое и (k+1)-ое приближение точного решения :

(4.18)

Так как - верхняя треугольная, то компоненты вектора могут быть найдены методом прямой подстановки:

(4.19)

Где i, j = 1, 2, ..., n.

Алгоритм Z-буфера

Преобразования вида

Для определения функции видимости в программе используется алгоритм Z-буфера. Идея метода состоит в том, чтобы поместить камеру в центр излучающего объекта в направлении излучения, затем все объекты рассматриваемой сцены приводятся к системе координат связанной с позицией камеры и направлением ее видимости, из точки позиции камеры моделируется луч в направлении рассматриваемого треугольника, и функция видимости проверяет пересечения луча с остальными объектам сцены. Если зафиксировано несколько пересечений, программа сравнивает расстояние до пересеченных объектов и рассчитывает излучение с ближайшим, отсортировывая остальные [4].

При работе с трехмерными моделями для корректного представления вводятся такие понятия матрицы преобразования камеры и матрицы преобразования вида. Матрица преобразования камеры действуя на вектор координат положения камеры меняет ее положение и ориентацию в заданном фрейме. Матрица вида преобразует все координаты из фрейма сцены в фрейм вида камеры. Определяя матричные операторы как составленные из векторов-столбцов координатных ортов фрейма, получаем для каждого вектора:

(4.20)

Где v - исходный вектор,

М - матричный оператор аффинного преобразования,

V' - преобразованный вектор.

Здесь оператор М - суперпозиция канонических преобразований:

(4.21)

Где Т - оператор трансляции, R - оператор поворота.

Камера является объектом сцены, поэтому для смены положения камеры применяется оператор М. Поскольку сцена рендерится с позиции камеры в пространстве, то для преобразования всех объектов сцены во фрейм камеры, требуется найти преобразование V такое, что:

(4.22)

Где I - единичная матрица. Получаем, что искомое преобразование:

(4.23)

Координатная система камеры образуется тремя ортонормированными векторами, а позиция камеры определяется точкой в исходном фрейме, которая также является началом координат фрейма камеры. По определению камера "смотрит" в направлении, которое можно вычислить, зная точку визирования :

(4.24)

Остальные координатные орты можно определить, используя вектор (0,0,1), тогда:

(4.25)

(4.26)

Теперь можно определить оператор преобразования объектов исходной системы координат во фрейм камеры. Объединяя оператор трансляции и оператор поворота в матрицу 4х4, получим оператор изменения положения и ориентации камеры в исходном фрейме:

(4.27)

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

(4.28)

Так как матрица R ортогональная, а, следовательно, симметричная относительно главной диагонали, то R-1= RT, тогда искомый оператор вычисляется как:

(4.29)

Поиск пересечений луча с объектом

Запишем уравнение луча из начала координат в параметрическом виде:

(4.30)

Где D - нормированный вектор направления луча,

О - начало координат,

T - параметр длины вектора. Положение треугольника определяется координатами его вершин V0, V1, V2.

расчетная схема преобразований вида

Рис. 4. Расчетная схема преобразований вида

Точка на треугольнике определим как:

(4.31)

Где (u, v) - барицентрические координаты точки внутри треугольника, если выполняются условия. Пересечение луча и точки на треугольнике равносильно утверждению или:

(4.32)

Уравнение (4.32) может быть записано в матричном виде как:

(4.33)

Решая систему линейных уравнений (4.49) находим барицентрические координаты точки пересечения (u, v) и расстояние t до нее от начала координат.

Переобозначим, и. Пользуясь метод Крамера, запишем решение системы линейных уравнений (4.34):

(4.34)

Воспользовавшись свойством перестановки элементов смешанного произведения система (4.50) преобразуется:

(4.35)

Где и.

Похожие статьи




Метод Гаусса-Зейделя решения систем линейных уравнений, Алгоритм Z-буфера - Моделирование воздействия теплового излучения на элементы космического аппарата

Предыдущая | Следующая