Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко.

Презентация:



Advertisements
Похожие презентации
Кривые и поверхности высших порядков Астана 2004 Лекция 12.
Advertisements

Лекция апреля 2002 г. Прямые Кривые Поверхности.
Лекция февраля 2003 г. (Астана) Прямые Кривые Поверхности.
Растеризация. Прямые. Кривые. Поверхности. Андрей Татаринов Растеризация. Прямые. Кривые. Поверхности.
Текстуры. Композиты Лекция 11 Алексей Игнатенко. На прошлой лекции Удаление невидимых поверхностей Удаление нелицевых граней Алгоритм художника Двоичное.
Параметрическое представление плоских и пространственных кривых При параметрическом задании кривая представляется векторной функцией r 1, r 2, r 3 - радиус.
Свойства базиса Бернштейна (функций полиномиальной аппроксимации) Вещественны Не зависят от опорных точек, значения аппроксимирующих функций ненулевые.
В-сплайны При построении В-сплайна – цель найти непрерывную(p-1)(p-степень многочлена)раз дифференцируемую функцию, принимающую ненулевые значения только.
Математический аппарат компьютерной графики. Интерполяция. Сплайны. Лекция 6.
Основные сведения из математики, необходимые для понимания геометрических моделей Три главных формы математического представления кривых и поверхностей.
Способы построения поверхностей Поверхности, составные поверхности Аналитические- квадратичные поверхности Построенные на базе точек Построенные на базе.
Растеризация Текстуры Композиты. На лекции 4-е задание Задача растеризации Текстурирование Определение Текстурные отображения для сферы, тора, цилиндра.
Графический конвейер Преобразования геометрии Александр Шубин.
Гладкая и регулярная поверхности Параметрическое задание поверхности Поверхность Q называется C r - гладкой относительно заданной параметризации, если.
Геометрическое моделирование трехмерных объектов..
Производная функции. Производная функции (1) Пусть функция определена в некоторой окрестности точки (включая точку ). Определение 1. Определение 2. Касательной.
ПРИБЛИЖЁННОЕ ВЫЧИСЛЕНИЕ ОПРЕДЕЛЁННОГО ИНТЕГРАЛА ПО ФОРМУЛАМ ПРЯМОУГОЛЬНИКОВ И ТРАПЕЦИЙ. ОЦЕНКА ПОГРЕШНОСТИ ВЫЧИСЛЕНИЙ. Мелков Владислав, 2Л21.
Curves Галинский В.А. Физико-математический лицей 30 Computer Graphics Support Group 1 Кривые и поверхности в компьютерной графике URL:
Определение функции n переменных. Геометрическая интерпретация в случае задания функции двух переменных. Задание функций. Классификация множеств пространства.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 9 3 ноября 2009 Задача интерполяции (гладкого восполнения функций)
Транксрипт:

Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко

На прошлой лекции Текстурирование Использование изображений для моделирования (отражающих) свойств поверхности Виды текстурирования –bump mapping, specular mapping, environment mapping, displacement mapping, transparency mapping Отображение текстуры Фильтрация текстуры –Метод ближайшего соседа, Билинейная фильтрация, Мип- мэппинг, Трилинейная фильтрация, Анизотропная фильтрация Композирование Объединение двух или более независимо подготовленных изображений в одно изображение, обычно с помощью попиксельного вычисления полупрозрачности

На лекции Растеризация прямой и окружности Алгоритм Брезенхема Кривые высших порядков Кривые Безье B-сплайны Рациональные сплайны Поверхности высших порядков B-сплайн поверхности Поддержка поверхностей высших порядков в OpenGL

Растеризация прямой и окружности

Алгоритм Брезенхема (1/4) Отрезок, соединяющий P(x1, y1) и Q(x2, y2)

Алгоритм Брезенхема (2/4) F(x,y) = 0 -- точка на отрезке F(x,y) < 0 -- точка выше F(x,y) > 0 -- точка ниже Точка P определена, тогда координаты срединной точки и значение функции в этой точке

Алгоритм Брезенхема (3/4) Если d < 0, то выбирается Е и Если d 0, то выбирается NE В начальной точке

Алгоритм Брезенхема (4/4) Одна неприятность -- деление на 2 Чтобы избежать вещественной арифметики, сделаем преобразование d 0 = = 3 > 0 (NE) d 1 = = -1 < 0 (E) d 2 = = 9 (NE) d 3 = = 5 (NE) d 4 = = 1 (NE) d 5 = = -3 (E) d 6 = = 7 (NE)

Алгоритм Брезенхема (1/4) (окружность) Неявное и явное представление Параметрическое представление

Алгоритм Брезенхема (2/4) (окружность)

Алгоритм Брезенхема (3/4) (окружность) Для точки P c коорд. Для пиксела Е: Для пиксела SE:

Алгоритм Брезенхема (4/4) (окружность) В начальной точке5 (0, R) И опять нужно исключить вещественные операции. Сделав замену h = d-1/4, получим h = 1-R. Тогда необходимо сравнивать h с -1/4, но так как приращения d – целые числа, то сравнивать можно с нулем.

Кривые высших порядков

Представление кривых Явное представление y = x(t) Параметрическое представление (x(t), y(t)), t = 0..1 Совокупность точек, интерполяция Кривая проходит через все точки –кубическая, параболическая интерполяция Точки определяют только направление изгиба –кривые Безье, B-сплайны

Кривые высших порядков: постановка задачи Задача: построить параметрическую кривую повторяющую заданную ломаную (на плоскости или в пространстве) - контрольные точки Для рисования кривая обычно разбивается на M точек - базисные функции (обычно полиномы некоторой степени)

Кривые Безье Кривые Безье. Степень кривой = N - 1 Любая контрольная точка P i оказывает влияние на форму всей кривой Для большого количества точек степень кривой окажется тоже высокой. - полиномы Бернштейна

Алгоритм построения кривой

Три контрольные точки

Три контрольные точки (2)

Четыре контрольные точки (1)

Четыре контрольные точки (2)

Задача (1) Ломаная Безье задана тремя точками (0, 0), (0, 9), (18, 0). Определите координаты точки на кривой Безье при t = 1/3.

Задача (2) Ломаная Безье задана тремя точками (0, 0), (0, 9), (18, 0). Определите координаты точки на кривой Безье при t = 1/3.

Кривые высших порядков: B-сплайны Задача: построить параметрическую кривую, форма которой изменяется локально при изменении одной из контрольных точек. Базисные функции рассчитываются по рекуррентным формулам Кокса-де Бура. p - степень B-сплайна.

Рациональные сплайны Рациональный сплайн является проекцией обычного сплайна из пространства более высокой размерности (см. однородные координаты) w > 0 является веcом вершины. Чем больше вес, тем большее влияние вершина оказывает на форму кривой. Формулы для пересчета нормалей оказываются неверными.

G0, G1 - геометрическая непрерывность Два сегмента прямой называются G k -непрерывными в точке соединения тогда и только тогда, когда все векторы i-x (i

Задача Заданы два звена сплайна ( t ) = (t, t 2 + 1) и b = (2t + 1, t 3 + 4t + 2), 0

Поверхности высших порядков

Постановка задачи

B-Spline поверхности Поверхность строится на основе двух наборов базисных функций Край поверхности является В-сплайном, который определяют граничные контрольные точки

Поддержка в OpenGL

Рисование геометрических объектов (1/2) Перед началом рисования необходимо создать объект GLUQuadricObj, хранящий режимы рисования объектов GLU GLUquadricObj *obj = gluNewQuadric(); Для управления режимами рисования предназначены следующие функции: gluQuadricDrawStyleКаркасный или сплошной режим рисования gluQuadricOrientation Направление нормалей gluQuadricNormals Режим расчета нормалей gluQuadricTextureРассчитывать или нет текстурные координаты gluQuadricNormals(obj, GL_FLAT);

Рисование геометрических объектов (2/2) disk partial disk sphere Для рисования объектов предназначены функции gluSphere, gluCylinder, gluDisk и gluPartialDisk. gluSphere(obj, 1.0, 20, 10); Когда объект не нужен, память можно освободить gluDeleteQuadric(obj);

Рисование кривых и поверхностей NURBS (1/2) Перед началом рисования кривой или поверхности NURBS необходимо создать объект для хранения режимов построения NURBS GLUnurbsObj *obj = new gluNewNurbsRenderer(); При помощи функции gluNurbsProperty можно задать режим разбиения, режим рисования и режимы отсечения кривых и поверхностей. Предусмотрены следующие режимы разбиения кривых и поверхностей: 1. Постоянный шаг по параметрам u и v 2. Адаптивное разбиение в зависимости от длины кривой/площади поверхности на экране. 3. Адаптивное разбиение в зависимости от ошибки аппроксимации

Рисование кривых и поверхностей NURBS (2/2) Рисование кривой NURBS Между командами gluBeginCurve и gluEndCurve вызываются команды gluNurbsCurve для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин. Рисование поверхности NURBS Между командами gluBeginSurface и gluEndSurface вызываются команды gluNurbsSurface для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин.

Чайник Юта (1)

Чайник Юта (2)

Итоги Растеризация прямой и окружности Алгоритм Брезенхема Кривые высших порядков Кривые Безье B-сплайны Рациональные сплайны Поверхности высших порядков B-сплайн поверхности