Функция glTexGendv
Управляет созданием координат текстуры.
Синтаксис
void WINAPI glTexGendv(
GLenum coord,
GLenum pname,
const GLdouble *params
);
Параметры
-
coord
-
Координата текстуры. Должен иметь одно из следующих значений: GL_S, GL_T, GL_R или GL_Q.
-
pname
-
Символическое имя функции создания координат текстуры.
-
params
-
Массив, содержащий коэффициенты для соответствующей функции создания текстуры.
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
coord или pname не было принято определенное значение, или pname было GL_TEXTURE_GEN_MODE, а params не является принятым определенным значением. |
|
Функция была вызвана между вызовом 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_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 — значения, указанные в параметре , а M — матрица представления модели при вызовеglTexGen. Если M имеет плохое условие или единственное число, координаты текстуры, созданные результирующей функцией, могут быть неточными или неопределенными.
Обратите внимание, что значения в параметре определяют плоскость ссылок в координатах глаз. Матрица представления модели, применяемая к ним, может отличаться при преобразовании вершин многоугольников. Эта функция устанавливает поле координат текстуры, которое может создавать динамические контурные линии на движущихся объектах.
Если 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 |
|