Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемКирилл Ларюшин
1 OpenGL Лекция 2.
2 Преобразование координат
3 Преобразования координат
4 Видовое преобразование Проецирование Переход в нормализованные координаты Преобразование в области вывода
5 Управление окном просмотра glViewport(int x, int y, sizei w, sizei h) задание окна просмотра glDepthRange(clampd n, clampd f) задание множителя и смещения для координаты по глубине
6 Матричные преобразования glMatrixMode(enum mode) - установить текущую матрицу GL_TEXTURE GL_MODELVIEW GL_COLOR GL_PROJECTION glLoadMatrix{fd}(T m[16]) – загрузить матрицу glMultMatrix{fd}(T m[16]) – умножает текущую glLoadIdentity(void) – загрузить единичную
7 Матричные преобразования glRotate{fd}(T a, T x, T y, Tz) – вращение против часовой стрелки на угол a относительно оси (x, y, z) glTranslate{fd}(T x, T y, Tz) – перенос на вектор (x, y, z) glScale{fd}(T x, T y, Tz) – масштабирование по осям Эффект выполнения в обратном порядке
8 Видовое преобразование – Изменение положения камеры в пространстве Модельное преобразование – Изменение положения модели в пространстве Перемещение камеры = перемещение каждого объекта по отношению к фиксированной камере. Видовое преобразование эквивалентно нескольким модельным преобразованиям. gluLookAt( eye x, eye y, eye z, aim x, aim y, aim z, up x, up y, up z )
9 Матрицы проекции glOrtho(double l, double r, double b, double r, double n, double n) - задание ортографической проекции glFrustum(double l, double r, double b, double r, double n, double n) задание перспективной проекции gluPerspective(double FOV, double aspect, double znear, double zfar) задание перспективной проекции (в удобном виде)
10 Освещение
11 Принципы освещения Составляющие модели освещения OpenGL Материал объекта определяет его своейста его поверхности Цвет и положение источника света Глобальные параметры освещения рассеянный свет
12 Модель Фонга
13 Как устроено освещение? Модель Фонга (закраска по Гуро) Вычисляется на вершинах Составляющие модели освещения Свойства материала поверхности Свойства источника света Свойства модели освещения
14 Свойства материала Определение свойств материала для примитива glMaterialfv (face, property, value) GL_DIFFUSE GL_SPECULAR GL_AMBIENT GL_EMISSION GL_SHININESS
15 Свойства источника света glLightfv ( light, property, value ) цвет источника положение затухание
16 Типы источников света OpenGL поддерживает два типа источников света Локальные (точечные) источники Бесконечно удаленные (параллельные) источники Тип определяется координатой w w = 0 параллельный источник W 0 точечный источник (x / w, y / w, z /w)
17 Текстурирование
18 Определение текстурного изображения void glTexImage2D( GLenum target,target GLint level,level GLint internalformat,internalformat GLsizei width,width GLsizei height,height GLint border,border GLenum format,format GLenum type,type const GLvoid *pixelspixels );
19 Параметры текстуры void glTexParameterf( GLenum target, GLenum pname, GLfloat param );target pnameparam GL_TEXTURE_MIN_FILTER GL_NEAREST GL_LINEAR GL_NEAREST_MIPMAP_NEAREST GL_LINEAR_MIPMAP_LINEAR GL_TEXTURE_MAG_FILTER GL_TEXTURE_WRAP_[TS]
20 Текстурные объекты void glGenTextures( GLsizei n, GLuint *textures ); - создать текстурный объектntextures void glDeleteTextures(GLsizei n, const GLuint *textures); - удалить текстурный объектntextures void glBindTexture( GLenum target, GLuint texture ); - связать текстурный объектtarget texture
21 Пример // Установка текстуры glEnable(GL_TEXTURE_2D); glGenTextures(1, &texture[0]);// Create The Texture glBindTexture(GL_TEXTURE_2D, texture[0]); glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]- >sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);..... // Рисование glBegin(GL_QUADS); // Front Face glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, 1.0f);... glEnd();
22 Туман void glFogf( GLenum pname, GLfloat param );pnameparam GL_FOG_MODE GL_FOG_DENSITY GL_FOG_START GL_FOG_END GL_FOG_COLOR
23 Пофрагментные операции
24 Альфа-тест Отбрасывает фрагменты, которые не проходят операцию сравнения void glAlphaFunc( GLenum func, GLclampf ref );funcref GL_NEVER GL_LESS GL_EQUAL GL_LEQUAL GL_GREATER GL_NOTEQUAL GL_GEQUAL GL_ALWAYS
25 Смешивание Комбинация приходящего фрагмента и фрагмента, находящегося в буфере кадра void glBlendFunc( GLenum sfactor, GLenum dfactor );sfactordfactor
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.