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


Функция glTexGendv

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

Синтаксис

void WINAPI glTexGendv(
         GLenum   coord,
         GLenum   pname,
   const GLdouble *params
);

Параметры

coord

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

pname

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

params

Массив, содержащий коэффициенты для соответствующей функции создания текстуры.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
coord или pname не было принято определенное значение, или pname было GL_TEXTURE_GEN_MODE, а params не является принятым определенным значением.
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_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 будет вектором отражения таким образом, чтобы

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

Наконец, позвольте

Уравнение, показывающее 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