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

Презентация:



Advertisements
Похожие презентации
OpenGL Лекция 4 ( ). void glVertexPointer( GLint size, GLenum type, GLsizei stride, void *ptr ) size определяет число координат вершины (2, 3,
Advertisements

OpenGL Лекция 2.. Преобразование координат Преобразования координат.
Освещение и текстурирование в OpenGL Астана 2004 Лекция 10.
Лекция 1 ( ). Основные возможности OpenGL Набор базовых примитивов: точки, линии, многоугольники и т.п. Видовые и координатные преобразования.
OpenGL и аппаратные ускорители графики Астана 2004 Лекция 8.
{ OpenGL Лекция 3 ( ). float ambient[4] = {0.0, 0.0, 0.0, 1.0}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambient); // RGBA интенсивность всей сцены.
Алгоритмы растровой графики. Представление отрезка в растровой форме.
Компьютерная графика. Лекция 4 Алгоритмы формирования изображений. Основы OpenGL.
1 Растровое кодирование графической информации Арсеньев
Компьютерная обработка изображений Лекция 4 Кафедра П и КО СПбГУ ИТМО 2005.
Лекция 2 ( ). * Для задания различных преобразований объектов сцены в OpenGL используются операции над матрицами, при этом различают три типа.
Астана ( )Компьютерная графика (лекция 6) ВВЕДЕНИЕ В OPENGL Лекция 6.
Работа с текстом. Отображение строк OutText (text : string) – выводит на экран строку текста, начиная с текущего положения CP (current pointer – текущий.
Современные графические технологии ИЛИ OpenGL и графические процессоры 2010.
Растровая и векторная графика Решить задачи 1)Какой объем памяти необходим для хранения цифрового изображения, состоящего из 400 пикселов, где каждый.
Графические возможности языка Visual Basic. Рисование графических примитивов. На объектах «форма» Form и «графическое окно» PictureBox можно рисовать.
Фильтрация текстур. Пиксельные операции. Астана 2004 Лекция 11.
Растровая графика Векторная графика Виды компьютерной графики отличаются принципами формирования изображения.
Растровая и векторная графика Государственное профессиональное образовательное учреждение «Сыктывкарский колледж сервиса и связи» (ГПОУ «СКСиС») Боле.
Виды компьютерной графики Растровая графика Векторная графика Фрактальная графика Виды компьютерной графики отличаются принципами формирования изображения.
Транксрипт:

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

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

Получение параметров визуализации 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 GLdouble modelMatrix[16]; glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix); // получает текущую видовую матрицу GLdouble projMatrix[16]; glGetDoublev(GL_PROJECTION_MATRIX, projMatrix); // получает текущую матрицу проекций GLint viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); // получает параметры порта вывода

Выполнение проекционных преобразований 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 – параметры порта вывода

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

Управление отображением битовых примитивов 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(); // восстановить состояние параметров из стека

Отображение текстовых символов 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 – код символа

Отображение растровых примитивов 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

Преобразование диапазона значений 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

Цветовые преобразования 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 – массив новых значений цвета

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

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