Для задания текущей растровой позиции служит процедура

void glRasterPos {234}{sifd}{v}< TYPE x, TYPE y, TYPE z );

Ввод-вывод цветных изображений

OpenGL поддерживает также вывод полноцветных изображений (для каждого пиксела задаются либо все величины RGBA, либо только некоторые ni них).

Для копирования изображения из буфера кадра (фрейм-буфера) в обычную память служит процедура

void glReadPixels ( GLint x, GLint y, GLsizei width,
GLsizei height, GLenum format, GLenum type,GLvoid * pixels ) ,-

Здесь параметры (x, y) задают координаты левого нижнего угла, а параметры width и height - размеры копируемого изображения.

Параметр format отражает, какие данные о пикселе заносятся в буфер; возможными значениями являются GL_RGB, GL_RGBA, GL_RED, GL_GREEN, GLJBLUE, GL_ALPHA, GLJJJMLNANCE, GL_LUMINANCE_ALPHA GL_STENCIL_INDEX, ŒJDEPTHjrOMTONENT.

Параметр type задает тип каждого из записываемых значений. Возможными значениями являются GL_UNSIGNED_BYTE, GL_BYTE, GL_BrTMAP. GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT.

Для вывода изображения в фрейм-буфер из оперативной памяти служи! следующая процедура:

void glDrawPixels ( GLsizei width, GLsizei height,
Glenum format,GLenum type, const GLvoid * pixels );

При этом изображение выводится начиная с текущей растровой позиции.

Основы библиотеки OpenGL

Наложение текстуры

Текстурирование позволяет наложить изображение на многоугольник и вывести этот многоугольник с наложенной на него текстурой, соответствующим образом преобразованной. OpenGL поддерживает одно- н двухмерные текстуры и различные способы наложения (применения) текстуры.

Для использования текстур надо сначала разрешить одно- или двухмерное текстурирование при помощи следующих команд:

glEnable ( GL_TEXTURE_1D ); или

glEnable ( GL_TEXTURE_2D );

Для задания двухмерной текстуры служит процедура

void glTexImage2D ( GLenum target, GLint level,
GLint component,GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels );

Параметр target зарезервирован для будущего использования и в нынешней версии он должен быть равен GL_TEXTURE_2D.


⇐ Предыдущая| |Следующая ⇒