Прочитать на английском

Поделиться через


Функция glTexGend

Управляет созданием координат текстуры.

Синтаксис

void WINAPI glTexGend(
   GLenum   coord,
   GLenum   pname,
   GLdouble param
);

Параметры

coord

Координата текстуры. Должен иметь одно из следующих значений: GL_S, GL_T, GL_R или GL_Q.

pname

Символьное имя функции создания координат текстуры.

param

Один параметр создания текстуры с одним значением, один из GL_OBJECT_LINEAR, GL_EYE_LINEAR или GL_SPHERE_MAP.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_ENUM
coord или pname не является допустимым определенным значением, либо pname было GL_TEXTURE_GEN_MODE, а параметр не является допустимым определенным значением.
GL_INVALID_ENUM
pname — GL_TEXTURE_GEN_MODE, params — GL_SPHERE_MAP, а coord — GL_R или GL_Q
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Функция glTexGen выбирает функцию создания координат текстуры или предоставляет коэффициенты для одной из функций. Параметр coord присваивает имя одной из координат текстур (s,t,r,q), и это должен быть один из следующих символов: GL_S, GL_T, GL_R или GL_Q. Параметр pname должен быть одной из трех символических констант: GL_TEXTURE_GEN_MODE, GL_OBJECT_PLANE или GL_EYE_PLANE. Если pname GL_TEXTURE_GEN_MODE, параметр param указывает режим, один из GL_OBJECT_LINEAR, GL_EYE_LINEAR или GL_SPHERE_MAP. Если pname имеет значение GL_OBJECT_PLANE или GL_EYE_PLANE, параметр содержит коэффициенты для соответствующей функции создания текстуры.

Если функция создания текстуры GL_OBJECT_LINEAR, функция

Уравнение, показывающее функцию glTexGen, когда функция создания текстуры GL_OBJECT_LINEAR.

используется, где g — это значение, вычисленное для координаты с именем coord; p1, p2, p3 и p4 — четыре значения, указанные в параметрах; и x?, y?, z?, и w? — координаты объекта вершины. Эту функцию можно использовать для текстурной карты местности, используя уровень моря в качестве эталонной плоскости (определяется p1, p2, p3 и p4). Функция создания координат GL_OBJECT_LINEAR вычисляет высоту вершины местности как ее расстояние от уровня моря; эта высота используется для индексирования изображения текстуры для сопоставления белого снега с пиками и зеленой травы на предгорьях, например.

Если функция создания текстуры GL_EYE_LINEAR, функция

Уравнение, показывающее функцию glTexGen, когда функция создания текстуры GL_EYE_LINEAR.

используется, где

Уравнение, показывающее координаты глаз вершины.

и x?, y?, z?, и w? — координаты глаз вершины, p1, p2, p3 и p4 — значения, указанные в параметре param, а M — матрица modelview при вызове glTexGen. Если M плохо обусловлен или имеет единственное значение, координаты текстуры, созданные результирующей функцией, могут быть неточными или неопределенными.

Значения в параметре определяют плоскость отсчета в координатах глаз. Применяемая к ним матрица modelview не может быть одинаковой при преобразовании вершин многоугольников. Эта функция устанавливает поле координат текстуры, которое может создавать динамические контурные линии на движущихся объектах.

Если pname GL_SPHERE_MAP а coord — GL_S или GL_T, координаты текстуры s и t создаются следующим образом. Пусть u — вектор единицы, указывающий от источника к вершине многоугольника (в координатах глаза). Пусть n будет текущей нормой после преобразования в координаты глаза. Пусть f = (fx ( ) fy ( ) fz)T будет вектором отражения таким образом, чтобы

Уравнение, показывающее вектор отражения как функцию вектора единицы и текущей нормы.

Наконец, пусть

Уравнение, показывающее m как функцию вектора отражения.

Затем значения, назначенные координатам текстуры i и t:

Уравнение, показывающее значения, назначенные координатам текстуры i и t.

Функцию создания координат текстуры можно включить или отключить, используя glEnable или glDisable с одним из символьных имен координат текстуры (GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, GL_TEXTURE_GEN_R или GL_TEXTURE_GEN_Q) в качестве аргумента. Если эта функция включена, указанная координата текстуры вычисляется в соответствии с функцией создания, связанной с этой координатой. Если функция отключена, последующие вершины принимают указанную координату текстуры из текущего набора координат текстуры. Изначально для всех функций создания текстур задано значение GL_EYE_LINEAR и они отключены. Оба уравнения плоскости s : (1,0,0,0); оба уравнения плоскости t являются (0,1,0,0); и все уравнения плоскости r и q являются (0,0,0,0).

Следующие функции извлекают сведения, связанные с glTexGen:

glGetTexGen
glIsEnabled с аргументом GL_TEXTURE_GEN_S
glIsEnabled с аргументом GL_TEXTURE_GEN_T
glIsEnabled с аргументом GL_TEXTURE_GEN_R
glIsEnabled с аргументом GL_TEXTURE_GEN_Q

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glEnd

glCopyTexImage2D

glCopyTexSubImage2D

glGetTexGen

glIsEnabled

glTexEnv

glTexImage1D

glTexParameter

glTexSubImage1D

glTexSubImage2D