glLightModelf 函数

glLightModelf 函数设置照明模型参数。

语法

void WINAPI glLightModelf(
   GLenum  pname,
   GLfloat *param
);

parameters

pname

单值照明模型参数。 接受以下值。

含义
GL_LIGHT_MODEL_LOCAL_VIEWER
参数是一个浮点值,用于指定反射角的计算方式。 如果 参数 为 0 (或 0.0) ,则无论顶点在眼睛坐标中的位置如何,镜面反射角度都会使视图方向与 -z 轴的方向平行。 否则,将从眼睛坐标系的原点计算反射。 默认值为 0。
GL_LIGHT_MODEL_TWO_SIDE
参数是单个浮点值,用于指定是对多边形执行单面照明计算还是双面照明计算。 它不会影响点、线条或位图的照明计算。 如果 参数 为 0 (或 0.0) ,则指定单面照明,照明公式中仅使用前部材料参数。 否则,将指定双面照明。
在这种情况下,使用背面材料参数点亮后向多边形的顶点,并在计算照明公式之前将其法线反转。 正面多边形的顶点始终使用前部材料参数点亮,不会更改其法线。 默认值为 0。

param

参数 将设置为 的值。

返回值

此函数不返回值。

错误代码

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

名称 含义
GL_INVALID_ENUM
pname 不是接受的值。
GL_INVALID_OPERATION
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。

备注

glLightModelf 函数设置照明模型参数。 pname 参数命名参数,参数为新值。单个光源参数的值。

在 RGBA 模式下,顶点的发光颜色是材料发射强度、材料环境反射率和照明模型全场景环境强度的总和,以及每个已启用的光源的贡献。 每个光源提供三个项的总和:环境、漫射和反射。

  • 环境光源的贡献是材料环境反射率和光的环境强度的乘积。
  • 漫射光源贡献是材料漫射反射率的乘积、光的漫射强度以及顶点法线的点积,以及从顶点到光源的规范化向量。
  • 反射光源的贡献是材料反射率、光的反射强度的乘积,以及规范化顶点到眼睛和顶点到光向量的点积,提高到材料光泽度的幂。

所有三个光源贡献都根据从顶点到光源的距离以及光源方向、分布指数和传播截止角度进行平均衰减。 如果计算结果为负值,则将所有点积替换为零。

生成的发光颜色的 alpha 分量设置为材料漫射反射率的 alpha 值。

在颜色索引模式下,顶点的点亮索引值的范围从环境到使用 GL_COLOR_INDEXES传递到 glMaterial 的反射值。 漫射系数和反射系数,以 (.30、0.59、011) 光的颜色权重、材料的光泽度以及与 RGBA 情况相同的反射和衰减公式计算得出,确定生成的索引高于环境多少。

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

带参数GL_LIGHT_MODEL_LOCAL_VIEWER的 glGet

带参数GL_LIGHT_MODEL_TWO_SIDE的 glGet

glIsEnabled with argument GL_LIGHTING

要求

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

Opengl32.lib
DLL
Opengl32.dll

请参阅

glBegin

glEnd

glLight

glMaterial