- •Билет №1
- •Понятие геометрического моделирования.
- •Современные графические системы.
- •Билет №2
- •Области исследований и применений гм.
- •Метафайлы
- •Билет №3
- •Модели прямой на плоскости.
- •Билет №4
- •Растровые форматы.
- •Билет №5
- •Форматы графических файлов.
- •Билет №6
- •Программирование графики DirectX.
- •Билет №7
- •Квадратичные и параметрические поверхности.
- •Графическая библиотека OpenGl.
- •Удаление невидимых линий и поверхностей. Z-буферизация.
- •Графические примитивы api Windows.
- •Билет №9
- •Билет №10
- •Метод Фонга.
- •Прямая и обратная трассировка лучей.
- •Билет №11
- •Билет №12
- •Закрашивание поверхностей.
- •Аффинные преобразования в пространстве.
- •Билет №13
- •Билет №14
- •Проективные преобразования.
- •Алгоритмы закрашивания. Кисть и текстура.
- •Билет №15
- •Удаление невидимых граней.
- •Методы моделирования поверхностей.
- •Билет №16
- •Каркасные поверхности.
- •Удаление невидимых линий
- •Билет №17
- •Триангуляция полигона.
- •Точечные поверхности. Метод z-буфера.
- •Билет №20
- •Плоское отсечение отрезка.
- •Геометрические фракталы.
Удаление невидимых линий и поверхностей. Z-буферизация.
Двойная буферизация. OpenGL предоставляет как одинарную так и двойную буферизацию. Двойная буферизация используется для того, чтобы устранить мерцание при мультипликации, т.е. изображение каждого кадра сначала рисуется во втором(невидимом) буфере, а потом, когда кадр полностью нарисован, весь буфер отображается на экране.
Наложение текстуры. Позволяет придавать объектам реалистичность. На объект, например шар, накладывается текстура (просто какое-то изображение), в результате чего наш объект теперь выглядит не просто как шар, а как разноцветный мячик.
Сглаживание. Сглаживание позволяет скрыть ступенчатость, свойственную растровым дисплеям. Сглаживание изменяет интенсивность и цвет пикселей около линии, при этом линия смотрится на экране без всяких зигзагов.
Освещение. Позволяет задавать источники света, их расположение, интенсивность, и т.д.
Атмосферные эффекты. Например, туман, дым. Всё это также позволяет придать объектам или сцене реалистичность, а также "почувствовать" глубину сцены.
Прозрачность объектов.
Использование списков изображений.
Билет №8
Графические примитивы api Windows.
Интерфейс программирования приложений (иногда интерфейс прикладного программирования) (англ. application programming interface, API) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.
Графические примитивы – это заранее определенные элементы, которые можно поместить в чертеж при помощи одной команды. Каждый графический примитив формируется на основании геометрического описания объекта.
Под графическими примитивами понимаются минимальные графические объекты, которые составляют векторный рисунок.
Графические примитивы: точка, отрезок прямой, прямоугольник, окружность
Примитивы имеют следующие свойства: - Цвет (color); - Тип линий (linetype); - Масштаб типа линий ; - Принадлежность слою ; - Уровень и высота (elevation)
Над примитивами можно выполнять следующие операции: Создавать, Удалять, Устанавливать свойства, Получать копии, Перемещать, Поворачивать, Отображать зеркально, Масштабировать, Штриховать, Закрашивать и др.
Основные задачи геометрической оптики.
Геометри́ческая о́птика — раздел оптики, изучающий законы распространения света в прозрачных средах и принципы построения изображений при прохождении света в оптических системах без учёта его волновых свойств.
В основе геометрической оптики лежат несколько простых эмпирических законов:
Закон прямолинейного распространения света
Закон независимого распространения лучей
Закон отражения света
Закон преломления света (Закон Снеллиуса, или Снелла)
Закон обратимости светового луча. Согласно ему, луч света, распространившийся по определённой траектории в одном направлении, повторит свой ход в точности при распространении и в обратном направлении.
Билет №9
Лучевые методы построения оптических эффектов.
Лучевые методы построения оптических эффектов: тень, отражение, преломление
Вам хорошо известно, что различные предметы отбрасывают тень. На рис. 1 изображён точечный источник света S и непрозрачный предмет — красный треугольник. На экране мы видим тень этого предмета в виде серого треугольника.
Рис. 1. Геометрическая тень
Если на пути световых лучей оказывается непрозрачный предмет, то происходит следующее.
- Луч, идущий мимо предмета, продолжает распространяться в прежнем направлении —как если бы данного предмета вообще не было.
- Луч, попадающий на предмет, не проникает внутрь предмета. Дальнейший ход такого луча в прежнем направлении пресекается.
Так возникает геометрическая тень, края которой чётко очерчены. Поскольку свет распространяется прямолинейно, форма геометрической тени оказывается подобной контуру предмета. Так, на рис. 1 серый треугольник подобен красному.
Когда световой луч падает на границу раздела двух сред, происходит отражение света: луч изменяет направление своего хода и возвращается в исходную среду.
На рис. 2 изображены падающий луч AO, отражённый луч OB, а также перпендикуляр OC, проведённый к отражающей поверхности KL в точке падения O.
Рис. 2. Закон отражения
Угол AOC называется углом падения. Обратите внимание и запомните: угол падения отсчитывается от перпендикуляра к отражающей поверхности, а не от самой поверхности! Точно так же угол отражения — это угол BOC, образованный отражённым лучом и перпендикуляром к поверхности.
На границе раздела двух прозрачных сред наряду с отражением света наблюдается его преломление — свет, переходя в другую среду, меняет направление своего распространения. Преломление светового луча происходит при его наклонном падении на поверхность раздела. Если же луч падает перпендикулярно поверхности, то преломления не будет — во второй среде луч сохранит своё направление и также пойдёт перпендикулярно поверхности.
Закон преломления.
1) Падающий луч, преломлённый луч и нормаль к поверхности раздела сред, проведённая в точке падения, лежат в одной плоскости.
2) Отношение синуса угла падения к синусу угла преломления равно отношению показателя преломления второй среды к показателю преломления первой среды:
Методы компьютерной анимации.
Методы компьютерной анимации разделяют на методы, основанные на процедурной анимации, и методы, основанные на использовании ключевых кадров.
Процедурная анимация В этом виде анимации движение алгоритмически описывается списком преобразований (переносов, поворотов и т.д.). Каждое преобразование определяется параметрами (такими как угол поворота). Эти параметры могут изменяться в процессе анимации согласно законам физики.
Анимация, основанная на использовании ключевых кадров Задание анимации объектов во многих ранних компьютерных анимационных системах было основано на задании значений переменных, связанных с этими объектами, на некоторых кадрах (называемых ключевыми), и автоматизированном расчете значений этих переменных в остальных кадрах. Вышеупомянутые переменные могут отражать в себе координаты положения или углы ориентации объекта, степень прозрачности грани объекта и т.д. Эти переменные в литературе часто называют сочлененными переменными (articulation variables – avars).
Интерполяция В кадрах, которые не являются ключевыми, значения интересующих параметров получают, интерполируя значения в ключевых кадрах. При этом, основываясь на особенностях конкретной решаемой задачи, рассматривают следующие моменты: Выбирают между интерполяцией и аппроксимацией. Если задано множество точек, описывающих кривую, важно вначале определить, представляют ли заданные в ключевых кадрах значения точки, через которые кривая должна пройти, или они используются для управления формой кривой и не являются точными значениями. В первом случае часто используют сплайны Эрмита и сплайны Кэтмула-Рома. Во втором – кривые Безье и Б-сплайны.
Рисунок 6 – интерполяция (слева) и аппроксимация (справа) Сложность. Напрямую зависит от выбранного интерполирующего уравнения – чем оно проще, тем быстрее вычислить значение интерполирующей функции, заданной этим уравнением. Непрерывность. Выбор интерполирующего или уравнения в зависимости от необходимой гладкости кривой. Глобальное или локальное управление. Определение метода интерполирования в зависимости от нужд пользователя при редактировании значений кривой в ключевых кадрах – необходимо ли, чтобы при изменении значения в какой-либо ключевом кадре менялась вся кривая, либо только ее ограниченная область.
Управление скоростью Построение кривой, связанной со значениями параметром в ключевых кадрах, является только первым шагом в анимации. Скорость, с которой происходит движение вдоль кривой, зачастую должна быть под контролем аниматора. Прежде всего, он должен иметь возможность двигаться вдоль кривой значений параметров с постоянным шагом, после чего он может легко ускорить или замедлить движение. Для движения с постоянным шагом требуется установить связь между расстоянием вдоль кривой и значением параметра. Эту связь называют параметризацией длиной дуги пространственной кривой. Для ее определения используют методы численного интегрирования. После параметризации пространственной кривой становится возможным управлять скоростью, с которой происходит движение по кривой.
Движение вдоль кривой. Различные сложности могут возникнуть при движении (изменении интересующего параметра) по выбранной кривой с определенной скоростью. Если, к примеру, этим параметром является положение трехмерного объекта, а параметрической кривой – траектория его движения, то необходимо принять во внимание также и ориентацию объекта. Если объект или камера движутся вдоль кривой, то их ориентацию можно сделать непосредственно зависимой от кривой. Для этого используют рамку Френе. Рамку Френе определяют как движущуюся правостороннюю координатную систему, задаваемую тремя нормализованными векторами T, N, B, где T – вектор, обладающий направлением касательной к кривой, B ортогонален к T и имеет направление второй производной кривой, N является векторным произведением T и B [4].
Рисунок 7 – рамка Френе При движении камеры по кривой для определения ее ориентации обычно опираются на задание точки, в которую камера смотрит (центр интереса камеры). Если один объект движется по поверхности другого объекта, то ориентацию первого можно рассчитывать исходя из нормали к поверхности второго в точке, где находится первый объект.
Преобразование кривой в кривую Параметрами, заданными в ключевых кадрах, также могут быть кривые. К примеру, в одном ключевом кадре задана окружность, в следующем – граница квадрата. Задача состоит в определении промежуточных кадров (т.е. в определении кривых, составляющих анимацию перехода от окружности к квадрату). В общем случае решение задачи зависит напрямую от способа задания кривых. В простом случае, если известно поточечное соответствие между кривыми в ключевых кадрах, то решение данной задачи сводится к интерполяции между соответствующими точками кривых во времени.
Рисунок 8 – преобразование окружности в границу квадрата
В другом случае, если кривые заданы коэффициентами параметрических функций, то промежуточные кривые получают посредством интерполяции параметров этих функций.
Интерполяция между трехмерными объектами Общего решения пока не существует. Однако для частных случаев есть решения. Методы этих решений делят на две категории
1.основанные на работе с поверхностями (surface based). Используют граничное представление объектов и изменяют один из них или оба, чтобы их реберно-вершинные топологии совпадали. После этого вершины объектов интерполируют между собой. Имеются ограничения на типы объектов, с которыми они могут работать, особенно на объекты со сквозными дырками через них. 2.основанные на работа с объемами (volume based). Рассматривают объемы, заключенные внутри объектов, и приводят один объем к другому. Эти методы имеют преимущество в том, что они менее чувствительны к различным топологиям объектов. Вычислительно более затратные, чем методы, основанные на работе с поверхностями. Деформация 2D и 3D объектов Объекты с одинаковой структурой ребер могут быть интерполированы между ключевыми кадрами по вершинам этих ребер для плавного перехода от одной формы объекта к другой. Стоит сказать несколько слов о возможностях и методах, которые предоставляют средства анимации для деформации двумерных и трехмерных объектов, чтобы задавать их в ключевых кадрах. Искажение объекта. Аниматор может двигать за какие-то вершины на объекте, при этом изменяются либо только смежные с этой вершиной точки, либо более широкая область.
Рисунок 9 – преобразование окружности в границу квадрата
Деформация координатной сетки.
Метод приписывается Сэдербергу Выбирается локальная система координат, связанная с объектом. Эта локальная координатная система каким-либо образом искажается пользователем, и локальные координаты вершин отображаются в глобальной системе координат.
Рисунок 10 – деформация координатной сетки
Методы, связанные со структурными моделями объекта Часто более важной задачей для аниматора является создать общее качество движения, нежели точно управлять положением и ориентацией каждого объекта в каждом кадре. Это имеет место в случае физического моделирования; при работе с большим количеством объектов; при анимировании объектов, движение которых ограничено тем или иным образом; при работе с фоновыми объектами, точное движение которых не является важным для анимации. В таких случаях выявляют структуру работы анимируемого объекта, и на ее основе строят структурную модель. Разделяют кинематические и динамические структурные модели. Кинематическое управление относится к движению объектов без рассмотрения сил, вовлеченных в получение движения. Динамическое управление связано с вычислением сил, используемых для получения движения.
