1 / 13

Компьютерная визуализация

Компьютерная визуализация. Лекция № 3. СПбГУ ИТМО 200 4. GL_ BACK. GL_FRONT. glutSwapBuffers();. Двойная буферизация. glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE ); // включение режима двойной буферизации. void glDrawBuffer(GLenum mode); // выбор активного буфера.

lottie
Download Presentation

Компьютерная визуализация

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Компьютерная визуализация Лекция №3 СПбГУ ИТМО2004

  2. GL_BACK • GL_FRONT glutSwapBuffers(); Двойная буферизация glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE );// включение режима двойной буферизации void glDrawBuffer(GLenum mode); // выбор активного буфера

  3. Получение параметров визуализации void glGetBooleanv(GLenum pname,GLboolean * params); void glGetDoublev(GLenum pname, GLdouble * params); void glGetFloatv(GLenum pname, GLfloat * params); void glGetIntegerv(GLenum pname, GLint * params); // получают значения параметра заданного константой pname GLint viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); // получаетпараметры порта вывода GLdouble modelMatrix[16]; glGetDoublev(GL_MODELVIEW_MATRIX , modelMatrix); // получаеттекущую видовую матрицу GLdouble projMatrix[16]; glGetDoublev(GL_PROJECTION_MATRIX, projMatrix); // получаеттекущую матрицу проекций

  4. Выполнение проекционных преобразований int gluProject(GLdouble objx, GLdouble objy, GLdouble objz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble * winx, GLdouble * winy, GLdouble * winz); // выполнение прямого преобразования int gluUnProject(GLdouble winx, GLdouble winy, GLdouble winz, const GLdouble modelMatrix[16], const GLdouble projMatrix[16], const GLint viewport[4], GLdouble * objx, GLdouble * objy, GLdouble * objz); // выполнение обратного преобразования // (objx, objy, objz) – видоваякоордината; // (winx, winy, winz) – координата окна; // modelMatrix – видовая матрица; // projMatrix – матрица проекций; // viewport – параметры порта вывода

  5. glBitmap(8,7,7,3,0,0,h_mark); glBitmap(7,8,3,7,0,0,v_mark); Отображение битовых примитивов void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap); // отобразить битовый массив bitmap; // width, height – размеры битового изображения; // xorig, yorig – положение центра битового изображения; // xmove, ymove – смещениетекущей позиции вывода растра после отображения;

  6. Управление отображением битовых примитивов void glRasterPos2d(GLdouble x, GLdouble y); void glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); // установка позиции вывода растра void glPixelStorei(GLenum pname, GLint param); void glPixelStoref(GLenum pname, GLfloat param); // определение режима распаковки битового массива // pname = GL_UNPACK_ALIGNMENT // param = 1 – для GLubyte = 2 – для GLushort = 4 – для GLuint (по умолчанию) = 8 – для GLfloat glPushAttrib(GL_CURRENT_BIT);// запомнить состояние параметров в стеке атрибутов glPopAttrib(); // восстановить состояние параметров из стека

  7. Отображение текстовых символов void glutBitmapCharacter(void *font, int character); // создание растрового шрифта // font – константа определяющая тип шрифта GLUT_BITMAP_8_BY_13 GLUT_BITMAP_9_BY_15 GLUT_BITMAP_TIMES_ROMAN_10 GLUT_BITMAP_TIMES_ROMAN_24 GLUT_BITMAP_HELVETICA_10 GLUT_BITMAP_HELVETICA_12 GLUT_BITMAP_HELVETICA_18 // character – код символа void glutStrokeCharacter(void *font, int character); // создание векторного шрифта // font – константа определяющая тип шрифта GLUT_STROKE_ROMAN GLUT_STROKE_MONO_ROMAN // character – код символа

  8. Отображение растровых примитивов • void glDrawPixels(GLsizei width,GLsizei height, • GLenum format, GLenum type, const GLvoid *pixels); • // отображение растрового примитива pixels • // width, heigth – размеры отображаемого растра • // format – параметр отображения • GL_COLOR_INDEX, • GL_RGB, GL_RGBA • GL_RED, GL_GREEN, GL_BLUE, • GL_LUMINANCE • // type – тип данных в массиве pixels • GL_UNSIGNED_BYTE, GL_BYTE, • GL_UNSIGNED_SHORT, GL_SHORT, • GL_UNSIGNED_INT, GL_INT, • GL_BITMAP, GL_FLOAT

  9. Преобразование диапазона значений void glPixelStoref(GLenum pname, GLfloat param); // определение режима преобразования диапазона значений // GL_RED_SCALE, GL_GREEN_SCALE, GL_BLUE_SCALE // GL_RED_BIAS, GL_GREEN_BIAS, GL_BLUE_BIAS N = X * SCALE + BIAS

  10. Цветовые преобразования glPixelTransferi(GL_MAP_COLOR, true); // включение режима цветовых преобразований glPixelTransferi(GL_MAP_COLOR, false); // выключение режима цветовых преобразований void glPixelMapfv(GLenum map, GLint mapsize, const GLfloat *values); // определение карты цветовых преобразований // map – тип карты GL_PIXEL_MAP_I_TO_R GL_PIXEL_MAP_I_TO_G GL_PIXEL_MAP_I_TO_B // mapsize – количество элементов в карте // values – массив новых значений цвета

  11. Цветовые преобразования

  12. Цветовые преобразования

  13. Отображение части растрового примитива glPixelStorei(GL_UNPACK_ROW_LENGTH, width); // установка количества элементов в строке glPixelStorei(GL_UNPACK_SKIP_ROWS, rows); // установка количества пропускаемых строк glPixelStorei(GL_UNPACK_SKIP_PIXELS, pixels); // установка количества пропускаемых пикселов

More Related