Базовые понятия
Преобразования (transformations)
Аффинные преобразования
Аффинные преобразования
Аффинные преобразования
Аффинные преобразования
Аффинные преобразования
Матричная запись аффинных преобразований
Однородные координаты (homogeneous)
Матричный вид аффинных преобразований
Композиция преобразований
Обратные аффинные преобразования
Преобразование точек, векторов и нормалей
Преобразование нормалей
Нотации записи: столбец или строка
Пример: привязка систем координат
Пример: привязка систем координат
Пример: преобразование изображений
Пример: warping (1)
Пример: warping (2)
Пример: warping (3)
Пример: morphing
Перспективные преобразования
Привязка с перспективным преобразованием (1)
Привязка с перспективным преобразованием (2)
Привязка с перспективным преобразованием (3)
Привязка с перспективным преобразованием (4)
Привязка с перспективным преобразованием (5)
Привязка с перспективным преобразованием (6)
Аффинные преобразования в пространстве
Матрицы 3D преобразований (перенос, масштаб)
Матрицы 3D преобразований (поворот вокруг осей)
Матрицы 3D преобразований (поворот вокруг оси)
Пример: построение матрицы камеры (1)
Пример: построение матрицы камеры (2)
Пример: построение матрицы камеры (3)

Математика в компьютерной графике

1.

1
CG Math
Математика в
компьютерной графике
URL:
http://www.school30.spb.ru/cgsg/cgc/
E-mail: [email protected]
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

2. Базовые понятия

2
Базовые понятия
CG Math
• свободные векторы, радиус векторы,
операции с векторами, скалярное и
векторное произведение векторов (vector dot
& cross production)
• базис, координаты, декартова система
координат
• матрицы, операции с матрицами, обращение
матриц
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

3. Преобразования (transformations)

3
Преобразования (transformations)
CG Math
Аффинные
Перспективные
Билинейные
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

4. Аффинные преобразования

4
Аффинные преобразования
CG Math
• Параллельный перенос (translation)
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

5. Аффинные преобразования

5
Аффинные преобразования
CG Math
• Масштабирование (scaling)
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

6. Аффинные преобразования

6
Аффинные преобразования
CG Math
• Сдвиг (shearing)
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

7. Аффинные преобразования

7
Аффинные преобразования
CG Math
• Масштабирование (scaling)
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

8. Аффинные преобразования

8
Аффинные преобразования
CG Math
• Поворот относительно начала координат (rotation)
r
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

9. Матричная запись аффинных преобразований

• Перепишем в матричном виде общую
запись аффинных преобразований:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
9
CG Math

10. Однородные координаты (homogeneous)

10
Однородные координаты (homogeneous)
CG Math
• представим координаты на плоскости (2D)
трехкомпонентной вектор -строкой:
• будем полагать w = 1
• перепишем преобразование в общем виде:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

11. Матричный вид аффинных преобразований

~ translation
~ scaling
~ shear
translation
by x
~ rotation
~ shear by y
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
11
CG Math

12. Композиция преобразований

12
Композиция преобразований
CG Math
• подвергнем точку последовательным
преобразованиям системы координат:
• перепишем:
• в силу ассоциативности:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

13. Обратные аффинные преобразования

13
Обратные аффинные преобразования
CG Math
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

14. Преобразование точек, векторов и нормалей

• точка (радиус-вектор) (p):
• вектор (v) и нормаль (n) (только направление):
• преобразования:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
14
CG Math

15. Преобразование нормалей

15
Преобразование нормалей
CG Math
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

16. Нотации записи: столбец или строка

16
Нотации записи: столбец или строка
CG Math
Одно преобразование:
Композиция преобразований:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

17. Пример: привязка систем координат

17
Пример: привязка систем координат
CG Math
• заданы точки соответствия
• найти «матрицу перехода»
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

18. Пример: привязка систем координат

18
Пример: привязка систем координат
CG Math
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

19. Пример: преобразование изображений

19
Пример: преобразование изображений
CG Math
=> Прямое отображение (direct mapping) =>
Поворот и
масштабирование
<= Обратное отображение (inverse mapping) <=
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

20. Пример: warping (1)

20
Пример: warping (1)
CG Math
• Регулярная сетка для
областей соответствия
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

21. Пример: warping (2)

21
Пример: warping (2)
Аффинные
преобразования
CG Math
Перспективные
преобразования
Билинейные
преобразования
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

22. Пример: warping (3)

22
Пример: warping (3)
Аффинные
преобразования
CG Math
Перспективные
преобразования
Билинейные
преобразования
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

23. Пример: morphing

23
Пример: morphing
CG Math
morphing = warping + интерполяция цвета
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

24. Перспективные преобразования

24
Перспективные преобразования
CG Math
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

25. Привязка с перспективным преобразованием (1)

• общая формула:
• прямое отображение:
• полагаем w=1, итоговая формула для координат:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
25
CG Math

26. Привязка с перспективным преобразованием (2)

• получаем матрицу обратного отображения
• определитель присутствует и в числителе и в знаменателе –
вычислять не нужно:
• находим присоединенную матрицу:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
26
CG Math

27. Привязка с перспективным преобразованием (3)

27
CG Math
• Задача привязки: по 4 точкам соответствия определить матрицу
перехода:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group

28. Привязка с перспективным преобразованием (4)

• запишем зависимость (выразим координаты x и y):
• выпишем в матричной форме 8 уравнений:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
28
CG Math

29. Привязка с перспективным преобразованием (5)

• для упрощения задачи переход ищем из единичного квадрата:
• получаем:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
29
CG Math

30. Привязка с перспективным преобразованием (6)

• обозначаем:
• и находим решение:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
30
CG Math

31. Аффинные преобразования в пространстве

• Аналогично случаю 2D вводим однородные координаты:
• и преобразования в общем случае:
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
31
CG Math

32. Матрицы 3D преобразований (перенос, масштаб)

~ translation
~ scaling
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
32
CG Math

33. Матрицы 3D преобразований (поворот вокруг осей)

~ rotation
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
33
CG Math

34. Матрицы 3D преобразований (поворот вокруг оси)

• Поворот вокруг произвольной оси, проходящей через начало
координат. Ось задается нормированным радиус вектором.
Вывод через кватернионы (самостоятельно).
~ rotation
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
34
CG Math

35. Пример: построение матрицы камеры (1)

• камера задается: позиция С и векторы направление
«вверх» V, «враво» U и вперед N.
• ищем преобразование в виде «перенос+поворот»:
где
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
35
CG Math

36. Пример: построение матрицы камеры (2)

• после преобразования вектора отобразятся:
т.е.
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
36
CG Math

37. Пример: построение матрицы камеры (3)

• зная
находим
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
37
CG Math

38.

38
CG Math
• Практические задания
– Реализовать warping изображения (срок –
6.11.2011):
• все изображение трансформируется билинейным
преобразованием (один элемент соответствия)
• Изображение разделяется на треугольники – зоны
соответствия. Искажение получается в соответствии с
изменением сетки треугольников.
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group
English     Русский Правила