Слайд 3
Определение
В общем случае проекции преобразуют точки, заданные в
системе координат размерностью n в точки системы координат размерностью
меньшей, чем n
точки трехмерного пространства преобразуются в точки двумерного пространства
Слайд 4
Основные элементы проекции:
Центр проекции
Проецирующие лучи (проекторы)- прямые
Проекционная (картинная)
плоскость
плоские геометрические проекции
Слайд 5
Плоские геометрические проекции
центральные
параллельные
Слайд 6
Центральная проекция
центр проекции находится на конечном расстоянии от
проекционной плоскости
Слайд 7
Параллельная проекция
центр проекции удален на бесконечность
Слайд 8
Одноточечная проекция
Точка схода называется главной, если совокупность прямых
параллельна одной из координатных осей
Слайд 9
Основные виды проекций
Плоские геометрические проекции
Параллельные
Ортографические
Аксонометрические
Изометрические
Косоугольные
Центральные
Слайд 10
Вывод формул центральной перспективной проекции
Расположение осей координат на
экране
Слайд 12
Плоскость экрана совпадает с проекционной
k – расстояние от
наблюдателя до проекционной плоскости
А проецируется на экран как А’
Слайд 13
Определим координаты A’
Из подобия треугольников Ay Az
N и yэ ON
Слайд 14
точку наблюдения поместить в начало координат,
проекционную плоскость
на расстояние а
Слайд 16
Буфер кадра (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
ПРЕОБРАЗОВАНИЯ ТОЧЕК В РАЗНЫХ СИСТЕМАХ КООРДИНАТ
Слайд 21
Масштабирование
glScale (arg1, arg2, arg3)
аргументы - коэффициенты масштабирования по каждой
из осей
Слайд 22
изменить положение точки наблюдения
void gluLookAt (GLdouble eyex, GLdouble
eyey, GLdouble eyez,
GLdouble centerx,
GLdouble centery, GLdouble centerz,
GLdouble upx, GLdouble upy, GLdouble upz)
Слайд 23
Проекционные преобразования
определяем отсекающий объем видимости
Как сцена будет отображаться на
экране монитора
Какие объекты или части объектов войдут в окончательное
изображение
Слайд 24
Параллельное проецирование в OpenGL
Слайд 25
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
Слайд 27
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);
Слайд 29
void gluPerspective(GLdouble angley, GLdouble aspect, GLdouble znear, GLdouble zfar)
Слайд 30
Область вывода
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