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