glLightfv 函数

glLightfv 函数返回光源参数值。

语法

void WINAPI glLightfv(
         GLenum  light,
         GLenum  pname,
   const GLfloat *params
);

参数

light

灯的标识符。 可能的灯的数量取决于实现,但至少支持八个灯。 它们由形式 GL_LIGHTi 的符号名称标识,其中 i 是一个值:0 到 GL_MAX_LIGHTS - 1。

pname

的光源参数。 接受以下符号名称。

含义
GL_AMBIENT
参数包含四个浮点值,这些值指定光线的环境 RGBA 强度。 浮点值是直接映射的。 整数值和浮点值均不固定。 默认环境光强度 (0.0、0.0、0.0、1.0) 。
GL_DIFFUSE
参数包含四个浮点值,这些值指定光线的漫射 RGBA 强度。 浮点值是直接映射的。 整数值和浮点值均不固定。 除光零以外的所有光的默认漫射强度为 (0.0、0.0、0.0、1.0) 。 光零的默认漫射强度为 (1.0、1.0、1.0、1.0、1.0) 。
GL_SPECULAR
参数包含四个浮点值,这些值指定光的反射 RGBA 强度。 浮点值是直接映射的。 整数值和浮点值均不固定。 除光零以外的所有光的默认反射强度为 (0.0、0.0、0.0、1.0) 。 光零的默认反射强度为 (1.0、1.0、1.0、1.0) 。
GL_POSITION
params 参数包含四个浮点值,这些值指定光在同质对象坐标中的位置。 整数值和浮点值都是直接映射的。 整数值和浮点值均不固定。
glLightfv (调用 glLightfv 时,模型视图矩阵将转换位置,就像它是一个点) 一样,并且它存储在眼睛坐标中。 如果位置的 w 分量为 0.0,则光线被视为方向源。 漫射和反射照明计算将光线的方向(而不是实际位置)考虑在内,并禁用衰减。 否则,漫射和反射照明计算基于光线在眼睛坐标中的实际位置,并启用衰减。 默认位置为 (0,0,1,0) ;因此,默认光源是方向、平行于 和 在 -z 轴的方向。
GL_SPOT_DIRECTION
params 参数包含三个浮点值,这些值以同质对象坐标指定光的方向。 整数值和浮点值都是直接映射的。 整数值和浮点值均不固定。
glLightfv (调用 glLightfv 时,通过模型视图矩阵的反方向进行转换,就像它是一个正常) 一样,并且存储在眼睛坐标中。 仅当GL_SPOT_CUTOFF不是 180(默认情况下为 180)时,这一点才有意义。 默认方向为 (0,0,1) 。
GL_SPOT_EXPONENT
参数是一个浮点值,用于指定光的强度分布。 整数值和浮点值直接映射。 仅接受 [0, 128] 范围内的值。
有效光强度由光的方向与从光到点亮顶点的方向之间的角度的余弦值衰减,提高到点指数的幂。 因此,较高的点指数会导致更聚焦的光源,而不管点截止角度如何。 默认的点指数为 0,因此光分布均匀。
GL_SPOT_CUTOFF
params 参数是一个浮点值,用于指定光源的最大传播角度。 整数值和浮点值直接映射。 仅接受范围 [0, 90] 和特殊值 180 的值。
如果光的方向与从光线到点亮顶点的方向之间的角度大于点截止角度,则完全屏蔽光。 否则,其强度由点指数和衰减因子控制。 默认的点截止为 180,因此光分布均匀。
GL_CONSTANT_ATTENUATION、GL_LINEAR_ATTENUATION、GL_QUADRATIC_ATTENUATION
参数是一个浮点值,指定三个光衰减因子之一。 整数值和浮点值直接映射。 仅接受非否定值。
如果光是位置的,而不是方向的,则其强度会由 之和的倒数衰减:常量因子、线性因子乘以光与点光顶点之间的距离,以及二次因子乘以相同距离的平方。 默认衰减因子 (1,0,0) ,因此没有衰减。

params

指定将光源的参数 pname 设置为的值。

返回值

此函数不返回值。

错误代码

glGetError 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
lightpname 不是接受的值。
GL_INVALID_VALUE
在 [0, 128] 范围之外指定了一个点指数值,或者指定了除特殊值 180 () 以外的 [0, 90] 范围以外的点截断值,或者指定了负衰减因子。
GL_INVALID_OPERATION
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。

备注

glLightfv 函数设置单个光源参数的值。 light 参数将光命名为光,是形式 GL_LIGHTi 的符号名称,其中 0 = i< GL_MAX_LIGHTS。

pname 参数再次按符号名称指定其中一个光源参数。 params 参数是单个值或指向包含新值的数组的指针。

使用 glEnableglDisable 通过参数GL_LIGHTING启用和禁用照明计算。 启用照明后,已启用的光源将参与照明计算。 使用glEnable 和 glDisable 使用参数 GL_LIGHT i 启用和禁用光源i

GL_LIGHTi = GL_LIGHT0 + i 始终如此。

以下函数检索与 glLightfv 函数相关的信息:

glGetLight

glIsEnabled with argument GL_LIGHTING

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glColorMaterial

glEnd

glLightModel

glMaterial