- •Визуальное представление информации.
- •Взаимосвязь компьютерной геометрии и графики.
- •История развития компьютерной графики.
- •Анализ, синтез и обработка изображений.
- •Виртуальные графические устройства (cgi).
- •Устройства графического ввода. Режимы ввода. Графический пользовательский интерфейс (gui).
- •Устройства вывода изображений. Дисплеи. Качество изображения. Классификация устройств вывода
- •3. По технологическим способам вывода (свечение люминофора, вычерчивание пишущим узлом, перенос красителя и т.П.). Растровые дисплеи
- •Дисплеи на запоминающей трубке
- •0.10.2 Дисплеи с плазменный панелью
- •0.10.3 Дисплеи с жидкокристаллическим индикатором
- •Виртуальные поверхности отображения. Кадровый буфер и таблица цветности.
- •Особенности преобразования вектор - растр. Алгоритмы прочерчивания отрезков прямых.
- •Генерация дуг окружности и эллипса. Алгоритмы заполнения площади. Графические контроллеры. Графические процессоры. Видеокарты в персональном компьютере.
- •Алгоритмы удаления невидимых линий и поверхностей. Основные понятия и определения.
- •Классификация алгоритмов удаления невидимых линий и поверхностей. Алгоритм плавающего горизонта.
- •Алгоритм использующий z-буфер.
- •Алгоритм построчного сканирования.
- •Алгоритм “художника”.
- •Модели освещения. Flat-закраска.
- •Закраска методами Гуро и Фонга.
- •Геометрическое моделирование и интерактивная машинная графика. История развития моделирования поверхностей.
- •Аналитические способы задания поверхностей.
- •Преимущества параметрического способа задания кривых и поверхностей.
- •Отсечение нелицевых граней.
- •Однородные координаты и их особенности.
- •Поворот вокруг фиксированной точки
- •Параметрическое описание кривых.
- •Кубические кривые в форме Безье.
- •Формат файлов для хранения растровых изображений
- •Аддитивная цветовая модель rgb
- •Цветовая модель cmy
- •Аффинные преобразования на плоскости
- •2. Растяжение-сжатие осей координат.
- •3. Поворот.
- •Проекции. Основные типы
- •Модели описания поверхностей. Аналитическая модель
- •Модели описания поверхностей. Векторная полигональная модель
- •Модели описания поверхностей. Воксельная модель
- •Модели описания поверхностей. Равномерная сетка
- •Модели описания поверхностей. Неравномерная сетка. Изолинии.
- •Визуализация объёмных изображений. Каркасная визуализация
- •Алгебра векторов. Вычисление нормалей
Визуализация объёмных изображений. Каркасная визуализация
Любой трехмерный объект может быть изображен по-разному и различными способами. В одном случае можно показать форму объекта, во втором – внутреннюю структуру объекта, в третьем – имитировать реальную действительность, в четвертом – возбудить воображение зрителя чем-то неизвестным. Условно разделим способы визуализации по характеру изображений и по степени сложности соответствующих алгоритмов на такие уровни:
1. Каркасная визуализация («проволочная модель»).
2. Показ поверхностей в виде многогранников с плоскими гранями или сплайнов с удалением невидимых точек.
3. То же, что и для второго уровня, плюс сложное закрашивание объектов для имитации отражения света, затенения, прозрачности, использование текстур.
В порядке усложнения алгоритмов визуализации способы показа трехмерных объектов можно разделить на: 1. Каркасная модель. 2. Удаление невидимых точек. 3. Закрашивание граней с учетом освещения. 4.Имитация гладких поверхностей закрашиванием. 5. Наложение текстуры. 6. Добавление теней.
Простейшая, каркасная, визуализация часто используется в процессе редактирования объемных объектов. Визуализация второго уровня используется для упрощенного показа объемных объектов. Например, для графиков функций z=f(x,y) (в виде рельефа поверхности) часто достаточно показать все грани сетки одним цветом, зато нужно обязательно удалить невидимые точки. Это более сложная процедура в сравнении выводом каркасного изображения Сложность процесса графического вывода возрастает по мере приближения к некоторому идеалу – созданию полной иллюзии естественных, живых, реалистичных изображений. Усилия многих ученых и инженеров всего мира направлены на разработку методов и средств достижения этой цели. Здесь полнее всего ощущается связь компьютерной графики с естественными науками, с дисциплинами, посвященными изучению окружающего мира. Например, для создания реалистичных изображений нужно принимать во внимание законы оптики, которые описывают свет и тень, отражение и преломление. Компьютерная графика находится на стыке многих дисциплин и разделов науки.
Каркасная визуализация. Каркас обычно состоит из отрезков прямых линий – ребер многогранника, хотя можно строить каркас и на основе кривых, в частности сплайновых кривых Безье. Все ребра, которые показаны в окне вывода, видно – как ближние, так и дальние. Для построения каркасного изображения надо знать координаты всех вершин в мировой системе координат. Потом превратить координаты каждой вершины в экранные координаты в соответствий с выбранной проекцией. Потом выполнить цикл вывода в плоскости экрана всех ребер как отрезков прямых (или кривых), соединяющих вершины.
Алгебра векторов. Вычисление нормалей
Алгебра векторов. Вектором называется отрезок прямой, который соединяет некоторые точки пространства А и В. Направление вектора – от начальной точки А к конечной точке В. Радиус-вектор R – это вектор с начальной точкой в центре координат. Координатами радиус-вектора являются координаты конечной точки. Длиной радиус-вектора часто называется модулем, обозначается как |R| и вычисляется следующим образом |R|= .
Единичный вектор – это вектор, длина которого равна единице. Перечислим основные операции над векторами.
Умножение вектора на число. X=Va. Результат – вектор X, длина которого в а раз больше, чем у вектора V. Если число а положительное, то направление вектора X совпадает с вектором V. При а<0 вектор X имеет противоположное вектору V направление. Если V – это радиус-вектор, то координаты вектора результата будут (ac,ay,az), т.е. каждая координата вектора увеличивается в а раз.
Сложение векторов. С=А+В. Результат сложения – это вектор, который соответствует одной из диагоналей параллелограмма, стороны которого – векторы А и В.
Все три вектора лежат в одной плоскости. Для радиус- векторов А и В координаты вектора результата определяются как:
XC=XA+XB; YC=YA+YB; ZC=ZA+ZB;
Разность двух векторов С=А-В можно определить через операцию сложения С=А+(-В). Вектор разности соответствует другой диагонали параллелограмма, изображенного на рис. При вычисление радиус-векторов соответствующие координаты вычисляются:
XC=XA-XB; YC=YA-YB; ZC=ZA-ZB;
3. Скалярное произведение векторов: С=А*В. Результатом операции является число(скаляр), равное произведению длин векторов на косинус угла между ними: С=А*В=|A|*|B|*cosφ. Если А и В – это радиус – векторы, то результат можно вычислить по координатам следующим образом:
С= XA-XB+YA-YB+ZA-ZB;
Векторное произведение векторов: С=АхВ. Результат операции – вектор перпендикулярный к плоскости параллелограмма, образованного сторонами векторов А и В, а длина вектора равняется площади этого параллелограмма. |C|=|A| |B| *sinφ. В случае, если векторы А и В являются радиус-векторами, координаты вектора результата С вычисляются по формулам: XC=YAZB - ZAYB; YC=YAXB - XAZB; ZC=XAYB - YAXB;
Обратите внимание на то, что AхВ=-ВхА. Другими словами, порядок множителей определяет направление вектора результата. В этом можно убедиться, если в формуле координат поменять местами координаты векторов А и В. Кроме того, направление вектора результата операции АхВ зависит и от расположения координатных осей (система координат, изображенная на рисунке называется левой.
Назовите ось y осью x, а ось x осью y (выйдет правая система), а также соответственно поменяйте местами координаты x и y векторов А и В в формуле векторного произведения. В результате такой перестановки координаты вектора С изменят знак, то есть вектор будет иметь противоположное направление.
Вычисление нормалей. Рассматривая модели отражения света, вы, наверное, обратили внимание на то, что нормаль к поверхности – важный элемент. Определение вектора нормали к поверхности в заданной точке может быть выполнено разными способами. В значительной степени это определяется типом модели описания поверхности. Для поверхностей, заданных в аналитической форме, известны методы дифференциальной геометрии, которые основываются на вычислении частных производных функций описания. Например, если поверхность задана параметрическими функциями x=x(s,t), y=y(s,t), z=z(s,t). Тогда координаты нормали можно вычислить так
XN= ; YN= ; ZN= . В случае описания поверхности векторно-полигональной моделью для определения нормалей можно использовать методы векторной алгебры. Пусть в пространстве задана некоторая многогранная поверхность. Рассмотрим одну ее плоскую грань, имеющую вид треугольника. Для вычисления координат вектора нормали воспользуемся векторным произведением любых двух векторов, которые лежат в плоскости грани. Такими векторами могут служить и ребра грани, например, ребра 1-2 и 1-3. Однако формулы для векторного произведения были определены нами только для радиус векторов. Чтобы перейти к радиус-векторам, введем новую систему координат, центр которой совпадает с вершиной 1, а оси – параллельны осям бывшей системы.
Координаты вершин в новой системе: x`=xi-x1; y`=yi-y1; z`=zi-z1; Теперь назовем ребро (1-2) вектором А, а ребро (1-3) – вектором В, как показано на рисунке.
Таким образом, положение нормали к грани в пространстве будет описываться радиус-вектором N. Его координаты в системе (x`,y`,z`) выразим формулами для векторного произведения: xN`=(y2-y1)(z3-z1)- (z2-z1)(y3-y1); yN`=(z2-z1)(x3-x1)- (x2-x1)(z3-z1); zN`=(x2-x1)(y3-y1)- (y2-y1)(x3-x1); плоская грань может быть изображена в разных ракурсах. В каждой конкретной ситуации необходимо выбирать направление нормали, которое соответствует видимой стороне грани. Если плоская грань может быть видна с обратной стороны, то тогда в расчетах отражения света необходимо выбирать для нормали обратный вектор, то есть (-N). Если полигональная поверхность имеет не треугольные грани, а, например, плоские четырехугольные, то расчет нормали можно выполнять по любым трем вершинам грани.