Функция 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 .
Имя | Значение |
---|---|
|
coord или pname не является допустимым определенным значением, либо pname было GL_TEXTURE_GEN_MODE, а параметр не является допустимым определенным значением. |
|
pname — GL_TEXTURE_GEN_MODE, params — GL_SPHERE_MAP, а coord — GL_R или GL_Q |
|
Функция была вызвана между вызовом 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, функция
используется, где g — это значение, вычисленное для координаты с именем coord; p1, p2, p3 и p4 — четыре значения, указанные в параметрах; и x?, y?, z?, и w? — координаты объекта вершины. Эту функцию можно использовать для текстурной карты местности, используя уровень моря в качестве эталонной плоскости (определяется p1, p2, p3 и p4). Функция создания координат GL_OBJECT_LINEAR вычисляет высоту вершины местности как ее расстояние от уровня моря; эта высота используется для индексирования изображения текстуры для сопоставления белого снега с пиками и зеленой травы на предгорьях, например.
Если функция создания текстуры 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 будет вектором отражения таким образом, чтобы
Наконец, пусть
Затем значения, назначенные координатам текстуры 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 [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|