Похожие презентации:
Преобразования проецирования
1. 4. Преобразования проецирования
2. Системы координат
ПравосторонняяЛевосторонняя
Оконная
3. Преобразования координат
4. Формирование изображения камерой
1. Установить штатив и направить камеру насцену (видовое преобразование).
2. Подготовить сцену в нужной композиции
(модельное преобразование).
3. Подобрать объектив или отрегулировать
масштабирование (преобразование
проекции).
4. Определить размер изображения
(преобразование в порт просмотра).
5. Системы координат OpenGL
1. Правосторонняя: модельно-видовыепреобразования.
2. Левосторонняя: установка параметров
проецирования.
3. Оконная: преобразование в порт
просмотра.
6. Проекции
7. Плоские геометрические проекции объектов
Плоские геометрические проекции объектовобразуются пересечением прямых,
называемых проекторами, с плоскостью,
называемой центром проекции.
Проекторы – это прямые, проходящие через
произвольную точку, называемую центром
проекции, и каждую точку объекта.
8. Перспективные и параллельные проекции
Перспективная проекция: центр проекциирасположен в конечной точке
трехмерного пространства.
Параллельная проекция: центр проекции
расположен в бесконечности
(проекторы параллельны).
9. Ортографические проекции
Ортографические проекции – это проекции на однуиз координатных плоскостей x = 0, y = 0 или z = 0.
0
0
Px
0
0
0 0 0
1 0 0
0 1 0
0 0 1
1
0
Py
0
0
0 0 0
0 0 0
0 1 0
0 0 1
1
0
Pz
0
0
0 0 0
1 0 0
0 0 0
0 0 1
10. Аксонометрические проекции
Аксонометрические проекции – это проекции наплоскость, не являющуюся одной из координатных
плоскостей x = 0, y = 0 или z = 0.
Триметрическая проекция строится произвольными
поворотами вокруг произвольных координатных
осей в произвольном порядке с последующим
проецированием на плоскость z = 0.
Диметрическая проекция – это триметрическая
проекция с двумя одинаковыми коэффициентами
искажения и произвольным третьим
коэффициентом.
Изометрическая проекция – это триметрическая
проекция, в которой все три коэффициента
искажения равны
11. Триметрическая проекция
T Pz Rx (θ ) Ry ( )1
0
T
0
0
0 0 0 1
0
1 0 0 0 cos
0 0 0 0 sin
0 0 1 0
0
cos
sin sin
T
0
0
fx
*2
xx
*2
yx ,
0
cos
0
0
fy
0
sin
cos
0
0 cos 0 sin 0
0 0
1
0
0
0 sin 0 cos 0
1 0
0
0
1
sin
0 x*x
*
sin cos 0 y x
0
0 0
0
1 0
*2
xy
*2
yy , fz
*2
xz
*2
yz
x*y
x*z
y*y
y*z
0
0
0
0
0
0
0
1
12. Диметрическая проекция
T Pz Rx (θ ) R y ( )cos
sin sin
T
0
0
fx
*2
xx
*2
yx ,
0
sin
cos
sin cos
0
0
0
0
fy
*2
xy
*2
yy , fz
0 x*x
*
0 yx
0 0
1 0
*2
xz
*2
yz
f x2 cos2 sin 2 sin 2 f y2 cos2
2
fz
sin sin cos
2
arcsin( f z
2
2
2 ), arcsin( f z
2 f z2 )
*
xy
y*y
*
xz
y*z
0
0
0
0
0
0
0
1
13. Изометрическая проекция
T Pz Rx (θ ) Ry ( )0
sin
cos
sin sin cos sin cos
T
0
0
0
0
0
0
fx
*2
xx
*2
yx , f y
*2
xy
*2
yy , fz
0 x*x
*
0 yx
0 0
1 0
*2
xz
x*y
y*y
0
0
x*z 0
*
y z 0
0 0
0 1
*2
yz
f x2 cos2 sin 2 sin 2 f y2 cos2 f z2 sin 2 sin 2 cos2
arcsin( 1 3 ) 35.26 , arcsin( 1 2) 45
14. Косоугольные проекции
Косоугольная проекция – это проекция,которая формируется параллельными
проекторами, расположенными под косым
углом к плоскости проекции.
Проекция кавалье получается когда угол
между проекторами и плоскостью проекции
составляет 45°.
Проекция кабине получается когда угол между
проекторами и плоскостью проекции
составляет arctg(1/2).
15. Проекции кавалье и кабине
10
Tкавалье
0
0
1
0
Tкабине
0
0
0
0.433
1
0.25
0
0
0
0
0
0.866
1
0.5
0
0
0
0
0
0
0
1
0
0
0
1
16. Перспективные проекции
Перспективная проекция получается в результатеперспективного преобразования.
При перспективном преобразовании параллельные прямые
сходятся, размер объекта уменьшается с увеличением
расстояния до центра проекции и происходит неоднородное
искажение линий объекта, зависящее от ориентации и
расстояния от объекта до центра проекции.
Перспективная проекция любой совокупности параллельных
прямых, которые не параллельны проекционной плоскости,
будет сходиться в точке схода. Если совокупность прямых
параллельна одной из главных координатных осей, то их
точка схода называется главной точкой схода.
Перспективные проекции классифицируются в зависимости
от числа главных точек схода, которыми они обладают, т.е.
от числа координатных осей, которые пересекают
проекционную плоскость.
17. Примеры перспективных проекций
18. Общая форма однородных координат
wxwy
A
wz
w
19. Ортографическое проецирование в OpenGL
20. Функции ортографического преобразования
void glOrtho(GLdouble l, GLdouble r, GLdouble b,GLdouble t, GLdouble n, GLdouble f);
void gluOrtho2D(GLdouble l, GLdouble r,
GLdouble b, GLdouble t);
// glOrtho(l, r, b, t, –1.0, 1.0);
21. Перспективное проецирование в OpenGL
22. Матрица перспективного проецирования
Fe1n
0
0
0
n
0
0
0
xe
nxe
0
n
0
0
0
n
0
0
ye
nye
0
0
f
f n
0
0
f
0
0
1
0
0
0
1
A1
nxe
ze
A1
nye
ze
fze fn
ze
1
f n ze
0
1
fze fn
ze
23. Функции перспективного преобразования
void glFrustum(GLdouble l, GLdouble r,GLdouble b, GLdouble t, GLdouble n,
GLdouble f);
void gluPerspective(GLdouble angle, GLdouble
aspect, GLdouble n, GLdouble f);
t = n * tg( / 180 * angle / 2);
b = –t;
r = t * aspect;
l = –r;
24. Пример программы
…void setShape(float vAng, float asp, float nearD, float
farD)
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(vAng, asp, nearD, farD);
}
…
setShape(30.0f, 64.0f/48.0f, 0.5f, 50.0f);
…