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

Компьютерная графика, осень 2011: Математика в компьютерной графике

Embed Size (px)

Citation preview

Page 1: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

1

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

URL: http://www.school30.spb.ru/cgsg/cgc/

E-mail: [email protected]

Page 2: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• свободные векторы, радиус векторы, операции с векторами, скалярное и векторное произведение векторов (vector dot & cross production)

• базис, координаты, декартова система координат

• матрицы, операции с матрицами, обращение матриц

Page 3: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

§ Аффинные

§ Перспективные

§ Билинейные

Page 4: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Параллельный перенос (translation)

Page 5: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Масштабирование (scaling)

Page 6: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Сдвиг (shearing)

Page 7: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Масштабирование (scaling)

Page 8: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Поворот относительно начала координат (rotation)

r

Page 9: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Перепишем в матричном виде общую запись аффинных преобразований:

Page 10: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• представим координаты на плоскости (2D) трехкомпонентной вектор-строкой:

• будем полагать w=1

• перепишем преобразование в общем виде:

Page 11: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

~ translation

~ translation~ shear by x

~ shear by y

~ rotation

~ scaling

Page 12: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• подвергнем точку последовательным преобразованиям системы координат:

• перепишем:

• в силу ассоциативности:

Page 13: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Page 14: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• точка (радиус-вектор) (p):

• вектор (v) и нормаль (n) (только направление):

• преобразования:

Page 15: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Page 16: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Одно преобразование:

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

Page 17: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• заданы точки соответствия

• найти «матрицу перехода»

Page 18: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Page 19: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Поворот имасштабирование

=> Прямое отображение (direct mapping) =>

<= Обратное отображение (inverse mapping) <=

Page 20: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Регулярная сетка дляобластей соответствия

Page 21: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

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

Билинейныепреобразования

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

Page 22: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

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

Билинейныепреобразования

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

Page 23: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

23Пример: morphing

morphing = warping + интерполяция цвета

Page 24: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

Page 25: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• общая формула:

• прямое отображение:

• полагаем w=1, итоговая формула для координат:

Page 26: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• получаем матрицу обратного отображения• определитель присутствует и в числителе и в знаменателе –

вычислять не нужно:

• находим присоединенную матрицу:

Page 27: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Задача привязки: по 4 точкам соответствия определить матрицу перехода:

Page 28: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• запишем зависимость (выразим координаты x и y):

• выпишем в матричной форме 8 уравнений:

Page 29: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• для упрощения задачи переход ищем из единичного квадрата:

• получаем:

Page 30: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• обозначаем:

• и находим решение:

Page 31: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Аналогично случаю 2D вводим однородные координаты:

• и преобразования в общем случае:

Page 32: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

~ translation

~ scaling

Page 33: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

~ rotation

Page 34: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• Поворот вокруг произвольной оси, проходящей через начало координат. Ось задается нормированным радиус вектором. Вывод через кватернионы (самостоятельно).

~ rotation

Page 35: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• камера задается: позиция С и векторы направление «вверх» V, «враво» U и вперед N.

• ищем преобразование в виде «перенос+поворот»:

где

Page 36: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• после преобразования вектора отобразятся:

т.е.

Page 37: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

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

• зная

находим

Page 38: Компьютерная графика, осень 2011: Математика в компьютерной графике

CG MathCG Math

Галинский В.А.Физико-математический лицей № 30

Computer Graphics Support Group

38

• Практические задания– Реализовать warping изображения (срок –

6.11.2011):• все изображение трансформируется билинейным

преобразованием (один элемент соответствия)• Изображение разделяется на треугольники – зоны

соответствия. Искажение получается в соответствии с изменением сетки треугольников.