Similar presentations:
Математика в компьютерной графике
1.
1CG 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)
27CG 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.
38CG Math
• Практические задания
– Реализовать warping изображения (срок –
6.11.2011):
• все изображение трансформируется билинейным
преобразованием (один элемент соответствия)
• Изображение разделяется на треугольники – зоны
соответствия. Искажение получается в соответствии с
изменением сетки треугольников.
Галинский В.А.
Физико-математический лицей № 30
Computer Graphics Support Group