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


Функция glLighti

Функция glLighti возвращает значения параметров источника света.

Синтаксис

void WINAPI glLighti(
   GLenum light,
   GLenum pname,
   GLint  param
);

Параметры

light

Идентификатор индикатора. Количество возможных огней зависит от реализации, но поддерживается не менее восьми огней. Они идентифицируются символьными именами формы GL_LIGHT i, гдеi — это значение: от 0 до GL_MAX_LIGHTS – 1.

pname

Однозначный параметр источника света для света. Принимаются следующие символические имена.

Значение Значение
GL_SPOT_EXPONENT
Параметр param — это одно целочисленное значение, указывающее распределение интенсивности света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только значения в диапазоне [0, 128].
Эффективная интенсивность света затухает косинус угла между направлением света и направлением от света к освещенной вершине, поднятой в степень точечных экспонент. Таким образом, более высокие точечные экспоненты приводят к более ориентированному источнику света, независимо от угла отсечения пятна. Точечный экспонентой по умолчанию является 0, что приводит к равномерному распределению света.
GL_SPOT_CUTOFF
Параметр param — это одно целочисленное значение, указывающее максимальный угол распространения источника света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только значения в диапазоне [0, 90] и специальное значение 180.
Если угол между направлением света и направлением от света до освещенной вершины больше, чем угол среза пятна, то свет полностью маскируется. В противном случае его интенсивность контролируется точечным экспонентой и факторами затухания. По умолчанию точечный отрезок равен 180, что приводит к равномерному распределению света.
GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION
Параметр param — это одно целочисленное значение, указывающее один из трех факторов затухания света. Целочисленные значения и значения с плавающей запятой сопоставляются напрямую. Принимаются только нерицательные значения.
Если свет является позициональным, а не направленным, его интенсивность затухается обратной суммой: константного коэффициента, линейного коэффициента, умноженного на расстояние между светом и освещенной вершиной, и квадратного коэффициента, умноженного на квадрат того же расстояния. Коэффициенты затухания по умолчанию : (1,0,0), что приводит к отсутствии затухания.

param

Задает значение, которое будет задано параметру pnameисточника света.

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

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

Коды ошибок

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

Имя Значение
GL_INVALID_ENUM
Значение light или pname не является допустимым.
GL_INVALID_VALUE
Значение точечных экспонент задается за пределами диапазона [0, 128], за пределами диапазона [0, 90] (за исключением специального значения 180) или указан отрицательный коэффициент затухания.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Функция glLighti задает значение или значения отдельных параметров источника света. Параметр light присваивает свету имя и является символическим именем формы GL_LIGHTi, где 0 = i< GL_MAX_LIGHTS.

Параметр pname указывает один из параметров источника света, опять же символьным именем. Параметр param является либо одним значением, либо указателем на массив, содержащий новые значения.

Расчет освещения включается и отключается с помощью glEnable и glDisable с аргументом GL_LIGHTING. Если освещение включено, включенные источники света вносят свой вклад в вычисление освещения. Источник света i включен и отключен с помощью glEnable и glDisable с аргументом GL_LIGHTi.

Это всегда так, что GL_LIGHTi = GL_LIGHT0 + i.

Следующие функции извлекают сведения, связанные с функцией glLighti :

glGetLight

glIsEnabled с аргументом GL_LIGHTING

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glColorMaterial

glEnd

glLightModel

glMaterial