glLightModelfv 函数
glLightModelfv 函数设置照明模型参数。
语法
void WINAPI glLightModelfv(
GLenum pname,
const GLfloat *params
);
参数
-
pname
-
照明模型参数。 接受以下值。
值 含义 - GL_LIGHT_MODEL_AMBIENT
参数包含四个浮点值,这些值指定整个场景的环境 RGBA 强度。 整数值以线性方式映射,使最正的可表示值映射到 1.0,而最负的可表示值映射到 -1.0。 浮点值是直接映射的。 整数值和浮点值均不固定。 默认环境场景强度为 (0.2、0.2、0.2、1.0) 。 - GL_LIGHT_MODEL_LOCAL_VIEWER
params 参数是一个浮点值,用于指定反射角的计算方式。 如果 参数 为 0 (或 0.0) ,则无论顶点在眼睛坐标中的位置如何,镜面反射角度都会使视图方向与 -z 轴的方向平行。 否则,将从眼睛坐标系的原点计算反射。 默认值为 0。 - GL_LIGHT_MODEL_TWO_SIDE
params 参数是一个浮点值,指定是对多边形执行单面照明计算还是双面照明计算。 它不会影响点、线条或位图的照明计算。 如果 参数 为 0 (或 0.0) ,则指定单面照明,照明公式中仅使用前部材料参数。 否则,将指定双面照明。
在这种情况下,使用背面材料参数点亮后向多边形的顶点,并在计算照明公式之前将其法线反转。 正面多边形的顶点始终使用前部材料参数点亮,不会更改其法线。 默认值为 0。 -
params
-
指向 参数将设置 到的值的指针。
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
pname 不是接受的值。 |
|
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。 |
备注
glLightModelfv 函数设置照明模型参数。 pname 参数命名参数,参数为新值。单个光源参数的值。
在 RGBA 模式下,顶点的发光颜色是材料发射强度、材料环境反射率和照明模型全场景环境强度的总和,以及每个已启用的光源的贡献。 每个光源提供三个项的总和:环境、漫射和反射。
- 环境光源的贡献是材料环境反射率和光的环境强度的乘积。
- 漫射光源贡献是材料漫射反射率的乘积、光的漫射强度以及顶点法线的点积,以及从顶点到光源的规范化向量。
- 反射光源的贡献是材料反射率、光的反射强度的乘积,以及规范化顶点到眼睛和顶点到光向量的点积,提高到材料光泽度的幂。
所有三个光源贡献都根据从顶点到光源的距离以及光源方向、分布指数和传播截止角度进行平均衰减。 如果计算结果为负值,则将所有点积替换为零。
生成的发光颜色的 alpha 分量设置为材料漫射反射率的 alpha 值。
在颜色索引模式下,顶点的点亮索引值的范围从环境到使用 GL_COLOR_INDEXES传递到 glMaterial 的反射值。 漫射系数和反射系数,以 (.30、0.59、011) 光的颜色权重、材料的光泽度以及与 RGBA 情况相同的反射和衰减公式计算得出,确定生成的索引高于环境多少。
以下函数检索与 glLightModelfv 函数相关的信息:
带参数GL_LIGHT_MODEL_LOCAL_VIEWER的 glGet
带参数GL_LIGHT_MODEL_TWO_SIDE的 glGet
glIsEnabled with argument GL_LIGHTING
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|