Проецирование трехмерных объектов

Содержание

Слайд 2

КЛАССИФИКАЦИЯ ПРОЕКЦИЙ

КЛАССИФИКАЦИЯ ПРОЕКЦИЙ

Слайд 3

Определение В общем случае проекции преобразуют точки, заданные в системе координат

Определение

В общем случае проекции преобразуют точки, заданные в системе координат размерностью

n в точки системы координат размерностью меньшей, чем n
точки трехмерного пространства преобразуются в точки двумерного пространства
Слайд 4

Основные элементы проекции: Центр проекции Проецирующие лучи (проекторы)- прямые Проекционная (картинная) плоскость плоские геометрические проекции

Основные элементы проекции:

Центр проекции
Проецирующие лучи (проекторы)- прямые
Проекционная (картинная) плоскость

плоские геометрические

проекции
Слайд 5

Плоские геометрические проекции центральные параллельные

Плоские геометрические проекции
центральные
параллельные

Слайд 6

Центральная проекция центр проекции находится на конечном расстоянии от проекционной плоскости

Центральная проекция

центр проекции находится на конечном расстоянии от проекционной плоскости

Слайд 7

Параллельная проекция центр проекции удален на бесконечность

Параллельная проекция

центр проекции удален на бесконечность

Слайд 8

Одноточечная проекция Точка схода называется главной, если совокупность прямых параллельна одной из координатных осей

Одноточечная проекция

Точка схода называется главной, если совокупность прямых параллельна одной из

координатных осей
Слайд 9

Основные виды проекций Плоские геометрические проекции Параллельные Ортографические Аксонометрические Изометрические Косоугольные Центральные

Основные виды проекций

Плоские геометрические проекции
Параллельные
Ортографические
Аксонометрические
Изометрические
Косоугольные
Центральные

Слайд 10

Вывод формул центральной перспективной проекции Расположение осей координат на экране

Вывод формул центральной перспективной проекции

Расположение осей координат на экране

Слайд 11

Системы координат

Системы координат

Слайд 12

Плоскость экрана совпадает с проекционной k – расстояние от наблюдателя до

Плоскость экрана совпадает с проекционной
k – расстояние от наблюдателя до проекционной

плоскости
А проецируется на экран как А’
Слайд 13

Определим координаты A’ Из подобия треугольников Ay Az N и yэ ON

Определим координаты A’

Из подобия треугольников Ay Az N и yэ

ON
Слайд 14

точку наблюдения поместить в начало координат, проекционную плоскость на расстояние а

точку наблюдения поместить в начало координат,
проекционную плоскость на расстояние а

Слайд 15

Слайд 16

Буфер кадра (Frame buffer) буфер глубины или Z-буфер (Depth buffer), буфер

Буфер кадра (Frame buffer)

буфер глубины или Z-буфер (Depth buffer),
буфер цвета

(Color buffer),
накопительный буфер (Accumulation buffer)
буфер шаблона (Stencil buffer).
Слайд 17

Проверка глубины - это эффективная технология удаления скрытых поверхностей активизировать проверку

Проверка глубины - это эффективная технология удаления скрытых поверхностей

активизировать проверку глубины
glEnable(GL_DEPTH_TEST);
В

программе
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Отключить
glDisable(GL_DEPTH_TEST);
Слайд 18

ПРЕОБРАЗОВАНИЯ ТОЧЕК В РАЗНЫХ СИСТЕМАХ КООРДИНАТ

ПРЕОБРАЗОВАНИЯ ТОЧЕК В РАЗНЫХ СИСТЕМАХ КООРДИНАТ

Слайд 19

Слайд 20

Слайд 21

Масштабирование glScale (arg1, arg2, arg3) аргументы - коэффициенты масштабирования по каждой из осей

Масштабирование

glScale (arg1, arg2, arg3)
аргументы - коэффициенты масштабирования по каждой из осей

Слайд 22

изменить положение точки наблюдения void gluLookAt (GLdouble eyex, GLdouble eyey, GLdouble

изменить положение точки наблюдения

void gluLookAt (GLdouble eyex, GLdouble eyey, GLdouble eyez,
GLdouble centerx,

GLdouble centery, GLdouble centerz,
GLdouble upx, GLdouble upy, GLdouble upz)
Слайд 23

Проекционные преобразования определяем отсекающий объем видимости Как сцена будет отображаться на

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

определяем отсекающий объем видимости
Как сцена будет отображаться на экране монитора
Какие объекты

или части объектов войдут в окончательное изображение
Слайд 24

Параллельное проецирование в OpenGL

Параллельное проецирование в OpenGL

Слайд 25

void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,

void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble

far)
void gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)
Слайд 26

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

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

Слайд 27

void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,

void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near,

GLdouble far);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(xmin, xmax, ymin, ymax, near, far);
Слайд 28

Слайд 29

void gluPerspective(GLdouble angley, GLdouble aspect, GLdouble znear, GLdouble zfar)

void gluPerspective(GLdouble angley, GLdouble aspect, GLdouble znear, GLdouble zfar)

Слайд 30

Область вывода void glViewPort(GLint x, GLint y, GLint width, GLint height)

Область вывода

void glViewPort(GLint x, GLint y, GLint width, GLint height)
  ox=x+width/2, oy=y+height/2
Пусть

px=width, py=height,
(xw, yw, zw)T = ( (px/2) xn+ ox ,
(py/2) yn+ oy , 
[(f-n)/2] zn+(n+f)/2 )T