Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемgraphicon.ru
1 Прямые. Кривые. Поверхности Лекция 12. Алексей Игнатенко
2 На прошлой лекции Текстурирование Использование изображений для моделирования (отражающих) свойств поверхности Виды текстурирования –bump mapping, specular mapping, environment mapping, displacement mapping, transparency mapping Отображение текстуры Фильтрация текстуры –Метод ближайшего соседа, Билинейная фильтрация, Мип- мэппинг, Трилинейная фильтрация, Анизотропная фильтрация Композирование Объединение двух или более независимо подготовленных изображений в одно изображение, обычно с помощью попиксельного вычисления полупрозрачности
3 На лекции Растеризация прямой и окружности Алгоритм Брезенхема Кривые высших порядков Кривые Безье B-сплайны Рациональные сплайны Поверхности высших порядков B-сплайн поверхности Поддержка поверхностей высших порядков в OpenGL
4 Растеризация прямой и окружности
5 Алгоритм Брезенхема (1/4) Отрезок, соединяющий P(x1, y1) и Q(x2, y2)
6 Алгоритм Брезенхема (2/4) F(x,y) = 0 -- точка на отрезке F(x,y) < 0 -- точка выше F(x,y) > 0 -- точка ниже Точка P определена, тогда координаты срединной точки и значение функции в этой точке
7 Алгоритм Брезенхема (3/4) Если d < 0, то выбирается Е и Если d 0, то выбирается NE В начальной точке
8 Алгоритм Брезенхема (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)
9 Алгоритм Брезенхема (1/4) (окружность) Неявное и явное представление Параметрическое представление
10 Алгоритм Брезенхема (2/4) (окружность)
11 Алгоритм Брезенхема (3/4) (окружность) Для точки P c коорд. Для пиксела Е: Для пиксела SE:
12 Алгоритм Брезенхема (4/4) (окружность) В начальной точке5 (0, R) И опять нужно исключить вещественные операции. Сделав замену h = d-1/4, получим h = 1-R. Тогда необходимо сравнивать h с -1/4, но так как приращения d – целые числа, то сравнивать можно с нулем.
13 Кривые высших порядков
14 Представление кривых Явное представление y = x(t) Параметрическое представление (x(t), y(t)), t = 0..1 Совокупность точек, интерполяция Кривая проходит через все точки –кубическая, параболическая интерполяция Точки определяют только направление изгиба –кривые Безье, B-сплайны
15 Кривые высших порядков: постановка задачи Задача: построить параметрическую кривую повторяющую заданную ломаную (на плоскости или в пространстве) - контрольные точки Для рисования кривая обычно разбивается на M точек - базисные функции (обычно полиномы некоторой степени)
16 Кривые Безье Кривые Безье. Степень кривой = N - 1 Любая контрольная точка P i оказывает влияние на форму всей кривой Для большого количества точек степень кривой окажется тоже высокой. - полиномы Бернштейна
17 Алгоритм построения кривой
18 Три контрольные точки
19 Три контрольные точки (2)
20 Четыре контрольные точки (1)
21 Четыре контрольные точки (2)
22 Задача (1) Ломаная Безье задана тремя точками (0, 0), (0, 9), (18, 0). Определите координаты точки на кривой Безье при t = 1/3.
23 Задача (2) Ломаная Безье задана тремя точками (0, 0), (0, 9), (18, 0). Определите координаты точки на кривой Безье при t = 1/3.
24 Кривые высших порядков: B-сплайны Задача: построить параметрическую кривую, форма которой изменяется локально при изменении одной из контрольных точек. Базисные функции рассчитываются по рекуррентным формулам Кокса-де Бура. p - степень B-сплайна.
25 Рациональные сплайны Рациональный сплайн является проекцией обычного сплайна из пространства более высокой размерности (см. однородные координаты) w > 0 является веcом вершины. Чем больше вес, тем большее влияние вершина оказывает на форму кривой. Формулы для пересчета нормалей оказываются неверными.
26 G0, G1 - геометрическая непрерывность Два сегмента прямой называются G k -непрерывными в точке соединения тогда и только тогда, когда все векторы i-x (i
27 Задача Заданы два звена сплайна ( t ) = (t, t 2 + 1) и b = (2t + 1, t 3 + 4t + 2), 0
28 Поверхности высших порядков
29 Постановка задачи
30 B-Spline поверхности Поверхность строится на основе двух наборов базисных функций Край поверхности является В-сплайном, который определяют граничные контрольные точки
31 Поддержка в OpenGL
32 Рисование геометрических объектов (1/2) Перед началом рисования необходимо создать объект GLUQuadricObj, хранящий режимы рисования объектов GLU GLUquadricObj *obj = gluNewQuadric(); Для управления режимами рисования предназначены следующие функции: gluQuadricDrawStyleКаркасный или сплошной режим рисования gluQuadricOrientation Направление нормалей gluQuadricNormals Режим расчета нормалей gluQuadricTextureРассчитывать или нет текстурные координаты gluQuadricNormals(obj, GL_FLAT);
33 Рисование геометрических объектов (2/2) disk partial disk sphere Для рисования объектов предназначены функции gluSphere, gluCylinder, gluDisk и gluPartialDisk. gluSphere(obj, 1.0, 20, 10); Когда объект не нужен, память можно освободить gluDeleteQuadric(obj);
34 Рисование кривых и поверхностей NURBS (1/2) Перед началом рисования кривой или поверхности NURBS необходимо создать объект для хранения режимов построения NURBS GLUnurbsObj *obj = new gluNewNurbsRenderer(); При помощи функции gluNurbsProperty можно задать режим разбиения, режим рисования и режимы отсечения кривых и поверхностей. Предусмотрены следующие режимы разбиения кривых и поверхностей: 1. Постоянный шаг по параметрам u и v 2. Адаптивное разбиение в зависимости от длины кривой/площади поверхности на экране. 3. Адаптивное разбиение в зависимости от ошибки аппроксимации
35 Рисование кривых и поверхностей NURBS (2/2) Рисование кривой NURBS Между командами gluBeginCurve и gluEndCurve вызываются команды gluNurbsCurve для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин. Рисование поверхности NURBS Между командами gluBeginSurface и gluEndSurface вызываются команды gluNurbsSurface для задания массивов контрольных точек, а также нормалей, цветов и текстурных координат вершин.
36 Чайник Юта (1)
37 Чайник Юта (2)
38 Итоги Растеризация прямой и окружности Алгоритм Брезенхема Кривые высших порядков Кривые Безье B-сплайны Рациональные сплайны Поверхности высших порядков B-сплайн поверхности
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.