- •Пугачев а.И.
- •1.1. Растровые изображения
- •1.2. Графические устройства ввода-вывода
- •1.3. Видеоадаптеры
- •2.1. Двумерные примитивы
- •2.2. Визуализация на дискретной области вывода
- •2.3. Визуализация отрезков прямых
- •2.5. Кривые Безье
- •2.7. Алгоритм закрашивания ориентированных многоугольников
- •2.8. Теоретико-множественные операции над двумерными областями
- •2.9. Построчный алгоритм тмо
- •2.10. Программная организация данных для представления сложных объектов
- •3.1. Двумерные геометрические преобразования
- •3.2. Совмещение преобразований. Преобразование относительно заданного центра
- •3.4. Непрерывные геометрические преобразования
- •3.5. Линейные преобразования фрагментов изображения
- •4.1. Трехмерные примитивы
- •4.2. Аппроксимация криволинейных поверхностей
- •4.3. Многогранники и сложные объекты
- •4.4. Свет и цвет
- •4.5. Диффузная модель распространения света
- •4.6. Зеркальное отражение света
- •4.7. Трехмерные геометрические преобразования
- •4.8. Проецирование трехмерных объектов
- •4.9. Ориентация и потенциальная видимость поверхностей
- •4.10. Удаление невидимых точек поверхностей
- •4.11. Метод визуального сглаживания Гуро
- •4.12. Метод визуального сглаживания Фонга
- •4.13. Системы координат в пространственной сцене
- •4.14. Алгоритмы трехмерной визуализации
- •4.15. Построение изображения с тенями
- •Основы компьютерной графики
4.6. Зеркальное отражение света
В диффузной модели предполагалось, что свет, падающий от источников на поверхности объектов, отражается равномерно по всем направлениям, в том числе и в направлении плоскости проекций. Эта модель хорошо соответствует реальным объектам с матовой поверхностью, однако поверхности многих предметов, особенно металлических, обладают ярко выраженными зеркальными свойствами. Для них наибольшая доля света рассеивается от поверхности в соответствии с законом зеркального отражения: угол падения равен углу отражения (рис. 4.8). Модели распространения света, учитывающие зеркальные свойства поверхностей, называются рефлексными [8].
На рис. 4.8 L – вектор направления на источник света; N – нормальный вектор к поверхности.
Рис. 4.8
Яркость света, отраженного в направлении V плоскости проекции, зависит от величины угла α между вектором Vr направления зеркального отражения и вектором V. Эта зависимость различна для разных материалов и гладкости их поверхности. Для реальных материалов она определяется экспериментально. При машинном же синтезе изображений виртуальных объектов для качественного моделирования зеркальности чаще используют эмпирические модели. Так, в рефлексной модели, предложенной Фонгом [1, 5], интенсивность света, отраженного в направлении вектора V, считается пропорциональной величине сosn α, где n – коэффициент зеркальности. На практике значение n выбирают в диапазоне 1 – 200.
Если векторы Vr и V уже нормированы, то сos α можно рассчитать как скалярное произведение этих векторов, т.е. . Тогда формулы для расчета значений цветовых компонент света, отраженного в направлении плоскости проекции (наблюдателя), примут следующий вид:
(4.21)
(4.22)
(4.23)
Формулы (4.21) – (4.23) отражают обе модели распространения света – диффузную и рефлексную.
4.7. Трехмерные геометрические преобразования
Так же, как и в двумерной графике, при интерактивной работе с трехмерными объектами над ними приходится производить различные геометрические преобразования. Трехмерные линейные преобразования в однородных координатах отличаются от двумерных только числом координат и размерностью матриц преобразования, равной 4 x 4.
В общем виде линейное трехмерное преобразование с матрицей W в однородных координатах x, y, z, v представляется следующим образом:
(4.24)
Здесь C = [x y z 1] – матрица исходных координат; C’ = [x' y' z' v] – матрица новых координат после преобразования.
Важно иметь в виду, что значение координаты v остается равным 1 только в таких преобразованиях, для которых w14, w24, w34 = 0 и w44 = 1. В противном случае для перехода к обычной системе координат необходимо выполнить пересчет:
x = x' / v; y = y' / v; z = z' / v. (4.25)
Приведем формулы для основных видов геометрических преобразований в пространстве.
Преобразование перемещения
(4.26)
Здесь mx, my, mz – составляющие перемещения по соответствующим осям.
Преобразование масштабирования относительно начала координат
(4.27)
Здесь sx, sy, sz – масштабные коэффициенты по соответствующим осям. Ограничения на значения масштабных коэффициентов здесь те же, что и для двумерного случая.
Преобразование поворота относительно оси OX на угол φ
(4.28)
Преобразование поворота относительно оси OY на угол φ
(4.29)
Преобразование поворота относительно оси OZ на угол φ
(4.30)
Стоит отметить, что формула (4.5) в п. 4.1 для поверхности вращения получена путем применения преобразования вращения вокруг оси OZ к кривой, заданной параметрической функцией P(u).
Для выполнения трехмерных преобразований относительно заданного центра сначала его следует совместить с началом координат, затем выполнить заданное преобразование относительно начала координат, а после этого сместить объект и центр в исходное положение.