Функция glLightfv
Функция glLightfv возвращает значения параметров источника света.
Синтаксис
void WINAPI glLightfv(
GLenum light,
GLenum pname,
const GLfloat *params
);
Параметры
-
light
-
Идентификатор индикатора. Количество возможных огней зависит от реализации, но поддерживается не менее восьми огней. Они идентифицируются символьными именами формы GL_LIGHT i, гдеi — это значение: от 0 до GL_MAX_LIGHTS – 1.
-
pname
-
Параметр источника света для света. Принимаются следующие символические имена.
Значение Значение - GL_AMBIENT
Параметр params содержит четыре значения с плавающей запятой, определяющие интенсивность освещения RGBA. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Интенсивность внешнего освещения по умолчанию — (0,0, 0,0, 0,0, 1,0). - GL_DIFFUSE
Параметр params содержит четыре значения с плавающей запятой, определяющие диффузную интенсивность RGBA света. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Диффузная интенсивность по умолчанию — (0,0, 0,0, 0,0, 1,0) для всех огней, отличных от нулевого света. Диффузная интенсивность света по умолчанию равна нулю (1,0, 1,0, 1,0, 1,0). - GL_SPECULAR
Параметр params содержит четыре значения с плавающей запятой, определяющие интенсивность света RGBA. Значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются. Интенсивность отражения по умолчанию — (0,0, 0,0, 0,0, 1,0) для всех огней, кроме нулевого света. По умолчанию зеркальной интенсивностью нулевого света является (1.0, 1.0, 1.0, 1.0). - GL_POSITION
Параметр params содержит четыре значения с плавающей запятой, определяющие положение света в однородных координатах объекта. Как целочисленные, так и значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются.
Положение преобразуется матрицей modelview при вызове glLightfv (как если бы это была точка) и сохраняется в координатах глаз. Если компонент w позиции равен 0,0, свет рассматривается как направленный источник. Расчеты диффузного и зеркального освещения учитывают направление света, но не его фактическое положение, и затухание отключено. В противном случае расчеты диффузного и зеркального освещения основаны на фактическом расположении света в координатах глаз, и включается затухание. Позиция по умолчанию — (0,0,1,0); Таким образом, источник света по умолчанию является направленным, параллельным и в направлении оси -z .- GL_SPOT_DIRECTION
Параметр params содержит три значения с плавающей запятой, определяющие направление света в однородных координатах объекта. Как целочисленные, так и значения с плавающей запятой сопоставляются напрямую. Ни целочисленные, ни значения с плавающей запятой не зажимаются.
Направление точки преобразуется с помощью обратной матрицы представления модели при вызове glLightfv (так же, как если бы он был нормальным) и сохраняется в координатах глаза. Это важно, только если GL_SPOT_CUTOFF не равно 180, что и по умолчанию. Направление по умолчанию — (0,0,1).- GL_SPOT_EXPONENT
Параметр params — это одно значение с плавающей запятой, указывающее распределение интенсивности света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только значения в диапазоне [0, 128].
Эффективная интенсивность света затухает косинус угла между направлением света и направлением от света к освещенной вершине, поднятой в степень точечных экспонент. Таким образом, более высокие точечные экспоненты приводят к более ориентированному источнику света, независимо от угла отсечения пятна. Точечный экспонентой по умолчанию является 0, что приводит к равномерному распределению света.- GL_SPOT_CUTOFF
Параметр params — это одно значение с плавающей запятой, указывающее максимальный угол распространения источника света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только значения в диапазоне [0, 90] и специальное значение 180.
Если угол между направлением света и направлением от света до освещенной вершины больше, чем угол среза пятна, то свет полностью маскируется. В противном случае его интенсивность контролируется точечным экспонентой и факторами затухания. По умолчанию точечный отрезок равен 180, что приводит к равномерному распределению света.- GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
Параметр params — это одно значение с плавающей запятой, указывающее один из трех факторов затухания света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только нерицательные значения.
Если свет является позициональным, а не направленным, его интенсивность затухается обратной суммой: константного коэффициента, линейного коэффициента, умноженного на расстояние между светом и освещенной вершиной, и квадратного коэффициента, умноженного на квадрат того же расстояния. Коэффициенты затухания по умолчанию : (1,0,0), что приводит к отсутствии затухания. -
params
-
Задает значение, которое будет задано параметру pnameисточника света.
Возвращаемое значение
Эта функция не возвращает значение.
Коды ошибок
Следующие коды ошибок могут быть получены функцией glGetError .
Имя | Значение |
---|---|
|
Значение light или pname не является допустимым. |
|
Значение точечных экспонент задается за пределами диапазона [0, 128], за пределами диапазона [0, 90] (за исключением специального значения 180) или указан отрицательный коэффициент затухания. |
|
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd. |
Комментарии
Функция glLightfv задает значение или значения отдельных параметров источника света. Параметр light присваивает свету имя и является символическим именем формы GL_LIGHTi, где 0 = i< GL_MAX_LIGHTS.
Параметр pname указывает один из параметров источника света, опять же символьным именем. Параметр params является либо одним значением, либо указателем на массив, содержащий новые значения.
Расчет освещения включается и отключается с помощью glEnable и glDisable с аргументом GL_LIGHTING. Если освещение включено, включенные источники света вносят свой вклад в вычисление освещения. Источник света i включен и отключен с помощью glEnable и glDisable с аргументом GL_LIGHTi.
Это всегда так, что GL_LIGHTi = GL_LIGHT0 + i.
Следующие функции извлекают сведения, связанные с функцией glLightfv :
glIsEnabled с аргументом GL_LIGHTING
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|