Функция glTexGenf

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

Синтаксис

void WINAPI glTexGenf(
   GLenum  coord,
   GLenum  pname,
   GLfloat 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, а params не является принятым определенным значением.
GL_INVALID_ENUM
pname — GL_TEXTURE_GEN_MODE, параметр — 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, параметр указывает режим, один из 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 — значения, указанные в параметре , а 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